[U-Boot] U-boot 2017.07 not working on Raspberry Pi

Mark Kettenis mark.kettenis at xs4all.nl
Thu Aug 3 09:37:46 UTC 2017


> Date: Thu, 3 Aug 2017 19:02:06 +1000
> From: Jonathan Gray <jsg at jsg.id.au>
> 
> On Wed, Aug 02, 2017 at 01:13:30PM +0100, Paul Barker wrote:
> > I'm currently testing U-boot 2017.07 on Raspberry Pi, both on a Model
> > B+ and a Raspberry Pi 3. On both devices I'm seeing two issues with
> > u-boot:
> > 
> > * U-boot can't boot the Linux kernel, it just hangs at "Starting kernel ...".
> > 
> > * U-boot doesn't recognise any input via a USB keyboard.
> > 
> > These issues were not present in U-boot 2017.05. I see them both when
> > building U-boot via OpenEmbedded and when building using
> > arm-linux-gnueabi-gcc on Debian Stretch (GCC 6.3.0).
> > 
> > After bisecting to identify the commits which introduced these issues,
> > I've found I can get a working U-boot by doing the following:
> > 
> > * Start with U-boot 2017.07
> > 
> > * Revert "dm: arm: rpi: Move to driver model for USB" (25085236)
> > 
> > * Revert "dm: arm: rpi: Use driver model for Ethernet" (d90385be)
> > 
> > * Revert "dm: arm: rpi: Drop CONFIG_OF_EMBED" (25877d4e)
> > 
> > * Drop CONFIG_USB_STORAGE as leaving this enables gives a compile
> > error when CONFIG_DM_USB is not set.
> > 
> > I've staged these changes here for testing:
> > https://gitlab.com/toganlabs/u-boot/commits/pbarker/rpi
> > 
> > Reverting these commits is definitely a step backwards though so I'm
> > hoping for another solution. Has anyone else has seen these issues and
> > got any ideas? Or has anyone else got U-boot 2017.07 working on the
> > Raspberry Pi?
> 
> We had to revert 25877d4e4c45451c5398aec3de50e0d5befe0e9f to add
> CONFIG_OF_EMBED back to get OpenBSD to continue working on the rpi3.

That revert is in particular necessary for passthrough of the device
tree from the Raspberry Pi firmwre to work.  I haven't investigated
this further yet, but it seems some of the relocation code is
conditionalized on CONFIG_OF_EMBED, and I suspect that when
CONFIG_OF_EMBED is absent, u-boot overwrites the device tree when it
relocates itself.


More information about the U-Boot mailing list