The commercially available Raspberry Pi 5 (hereafter referred to as Pi 5) updates its bootloader by writing a utility image (Misc Utility images) from Raspberry Pi Imager to a microSD card and then powering on the Pi 5.
In contrast, the PL-R5 (with a Compute Module 5 inside) does not use a microSD card. Instead, the bootloader is updated by running a command to write a new .bin image file.
Both systems store the bootloader in SPI flash (commonly referred to as EEPROM) on the board.
This article explains how to update the bootloader on the PL-R5.
Note: The PL-R4 could not update the bootloader on the device itself, but the PL-R5 can now perform the update using commands.
Test Environment
The PL-R5 is connected to a monitor and has an Internet connection.
Working directly on the PL-R5:
- PL-R5
- microHDMI-to-HDMI cable (connected to the maintenance port on the PL-R5)
- Internet connection
Working via SSH:
- Windows PC (Pro version recommended)
- PuTTY (SSH client)
Note: When running the commands remotely via SSH, you will need an SSH client such as PuTTY if you are using Windows.

Checking the Version
First, check the current bootloader version.
It is also a good idea to review the update history before selecting the bootloader version you want to install.
Bootloader release history:
https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware-2712/release-notes.md
Note: The zip files available under GitHub Releases are not .bin files for regular updates; they are boot images used for EEPROM recovery.
For a normal bootloader update on the PL-R5 (or CM5), use the pieeprom-xxxx-xx-xx.bin file provided within the OS.
The following commands can be run either from the terminal on the PL-R5 itself or via an SSH connection using PuTTY.
vcgencmd bootloader_version
You can confirm the version from output similar to the following.
2025/05/08 15:13:17
version 69471177ba7e4cb7597cb2496f2a0b23f19c1113 (release)
timestamp 1746713597
update-time 0
capabilities 0x0000007f
Setting Up the EEPROM Update Tool
Next, set up the EEPROM update tool using the following commands.
sudo apt update
sudo apt install -y rpi-eeprom
If the package is installed, or a message such as rpi-eeprom is already the newest version (28.13-1). is displayed, the setup is complete.
Bootloader Image Files (.bin)
The image files are stored by date in the following location (for example, pieeprom-2025-12-08.bin).
ls /lib/firmware/raspberrypi/bootloader-2712/stable/
In our environment, the following dated files were available.
pieeprom-2025-05-08.bin pieeprom-2025-12-08.bin pieeprom-2026-01-21.bin recovery.bin
pieeprom-2025-11-05.bin pieeprom-2026-01-16.bin pieeprom-2026-02-06.bin
Bootloader image files (.bin) are added when the OS is updated.
The bootloader-2712 directory corresponds to the CPU chip used by the device. (PL-R5 and Pi 5/CM5: Broadcom SoC BCM2712)
For the PL-R5, select an image from the bootloader-2712 directory corresponding to its BCM2712 SoC. The stable directory contains stable releases. Unless you have a specific reason to choose another release, you will generally select a file from this directory.
Different Raspberry Pi models use different chipsets, so their bootloader images are not interchangeable. Be careful to select the correct image. (Example: Pi 4/CM4: BCM2711)
Differences Between the Bootloader, Firmware, EEPROM, and OS
There are several related terms that can be confusing, including firmware, the EEPROM where the bootloader is written, and file names such as pieeprom.
Each has a different meaning, as shown below. The bootloader discussed in this article is stored in the EEPROM on the board and is separate from the OS update process.
- Firmware: Control software that runs inside a device
- Bootloader: A type of firmware responsible for the OS boot sequence
- OS: The basic software environment used after the system starts
The bootloader is a type of firmware, so depending on the context, updating it may also be described as a “firmware update” or “EEPROM update.”
Writing a Specific Bootloader Version

The -d option allows you to update to a specific bootloader image (.bin). Use the -f option to specify the location of the file.sudo rpi-eeprom-update -d -f pieeprom.bin
The following example specifies pieeprom-2026-02-06.bin, which was the version used when this article was written.
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader-2712/stable/pieeprom-2026-02-06.bin
If the update is successful, UPDATE SUCCESSFUL will appear on the final line, as shown below.
Verifying update
VERIFY: SUCCESS
UPDATE SUCCESSFUL
Reboot the system to activate the new bootloader.
sudo reboot
The bootloader update is now complete.
Role of the Bootloader
As its name suggests, the bootloader can be configured to control the boot order.
The default setting is BOOT_ORDER=0xf461, as shown below.
[all]
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
0xf461 is read from right to left.
In this case, the boot order is:
→ eMMC (0x1)
→ NVMe SSD connected via M.2 (0x6)
→ USB flash drive / USB-connected SSD (0x4)
→ Return to the beginning and retry (0xf)
Bootloader Values for PL-R5/CM5
| Value | Boot Device | Notes for CM5 |
|---|---|---|
0x1 | eMMC | Available on CM5 models equipped with eMMC. Boots from the onboard eMMC storage. |
0x2 | Network | Network boot. Intended for PXE/TFTP-based environments. |
0x3 | RPIBOOT | Connects to a host PC via USB for writing to or recovering the eMMC. |
0x4 | USB-MSD | Boots from external storage such as a USB flash drive or USB SSD. |
0x5 | BCM-USB-MSD | Not normally used for current general-purpose applications. |
0x6 | NVMe | Boots from an NVMe SSD connected to the M.2 slot. |
0x7 | HTTP | HTTP boot over Ethernet. Intended for enterprise and test environments. |
0xE | STOP | Stops the boot process at this point. |
0xF | RESTART | Returns to the beginning of the boot order and retries. |
Note: On Pi 5, 0x1 represents the microSD card.
Changing the Boot Order
You can edit the boot order using the following command.
Adding the -E option preserves your usual editor environment settings (such as nano), making the configuration screen easier to use.
On Raspberry Pi OS, the editor may open in vi if the -E option is not specified, which can be confusing if you are not familiar with vi.
Since nano is commonly used from the terminal on Raspberry Pi OS, we recommend using the -E option.
sudo -E rpi-eeprom-config --edit
Once the editor opens, change the value as required.
BOOT_ORDER=0xf461
In industrial applications, booting from eMMC is common. NVMe SSD may be given priority when additional capacity or speed is required. If eMMC is configured as a fallback boot device, use BOOT_ORDER=0xf16.
Notes for Different Models

Different Raspberry Pi models may use different chips and therefore require different bootloader image files.
The PL-R5 is based on the CM5, so it uses the same chip as the Pi 5/CM5 and the corresponding bootloader image files are also the same.
However, the PL-R5 bootloader is updated using commands, which differs from the procedure used for the Pi 5.
In addition, bootloader values may differ from those of the Pi 5 depending on factors such as the presence of eMMC.
Terms such as “firmware,” “EEPROM,” and “bootloader” have technically different meanings, but they may sometimes be used in similar contexts.
This article explained how to update the bootloader on the PL-R5.
Much of the information available online is intended for the Pi 5, so if you are unsure about the procedure for the PL-R5, please contact us.
Contributed by: Raspida
Raspida operates raspida.com, a Raspberry Pi information website designed to be enjoyable and accessible even for non-engineers. Drawing on many years of experience with Raspberry Pi, the site publishes a wide range of useful information and topics for both experienced Raspberry Pi users and those who are just getting started. Raspida also contributes technical blog articles about industrial Raspberry Pi systems to the PiLink website.

