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
Simon Himmelbauer himmelba@in.tum.de writes:
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.
Like Stefan wrote earlier there will be no output unless you start a framebuffer driver.
The reason for this could be missing framebuffer support which the developers at least mentioned in 2014.
You pointed to a mail about L4Re and it is not really relevant here. Framebuffer driver for Rpi1 is in Genode for a very long time and in my working branch [0] there is a version that works on rpi3. Currently my work multi rpi support is somewhat in the void due to unresolved yet regression in usb driver which blocks support for almost all communication mouse, keyboard and network.
Regards Tomasz Gajewski