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@...514...:~$ 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.kalkowski@...1... mailto:stefan.kalkowski@...1...> 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