I have a vanilla build of gitlab.com/buildroot.org/buildroot.git @
b200632b1ab for raspberrypi0w_defconfig
which seems fine directly booting the kernel using the stock
Broadcom binary bootloader. However
changing the Buildroot bootloader config to BR2_TARGET_UBOOT=y,
several issues appear:
- While output/images/u-boot.bin is generated, it is not present
in output/images/boot.vfat nor does the file /boot/config.txt
reflect the expected launch of u-boot with "kernel=u-boot.bin"
but rather remains set to directly boot the kernel zImage.
- Implementing #1 manually (which is the drill for grafting a
standalone u-boot into an existing PI install) does not result
in u-boot coming up out of reset.
- If I take the same Buildroot built u-boot and install it (per
#2) in a creaky Raspbian 9 install, u-boot functions just fine.
- If I take a git.denx.de/u-boot.git standalome build of
u-boot.bin which known to work on the above Raspbian 9, it
similarly fails in the Buildroot generated install.
So a few thoughts:
- I may be missing some configuration step given the seeming
lack of image preparation in #1.
- Otherwise #1 may imply full Buildroot + u-boot integration
remains a WIP, at least for a Raspberry Pi Zero W.
- The actual root cause may be an incompatible holy binary
Broadcom firmware package being selected as the only other
source of root cause appears to be the /boot installed
bootcode.bin and/or start.elf. I do find a limited set of
config knobs in the form "BR2_PACKAGE_RPI_FIRMWARE*" but at this
point would like to have some sense of where in this problem
space I may be.
For reference, this is the Buildroot .config content change from a
successful direct boot of the kernel zImage to the selection of
u-boot as an intermediate boot loader:
dot-config-default ?
.config
---------------------------------------------------------------------------------------------------
# BR2_TARGET_UBOOT is not set |
BR2_TARGET_UBOOT=y
>
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES=""
>
BR2_TARGET_UBOOT_PATCH=""
>
BR2_TARGET_UBOOT_CUSTOM_DTS_PATH=""
>
BR2_TARGET_UBOOT_FORMAT_BIN=y
>
BR2_TARGET_UBOOT_VERSION="2024.01"
>
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
>
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_0_w"
>
BR2_TARGET_UBOOT_LATEST_VERSION=y
>
BR2_TARGET_UBOOT_USE_DEFCONFIG=y
>
BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS=""
Any illumination here much appreciated.