|
1 | 1 | # Raspberry Pi5 bootloader EEPROM release notes
|
2 | 2 |
|
| 3 | +## 2025-02-11: CM5 no-Wifi stability improvements (latest) |
| 4 | + |
| 5 | +* recovery: Walk partitions to delete recovery.bin |
| 6 | + Previously, recovery.bin would fail to delete itself |
| 7 | + if the bootrom loaded recovery.bin where there are multiple FAT |
| 8 | + partitions and the first partition does not contain recovery.bin |
| 9 | + Update the rename code to walk the partition table to find |
| 10 | + the recovery.bin file to delete. |
| 11 | +* pi5: Add config filter for simple boot variable expressions (experimental) |
| 12 | + Add support for a new bootloader/config.txt conditional filter |
| 13 | + which tests the partition, boot_count and boot_arg1 variables. |
| 14 | + Syntax (no spaces): |
| 15 | + ARG boot_arg1, boot_count or partition (EEPROM config stage only) |
| 16 | + [ARG=VALUE] selected if (ARG == VALUE) |
| 17 | + [ARG&MASK] selected if ((ARG & VALUE) != 0)) |
| 18 | + [ARG&MASK=VALUE] selected if ((ARG & MASK) == VALUE) |
| 19 | + [ARG<VALUE] selected if (ARG < VALUE) |
| 20 | + [ARG>VALUE] selected if (ARG > VALUE) |
| 21 | + where VALUE and MASK are unsigned integer constants and ARG |
| 22 | + corresponds to the value in the reset register before the |
| 23 | + config file is parsed. |
| 24 | +* pi5: Add a boot-count bootloader variable (experimental) |
| 25 | + Store the boot-count in a reset register and increment just |
| 26 | + before the boot-order state-machine. The boot-count variable |
| 27 | + is visible via device-tree /proc/device-tree/chosen/bootloader/count |
| 28 | + and can be read/set via vcmailbox |
| 29 | + GET: sudo vcmailbox 0x0003008d 4 4 0 |
| 30 | + SET to N: sudo vcmailbox 0x0003808d 4 4 N |
| 31 | +* pi5: Add user-defined reboot argument (boot_arg1) (experimental) |
| 32 | + Add support for a user-defined boot parameter stored in a reset-safe |
| 33 | + scratch register on BCM2712. This is visible via device-tree at |
| 34 | + /proc/device-tree/chosen/bootloader/arg1 and via vcmailboxes |
| 35 | + GET arg1: sudo vcmailbox 0x0003008c 8 8 1 0 |
| 36 | + SET arg1 to 42: sudo vcmailbox 0x0003808c 8 8 1 42 |
| 37 | + or via config.txt |
| 38 | + set_reboot_arg1=42 |
| 39 | + The variable is NOT cleared automatically and will persist until |
| 40 | + a power-on-reset. |
| 41 | +* Enable overriding of high partition numbers |
| 42 | + Previously, the PARTITION=N bootloader config setting would only |
| 43 | + be used at power on reset or if the partition number passed to |
| 44 | + reboot was zero. |
| 45 | + Change the behaviour so that the bootloader config PARTITION |
| 46 | + property can override the reboot partition number if the reboot |
| 47 | + parameter is > 31. |
| 48 | +* Disable WiFi PMIC output on CM5 modules without WiFi |
| 49 | + Disable the 3.7V WiFi power supply on CM5 modules which do not have a |
| 50 | + WiFi module fitted. This fixes some stability issues where a CM5 |
| 51 | + would shutdown due to a spurious over-voltage condition on the |
| 52 | + non-connected WiFi power supply. |
| 53 | +* Add memory barrier to the mbox handler |
| 54 | + Firmware issue 1944 reports receiving kernel warnings about firmware |
| 55 | + requests where the status return code is 0. This should not be |
| 56 | + possible, as handle_mbox_property always sets the top bit of the return |
| 57 | + code, with the bottom bit indicating success or failure. If the firmware |
| 58 | + had died, the firmware driver would report a timeout due to the lack of |
| 59 | + a mailbox interrupt, and that isn't happening. |
| 60 | + See: https://github.com/raspberrypi/firmware/issues/1944 |
| 61 | +* support dts files with size-cells of 2 |
| 62 | + DTS files with a top-level #size-cells of 2 make a lot of sense for |
| 63 | + systems with a lot of RAM, but the firmware is currently inconsistent |
| 64 | + in its support for that. Fix up the other cases to honor #size-cells |
| 65 | + and #address-cells. |
| 66 | +* Disable SDIO2 for CM5s without WiFi |
| 67 | + It has been observed that CM5s without WiFi hang on reboot. To prevent |
| 68 | + that, disable the sdio2 node on those devices. |
| 69 | + See: https://github.com/raspberrypi/linux/issues/6647 |
| 70 | +* arm_dt: Use dtoverlay_enable_node |
| 71 | + Convert the open-coded DT node status changes to use the new dtoverlay |
| 72 | + method dtoverlay_enable_node. |
| 73 | +* dtoverlay: Add dtoverlay_enable_node |
| 74 | + Add a helper function for setting the status of a node. |
| 75 | + |
3 | 76 | ## 2025-01-27: Walk the partition table if the requested partition is not bootable (latest)
|
4 | 77 |
|
5 | 78 | * Walk the partition table if the requested partition is not bootable
|
|
0 commit comments