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@...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@...12...ceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main