Hi Joseph,
On 01/05/2016 01:49 AM, Joseph Lee wrote:
Hello everyone,
I have built and run the current Genode version(15.11) with trustzone for hw_imx53_qsb_tz platform but i used the initramfs (initrd.gz) for Android image that are used in the demo for Sabre tablet ( https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/im...).
That is right, one has to distinguish between Sabre Tablet and Quickstart Board on different levels including the Android images. There might be more surprises when porting the existent demo to the Quickstart board.
After some trials and errors, I have managed to get the following outputs (see attached) on the serial console and it got stuck. is this the right approach to run Android in the normal world of i.mx53 QSB? What is missing ? lvds display is connected to the board but nothing is displayed.
When looking at the attached output I cannot see any initialization of drivers (e.g.: the framebuffer driver). It looks to me as if you are using the current 'tz_vmm' run-script that is used for automated testing only without any graphical setup. Is that right? As an alternative, you might use the run script from the tablet demo as a starting point:
https://raw.githubusercontent.com/skalk/genode/i.MX53_tablet_demo/os/run/vmm...
But again, you must brace yourself for surprises, because the run-script is pretty much outdated and was created for a very specific setup on top of the SABRE tablet.
Apart from that, the output really looks good, but in the end your Android VM faults when trying to access the GPU (data-abort at physical address 0x30001740). That is because the GPU is set as secure within the kernel device initialization (more precisely the Central Security Unit initialization) in file: repos/base-hw/src/core/include/spec/imx53/trustzone/csu.h
The GPU is set as secure like the "Image Processing Unit" (framebuffer device), because we enabled the DMA channel of the framebuffer driver to access secure memory, as it is driven by Genode's framebuffer driver that runs within the secure world. Sadly the GPU device uses the same DMA channel ID, and thereby the GPU is allowed to access secure memory via DMA too. Therefore, we set the GPU to be used by the secure world only.
If you want to use the GPU within the normal world (Android) for demonstration purposes only, and do not matter about DMA device attacks, you can also re-set the GPU to be unsecure (search for GPU 2D and 3D in the csu.h file).
Regards Stefan
Thanks,
On Mon, Dec 28, 2015 at 4:48 AM, Joseph Lee <leejose911@...9...> wrote:
Hi everyone,
i am currently trying to run trustzone demo on imx53 Quick Start Board (qsb). In which i want to run Android OS in the normal world. i followed the instruction in this link ( https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/im...) and built the uImage successfully. I put the uImage on the SD card partition (/dev/mmcblk0p1). However, when try to boot the uImage, it gets stuck after displaying the following outputs. I have attached the whole log messages. FYI, the SD card has two partitions(/dev/mmcblk0p1 and /dev/mmcblk0p2) with ext4 format.
mmc0: new high speed SDHC card at address 0007 mmcblk0: mmc0:0007 SD32G 28.9 GiB mmcblk0: p1 p2 init: cannot open '/initlogo.rle' EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) init: Unable to open persistent property directory /data/property errno: 2 init: cannot find '/system/bin/sh', disabling 'console' init: cannot find '/system/bin/servicemanager', disabling 'servicemanager' init: cannot find '/system/bin/vold', disabling 'vold' init: cannot find '/system/bin/netd', disabling 'netd' init: cannot find '/system/bin/dispd', disabling 'dispd' init: cannot find '/system/bin/debuggerd', disabling 'debuggerd' init: cannot find '/system/bin/app_process', disabling 'zygote' init: cannot find '/system/bin/mediaserver', disabling 'media' init: cannot find '/system/bin/dbus-daemon', disabling 'dbus' init: cannot find '/system/bin/installd', disabling 'installd' init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery' init: cannot find '/system/bin/keystore', disabling 'keystore' init: cannot find '/system/bin/rild', disabling 'ril-daemon' init: cannot find '/system/bin/magd', disabling 'magd' init: cannot find '/system/bin/wlan_tool', disabling 'wlan_tool'
could you please let me know what is missing?
thank you!
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main