Data-abort exception while trying to boot skalk/linux imx-53 branch with genode trustzone

Stefan Kalkowski stefan.kalkowski at ...1...
Thu Jun 1 08:46:13 CEST 2017


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 at ...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 at ...1...
> <mailto:stefan.kalkowski at ...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 at lists.sourceforge.net
>     <mailto:genode-main at 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 at lists.sourceforge.net
>     <mailto:genode-main at 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

-- 
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/




More information about the users mailing list