Merge branch 'master' into debian/bookworm

This commit is contained in:
Serge Schneider
2023-10-19 16:20:30 +01:00
10 changed files with 100 additions and 50 deletions

View File

@@ -1,5 +1,5 @@
# rpi-eeprom # rpi-eeprom
This repository contains the scripts and pre-compiled binaries used to create the `rpi-eeprom` package which is used to update the Raspberry Pi 4 bootloader and VLI USB controller EEPROMs. This repository contains the scripts and pre-compiled binaries used to create the `rpi-eeprom` package which is used to update the Raspberry Pi 4 and Raspberry Pi 5 bootloaders EEPROM images.
# Support # Support
Please check the Raspberry Pi [general discussion forum](https://forums.raspberrypi.com/viewforum.php?f=63) if you have a support question. Please check the Raspberry Pi [general discussion forum](https://forums.raspberrypi.com/viewforum.php?f=63) if you have a support question.
@@ -12,5 +12,4 @@ To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https
* [Bootloader EEPROM](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom) * [Bootloader EEPROM](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom)
* [Bootloader configuration](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration) * [Bootloader configuration](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration)
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader) * [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader)
* [Release notes](firmware/release-notes.md) * [Releases and release notes](releases.md)
* [Releases](releases.md)

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,15 @@
# Raspberry Pi5 bootloader EEPROM release notes # Raspberry Pi5 bootloader EEPROM release notes
2023-10-18: Display autodetect + HAT gpiomap (default + latest)
* Add support for HAT gpiomap for improved HAT compatibility.
* Add I2C probe for DSI display auto detect
* Automatically set dtparam=nvme if booted from nvme
* Fix network boot reset issue where only the first attempt works.
* Adding pciex4_reset=0 to config.txt will leave RP1 PCIe enabled when ARM stage is started.
* Prevent HDMI diagnostics being displayed immediately when waking after HALT.
* Update board-name - "Raspberry Pi 5"
2023-09-28: vcgencmd pmic_read_adcs fixes (automatic update) 2023-09-28: vcgencmd pmic_read_adcs fixes (automatic update)
* Fix the LDO names and current scaling codes * Fix the LDO names and current scaling codes

View File

@@ -1,4 +1,4 @@
Raspberry Pi 4 EEPROM bootloader rescue image Raspberry Pi 4 EEPROM bootloader recovery image
********************************************* *********************************************
The Raspberry Pi 4 contains a small EEPROM used to store the bootloader. The Raspberry Pi 4 contains a small EEPROM used to store the bootloader.

33
imager/README-2712.txt Normal file
View File

@@ -0,0 +1,33 @@
Raspberry Pi 5 EEPROM bootloader recovery image
***********************************************
The Raspberry Pi 5 contains a small EEPROM used to store the bootloader.
This rescue image reverts the bootloader EEPROM to factory default settings.
The easiest method for creating EEPROM rescue images, and formatting SD
cards, is to use Raspberry Pi Imager from https://raspberrypi.com/software.
Raspberry Pi Imager provides a GUI for downloading the latest version of
this rescue image and flashing it to a spare SD card.
Alternatively, copy the contents of this zip file to a blank
FAT formatted SD card. The FAT partition must be < 32 GB.
To update the EEPROM:
1. Power off the Raspberry Pi
2. Insert the bootloader update SD card
3. Power on the Raspberry Pi
4. Wait at least 10 seconds
If successful, the green LED on the Raspberry Pi will blink rapidly forever.
An unsuccessful update of the EEPROM is indicated by a different blinking
pattern corresponding to the specific error.
If an HDMI display is attached, then the screen will display green for
success or red if a failure occurs.
Once the EEPROM is updated, the SD card can be removed. In order to make
the entire capacity of the SD card available again, you must then reformat
the SD card using Raspberry Pi Imager by selecting the 'format card as
FAT32' option.

View File

@@ -8,4 +8,4 @@ script_dir=$(cd "$(dirname "$0")" && pwd)
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711 ${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711
# Pi5 # Pi5
${script_dir}/make-release critical 2023-09-21 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712 ${script_dir}/make-release critical 2023-10-18 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712

View File

@@ -19,18 +19,21 @@ trap cleanup EXIT
[ -n "${SUDO_UID}" ] || die "SUDO_UID not defined" [ -n "${SUDO_UID}" ] || die "SUDO_UID not defined"
[ -n "${SUDO_GID}" ] || die "SUDO_GID not defined" [ -n "${SUDO_GID}" ] || die "SUDO_GID not defined"
for src in release/*.zip; do build_images()
src=$(basename "${src}") {
img=$(echo "${src}" | sed 's/\.zip/.img/') chip="$1"
TMP_DIR=$(mktemp -d) for src in release-${chip}/*.zip; do
( src=$(basename "${src}")
cp "release/${src}" "${TMP_DIR}" img=$(echo "${src}" | sed 's/\.zip/.img/')
mkdir "${TMP_DIR}/files" TMP_DIR=$(mktemp -d)
cd "${TMP_DIR}/files" (
unzip "../${src}" cp "release-${chip}/${src}" "${TMP_DIR}"
cd "${TMP_DIR}" mkdir "${TMP_DIR}/files"
dd if=/dev/zero bs=1M count=258 of=temp.img cd "${TMP_DIR}/files"
/sbin/sfdisk temp.img <<EOF unzip "../${src}"
cd "${TMP_DIR}"
dd if=/dev/zero bs=1M count=258 of=temp.img
/sbin/sfdisk temp.img <<EOF
label: dos label: dos
label-id: 0x0a7b5ac5 label-id: 0x0a7b5ac5
device: temp.img device: temp.img
@@ -38,29 +41,35 @@ unit: sectors
./test.img1 : start= 2048, size= 524288, type=c ./test.img1 : start= 2048, size= 524288, type=c
EOF EOF
file temp.img file temp.img
kpartx -lv temp.img | head -n1 | awk '{print $1}' kpartx -lv temp.img | head -n1 | awk '{print $1}'
LOOP="/dev/mapper/$(kpartx -lv temp.img | head -n1 | awk '{print $1}')" LOOP="/dev/mapper/$(kpartx -lv temp.img | head -n1 | awk '{print $1}')"
kpartx -av temp.img kpartx -av temp.img
/sbin/mkfs.fat -F 32 -s 1 "${LOOP}" /sbin/mkfs.fat -F 32 -s 1 "${LOOP}"
mkdir fs mkdir fs
mount "${LOOP}" fs mount "${LOOP}" fs
cp -v files/* fs cp -v files/* fs
sync sync
sleep 5 sleep 5
umount fs umount fs
# Delay before calling kpartx otherwise it's sometimes possible to get orphaned loopback devices # Delay before calling kpartx otherwise it's sometimes possible to get orphaned loopback devices
sleep 5 sleep 5
kpartx -dv temp.img kpartx -dv temp.img
) )
mkdir -p images image_dir="images-${chip}"
chown "${SUDO_UID}:${SUDO_GID}" images mkdir -p "${image_dir}"
mv "${TMP_DIR}/temp.img" "images/${img}" chown "${SUDO_UID}:${SUDO_GID}" "${image_dir}"
file "images/${img}" mv "${TMP_DIR}/temp.img" "${image_dir}/${img}"
cd images file "${image_dir}/${img}"
cd "${image_dir}"
zip "${src}" "${img}" zip "${src}" "${img}"
cd .. cd ..
rm "images/${img}" rm "${image_dir}/${img}"
chown "${SUDO_UID}:${SUDO_GID}" "images/${src}" chown "${SUDO_UID}:${SUDO_GID}" "${image_dir}/${src}"
done done
echo "Wrote images for rpi-imager to $(pwd)/images/${src}" echo "Wrote images for rpi-imager to $(pwd)/${image_dir}/${src}"
}
build_images 2711
build_images 2712

View File

@@ -30,7 +30,7 @@ gen_release() {
( (
tmp_dir="$(mktemp -d --tmpdir tmp.rpi-eeprom.XXXXXXXXXX)" tmp_dir="$(mktemp -d --tmpdir tmp.rpi-eeprom.XXXXXXXXXX)"
cd "${tmp_dir}" cd "${tmp_dir}"
cp "${script_dir}/README.txt" . cp "${script_dir}/README-${bcm_chip}.txt" README.txt
cp "${firmware_dir}/recovery.bin" . cp "${firmware_dir}/recovery.bin" .
if [ ${bcm_chip} = 2711 ]; then if [ ${bcm_chip} = 2711 ]; then
cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin
@@ -79,9 +79,9 @@ firmware_dir=${script_dir}/../firmware-${bcm_chip}/${firmware_status}
if [ "${bcm_chip}" = 2711 ]; then if [ "${bcm_chip}" = 2711 ]; then
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${firmware_status}/vl805-${vl805_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) [ -d "${config_dir}" ] || (echo "${config_dir} doesn't exist" && exit 1)
tag="${pieeprom_version}-vl805-${vl805_version}" tag="${pieeprom_version}-${bcm_chip}-vl805-${vl805_version}"
else else
tag="${pieeprom_version}" tag="${pieeprom_version}-${bcm_chip}"
fi fi
# use realpath to ensure paths are absolute # use realpath to ensure paths are absolute
config_dir=$(realpath "${config_dir}") config_dir=$(realpath "${config_dir}")

View File

@@ -3,17 +3,16 @@ This page provides links to the production and development release images for th
bootloader is automatically updated after an APT update via the [rpi-eeprom-update](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#automatic-updates) utility. bootloader is automatically updated after an APT update via the [rpi-eeprom-update](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#automatic-updates) utility.
## Release notes ## Release notes
Release notes are available [here](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md). * [BCM2711 release notes](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware-2711/release-notes.md).
* [BCM2712 release notes](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware-2712/release-notes.md).
## Default release
### Raspberry Pi 4, CM4, CM4-s, Pi400
The default production EEPROM image release is [2023-01-11](https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2023.01.11-138c0) and can be installed via the [Raspberry Pi Imager](https://www.raspberrypi.com/software/).
## USB MSD boot ## USB MSD boot
Please see the [USB mass storage boot](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot) guide. Please see the [USB mass storage boot](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot) guide.
For support or hardware interoperability discussions please use the Raspberry Pi [general discussion](https://forums.raspberrypi.com/viewforum.php?f=63) forum. For support or hardware interoperability discussions please use the Raspberry Pi [general discussion](https://forums.raspberrypi.com/viewforum.php?f=63) forum.
## Old EEPROM images ## Old EEPROM images
Old bootloader images are periodically removed from the APT package to reduce the disk space, but are still available via Github [here](https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware/old). Old bootloader images are periodically removed from the APT package to reduce the disk space but are still available via Github
* Old [BCM2711 releases](https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware-2711/old).
**Old releases may fail to boot on newer hardware revisions.** **Old releases may fail to boot on newer hardware revisions.**