LinuxCommandLibrary

rpi-eeprom-update

Update Raspberry Pi bootloader EEPROM

TLDR

Print information about the current raspberry pi EEPROM installed

$ sudo rpi-eeprom-update
copy

Update a raspberry pi EEPROM
$ sudo rpi-eeprom-update -a
copy

Cancel the pending update
$ sudo rpi-eeprom-update -r
copy

Display help
$ rpi-eeprom-update -h
copy

SYNOPSIS

rpi-eeprom-update [options]

PARAMETERS

--check
    Checks for available EEPROM firmware updates without applying them. It displays the current and latest available versions.

--update
    Initiates the update process, downloading and staging the latest stable EEPROM firmware for installation upon the next reboot. This is often implied if no other action is specified, or used with a specific release.

--force
    Forces the update even if the current firmware is already the latest or if a downgrade is requested. Use with caution.

--verbose
    Provides more detailed output during the command's execution, useful for debugging or understanding the process.

--factory
    Resets the EEPROM to the original factory default bootloader version. This can be useful for troubleshooting.

--default
    Updates the EEPROM to the recommended default (stable) release version.

--legacy
    Updates the EEPROM to a legacy bootloader version, typically used for specific compatibility requirements.

--firmware <path>
    Specifies a custom EEPROM firmware image file located at <path> to be used for the update instead of downloading from repositories.

--release <release_id>
    Specifies a particular release to update to, such as 'stable', 'beta', 'critical', 'latest', or a specific date string (e.g., '2023-10-26').

--skip-bootloader-version-check
    Skips the check that prevents installing an older bootloader version than currently present.

--skip-pic-version-check
    Skips the check that prevents installing an older USB controller (PIC) firmware version than currently present.

--reboot
    Automatically reboots the Raspberry Pi system after a successful EEPROM update. This is often combined with --update.

--debug
    Enables debug output, providing even more detailed information than --verbose, primarily for developers.

--help
    Displays a summary of the command's usage and available options.

DESCRIPTION

The rpi-eeprom-update command is a crucial utility for managing and updating the Electrically Erasable Programmable Read-Only Memory (EEPROM) firmware on Raspberry Pi 4 and newer models. This EEPROM contains the bootloader and other low-level firmware components essential for the Raspberry Pi's startup process. Keeping the EEPROM updated ensures access to the latest bug fixes, performance improvements, and new features, such as USB mass storage boot or network boot capabilities.

The utility allows users to check for available updates, apply the latest stable or specific firmware versions, or even revert to factory defaults. Updates are typically downloaded from Raspberry Pi's official repositories. Applying an update usually stages the new firmware, which is then written to the EEPROM upon the next reboot.

CAVEATS

Requires root privileges (use sudo) to execute.
Incorrect use, though rare, could potentially lead to system instability or render the device unbootable. Always ensure a stable power supply during the update process.
Updates typically require a system reboot to take full effect and write the new firmware to the EEPROM.
This command is primarily designed for Raspberry Pi 4 and newer models, which feature an updatable EEPROM. Older models (e.g., Pi 3B+) do not have this feature.

UPDATE PROCESS

The EEPROM update process typically involves two stages: first, the new firmware image is downloaded and staged in the boot partition of the SD card (or other boot device). Second, upon the next system reboot, the bootloader reads this staged image and writes it to the EEPROM. This two-stage process helps ensure system stability even if a power loss occurs during the staging phase.

CHECKING CURRENT VERSION

To check your current EEPROM version, you can simply run: sudo rpi-eeprom-update without any options, or explicitly: sudo rpi-eeprom-update --check. The output will show the current bootloader and VPU (VideoCore Processor) versions, along with any available updates.

HISTORY

The rpi-eeprom-update utility was introduced concurrently with the release of the Raspberry Pi 4 in 2019. This model was the first Raspberry Pi to incorporate an updatable EEPROM for its bootloader, moving away from the fixed boot ROMs of previous generations. This design change allowed for significant post-release improvements, including enabling USB mass storage boot, network boot (PXE), and various power management and stability enhancements. The command has since evolved to support different firmware versions (stable, beta, critical) and provide more fine-grained control over the update process, reflecting the ongoing development and improvement of the Raspberry Pi ecosystem.

SEE ALSO

Copied to clipboard