
On Thu, Aug 3, 2017 at 2:45 PM, Simon Glass sjg@chromium.org wrote:
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
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've tried reverting just "dm: arm: rpi: Drop CONFIG_OF_EMBED" (25877d4e) but I'm still left without a working keyboard in u-boot - hitting keys during the countdown does not interrupt the boot process. However the kernel can be booted with just that one commit reverted.
I've also looking into the CONFIG_OF_BOARD option. This is currently disabled for raspberrypi devices which means that board_fdt_blob_setup() in board/raspberrypi/rpi/rpi.c is not called. Enabling CONFIG_OF_BOARD leads to a crash at boot with no output from u-boot, the monitor connected to the raspberrypi just shows the colour palette.
I can look into this further but it probably needs to wait until I can order some RS232 adaptors and get a serial port setup for early debug output.
Thanks,