diff --git a/firmware-2711/latest/pieeprom-2024-10-10.bin b/firmware-2711/latest/pieeprom-2024-10-10.bin new file mode 100644 index 0000000..55f5ef5 Binary files /dev/null and b/firmware-2711/latest/pieeprom-2024-10-10.bin differ diff --git a/firmware-2711/latest/pieeprom-2024-10-21.bin b/firmware-2711/latest/pieeprom-2024-10-21.bin new file mode 100644 index 0000000..cd02671 Binary files /dev/null and b/firmware-2711/latest/pieeprom-2024-10-21.bin differ diff --git a/firmware-2711/latest/recovery.bin b/firmware-2711/latest/recovery.bin index a566c31..61a1378 100644 Binary files a/firmware-2711/latest/recovery.bin and b/firmware-2711/latest/recovery.bin differ diff --git a/firmware-2711/release-notes.md b/firmware-2711/release-notes.md index 48c8571..0d0a82e 100644 --- a/firmware-2711/release-notes.md +++ b/firmware-2711/release-notes.md @@ -1,5 +1,41 @@ # 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) * arm_dt: Consult the hat_map for all HATs * 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) * 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 See https://github.com/raspberrypi/rpi-eeprom/issues/588 * Improve compatibility for booting from some USB SD card readers diff --git a/firmware-2712/latest/pieeprom-2024-10-10.bin b/firmware-2712/latest/pieeprom-2024-10-10.bin new file mode 100644 index 0000000..5beb505 Binary files /dev/null and b/firmware-2712/latest/pieeprom-2024-10-10.bin differ diff --git a/firmware-2712/latest/pieeprom-2024-10-21.bin b/firmware-2712/latest/pieeprom-2024-10-21.bin new file mode 100644 index 0000000..5f6b6a7 Binary files /dev/null and b/firmware-2712/latest/pieeprom-2024-10-21.bin differ diff --git a/firmware-2712/latest/recovery.bin b/firmware-2712/latest/recovery.bin index dad7574..a7e181a 100644 Binary files a/firmware-2712/latest/recovery.bin and b/firmware-2712/latest/recovery.bin differ diff --git a/firmware-2712/release-notes.md b/firmware-2712/release-notes.md index 1cb49c5..257763b 100644 --- a/firmware-2712/release-notes.md +++ b/firmware-2712/release-notes.md @@ -1,5 +1,40 @@ # 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-23: SDRAM performance tuning (latest) diff --git a/imager/release-fw b/imager/release-fw new file mode 100755 index 0000000..2c73150 --- /dev/null +++ b/imager/release-fw @@ -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 <