Raspberry Pi B+ with uboot and genode

Alexander Weidinger alexander.weidinger at ...256...
Fri Nov 24 11:45:17 CET 2017

Hello Genode community,

after a lucky find we were able to successfully boot the RPi B+.
As expected the boards (RPi B and B+) are more or less equal and
therefore work with the same Fiasco.OC/Genode build.

The UART gibberish is presumably caused by a faulty configuration of the
UART clock by U-Boot and/or Raspberry PI's boot process.

The working configuration for us is U-Boot by denx in the version
v2017.09 and the binary blobs `bootcode.bin` and `start.elf` from [0].
Additionally the `config.txt` file must be configured as follows:

> kernel=u-boot.bin
> enable_uart=1
> init_uart_baud=115200
> init_uart_clock=3000000 # this line is important

Sorry for the late response, I didn't find the time to answer earlier.
Thanks for the suggestions made in the previous correspondence.


[0] https://github.com/raspberrypi/firmware/tree/1.20170811

On 18.05.2017 15:46, rmillo wrote:
> Hi Bernhard
> Basically the Raspberry PI 1 Model B+ has the same base as Model B, but 
> it has some improvements such as more GPIO Pins. The UART GPIO pins are 
> the same in both models:
> https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md
> https://pinout.xyz/#
> But I think they should be some differences between Model B and Model 
> B+, which are not specified in the original datahseet (BCM2835 dated  
> 2012 and Model B+ release on 2014), the same for Model B. As Stefan 
> recommended, check in Linux kernel  the addresses  the initial 
> configuration of the UART, and the hardware in general.
> I do not have in my hands a Model B+ to test, because if there are 
> significant differences it is likely that Fiasco.OC kernel is not 
> completely functional in that model. Try to start compiling Genode for 
> RPi using the base-hw platform (hw_rpi). This will serve as a starting 
> point to put GenodeOS on the Model B+, since the implementation of this 
> is about Genode, and is easier to understand and modify.
> When I began to work with Fiasco.OC+GenodeOS on RPi Model B, I used 
> base-hw as start point to test the hardware and its components.
> The firmware its not the problem, i have tested Fiasco.OC+GenodeOS with 
> a more recently firmware on Model B.
> What kernel_address on config.txt are you using? I use 0x00800000 to 
> load directly the the raw img.
> How are you creating the raw img? I use
> genode-arm-objcopy -O binary $elf_img $raw_img
> Best regards
> On 18/05/2017 05:31 AM, Stefan Kalkowski wrote:
>> Hi Bernhard,
>> On 05/10/2017 07:24 PM, Bernhard Blieninger wrote:
>>> Hi,
>>> I am currently working to get the raspberry pi b+ working with genode.
>>> I started with an raspberry pi uboot and a tftp server where 
>>> genode.img
>>> lies on.
>>> The sd card was flashed via dd and the sd card image from here:
>>> http://wiki.beyondlogic.org/index.php?title=Compiling_uBoot_RaspberryPi
>>> For the genode image I used the newest version of genode on github and
>>> compiled a foc_rpi and an rpi with this command:
>>> ./tool/create_builddir foc_rpi  BUILD_DIR=buildrpi
>>> or that
>>>   ./tool/create_builddir rpi BUILD_DIR=./build-rpi
>>> and the command
>>>  make run/demo
>>> This is working with the Raspberry Pi B(!) but when i put the sd card 
>>> in
>>> the Raspberry Pi B +(!) it is not even booting.
>>> Therefore i prepared a sd card with raspbian and changed the 
>>> kernel.img
>>> with the newly compiled u-boot.bin from     
>>> http://git.denx.de/u-boot.git
>>> The sd card now boots again and shows u-boot but if I want to load
>>> genode.img it does not continue.
>>> If genode is loaded, for example by manually triggering it with bootz,
>>> the serial connected minicom screen shows encoding problem nonsense.
>>> Starting up a linux kernel works. If I start genode.img directly from
>>> the sd card it is not working either.
>>> If I try this sd card with the Raspberry Pi B(!) it is not working.
>>> What I have tested in a last step is, what happens  if I substitute 
>>> the
>>> u-boot.bin with the genode.img while using the sd card image that was
>>> provided by beyondlogic in the first place, this is working for the B
>>> model but not for the B +.
>>> Also tried a fresh sd card format it to fat16 and put all the stuff on
>>> it, which is in the boot folder from
>>> https://github.com/raspberrypi/firmware , but that is also not 
>>> working.
>>> So I assume, that either the bootcode.bin and/or start.elf  provided 
>>> by
>>> raspberry are too new to use them with genode.
>>> I could maybe find older versions but I would just like to ask if this
>>> will help, maybe genode was never (meant to) run with some raspberry
>>> boot code that is newer then 2013.11
>>> (http://genode.org/documentation/release-notes/13.11#Raspberry_Pi).
>>> Thanks in Advance for your help.
>> I do not think its a "firmware is too new" issue. I guess it is more a
>> question of how is the firmware configured, and what are the actual
>> differences in between Model 1 B and 1 B+.
>> The first question is, what exactly is not working. If everything stays
>> blank after u-boot started the kernel, then probably Genode does not 
>> use
>> the right physical address for the UART's memory mapped I/O registers,
>> either because they've changed in between both board revisions, or
>> because the firmware is configured in a different way than before resp.
>> configures the GPIO pins to connect to a different (serial) device. In
>> that case, you might study the options in config.txt for your specific
>> model. Alternatively, you might somehow find out which UART and base
>> address Linux is using on the device, e.g. in /proc/iomem.
>> Unfortunately, I do not have such device, and therefore cannot 
>> reproduce
>> that problem.
>> Regards
>> Stefan
>>> Best Regards,
>>> Bernhard.
>>> ------------------------------------------------------------------------------
>>> 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 at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/genode-main

More information about the users mailing list