Updating Pi Firmware
Updating Pi Firmware
Raspberry Pi Ltd
Colophon
© 2020-2022 Raspberry Pi Ltd (formerly Raspberry Pi (Trading) Ltd.)
This documentation is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
build-date: 2022-04-29
build-version: githash: ba7441c-clean
RPL reserves the right to make any enhancements, improvements, corrections or any other modifications to the
RESOURCES or any products described in them at any time and without further notice.
The RESOURCES are intended for skilled users with suitable levels of design knowledge. Users are solely responsible for
their selection and use of the RESOURCES and any application of the products described in them. User agrees to
indemnify and hold RPL harmless against all liabilities, costs, damages or other losses arising out of their use of the
RESOURCES.
RPL grants users permission to use the RESOURCES solely in conjunction with the Raspberry Pi products. All other use of
the RESOURCES is prohibited. No licence is granted to any other RPL or other third party intellectual property right.
HIGH RISK ACTIVITIES. Raspberry Pi products are not designed, manufactured or intended for use in hazardous
environments requiring fail safe performance, such as in the operation of nuclear facilities, aircraft navigation or
communication systems, air traffic control, weapons systems or safety-critical applications (including life support
systems and other medical devices), in which the failure of the products could lead directly to death, personal injury or
severe physical or environmental damage (“High Risk Activities”). RPL specifically disclaims any express or implied
warranty of fitness for High Risk Activities and accepts no liability for use or inclusions of Raspberry Pi products in High
Risk Activities.
Raspberry Pi products are provided subject to RPL’s Standard Terms. RPL’s provision of the RESOURCES does not
expand or otherwise modify RPL’s Standard Terms including but not limited to the disclaimers and warranties expressed
in them.
Scope of document
This document applies to the following Raspberry Pi products:
Pi 0 Pi 1 Pi 2 Pi 3 Pi 4 Pi 400 CM 1 CM 3 CM 4 Pico
* * * * * * * * * * * * *
Introduction
In some circumstances it may be necessary to update the VideoCore firmware in a Raspberry Pi operating system (OS)
image without going through the normal upgrade process. This whitepaper documents how to use the normal upgrade
process, and also gives information on how to bypass the standard update process if it is not suitable.
Introduction 3
Updating Raspberry Pi Firmware
• Bug fixes
• Support for new processors (e.g. moving from Raspberry Pi 3 to Raspberry Pi 4)
• Support for new memory chips
• Support for new revisions of the printed circuit board (PCB)
It is not possible to make the firmware forward compatible, i.e. to be able to cope with future changes in hardware;
however, every effort is made to make the firmware backward compatible, in that the latest firmware should always work
on older products without causing any regressions.
For example, there are various revisions of the Raspberry Pi 4 PCB. The latest versions require the latest firmware to work
correctly, in part due to changes in the power management chips on the PCB, which require a different startup sequence.
If you use Raspberry Pi 4s in a third-party product, you could find that when you take delivery of a new batch of Raspberry
Pi 4 devices they are a newer revision, and your standard distribution, with older firmware, no longer works correctly.
To upgrade the Linux kernel and all Raspberry Pi–specific firmware to the latest release version, the following commands
should be used:
Note that this process will not upgrade between major OS versions. While it is possible to implement a full upgrade
between major versions in place, Raspberry Pi Ltd does not recommend this — it is not a tested procedure due to the huge
number of changes involved. In this case we recommend starting afresh, installing the OS from scratch on a new Secure
Digital (SD) card using Raspberry Pi Imager. You will need to reinstall all the required software in a new installation.
You can download the firmware files from the following location:
https://github.com/raspberrypi/firmware/archive/refs/heads/stable.zip
This zip file contains a number of items, but the ones we are interested in at this stage are in the boot folder. The firmware
files have names of the form start*.elf, and their associated support files are fixup*.dat.
The basic principle is to copy the required start and fixup files from this zip file to replace the same named files in the
destination OS image. The exact process will depend on how the OS has been set up, but this is an example of how it
would be done for a Raspberry Pi OS image:
1. Extract or open the zip file so you can access the required files.
2. Open up the boot folder in the destination OS image (this could be on an SD card, or a disk-based copy).
3. Determine which start.elf and fixup.dat files are present in the destination OS image.
4. Copy those files from the zip archive to the destination image.
The image should now be ready for use on the latest Raspberry Pi Ltd hardware.