
Hi,
On 3 August 2017 at 03:37, Mark Kettenis mark.kettenis@xs4all.nl wrote:
Date: Thu, 3 Aug 2017 19:02:06 +1000 From: Jonathan Gray jsg@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