Merge branch 'master' into debian/bookworm

This commit is contained in:
Serge Schneider
2024-10-22 17:27:20 +01:00
10 changed files with 144 additions and 2 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,41 @@
# Raspberry Pi4 bootloader EEPROM release notes # Raspberry Pi4 bootloader EEPROM release notes
## 2024-10-21: Fix PCIe BAR issue for some switches (latest)
* Boot-menu improvements
Remain in the forced boot mode until the menu is used to select a different
boot-mode or reset to the original boot-order.
## 2024-10-10: Use soft-reset to preseve SDRAM contents after ramoops (latest)
* SD card high-speed/low-voltage mode can only be exited by powercycling.
Pi 4s before rev 1.4 lack the power switch required to do this, so must
resort to a global reset that turns off many things, including SDRAM.
To ensure correct operation, the bootloader checks that the SD I/O
voltage is the expected 3.3V, forcing a power cycle if it isn't.
However, this doesn't take advantage of presence of the dedicated SD
power switch, always forcing a global reset, a consequence of which can
be the loss of SDRAM content - including any ramoops dump of the crash
logs.
Make the bootloader more SD_PWR_ON aware, only triggering a global reset
if one isn't found.
See: https://github.com/raspberrypi/linux/issues/5298
* Remove requirement for GPT ptable array to be at LBA-2
See: https://github.com/raspberrypi/rpi-eeprom/issues/585
* Introduce a new boot-menu feature where pressing SPACE at power on
gives the user a one-shot option to select a different boot mode.
e.g. Select USB boot if the default SD card is corrupted or unavailable.
* Display the bootloader network-install UI for longer on a cold boot to make
this feature more visible to first time users.
To revert to the previous behaviour remove NET_INSTALL_AT_POWER_ON=1
from the bootloader config.
* Default to 2GB start for PCI bus addresses on 2711 and 2712
This change also constrains the window size to 2GB, so all PCI bus address
assignments fall below 4GB, avoiding a potential bug with 32-bit BARs in
esoteric bus topologies (e.g. lots of GPUs).
## 2024-09-05: Fix self-update if EEPROM is write-protected (latest) ## 2024-09-05: Fix self-update if EEPROM is write-protected (latest)
* arm_dt: Consult the hat_map for all HATs * arm_dt: Consult the hat_map for all HATs
* USB boot - ignore RP2 / RP3 MSD device in BOOTSEL mode. * USB boot - ignore RP2 / RP3 MSD device in BOOTSEL mode.
@@ -11,7 +47,7 @@
## 2024-08-14 (recovery.bin) - Add support for OTP metadata (latest) ## 2024-08-14 (recovery.bin) - Add support for OTP metadata (latest)
* Update to recovery.bin to output metadata about OTP during rpiboot * Update to recovery.bin to output metadata about OTP during rpiboot
## 2024-07-30 - USB boot fixes for CM4-S and interop improvments (latest) ## 2024-07-30 - USB boot fixes for CM4-S and interop improvements (latest)
* Resolve USB boot regression in 2024-04-17 relase on CM4S * Resolve USB boot regression in 2024-04-17 relase on CM4S
See https://github.com/raspberrypi/rpi-eeprom/issues/588 See https://github.com/raspberrypi/rpi-eeprom/issues/588
* Improve compatibility for booting from some USB SD card readers * Improve compatibility for booting from some USB SD card readers

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,40 @@
# Raspberry Pi5 bootloader EEPROM release notes # Raspberry Pi5 bootloader EEPROM release notes
## 2024-10-21: Fix PCIe BAR issue for some switches (latest)
* Fix PCIe BAR setup issue which prevented NVMe boot from working with some PCIe switches
See: https://github.com/raspberrypi/firmware/issues/1833
* Boot-menu improvements
Remain in the forced boot mode until the menu is used to select a different
boot-mode or reset to the original boot-order.
## 2024-10-10: Add support to override the boot-mode at power on (latest)
* Introduce a new boot-menu feature where pressing SPACE at power on
gives the user a one-shot option to select a different boot mode.
e.g. Select USB boot if the default SD card is corrupted or unavailable.
* Display the bootloader network-install UI for longer on a cold boot to make
this feature more visible to first time users.
To revert to the previous behaviour remove NET_INSTALL_AT_POWER_ON=1
from the bootloader config.
* Support non-UUID HAT mapping
Extend the HAT map support to allow matching on product and vendor
strings, as well as product ID and version. As a minimum, there must
be a product string - if that matches, the other keys are considered.
Without a product key, the UUID is compared as before.
* Remove requirement for GPT ptable array to be at LBA-2
See: https://github.com/raspberrypi/rpi-eeprom/issues/585
* 2712C1 clock manager improvements to slightly reduce idle power ~50mW saving
* Adjust SDRAM page-hold and auto-precharge to improve performance.
~2% improvement with Geekbench 6
* armstubs: 2712: Rebuild with updated max-power throttle and direct stream settings
See: https://github.com/raspberrypi/arm-trusted-firmware/commit/fc45bc492dd655f9ea4893a384527341a48cf03d
* debug: Only display the program_pubkey log if configuring secure-boot
* Default to 2GB start for PCI bus addresses on 2711 and 2712
This change also constrains the window size to 2GB, so all PCI bus address
assignments fall below 4GB, avoiding a potential bug with 32-bit BARs in
esoteric bus topologies (e.g. lots of GPUs).
## 2024-09-24: Promote 2024-09-23 release (default) (automatic update) ## 2024-09-24: Promote 2024-09-23 release (default) (automatic update)
## 2024-09-23: SDRAM performance tuning (latest) ## 2024-09-23: SDRAM performance tuning (latest)

71
imager/release-fw Executable file
View File

@@ -0,0 +1,71 @@
#!/bin/sh
set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
die() {
echo "$@" >&2
exit 1
}
cleanup() {
if [ -d "${TMP_DIR}" ]; then
rm -rf "${TMP_DIR}"
fi
}
trap cleanup EXIT
TMP_DIR=$(mktemp -d)
tarball="$1"
do_release() {
(
branch="${1}"
chip_id="${2}"
if [ "${chip_id}" != "2711" ] && [ "${chip_id}" != "2712" ]; then
die "Invalid chip_id \"${branch}\" chip_id must be \"2711\" or \"2712\""
fi
cd "${TMP_DIR}/${chip_id}"
fw_out="${script_dir}/../firmware-${chip_id}/${branch}"
pwd
TS="$(strings recovery.bin | grep BUILD_TIMESTAMP | sed 's/.*=//g')"
DATE="$(date -u -d@${TS} +%Y-%m-%d)"
echo "recovery.bin ${TS} ${DATE}"
cp -fv recovery.bin "${fw_out}"
TS="$(strings pieeprom.bin | grep BUILD_TIMESTAMP | sed 's/.*=//g')"
DATE="$(date -u -d@${TS} +%Y-%m-%d)"
echo "pieeprom.bin ${TS} ${DATE}"
cp -fv pieeprom.bin "${fw_out}/pieeprom-${DATE}.bin"
)
}
usage()
{
cat <<EOF
Usage:
release-fw: release.tar default|latest 2711 2712
EOF
}
[ -f "$tarball" ] || die "Release tarball ${1} not found"
cd "${TMP_DIR}"
tar -vxf "${tarball}"
branch="${2}"
if [ "${branch}" != "default" ] && [ "${branch}" != "latest" ]; then
die "Invalid branch \"${branch}\" branch must be \"default\" or \"latest\""
fi
if [ -n "${3}" ]; then
do_release "${branch}" "${3}"
fi
if [ -n "${4}" ]; then
do_release "${branch}" "${4}"
fi

View File

@@ -488,7 +488,7 @@ Operating modes:
rpi-eeprom-config --config boot.conf --out newimage.bin pieeprom.bin rpi-eeprom-config --config boot.conf --out newimage.bin pieeprom.bin
The new image file can be installed via rpi-eeprom-update The new image file can be installed via rpi-eeprom-update
rpi-eeprom-update -d -f newimage.bin sudo rpi-eeprom-update -d -f newimage.bin
4. Applies a given config file to an EEPROM image and invokes rpi-eeprom-update 4. Applies a given config file to an EEPROM image and invokes rpi-eeprom-update
to schedule an update of the bootloader when the system is rebooted. to schedule an update of the bootloader when the system is rebooted.