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

Simon Glass sjg at chromium.org
Thu Aug 3 13:45:33 UTC 2017


Hi,

On 3 August 2017 at 03:37, Mark Kettenis <mark.kettenis at xs4all.nl> wrote:
>> 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.

I'm not sure why it needs CONFIG_OF_EMBED. Certainly U-Boot does
relocate the DT when this is not set. But it should not be set for
production images, only for debugging.

I'm not sure if we have a Raspberry Pi in a test farm anywhere. I
should be able to look next week if no one can figure these out
beforehand.

Regards,
Simon


More information about the U-Boot mailing list