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

rijurekha at ...71... rijurekha at ...71...
Fri Jun 2 14:15:48 CEST 2017


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.kalkowski at ...1...> 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 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/
>>
>> ------------------------------------------------------------
>> ------------------
>> 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
>>
> ------------------------------------------------------------------------------
> 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
>





More information about the users mailing list