[ARM] Raspberry Pi 4 series - boot from USB device

Many thanks to @Shjim for doing some testing on this. :pray: It came up that in order for a RPi 4b or 400 to boot from a USB device, the board must have the latest eeprom firmware installed.

Here is how to check for the installed eeprom firmware version, and how to update it IF you choose to do so.

The first thing that needs to be done, is check the EEPROM version in the Raspberry Pi 4b. If it isn’t the latest version, it needs to be updated to do USB boot. This only needs to be done once, then you are good to go. Raspberry Pi OS will be utilized to do this EEPROM upgrade. It is the official OS for RPi4, and the EEPROM update is now official and in their stable repository. This has to be the safest way to flash the EEPROM, but you still do this at YOUR OWN RISK.

Install Raspberry Pi OS Lite on a 8GB or bigger micro SD card.
In a Operational Linux computer, in a internet browser go to:

and click on the ‘Raspberry Pi OS Lite’ download button.

After it is downloaded, using a file manager, go to the Downloads directory. Then on the downloaded file, right click, and use an Archive Manager to extract the image file.

Use gnome-disks or your favorite ISO burner to install the image on a 8 GB or larger micro SD card. When finished, insert the micro SD card in the Raspberry Pi 4b and power it up.

When the RPi4 is finished booting and doing a little house cleaning, log in as username ‘ pi ‘ and password ‘ raspberry ‘. Update the image.

$ sudo apt update
$ sudo apt full-upgrade
$ sudo systemctl reboot

After reboot, as user ‘ pi ’ edit the following config file using nano or vi

$ sudo nano /etc/default/rpi-eeprom-update
change
From: FIRMWARE_RELEASE_STATUS=”critical”
To: FIRMWARE_RELEASE_STATUS=”stable”
close file.

Check the Current firmware version

pi@raspberrypi:~ $ sudo rpi-eeprom-update

BCM2711 detected
VL805 firmware in bootloader EEPROM
Checking for updates in /lib/firmware/raspberrypi/bootloader/stable
Use raspi-config to select either the default-production release or latest update.
BOOTLOADER: up-to-date
CURRENT: Sat 16 Jan 2021 02:10:13 PM UTC (1610806213)
LATEST: Sat 16 Jan 2021 02:10:13 PM UTC (1610806213)
RELEASE: stable
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1

Check the installed version of the installed firmware. If it reads
CURRENT: 000138a1
It is up to date. If it is not 000138a1 (probably a lower number) then it is not up to date.

If it is not up to date, you have to make a decision whether to upgrade the firmware or not.

Update the firmware.
$ sudo rpi-eeprom-update -d -a
The EEPROM is now updated. Raspberry Pi OS and the micro SD card it is on are no longer needed.

Your RPI 4b or 400 should now be capable of booting from a USB device.

Pudge

3 Likes