Genode on i.MX6Q Sabre Lite

Hinnerk van Bruinehsen h.v.bruinehsen at ...491...
Sat Jun 24 01:20:24 CEST 2017

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.


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

The bootable image is then created by running the script from the
elfloader dir
TOOLPREFIX=arm-none-eabi- PLAT=am335x ./
<path to genode>/build/wega_am335x/var/run/log/sel4
<path to genode>/build/wega_am335x/var/run/log/image.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

With kind regards,

More information about the users mailing list