Running Genode on a Raspberry Pi 3

Simon Himmelbauer himmelba at in.tum.de
Tue Nov 10 21:34:36 CET 2020


Hi Stefan,

> I do not understand what you mean with: "directly launch the image from
> the Pi". What did you do in contrast to reading the image from sd-card?
>
> I wouldn't wonder if the HDMI output keeps blank when booting some
> scenario. Or is the image you try to boot known to work interactively
> with a graphical user-interface?
> Anyway, without having at least a serial line output, it will be
> impossible to find potential problems here.

sorry, I should have clarified my approach in more detail. With 
"directly launching", I meant that I simply connected a regular keyboard 
and HDMI-display so that I don't have to deal with the UART. u-boot 
successfully launches but booting the image results in the output 
remaining blank. The reason for this could be missing framebuffer 
support which the developers at least mentioned in 2014 [0].

> I can remember in the back of my head that there are_two_  UART
> devices Pl011 and some SoC specific miniuart. Maybe Fiasco.OC and
> u-boot use different once?
This is correct, according to the Raspberry documentation [1], this is 
the reason why "enable_uart=1"  is required in the config.txt of the 
raspberry pi in order to change the PL011 to the primary UART.

> If you do not think it is UART-related, you have to inspect whether
> the binary you load is correctly copied to the right memory location,
> and the bootelf command addresses that same location.
I have no clue anymore but I now think that it might actually be UART 
related as I described in the reply to Tomasz. The fiasco.OC build 
system compiles the driver for a 16550 instead of the PL011 when using 
the build configuration for the RPi3. I modified the sources accordingly 
but the PL011-driver still resulted in garbage output.

The load address is definitely fine (I use the default value of the 
$loadaddr which is 0x200000).

> We typically, do not use 'bootelf' in u-boot, but bootm instead. In
> that case, you should add '--include image/uboot' to the RUN_OPT
> variable in your Genode build environment, e.g., in 'etc/build.conf'.
> The resulting uImage will reside in 'var/run/[run-script-name]/uImage'
> in your build-directory.
Thanks for the tip, I added the command and used the uImage instead but 
it lead to the same problem of random output on the UART.

Does it help you to share one of my compiled Genode images? If yes, 
should I simply attach them to the mail (~ 1.2 MB in size) or upload 
them somewhere else?

Best regards,
Simon

[0] http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/006246.html
[1] https://www.raspberrypi.org/documentation/configuration/uart.md




More information about the users mailing list