Skip to content

CM4 - fatal firmware error when HTTP boot fails, not trying next boot option #763

@sjohnson31

Description

@sjohnson31

Describe the bug

With BOOT_ORDER=0xf147 and loading pieeprom-2025-08-27.bin (the default when using the latest rpi-usbboot) onto the EEPROM, the CM4 fails to boot (bootloader logs pasted below). The HTTP boot was expected to 404 and then try the next option. Using older firmware (pieeprom-2025-05-16.bin, for example) succeeds. Removing HTTP boot from the order (BOOT_ORDER=0xf14) with pieeprom-2025-08-27.bin also succeeds.

Steps to reproduce the behaviour

git clone https://github.com/raspberrypi/usbboot
cd usbboot
git submodule init
git submodule update
make

Set the boot.conf in recovery/ with the as listed below.

cd recovery
./update-pieeprom.sh
cd ..
./rpiboot -d recovery
./rpiboot

Power cycle the CM4 and let rpiboot finish.
Normally, here is where you would flash an OS image, but that's not actually necessary to see the bug. Remove the EMMC_DISABLE / nRPIBOOT jumper and power cycle with the Pi connected to a network where the HTTP_HOST address will resolve (but should 404. The Pi will boot from a valid image with HTTP boot at this stage). At this point, I see the console output listed below with the fatal firmware error.

Device (s)

Raspberry Pi CM4

Bootloader configuration.

Contents of boot.conf:
[all]
BOOT_UART=1
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
SECURE_BOOT=0
NET_BOOT_MAX_RETRIES=3
BOOT_ORDER=0xf147
HTTP_HOST=raspberry-pi-boot-server
HTTP_PATH=firmware/rpi

[cm4]
ENABLE_SELF_UPDATE=1
MAX_RESTARTS=16

System

No response

Bootloader logs

0.53 RPi: BOOTSYS release VERSION:000d3ca2 DATE: 2025/08/27 TIME: 19:57:12
0.53 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1756321032 serial 45e32b4f boardrev c03141 stc 537873
0.54 PM_RSTS 00001000
0.54 POWER_OFF_ON_HALT: 0 WAIT_FOR_POWER_BUTTON 0 power-on-reset 1
0.56 part 00000000 reset_info 00000000
0.56 uSD voltage 3.3V
0.59 Initialising SDRAM rank 2 total-size: 32 Gbit 3200 (0x15 0x00)
0.59 DDR 3200 1 0 32 152 BL:3
2.21 OTP boardrev c03141 bootrom 48b0 48b0
2.21 Customer key hash 0000000000000000000000000000000000000000000000000000000000000000
2.21 VC-JTAG unlocked

2.49 RPi: BOOTLOADER release VERSION:000d3ca2 DATE: 2025/08/27 TIME: 19:57:12
2.50 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1756321032 serial 45e32b4f boardrev c03141 stc 2500859
2.36 Boot mode: HTTP (07) order f14
2.53 GENET: RESET_PHY 1
2.53 CTL 1140 PHY ID 600d 84a2
2.54 MII_CONTROL 1140
2.54 MII APD 0021 SCTL3 0021 IDDQ 0000
2.24 NETWORK: 2c:cf:67:39:ec:8e wait for link TFTP: 0.0.0.0
5.45 LINK STATUS: speed: 1000 full duplex
5.53 Link ready
5.45 GENET START: 64 16 32
5.46 GENET: UMAC_START 0x2ccf6739 0xec8e0000
5.47 RX: 0 IP: 0 IPV4: 0 MAC: 0 UDP: 0 UDP RECV: 0 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
5.82 DHCP src: 94:83:c4:42:e1:7d 10.40.9.3
5.83 YI_ADDR 10.40.9.2
5.85 SI_ADDR 10.40.9.3
5.48 OPTIONS:-
op: 53 len: 1 DHCP recv OFFER (2) expect OFFER 5.49
op: 54 len: 4 10.40.9.3 5.49
op: 51 len: 4 5.49
op: 58 len: 4 5.50
op: 59 len: 4 5.50
op: 1 len: 4 255.255.255.0 5.50
op: 28 len: 4 10.40.9.255 5.51
op: 6 len: 4 10.40.9.3 5.51
op: 3 len: 4 10.40.9.1 5.51
5.17 NET 10.40.9.2 255.255.255.0 gw 10.40.9.1 tftp 0.0.0.0
5.22 DHCP src: 94:83:c4:42:e1:7d 10.40.9.3
5.26 YI_ADDR 10.40.9.2
5.28 SI_ADDR 10.40.9.3
5.53 OPTIONS:-
op: 53 len: 1 DHCP recv ACK (5) expect ACK 5.53
op: 54 len: 4 10.40.9.3 5.53
op: 51 len: 4 5.54
op: 58 len: 4 5.54
op: 59 len: 4 5.54
op: 1 len: 4 255.255.255.0 5.54
op: 28 len: 4 10.40.9.255 5.55
op: 15 len: 31 5.55
op: 72 len: 4 5.55
op: 42 len: 4 5.55
op: 6 len: 4 10.40.9.3 5.56
op: 3 len: 4 10.40.9.1 5.56
5.66 NET 10.40.9.2 255.255.255.0 gw 10.40.9.1 tftp 0.0.0.0
5.57 RX: 6 IP: 0 IPV4: 6 MAC: 6 UDP: 6 UDP RECV: 2 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
5.79 Loading boot.img ...
5.83 Failed to parse root cert
5.84 init_mbedtls failed -19584
5.87 Unexpected error @ 0x000a9146
5.59 USB-OTG disconnect
5.93 BOOT ERROR: code 45 - 'Fatal firmware error'

USB boot

No response

NVMe boot

No response

Network (TFTP boot)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions