mirror of
https://github.com/raspberrypi/rpi-eeprom.git
synced 2026-01-21 06:13:33 +08:00
Compare commits
18 Commits
v2020.09.0
...
v2021.03.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
303c2e110d | ||
|
|
3408d368e3 | ||
|
|
4e51d9a735 | ||
|
|
ff27ccf694 | ||
|
|
26366bb378 | ||
|
|
a1e86f1350 | ||
|
|
bc5fba23cb | ||
|
|
5579d39ab0 | ||
|
|
7589fbf981 | ||
|
|
6b1851750a | ||
|
|
2971da10ee | ||
|
|
c5fea074c1 | ||
|
|
71a6049b2b | ||
|
|
7880114040 | ||
|
|
869c14518b | ||
|
|
b9955dba91 | ||
|
|
2c46b979dc | ||
|
|
26c4f2b3da |
@@ -5,12 +5,13 @@ This repository contains the scripts and pre-compiled binaries used to create th
|
||||
Please check the Raspberry Pi [general discussion forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) if you have a support question.
|
||||
|
||||
# Reset to factory defaults
|
||||
The [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) provides an EEPROM recovery image which may be used to reset the bootloader and USB xHCI EEPROMs to factory defaults.
|
||||
The [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) provides GUI for creating a GUI to update the bootloader and configure the default boot-mode.
|
||||
|
||||
# Bootloader documentation
|
||||
* [The boot folder](https://www.raspberrypi.org/documentation/configuration/boot_folder.md)
|
||||
* [Config.txt boot options](https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md)
|
||||
* [Bootloader EEPROM](https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md)
|
||||
* [Bootloader configuration](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md)
|
||||
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md#cm4bootloader)
|
||||
* [Release notes](firmware/release-notes.md)
|
||||
* [Releases](releases.md)
|
||||
|
||||
BIN
firmware/beta/pieeprom-2021-03-04.bin
Normal file
BIN
firmware/beta/pieeprom-2021-03-04.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-03-17.bin
Normal file
BIN
firmware/beta/pieeprom-2021-03-17.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -3,6 +3,26 @@
|
||||
USB MSD boot also requires the firmware from Raspberry Pi OS 2020-08-20 or newer.
|
||||
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
|
||||
|
||||
## 2021-03-18 - Fix occasional reboot fail on Pi4B pre 1.4 - STABLE
|
||||
* Fix GPIO expander reset issue on some Pi4B 1.1 to 1.3 boards
|
||||
|
||||
## 2021-03-17 - Fix issue with PCIe bridges in Linux - BETA
|
||||
* NVMe BETA boot support broke PCIe bridges in Linux. This should fix the problem
|
||||
|
||||
## 2021-03-04 - NVMe boot support - BETA
|
||||
* Adds support for NVMe to the bootloader with a new NVMe boot mode "6"
|
||||
NVMe currently only works for controller 0 on namespace 1 with a page size of 4096 bytes
|
||||
and block size of 512 bytes
|
||||
* The default boot order has been updated to F641 for cm4 ONLY, so NVMe boot is
|
||||
attempted after SD and USB
|
||||
|
||||
To use the new NVMe add "6" to the BOOT_ORDER.
|
||||
|
||||
This requires the latest rpi-update firmware to work or else you will see a compatibility
|
||||
error on boot. You also need the latest kernel from rpi-update to load rootfs from NVMe
|
||||
see https://github.com/Hexxeh/rpi-firmware/commit/48570ba954a318feee348d4e642ebd2b58d9dd97
|
||||
and https://github.com/Hexxeh/rpi-firmware/commit/e150906874ff8b9fb6271971fa4238997369f790
|
||||
|
||||
## 2021-02-22 - Promote 2021-02-16 to stable - STABLE (LATEST)
|
||||
* Freezing for default/critical update.
|
||||
|
||||
|
||||
BIN
firmware/stable/pieeprom-2021-03-18.bin
Normal file
BIN
firmware/stable/pieeprom-2021-03-18.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
Raspberry Pi 4 EEPROM bootloader rescue image
|
||||
*********************************************
|
||||
|
||||
The Raspberry Pi4 has a small EEPROM used to store the bootloader.
|
||||
The Raspberry Pi 4 has a small EEPROM used to store the bootloader.
|
||||
|
||||
This rescue image reverts the bootloader EEPROM to factory default settings.
|
||||
|
||||
@@ -10,11 +10,11 @@ version (138a1) with better full-speed Isochronous endpoint support.
|
||||
|
||||
To re-flash the EEPROM(s)
|
||||
|
||||
1. Unzip the contents of this zip file to a blank FAT formatted SD-SDCARD.
|
||||
1. Unzip the contents of this zip file to a blank FAT formatted SD-CARD
|
||||
2. Power off the Raspberry Pi
|
||||
3. Insert the sd-card.
|
||||
3. Insert the SD-CARD
|
||||
4. Power on Raspberry Pi
|
||||
5. Wait at least 10 seconds.
|
||||
5. Wait at least 10 seconds
|
||||
|
||||
This easiest method for creating and formatting the SD-CARD is to use the
|
||||
Raspberry Pi Imager from https://raspberrypi.org/downloads
|
||||
@@ -22,7 +22,7 @@ Raspberry Pi Imager from https://raspberrypi.org/downloads
|
||||
If successful, the green LED light will blink rapidly (forever), otherwise
|
||||
an error pattern will be displayed.
|
||||
|
||||
If a HDMI display is attached then screen will display green for success
|
||||
or red if failure a failure occurs.
|
||||
If a HDMI display is attached then the screen will display green for success
|
||||
or red if a failure occurs.
|
||||
|
||||
N.B. This image is not a bootloader it simply replaces the on-board bootloader.
|
||||
|
||||
13
imager/make-beta-release
Executable file
13
imager/make-beta-release
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
script_dir=$(cd "$(dirname "$0")" && pwd)
|
||||
|
||||
firmware_status=${firmware_status:-"beta"}
|
||||
firmware_dir=${script_dir}/../firmware/${firmware_status}
|
||||
pieeprom_version=$(basename $(ls ${firmware_dir}/pieeprom-*.bin | sort -V | tail -1) .bin | cut -d- -f2-5)
|
||||
vl805_version=$(basename $(ls ${firmware_dir}/vl805-*.bin | sort -V | tail -1) .bin | cut -d- -f2)
|
||||
|
||||
${script_dir}/make-release ${firmware_status} ${pieeprom_version} ${vl805_version} "${script_dir}" ${firmware_status}_release rpi-boot-eeprom-recovery-${firmware_status}
|
||||
|
||||
7
imager/make-imager-release
Executable file
7
imager/make-imager-release
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
script_dir=$(cd "$(dirname "$0")" && pwd)
|
||||
|
||||
${script_dir}/make-release critical 2020-09-03 000138a1 "${script_dir}" release rpi-boot-eeprom-recovery
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Generates three variants of the rpi-eeprom-recovery.zip file for
|
||||
# SD, USB and NETWORK priority matching the raspi-config options.
|
||||
# SD, USB and NETWORK priority matching the raspi-config options,
|
||||
# plus a default (same as SD)
|
||||
|
||||
set -e
|
||||
|
||||
@@ -27,39 +28,61 @@ gen_release() {
|
||||
[ -f "${config}" ] || die "File not found \"${config}\""
|
||||
|
||||
(
|
||||
tmp_dir="$(mktemp -d)"
|
||||
tmp_dir="$(mktemp -d --tmpdir tmp.rpi-eeprom.XXXXXXXXXX)"
|
||||
cd "${tmp_dir}"
|
||||
cp "${script_dir}/vl805.bin" .
|
||||
cp "${script_dir}/README.txt" .
|
||||
cp "${firmware_dir}/recovery.bin" .
|
||||
cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin
|
||||
sha256sum vl805.bin | awk '{print $1}' > vl805.sig
|
||||
|
||||
"${script_dir}/../rpi-eeprom-config" \
|
||||
--config "${script_dir}/${config}" --out pieeprom.bin \
|
||||
"${script_dir}/pieeprom.bin" || die "Failed to create update EEPROM config with \"${config}\""
|
||||
--config "${config}" --out pieeprom.bin \
|
||||
"${firmware_dir}/pieeprom-${pieeprom_version}.bin" || die "Failed to create updated EEPROM config with \"${config}\""
|
||||
sha256sum pieeprom.bin | awk '{print $1}' > pieeprom.sig
|
||||
echo "Creating ${out}"
|
||||
zip "${out}" *
|
||||
cleanup
|
||||
)
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
make-release <tag>
|
||||
make-release <firmware_status> <pieeprom_version> <vl805_version> <config_dir> <output_dir> <output_basename>
|
||||
|
||||
Example tag "2020-09-03-vl805-000138a1"
|
||||
Example: make-release critical 2020-09-03 000138a1 . release rpi-boot-eeprom-recovery
|
||||
EOF
|
||||
exit
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
tag="${1}"
|
||||
[ -n "${tag}" ] || usage
|
||||
release_dir="${script_dir}/release"
|
||||
rm -rf "${release_dir}"
|
||||
mkdir "${release_dir}"
|
||||
firmware_status="${1}"
|
||||
pieeprom_version="${2}"
|
||||
vl805_version="${3}"
|
||||
config_dir="${4}"
|
||||
output_dir="${5}"
|
||||
output_basename="${6}"
|
||||
|
||||
[ -n "${firmware_status}" ] || usage
|
||||
[ -n "${pieeprom_version}" ] || usage
|
||||
[ -n "${vl805_version}" ] || usage
|
||||
[ -n "${config_dir}" ] || usage
|
||||
[ -n "${output_dir}" ] || usage
|
||||
[ -n "${output_basename}" ] || usage
|
||||
|
||||
firmware_dir=${script_dir}/../firmware/${firmware_status}
|
||||
[ -d "${firmware_dir}" ] || (echo "${firmware_dir} doesn't exist" && exit 1)
|
||||
[ -f "${firmware_dir}/pieeprom-${pieeprom_version}.bin" ] || (echo "${firmware_status}/pieeprom-${pieeprom_version}.bin doesn't exist" && exit 1)
|
||||
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${firmware_status}/vl805-${vl805_version}.bin doesn't exist" && exit 1)
|
||||
[ -d "${config_dir}" ] || (echo "${config_dir} doesn't exist" && exit 1)
|
||||
tag="${pieeprom_version}-vl805-${vl805_version}"
|
||||
# use realpath to ensure paths are absolute
|
||||
config_dir=$(realpath "${config_dir}")
|
||||
output_dir=$(realpath "${output_dir}")
|
||||
rm -rf "${output_dir}"
|
||||
mkdir "${output_dir}"
|
||||
|
||||
# Build the different boot priority flavours
|
||||
gen_release boot-conf-default.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}.zip"
|
||||
gen_release boot-conf-sd.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-sd.zip"
|
||||
gen_release boot-conf-usb.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-usb.zip"
|
||||
gen_release boot-conf-network.txt "${release_dir}/rpi-boot-eeprom-recovery-${tag}-network.zip"
|
||||
gen_release "${config_dir}/boot-conf-default.txt" "${output_dir}/${output_basename}-${tag}.zip"
|
||||
for variant in sd usb network; do
|
||||
gen_release "${config_dir}/boot-conf-${variant}.txt" "${output_dir}/${output_basename}-${tag}-${variant}.zip"
|
||||
done
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../firmware/critical/pieeprom-2020-09-03.bin
|
||||
@@ -1 +0,0 @@
|
||||
../firmware/critical/recovery.bin
|
||||
@@ -1 +0,0 @@
|
||||
../firmware/critical/vl805-000138a1.bin
|
||||
Reference in New Issue
Block a user