Hi Stefan, We looked at the USB armory Linux: https://github.com/m-stein/linux/tree/genode_hw_usb_armory_tz_vmm, which has very clean interfaces to talk to the genode trustzone code, example the following files to do serial and block device operations using SMC hypercalls. (1) include/genode_tz_vmm_defs.h: SMC variables and arguments #defined (2) include/genode_tz_vmm.h: SMC function declarations (3) kernel/genode_tz_vmm.c: SMC function definitions (4) drivers/tty/serial/genode.c: calls SMC function to use UART via genode in secure world (5) drivers/block/genode.c: calls SMC function to use block device via genode in secure world
Can you please let us know is there is a similar linux source repo for IMX53 qsb, from which this binary was built: http://genode.org/files/images/imx53_qsb/linux_trustzone.bin? This linux binary works great, while the binary using https://github.com/skalk/linux/tree/imx53-tz crashes with an external data abort. Thanks for your time. Riju > Hello Stefan > Thanks for your help. Linux is loading now but it shows i2c error and then > dumps the same exception state as shown above `Data Abort`. > > ``` > da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!! > da9052_i2c_is_connected - i2c read failed..... > > ``` > > Though the linux.bin which tz_vmm script tries to download, loads fine. It > also shows above error but continues to load instead of crashing. I need > the source code of whatever binary I am running. Can you help me with > source code of the executable which is available here ` > http://genode.org/files/images/imx53_qsb/linux_trustzone.bin`. > > Thanks > Abhishek > > > On Thu, Jun 1, 2017 at 8:46 AM, Stefan Kalkowski < > stefan.kalkow...@genode-labs.com> wrote: > >> Hi, >> >> the tz_vmm component does not expect an uImage to be loaded, but the >> pure kernel binary instead. Within the Linux build tree for instance the >> path: "arch/arm/boot/compressed/vmlinux". I wonder, whether you got the >> very same exception state when not trying to execute on secure world >> RAM? >> >> Regards >> Stefan >> >> On 05/31/2017 04:39 PM, Abhishek Kumar wrote: >> > Hello Stefan >> > Thanks for your reply. I tried at 80008000 address as well. >> > >> > abhishek@abhishek-OptiPlex-790:~$ file linux >> > linux: u-boot legacy uImage, Linux-2.6.35.3-01384-g9533414-di, >> > Linux/ARM, OS Kernel Image (Not compressed), 2933872 bytes, Wed >> May >> > 31 15:52:08 2017, Load Address: 0x80008000, Entry Point: >> 0x80008000, >> > Header CRC: 0x83CD7B97, Data CRC: 0x914C7C24 >> > >> > >> > >> > I tried to print from `start` function in >> > "os/src/server/tz_vmm/include/vm_base.h" file. >> > >> > void start() >> > { >> > Genode::memset((void*)_state, 0, >> > sizeof(Genode::Vm_state)); >> > _load_kernel(); >> > _load_kernel_surroundings(); >> > _state->cpsr = 0x93; /* SVC mode and IRQs >> > disabled */ >> > _state->r0 = 0; >> > _state->r1 = _mach_type; >> > _state->r2 = _ram.base() + >> > _board_info_offset(); >> > } >> > >> > >> > _load_kernel() and other statements are working perfectly fine, I >> tried >> > printing after each line using PINF. I think that means kernel is >> > loading fine, though I'm not sure. What might be going wrong here? >> > >> > Thanks >> > Abhishek >> > >> > On Wed, May 31, 2017 at 2:57 PM, Stefan Kalkowski >> > <stefan.kalkow...@genode-labs.com >> > <mailto:stefan.kalkow...@genode-labs.com>> wrote: >> > >> > Hello, >> > >> > On 05/31/2017 02:25 PM, Abhishek Kumar wrote: >> > > Hello >> > > I am trying to run linux in normal world on genode trustzone. I >> have >> > > changed the run-script of genode to copy the uImage generated >> from >> > > skalk/linux's imx-53 branch instead of downloading (default). I >> am >> > > making uImage with following command: >> > > >> > > make uImage LOADADDR=0x70010000 >> > >> > You are trying to relocate the Linux kernel within the memory >> portion >> > that is used by the secure world (Genode). The secure RAM is from >> > 0x70000000 to 0x7fffffff. Please follow these instructions to >> build >> the >> > guest kernel on your own, like referenced within the tz_vmm >> run-script: >> > >> > https://genode.org/files/release-15.11/usb_armory_tz_vmm/README >> > <https://genode.org/files/release-15.11/usb_armory_tz_vmm/README> >> > >> > Regards >> > Stefan >> > >> > > >> > > while executing, genode stops after starting virtual machine >> with >> > > following error trace: >> > > >> > > ``` >> > > . >> > > . >> > > [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 = 8000800c [00000000] >> > > [init -> tz_vmm] spsr_und = 00000093 [00000000] >> > > [init -> tz_vmm] sp_svc = f801ff4c [00000000] >> > > [init -> tz_vmm] lr_svc = 0040bc97 [00000000] >> > > [init -> tz_vmm] spsr_svc = 00000000 [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! >> > > >> > > >> > > ``` >> > > >> > > Initially I thought I might be giving wrong load address while >> making >> > > uImage, but it seems problem is not that. Can someone help me >> with >> > what >> > > might be possibly going wrong? >> > > >> > > Thanks >> > > Abhishek >> > > >> > > >> > > >> > ------------------------------------------------------------ >> ------------------ >> > > Check out the vibrant tech community on one of the world's most >> > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> > > >> > > >> > > >> > > _______________________________________________ >> > > genode-main mailing list >> > > genode-main@lists.sourceforge.net >> > <mailto:genode-main@lists.sourceforge.net> >> > > https://lists.sourceforge.net/lists/listinfo/genode-main >> > <https://lists.sourceforge.net/lists/listinfo/genode-main> >> > > >> > >> > -- >> > Stefan Kalkowski >> > Genode Labs >> > >> > https://github.com/skalk · http://genode.org/ >> > >> > ------------------------------------------------------------ >> ------------------ >> > Check out the vibrant tech community on one of the world's most >> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> > _______________________________________________ >> > genode-main mailing list >> > genode-main@lists.sourceforge.net >> > <mailto:genode-main@lists.sourceforge.net> >> > https://lists.sourceforge.net/lists/listinfo/genode-main >> > <https://lists.sourceforge.net/lists/listinfo/genode-main> >> > >> > >> > >> > >> > ------------------------------------------------------------ >> ------------------ >> > Check out the vibrant tech community on one of the world's most >> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> > >> > >> > >> > _______________________________________________ >> > genode-main mailing list >> > genode-main@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/genode-main >> > >> >> -- >> Stefan Kalkowski >> Genode Labs >> >> https://github.com/skalk · http://genode.org/ >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> genode-main mailing list >> genode-main@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/genode-main >> > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! > http://sdm.link/slashdot_______________________________________________ > genode-main mailing list > genode-main@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/genode-main > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main