Upgrade Bootloader Firmware on Raspberry Pi 4

This guide will show you how to to update the bootloader on your Raspberry Pi4.
If you are using an older Pi then it might have an old bootloader. There were some nice firmware updates in the fall of 2020 to support USB SSD boot so it is best to update this when starting a new project.

At this time it seems like you need to use Raspberry Pi OS to do modifications of the bootloader as third party OS support is limited.
Instructions assume you are connected via Ethernet and are familiar with accessing Pi via SSH.

  1. Use Raspberry Pi Imager V1.6 to install Raspberry Pi OS (lite version without desktop is best) on SD card
  2. Copy empty text file called ssh.txt onto the system-boot partition of the SD card. Remove SD card from PC and insert into Raspberry Pi
  3. SSH into Pi
    Default user: pi
    default password: raspberry
  4. Make sure you have the latest kernal updates. This will take several minutes
    sudo apt update && sudo apt full-upgrade -y
  5. Restart Pi to apply updates
    sudo reboot
  6. SSH into Pi
  7. Your Pi may currently be configured to use critical or stable bootloader releases. Normally I configure it to use the stable releases. Open file and change the FIRMWARE_RELEASE_STATUS entry to stable.
    sudo nano /etc/default/rpi-eeprom-update
  8. Check bootloader firmware version
    sudo rpi-eeprom-update

If bootloader is out of date you will see something like this:

BCM2711 detected
Dedicated VL805 EEPROM detected
*** UPDATE AVAILABLE ***
BOOTLOADER: update available
CURRENT: Thu 16 Apr 17:11:26 UTC 2020 (1587057086)
 LATEST: Thu  3 Sep 12:11:43 UTC 2020 (1599135103)
 FW DIR: /lib/firmware/raspberrypi/bootloader/stable
VL805: update available
CURRENT: 000137ad
 LATEST: 000138a1

If bootloader is up to date you will see something like this:

pi@raspberrypi:~ $ sudo rpi-eeprom-update
BCM2711 detected
Dedicated VL805 EEPROM detected
BOOTLOADER: up-to-date
CURRENT: Thu  3 Sep 12:11:43 UTC 2020 (1599135103)
 LATEST: Thu  3 Sep 12:11:43 UTC 2020 (1599135103)
 FW DIR: /lib/firmware/raspberrypi/bootloader/critical
VL805: up-to-date
CURRENT: 000138a1
 LATEST: 000138a1
  1. Update bootloader if it is out of date
    sudo rpi-eeprom-update -a
  2. Restart Pi to apply updates
    sudo reboot 
  3. Check to see if update was applied
    sudo rpi-eeprom-update