[Guide] Prepare Raspberry Pi for boot from USB/NVMe

BOOT_ORDER RPi4 Description
0xf41 Try SD first, followed by USB-MSD then repeat (default if BOOT_ORDER is empty)
0xf14 Try USB first, followed by SD then repeat
0xf21 Try SD first, followed by NETWORK then repeat
BOOT_ORDER RPi5 Description
0xf416 Try SD first, followed by USB-MSD, followed by NVMe then repeat (default if BOOT_ORDER is empty)
0xf164 Try USB first, followed by NVMe, followed by SD then repeat
0xf216 Try SD first, followed by NETWORK, followed by NVMe then repeat

The BOOT_ORDER property defines the sequence for the different boot modes. It is read right to left and up to 8 digits may be defined.

Value Mode Description
0x0 SD CARD DETECT Try SD then wait for card-detect to indicate that the card has changed - deprecated now that 0xf (RESTART) is available.
0x1 SD CARD SD card (or eMMC on Compute Module 4).
0x2 NETWORK Network boot.
0x3 RPIBOOT RPIBOOT - protocol that provides a virtual file system to the Raspberry Pi bootloader and GPU firmware. It’s therefore possible to boot Linux.
0x4 USB-MSD USB mass storage boot.
0x5 BCM-USB-MSD USB 2.0 boot from USB Type C socket (CM4: USB type A socket on CM IO board, using bootloader EEPROM from 2020-12-14 onwards).
0x6 NVMe CM4 and RPi5 only: boot from an NVMe SSD connected to the PCIe interface.
0xe STOP Stop and display error pattern. A power cycle is required to exit this state.
0xf RESTART Restart from the first boot-mode in the BOOT_ORDER field i.e. loop
1 Like