U-Boot failures on CM4 and Pi4-8Gb

Dave Jones dave.jones at canonical.com
Wed Dec 16 15:23:52 CET 2020


Hi,

We've recently run across some failures with U-Boot on a couple of 
platforms, specifically the relatively new Pi Compute Module 4, and the 
Pi 4 8GB of RAM. On the CM4, U-Boot failed to identify the eMMC storage, 
and on the Pi 4 8GB, a crash and reset occurred when U-Boot tried to 
read from the boot file-system on the SD card, but only when booted with 
no monitor attached (attaching a monitor results in a successful boot, 
at least under arm64). These were with more-or-less stock 
rpi_4_defconfig and rpi_4_32b_defconfig configurations from v2020.10 
(our local config changes bump the env-size, enable OF_BOARD, and 
RAW_INITRD, but that's it).

I've bisected the source and figured out roughly the commits 
responsible; for the CM4 eMMC case it's the enabling of DMA for the 
SDHCI interface in c6b9fbf756.

The Pi 4 8GB failure was a little more complex in that the bisection 
pointed to 3113c84ba2 (a merge), however that gave me a few clues to try 
and after a little experimenting I found that disabling 
CONFIG_PCI_BRCMSTB (effectively disabling the PCI driver for the 
platform) got things working happily again.

I'm happy to submit the local patches I'm adding to the Ubuntu build to 
work around these, but obviously those fixes are "brute force and 
ignorance" patches that just disable the relevant config; would such 
patches be wanted, or would the community prefer to figure out the root 
causes in each case? I'm happy to test any patches on the relevant 
hardware if anyone doesn't have access to the necessary boards.

Best regards,

Dave Jones.


More information about the U-Boot mailing list