diff --git a/firmware-2711/latest/pieeprom-2025-02-11.bin b/firmware-2711/latest/pieeprom-2025-02-11.bin new file mode 100644 index 0000000..fd661cd Binary files /dev/null and b/firmware-2711/latest/pieeprom-2025-02-11.bin differ diff --git a/firmware-2711/latest/recovery.bin b/firmware-2711/latest/recovery.bin index 9071765..a883a19 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 4e46673..8cb9c0d 100644 --- a/firmware-2711/release-notes.md +++ b/firmware-2711/release-notes.md @@ -1,5 +1,40 @@ # Raspberry Pi4 bootloader EEPROM release notes +## 2025-02-11: recovery: Walk partitions to delete recovery.bin (latest) + +* recovery: Walk partitions to delete recovery.bin + Previously, recovery.bin would fail to delete itself + if the bootrom loaded recovery.bin where there are multiple FAT + partitions and the first partition does not contain recovery.bin + Update the rename code to walk the partition table to find + the recovery.bin file to delete. +* Enable overriding of high partition numbers + Previously, the PARTITION=N bootloader config setting would only + be used at power on reset or if the partition number passed to + reboot was zero. + Change the behaviour so that the bootloader config PARTITION + property can override the reboot partition number if the reboot + parameter is > 31. +* Walk the partition table if the requested partition is not bootable + Previously, if the specified boot partition was not bootable the + bootloader would stop and advance to the next BOOT_ORDER. If the + new PARTITION_WALK option is set to 1 the bootloader will now + check each partition in turn starting from the specified partition + before advancing the BOOT_ORDER. + This feature is intended for use with A/B systems to handle the case + where autoboot.txt is missing / corrupted. This change enables + the system to failover to the next available bootable partition. + The autoboot.txt file is not scanned during the partition-walk + phase i.e. there is no recursive processing of autoboot.txt files. + This option is only supported on physical block devices + (SD, NVMe, USB) and not RAMDISK. USB assumes a single high speed + device, partition walks on multiple USB devices is not recommended + and may cause timeouts. +* Improve keyboard handling in boot menu + Try and make it more likely that we have enough time to perform key + detection. + Ignore mice, which were being enumerated and slowing things down. + ## 2024-12-07: Enable banklow (and so NUMA) by default (latest) * Enable banklow (and so NUMA) by default diff --git a/firmware-2712/latest/pieeprom-2025-01-27.bin b/firmware-2712/latest/pieeprom-2025-01-27.bin new file mode 100644 index 0000000..4d2406f Binary files /dev/null and b/firmware-2712/latest/pieeprom-2025-01-27.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-02-11.bin b/firmware-2712/latest/pieeprom-2025-02-11.bin new file mode 100644 index 0000000..c1aa2c3 Binary files /dev/null and b/firmware-2712/latest/pieeprom-2025-02-11.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-02-12.bin b/firmware-2712/latest/pieeprom-2025-02-12.bin new file mode 100644 index 0000000..9620062 Binary files /dev/null and b/firmware-2712/latest/pieeprom-2025-02-12.bin differ diff --git a/firmware-2712/latest/recovery.bin b/firmware-2712/latest/recovery.bin index 4d9f1f2..c66bd42 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 937d495..419889b 100644 --- a/firmware-2712/release-notes.md +++ b/firmware-2712/release-notes.md @@ -1,5 +1,104 @@ # Raspberry Pi5 bootloader EEPROM release notes +## 2025-02-12: Fixup change to disable 3.7V PMIC output on CM5 no-wifi (latest) + +* Fixup change to disable 3.7V PMIC output on CM5 no-wifi + +## 2025-02-11: CM5 no-Wifi stability improvements (latest) + +* recovery: Walk partitions to delete recovery.bin + Previously, recovery.bin would fail to delete itself + if the bootrom loaded recovery.bin where there are multiple FAT + partitions and the first partition does not contain recovery.bin + Update the rename code to walk the partition table to find + the recovery.bin file to delete. +* pi5: Add config filter for simple boot variable expressions (experimental) + Add support for a new bootloader/config.txt conditional filter + which tests the partition, boot_count and boot_arg1 variables. + Syntax (no spaces): + ARG boot_arg1, boot_count or partition (EEPROM config stage only) + [ARG=VALUE] selected if (ARG == VALUE) + [ARG&MASK] selected if ((ARG & VALUE) != 0)) + [ARG&MASK=VALUE] selected if ((ARG & MASK) == VALUE) + [ARGVALUE] selected if (ARG > VALUE) + where VALUE and MASK are unsigned integer constants and ARG + corresponds to the value in the reset register before the + config file is parsed. +* pi5: Add a boot-count bootloader variable (experimental) + Store the boot-count in a reset register and increment just + before the boot-order state-machine. The boot-count variable + is visible via device-tree /proc/device-tree/chosen/bootloader/count + and can be read/set via vcmailbox + GET: sudo vcmailbox 0x0003008d 4 4 0 + SET to N: sudo vcmailbox 0x0003808d 4 4 N +* pi5: Add user-defined reboot argument (boot_arg1) (experimental) + Add support for a user-defined boot parameter stored in a reset-safe + scratch register on BCM2712. This is visible via device-tree at + /proc/device-tree/chosen/bootloader/arg1 and via vcmailboxes + GET arg1: sudo vcmailbox 0x0003008c 8 8 1 0 + SET arg1 to 42: sudo vcmailbox 0x0003808c 8 8 1 42 + or via config.txt + set_reboot_arg1=42 + The variable is NOT cleared automatically and will persist until + a power-on-reset. +* Enable overriding of high partition numbers + Previously, the PARTITION=N bootloader config setting would only + be used at power on reset or if the partition number passed to + reboot was zero. + Change the behaviour so that the bootloader config PARTITION + property can override the reboot partition number if the reboot + parameter is > 31. +* Disable WiFi PMIC output on CM5 modules without WiFi + Disable the 3.7V WiFi power supply on CM5 modules which do not have a + WiFi module fitted. This fixes some stability issues where a CM5 + would shutdown due to a spurious over-voltage condition on the + non-connected WiFi power supply. +* Add memory barrier to the mbox handler + Firmware issue 1944 reports receiving kernel warnings about firmware + requests where the status return code is 0. This should not be + possible, as handle_mbox_property always sets the top bit of the return + code, with the bottom bit indicating success or failure. If the firmware + had died, the firmware driver would report a timeout due to the lack of + a mailbox interrupt, and that isn't happening. + See: https://github.com/raspberrypi/firmware/issues/1944 +* support dts files with size-cells of 2 + DTS files with a top-level #size-cells of 2 make a lot of sense for + systems with a lot of RAM, but the firmware is currently inconsistent + in its support for that. Fix up the other cases to honor #size-cells + and #address-cells. +* Disable SDIO2 for CM5s without WiFi + It has been observed that CM5s without WiFi hang on reboot. To prevent + that, disable the sdio2 node on those devices. + See: https://github.com/raspberrypi/linux/issues/6647 +* arm_dt: Use dtoverlay_enable_node + Convert the open-coded DT node status changes to use the new dtoverlay + method dtoverlay_enable_node. +* dtoverlay: Add dtoverlay_enable_node + Add a helper function for setting the status of a node. + +## 2025-01-27: Walk the partition table if the requested partition is not bootable (latest) + +* Walk the partition table if the requested partition is not bootable + Previously, if the specified boot partition was not bootable the + bootloader would stop and advance to the next BOOT_ORDER. If the + new PARTITION_WALK option is set to 1 the bootloader will now + check each partition in turn starting from the specified partition + before advancing the BOOT_ORDER. + This feature is intended for use with A/B systems to handle the case + where autoboot.txt is missing / corrupted. This change enables + the system to failover to the next available bootable partition. + The autoboot.txt file is not scanned during the partition-walk + phase i.e. there is no recursive processing of autoboot.txt files. + This option is only supported on physical block devices + (SD, NVMe, USB) and not RAMDISK. USB assumes a single high speed + device, partition walks on multiple USB devices is not recommended + and may cause timeouts. +* Improve keyboard handling in boot menu + Try and make it more likely that we have enough time to perform key + detection. + Ignore mice, which were being enumerated and slowing things down. + ## 2025-01-22: Promote 2025-01-22 to default release (default) ## 2025-01-22: Add DT /chosen property signed-boot boot.img hash (latest) diff --git a/imager/make-imager-release b/imager/make-imager-release index 2ed4bed..d8e0500 100755 --- a/imager/make-imager-release +++ b/imager/make-imager-release @@ -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 # Pi5 -${script_dir}/make-release critical 2024-11-12 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712 +${script_dir}/make-release critical 2025-01-22 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712