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_vmmAnd 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