Genode on IMX6

Martin Stein martin.stein at ...1...
Mon Mar 23 13:54:59 CET 2015


Hi Vincent,

Maybe you already know but you can try to raise verbosity of linux
especially in this early stage by adding 'earlyprintk loglevel=10' to
your command line (see 'cmdline' in the 'Vm_base' constructor in [1]).

Cheers,
Martin

[1] os/src/server/tz_vmm/include/vm_base.h

On 23.03.2015 09:56, Stefan Kalkowski wrote:
> Hi,
> 
> On 03/23/2015 07:55 AM, chirag garg wrote:
>> Hello Vincent,
>>
>> I tried that too.. As, some blogs says that zImage is pure binary image.
>> I copied that zImage as linux in <Genode>/<Build_Dir>/bin/ folder.
>>
>> I run the build-ed uImage in Genode. Following is the output i am
>> getting on  the screen
>>
>> kernel initialized
>> Genode 14.11
>> int main(): --- create local services ---
>> int main(): --- start init ---
>> int main(): transferred 246 MB to init
>> int main(): --- init created, waiting for exit condition ---
>> [init] parent provides
>> [init]   service "ROM"
>> [init]   service "RAM"
>> [init]   service "IRQ"
>> [init]   service "IO_MEM"
>> [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:  3932160
>> [init]   ELF binary: tz_vmm
>> [init]   priority:   0
>> [init -> tz_vmm] Start virtual machine ...
>>
>> Uncompressing Linux...
>>
>> Then it hangs on this message. what could be wrong there ?
> 
> Honestly, there are so many possibilities what can go wrong in the guest
> OS if something is misconfigured, or the guest OS is not aware of its
> position. You will have to find a way to debug such behavior on your
> own. Of course the best way would be to use a JTAG debugger.
> Alternatively, either you start to instrument the Linux code with printk
> (obviously Linux can already do printings), or you intersperse 'smc'
> instructions when investigating assembler paths of the Linux guest,
> thereby your VMM can print the whole guest state when an 'smc'
> instruction was triggered.
> 
> You told us: "I know i haven't modified linux according to the normal
> world but at least kernel should start in normal world". That is not
> true in general. It hardly depends how you have configured all TrustZone
> related devices. If you really prepared everything to be used by the
> normal world, you might be right. Nevertheless, then the Genode OS in
> the secure world probably will not work anymore. On the other hand, if
> for instance a guest OS took it for granted (I do not know the Linux
> branch you are using) to start in the secure world it will run into
> problems as well.
> 
> Regards
> Stefan
> 
>>
>> Regards
>>
>> Chirag Garg
>> IIT Madras , Rise Lab
>>
>> On Mon, Mar 23, 2015 at 5:12 AM, Vincent Raes <raes.vincent at ...9...
>> <mailto:raes.vincent at ...9...>> wrote:
>>
>>     Hi,
>>
>>     The problem is that you the file "linux" you're using is an uImage.
>>     For a file to work with the tz_vmm it has to be a pure binary file.
>>     This is due to the wrapper around the uImage. The instruction
>>     pointer is set to 30800000 but there are no instructions at that
>>     point, instead it finds the uImage wrapper. And since it has no idea
>>     what to do with this, the normal world never starts executing.
>>
>>     Best regards,
>>     Vincent
>>
>>     Op 22-mrt.-2015 22:00 schreef "chirag garg"
>>     <chiragdthinker at ...9... <mailto:chiragdthinker at ...9...>>:
>>
>>         Hi all,
>>
>>         I am trying to enable TrustZone for imx6 processor. As earlier,
>>         I have modified Genode for imx6 and it was successfully running.
>>         And I am able to run Genode in secure world as well as in Normal
>>         world on imx6 tablet.
>>
>>         Now i am trying to run Linux (3.10 without dtb) in the Normal
>>         world. I tried the follow the following steps:
>>          
>>         1) I simply followed the steps mentioned on the following link
>>         http://boundarydevices.com/cross-compile-i-mx6-kernel-using-ltib-toolchain/
>>         which generate uImage which is successfully running on imx6 with
>>         LOADADDR=30008000. 
>>
>>         2) I simply copied this uImage as "linux" in
>>         <Genode>/<Build_Dir>/bin/ folder
>>
>>         3) run the modified tz_vmm script and build the uImage.
>>
>>         I run the uImage on the imx6 board.Following is the generated
>>         output:
>>
>>          
>>         9928768 bytes read in 523 ms (18.1 MiB/s)
>>         ## Booting kernel from Legacy Image at 10800000 ...
>>            Image Name:  
>>            Image Type:   ARM Linux Kernel Image (uncompressed)
>>            Data Size:    9928704 Bytes = 9.5 MiB
>>            Load Address: 10001000
>>            Entry Point:  10001000
>>            Verifying Checksum ... OK
>>            Loading Kernel Image ... OK
>>
>>         Starting kernel ...
>>
>>         kernel initialized
>>         Genode 14.11
>>         int main(): --- create local services ---
>>         int main(): --- start init ---
>>         int main(): transferred 246 MB to init
>>         int main(): --- init created, waiting for exit condition ---
>>         [init] parent provides
>>         [init]   service "ROM"
>>         [init]   service "RAM"
>>         [init]   service "IRQ"
>>         [init]   service "IO_MEM"
>>         [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:  3932160
>>         [init]   ELF binary: tz_vmm
>>         [init]   priority:   0
>>         [init -> tz_vmm] Start virtual machine ...
>>
>>         I am using Genode-14.11 and u-boot 14.07 to run this image. I
>>         set the NONSECURE_RAM_BASE=0x30000000 and kernel_offset=8000. I
>>         know i haven't modified linux according to the normal world but
>>         at least kernel should start in normal world.
>>
>>         What could be the reason or some thing wrong in the steps due to
>>         which Linux is not able to start in Normal world ?
>>
>>         Thanks in advance.
>>         Regards
>>
>>         Chirag Garg
>>         IIT Madras , Rise Lab
>>
>>         ------------------------------------------------------------------------------
>>         Dive into the World of Parallel Programming The Go Parallel
>>         Website, sponsored
>>         by Intel and developed in partnership with Slashdot Media, is
>>         your hub for all
>>         things parallel software development, from weekly thought
>>         leadership blogs to
>>         news, videos, case studies, tutorials and more. Take a look and
>>         join the
>>         conversation now. http://goparallel.sourceforge.net/
>>         _______________________________________________
>>         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
>>
>>
>>     ------------------------------------------------------------------------------
>>     Dive into the World of Parallel Programming The Go Parallel Website,
>>     sponsored
>>     by Intel and developed in partnership with Slashdot Media, is your
>>     hub for all
>>     things parallel software development, from weekly thought leadership
>>     blogs to
>>     news, videos, case studies, tutorials and more. Take a look and join the
>>     conversation now. http://goparallel.sourceforge.net/
>>     _______________________________________________
>>     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
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
>> by Intel and developed in partnership with Slashdot Media, is your hub for all
>> things parallel software development, from weekly thought leadership blogs to
>> news, videos, case studies, tutorials and more. Take a look and join the 
>> conversation now. http://goparallel.sourceforge.net/
>>
>>
>>
>> _______________________________________________
>> 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