Hi, I'm currently developing a simple trustzone device driver running in Normal World to communicate with Genode in Secure World. I'm using I.MX53 QSB.
And I read following article to acheive my goal : https://sourceforge.net/p/genode/mailman/message/34341641/
After read the article, I tried to use "1497_usb_armory_demo".
my procedure was as follows:
1. git clone genode and linux branch. (https://github.com/m-stein/genode/tree/1497_usb_armory_demo , https://github.com/m-stein/linux/tree/1497_usb_armory_demo) 2. cd <linux> 3. make ARCH=arm CROSS_COMPILE=${gcc-eabi} LOADADDR=0x80008000 usbarmory_defconfig 4. make ARCH=arm CROSS_COMPILE=${gcc-eabi} LOADADDR=0x80008000 uImage And uImage is ready
5. cd <genode> 6. ./tool/create_builddir hw_imx53_qsb_tz BUILD_DIR=mx53_tz 7. cd mx53_tz 8. mkdir bin 9. cp <linux>/arch/arm/boot/uImage ./bin/linux 10. cd mx53_tz and modify RUN_OPT in etc/build.conf to include “image/uboot"(e.g. RUN_OPT = --include boot_dir/hw --include image/uboot) 11. modify <genode>/repos/os/run/tz_vmm.run (only delete md5 check routine, "exec >& /dev/null wget -O linux.md5 $linux_uri.md5" and "exec md5sum -c linux.md5") 12. make run/tz_vmm And uImage can be found in mx53_tz/var/run/tz_vmm
I booted system using sdcard and uboot. but, error is occured :
=> ext2load mmc 0:1 0xb0000000 uImage 7039880 bytes read in 410 ms (16.4 MiB/s) => bootm 0xb0000000 ## Booting kernel from Legacy Image at b0000000 ... Image Name: Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 7039816 Bytes = 6.7 MiB Load Address: 70010000 Entry Point: 70010000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ...
kernel initialized Genode 15.08 int main(): --- create local services --- int main(): --- start init --- int main(): transferred 243 MB to init int main(): --- init created, waiting for exit condition --- [init] Could not open ROM session for module "ld.lib.so" [init] parent provides [init] service "ROM" [init] service "RAM" [init] service "IRQ" [init] service "IO_MEM" [init] service "IO_PORT" [init] service "CAP" [init] service "PD" [init] service "RM" [init] service "CPU" [init] service "LOG" [init] service "SIGNAL" [init] service "VM" [init] child "tz_vmm" [init] RAM quota: 10203136 [init] ELF binary: tz_vmm [init] priority: 0 [init -> tz_vmm] Start virtual machine ... [init -> tz_vmm] Cpu state: [init -> tz_vmm] Register Virt Phys [init -> tz_vmm] --------------------------------- [init -> tz_vmm] r0 = 07000000 [00000000] [init -> tz_vmm] r1 = f801ff50 [00000000] [init -> tz_vmm] r2 = ffffffe4 [00000000] [init -> tz_vmm] r3 = 40002000 [00000000] [init -> tz_vmm] r4 = 00000000 [00000000] [init -> tz_vmm] r5 = 00000000 [00000000] [init -> tz_vmm] r6 = 000000ee [00000000] [init -> tz_vmm] r7 = 00000000 [00000000] [init -> tz_vmm] r8 = 00000000 [00000000] [init -> tz_vmm] r9 = 00000000 [00000000] [init -> tz_vmm] r10 = 00000000 [00000000] [init -> tz_vmm] r11 = 00000000 [00000000] [init -> tz_vmm] r12 = 00000000 [00000000] [init -> tz_vmm] sp = 00000000 [00000000] [init -> tz_vmm] lr = 00000000 [00000000] [init -> tz_vmm] ip = 0040dfe8 [00000000] [init -> tz_vmm] cpsr = 60000093 [init -> tz_vmm] sp_und = 00000000 [00000000] [init -> tz_vmm] lr_und = 00000000 [00000000] [init -> tz_vmm] spsr_und = 00000000 [00000000] [init -> tz_vmm] sp_svc = f801ff4c [00000000] [init -> tz_vmm] lr_svc = 0040bc97 [00000000] [init -> tz_vmm] spsr_svc = 00000093 [00000000] [init -> tz_vmm] sp_abt = 00000000 [00000000] [init -> tz_vmm] lr_abt = 00000000 [00000000] [init -> tz_vmm] spsr_abt = 00000000 [00000000] [init -> tz_vmm] sp_irq = 00000000 [00000000] [init -> tz_vmm] lr_irq = 00000000 [00000000] [init -> tz_vmm] spsr_irq = 00000000 [00000000] [init -> tz_vmm] sp_fiq = 00000000 [00000000] [init -> tz_vmm] lr_fiq = 00000000 [00000000] [init -> tz_vmm] spsr_fiq = 00000000 [00000000] [init -> tz_vmm] ttbr0 = 00000000 [init -> tz_vmm] ttbr1 = 00000000 [init -> tz_vmm] ttbrc = 00000000 [init -> tz_vmm] dfar = 07000000 [00000000] [init -> tz_vmm] exception = data_abort [init -> tz_vmm] Could not handle data-abort will exit!
I don't know how to port "1497_usb_armory_demo" on my imx53 board. Is there any way for this? Is there any comment to implement this kind of example?
I'm really looking forward to any responses.
My Best Regards, Jinhong Kim