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/recovery.bin b/firmware-2712/latest/recovery.bin index 7365fa1..e05c65c 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 be40283..ebe1760 100644 --- a/firmware-2712/release-notes.md +++ b/firmware-2712/release-notes.md @@ -1,5 +1,78 @@ # Raspberry Pi5 bootloader EEPROM release notes +## 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