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