Hi,
With Genode 17.08 released, what is the current level of support for Genode/seL4 on i.MX6 platform? I've applied my previous changes to Genode to enable it on Sabre Lite platform, and currently I have no problems running test scenarios under default hw kernel. But when attempting to run Genode with seL4, the boot process hangs up once it reaches "Jumping to kernel-image entry point..."
ELF-loader started on CPU: ARM Ltd. Cortex-A9 r2p10 paddr=[20000000..201bc01f] ELF-loading image 'kernel' paddr=[10000000..10039fff] vaddr=[e0000000..e0039fff] virt_entry=e0000000 ELF-loading image 'genode.elf' paddr=[1003a000..10261fff] vaddr=[2000000..2227fff] virt_entry=2000000 Enabling MMU and paging Jumping to kernel-image entry point...
I've tried to introduce debug statements like Genode's log( ) for core component and kernel_debugger_outstring( ) for seL4 side, but it never reaches any of them. Is it even possible to run a simple Genode scenario (e.g., run/log or run/init) on seL4 on ARM at the moment?
Thank you
On Mon, Jun 26, 2017 at 12:14 AM, Yevgeny Lavrov <ylavrov13@...9...> wrote:
Hi, Norman
I wonder, how exactly are you running the image on the board?
I normally just copy created image over to SD card and then run it via bootelf command.
In contrast, on ARM, everything (seL4 kernel + Genode) must be contained
in a single image. The details of how such an image is assembled is kernel-specific This might explain why the image didn't give me any output. I ended up with two images: image.elf & sel4.elf instead of just image.elf in my <sabre_lite>/var/run/log/
Consequently, there must exist a seL4-specific tool for creating it. Can
you please elaborate, which tool you use and which particular steps you take? Didn't think of any tool for combining image.elf & sel4.elf together until I got your reply. Only thought of modifying /tool/run/boot_dir/sel4 file. I'll give Hinnerks elfloader-tool a try today.
Have you tried to run a non-Genode-based seL4 image on the hardware? I
would not try to run
Genode on the device before running a simple seL4 example first.
Yes, this was my starting point. All seL4 apps ran w/o any problems.
Thanks
On Fri, Jun 23, 2017 at 7:20 PM, Hinnerk van Bruinehsen < h.v.bruinehsen@...491...> wrote:
On Fri, Jun 23, 2017 at 12:00:42PM +0200, Norman Feske wrote:
Hello Yevgeny,
On 23.06.2017 05:31, Yevgeny Lavrov wrote:
Running the image on board gave no result, apart from msg: ## Starting application at 0x10001000 ...
I wonder, how exactly are you running the image on the board? In particular, how is the image created?
I am asking because the boot procedure on ARM is different from x86/multiboot. On x86, the kernel and the Genode ELF image are loaded by the boot loader (e.g., Grub) as separate boot modules. The kernel is started by the boot loader. At the startup of the kernel, the kernel finds the physical memory location of the Genode ELF image in the multiboot information and ELF-loads core by using this information. In contrast, on ARM, everything (seL4 kernel + Genode) must be contained in a single image. The details of how such an image is assembled is kernel-specific. Consequently, there must exist a seL4-specific tool for creating it. Can you please elaborate, which tool you use and which particular steps you take?
Another potential pitfall would be the use of the wrong UART or the use of a kernel configuration without debug support. The latter is needed for the kernel-provided UART driver. Have you tried to run a non-Genode-based seL4 image on the hardware? I would not try to run Genode on the device before running a simple seL4 example first.
Hi,
I'm using a fork of seL4's elfloader-tool that I've hacked together to create an image that acutally boots (at least it gets into the genode userland image where it is failing). To be clear: I need to add calls to kernel_debugger_outstring as I get a data fault before the logging infrastructure works (I guess due to exception handling not being initialized before the fail occurs).
I'm using an am335x based board so I can't test if this works for other hardware, but if anyone is interested you can find my elfloader fork at https://github.com/N8Fear/elfloader-tool
The bootable image is then created by running the script from the elfloader dir TOOLPREFIX=arm-none-eabi- PLAT=am335x ./gen_boot_image.sh <path to genode>/build/wega_am335x/var/run/log/sel4 <path to genode>/build/wega_am335x/var/run/log/image.elf /tmp/out.elf
PLAT and TOOLPREFIX need to be changed accordingly and when building the prelinked elfloader binary PLAT and ARMV needs to be adjusted as well (take a look at the Makefile).
I guess for your board you should try PLAT=imx6 for building and for creating the image.
I guess I should do some cleanup if anyone else wants to use the stuff...
With kind regards, Hinnerk
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main