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@...9... mailto:raes.vincent@...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@...9... <mailto: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@lists.sourceforge.net <mailto:genode-main@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@lists.sourceforge.net <mailto:genode-main@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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main