diff --git a/firmware-2711/latest/pieeprom-2025-07-03.bin b/firmware-2711/latest/pieeprom-2025-07-03.bin new file mode 100644 index 0000000..2a5fdbc Binary files /dev/null and b/firmware-2711/latest/pieeprom-2025-07-03.bin differ diff --git a/firmware-2711/latest/pieeprom-2025-07-17.bin b/firmware-2711/latest/pieeprom-2025-07-17.bin new file mode 100644 index 0000000..3f512ee Binary files /dev/null and b/firmware-2711/latest/pieeprom-2025-07-17.bin differ diff --git a/firmware-2711/latest/recovery.bin b/firmware-2711/latest/recovery.bin index f32f6cc..0fee78a 100644 Binary files a/firmware-2711/latest/recovery.bin and b/firmware-2711/latest/recovery.bin differ diff --git a/firmware-2711/default/pieeprom-2023-01-11.bin b/firmware-2711/old/critical/pieeprom-2023-01-11.bin similarity index 100% rename from firmware-2711/default/pieeprom-2023-01-11.bin rename to firmware-2711/old/critical/pieeprom-2023-01-11.bin diff --git a/firmware-2711/default/pieeprom-2024-04-15.bin b/firmware-2711/old/critical/pieeprom-2024-04-15.bin similarity index 100% rename from firmware-2711/default/pieeprom-2024-04-15.bin rename to firmware-2711/old/critical/pieeprom-2024-04-15.bin diff --git a/firmware-2711/default/pieeprom-2025-02-11.bin b/firmware-2711/old/critical/pieeprom-2025-02-11.bin similarity index 100% rename from firmware-2711/default/pieeprom-2025-02-11.bin rename to firmware-2711/old/critical/pieeprom-2025-02-11.bin diff --git a/firmware-2711/old/critical/pieeprom-2025-05-08.bin b/firmware-2711/old/critical/pieeprom-2025-05-08.bin new file mode 100644 index 0000000..133b022 Binary files /dev/null and b/firmware-2711/old/critical/pieeprom-2025-05-08.bin differ diff --git a/firmware-2711/latest/pieeprom-2023-01-11.bin b/firmware-2711/old/stable/pieeprom-2023-01-11.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2023-01-11.bin rename to firmware-2711/old/stable/pieeprom-2023-01-11.bin diff --git a/firmware-2711/latest/pieeprom-2023-05-11.bin b/firmware-2711/old/stable/pieeprom-2023-05-11.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2023-05-11.bin rename to firmware-2711/old/stable/pieeprom-2023-05-11.bin diff --git a/firmware-2711/latest/pieeprom-2024-01-18.bin b/firmware-2711/old/stable/pieeprom-2024-01-18.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-01-18.bin rename to firmware-2711/old/stable/pieeprom-2024-01-18.bin diff --git a/firmware-2711/latest/pieeprom-2024-01-22.bin b/firmware-2711/old/stable/pieeprom-2024-01-22.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-01-22.bin rename to firmware-2711/old/stable/pieeprom-2024-01-22.bin diff --git a/firmware-2711/latest/pieeprom-2024-04-15.bin b/firmware-2711/old/stable/pieeprom-2024-04-15.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-04-15.bin rename to firmware-2711/old/stable/pieeprom-2024-04-15.bin diff --git a/firmware-2711/latest/pieeprom-2024-04-17.bin b/firmware-2711/old/stable/pieeprom-2024-04-17.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-04-17.bin rename to firmware-2711/old/stable/pieeprom-2024-04-17.bin diff --git a/firmware-2711/latest/pieeprom-2024-05-17.bin b/firmware-2711/old/stable/pieeprom-2024-05-17.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-05-17.bin rename to firmware-2711/old/stable/pieeprom-2024-05-17.bin diff --git a/firmware-2711/latest/pieeprom-2024-07-30.bin b/firmware-2711/old/stable/pieeprom-2024-07-30.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-07-30.bin rename to firmware-2711/old/stable/pieeprom-2024-07-30.bin diff --git a/firmware-2711/latest/pieeprom-2024-09-05.bin b/firmware-2711/old/stable/pieeprom-2024-09-05.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-09-05.bin rename to firmware-2711/old/stable/pieeprom-2024-09-05.bin diff --git a/firmware-2711/latest/pieeprom-2024-10-10.bin b/firmware-2711/old/stable/pieeprom-2024-10-10.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-10-10.bin rename to firmware-2711/old/stable/pieeprom-2024-10-10.bin diff --git a/firmware-2711/latest/pieeprom-2024-10-21.bin b/firmware-2711/old/stable/pieeprom-2024-10-21.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-10-21.bin rename to firmware-2711/old/stable/pieeprom-2024-10-21.bin diff --git a/firmware-2711/latest/pieeprom-2024-12-07.bin b/firmware-2711/old/stable/pieeprom-2024-12-07.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2024-12-07.bin rename to firmware-2711/old/stable/pieeprom-2024-12-07.bin diff --git a/firmware-2711/latest/pieeprom-2025-02-11.bin b/firmware-2711/old/stable/pieeprom-2025-02-11.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2025-02-11.bin rename to firmware-2711/old/stable/pieeprom-2025-02-11.bin diff --git a/firmware-2711/latest/pieeprom-2025-02-24.bin b/firmware-2711/old/stable/pieeprom-2025-02-24.bin similarity index 100% rename from firmware-2711/latest/pieeprom-2025-02-24.bin rename to firmware-2711/old/stable/pieeprom-2025-02-24.bin diff --git a/firmware-2711/old/stable/pieeprom-2025-05-08.bin b/firmware-2711/old/stable/pieeprom-2025-05-08.bin new file mode 100644 index 0000000..133b022 Binary files /dev/null and b/firmware-2711/old/stable/pieeprom-2025-05-08.bin differ diff --git a/firmware-2711/old/stable/pieeprom-2025-05-16.bin b/firmware-2711/old/stable/pieeprom-2025-05-16.bin new file mode 100644 index 0000000..09ed04d Binary files /dev/null and b/firmware-2711/old/stable/pieeprom-2025-05-16.bin differ diff --git a/firmware-2711/old/stable/pieeprom-2025-07-03.bin b/firmware-2711/old/stable/pieeprom-2025-07-03.bin new file mode 100644 index 0000000..2a5fdbc Binary files /dev/null and b/firmware-2711/old/stable/pieeprom-2025-07-03.bin differ diff --git a/firmware-2711/release-notes.md b/firmware-2711/release-notes.md index 91db23c..15696e3 100644 --- a/firmware-2711/release-notes.md +++ b/firmware-2711/release-notes.md @@ -1,5 +1,58 @@ # Raspberry Pi4 bootloader EEPROM release notes +## 2025-07-17: arm_loader: Also require the early-watchdog property (latest) + +* arm_loader: Also require the early-watchdog property + The change correcting the implementation of dtoverlay_is_enabled had the + unintended consequence of causing the firmware to enable the watchdog + even though the user had not explicitly requested it. This is harmless + on Linux because the watchdog driver takes over and disarms it, but on + other operating systems this can lead to a reboot. Avoid this problem + by also requiring the presence of a new property, "early-watchdog". + See: https://github.com/raspberrypi/firmware/issues/1980 +* helpers/config_loader: Add bootvar0 eeprom config that can be used in config.txt section expressions + This allows an eeprom config setting (e.g. BOOTVAR0=0x10) to be set on a board + which config.txt can use as a conditional expression (e.g. [bootvar0&0x10]). +* arm_loader: Fix boot-watchdog stop on Pi4 + Fix a problem where the boot_watchdog heartbeat timer was not + stopped correctly which could cause it to clash with the kernel + watchdog driver. + +## 2025-07-03: Check for SD card overcurrent (latest) + +* board_info: Use the Ethernet PHY address probed by the bootloader + Use the Ethernet PHY address supplied by the bootloader in + preference to the static configurations defined in start4.elf +* Check for SD card overcurrent on Pi5, Pi500 and Pi4 + Before booting, the bootloader now checks the SD power switch + overcurrent signal. The overcurrent signal occurs if the SD + card is damaged and has a short circuit which will cause it to + get hot. + If an over-current condition is detected the bootloader switches + switches off power to the SD card and waits five seconds before + probing the SD card again. This error is displayed on the + diagnostic screen, the UART and the activity LED (1 long, 2 short) + flashes. + The check can be switched to a non-blocking warning by setting + SD_OVERCURRENT_CHECK=0 in the bootloader config. +* Add a new error code pattern for SD overcurrent + Add a new error pattern (1 long, 2 short) to signal SD card + overcurrent. +* Add support for a bootloader watchdog + Add support for a boot watchdog (using PM_RSTC hw wdog) which will + trigger if the OS is not started within the specified amount of time. The + watchdog is enabled by setting the BOOT_WATCHDOG_TIMEOUT=N (seconds) + property in the bootlaoder config. + The BOOT_WATCHDOG_PARTITION=P property can be set to pass a different + partition number to the bootloader on reset if the watchdog + is triggered. + The boot watchdog is automatically cleared just before starting + the OS and (optionally) enabling the kernel watchdog. +* Skip first SD boot if no card detected + On platforms with an SD Card detect signal, skip the first attempt to + boot from SD if the card appears to be absent. This can save over a + second on a cold boot, and a little under a second for a reboot. + ## 2025-05-16: 2711: Automatically set revoke_devkey if program_pubkey=1 (latest) * 2711: (recovery) Automatically set revoke_devkey if program_pubkey=1 diff --git a/firmware-2712/latest/pieeprom-2025-02-12.bin b/firmware-2712/latest/pieeprom-2025-06-13.bin old mode 100644 new mode 100755 similarity index 78% rename from firmware-2712/latest/pieeprom-2025-02-12.bin rename to firmware-2712/latest/pieeprom-2025-06-13.bin index 9620062..6399ecf Binary files a/firmware-2712/latest/pieeprom-2025-02-12.bin and b/firmware-2712/latest/pieeprom-2025-06-13.bin differ diff --git a/firmware-2712/latest/pieeprom-2024-11-12.bin b/firmware-2712/latest/pieeprom-2025-06-20.bin similarity index 77% rename from firmware-2712/latest/pieeprom-2024-11-12.bin rename to firmware-2712/latest/pieeprom-2025-06-20.bin index 40f7dac..9f7ce57 100644 Binary files a/firmware-2712/latest/pieeprom-2024-11-12.bin and b/firmware-2712/latest/pieeprom-2025-06-20.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-06-29.bin b/firmware-2712/latest/pieeprom-2025-06-29.bin new file mode 100644 index 0000000..ed28349 Binary files /dev/null and b/firmware-2712/latest/pieeprom-2025-06-29.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-01-22.bin b/firmware-2712/latest/pieeprom-2025-07-03.bin similarity index 78% rename from firmware-2712/latest/pieeprom-2025-01-22.bin rename to firmware-2712/latest/pieeprom-2025-07-03.bin index 4fb5b09..2c026dd 100644 Binary files a/firmware-2712/latest/pieeprom-2025-01-22.bin and b/firmware-2712/latest/pieeprom-2025-07-03.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-07-17.bin b/firmware-2712/latest/pieeprom-2025-07-17.bin new file mode 100644 index 0000000..c02c8dd Binary files /dev/null and b/firmware-2712/latest/pieeprom-2025-07-17.bin differ diff --git a/firmware-2712/latest/recovery.bin b/firmware-2712/latest/recovery.bin index b762b81..0034682 100644 Binary files a/firmware-2712/latest/recovery.bin and b/firmware-2712/latest/recovery.bin differ diff --git a/firmware-2712/default/pieeprom-2024-11-12.bin b/firmware-2712/old/default/pieeprom-2024-11-12.bin similarity index 100% rename from firmware-2712/default/pieeprom-2024-11-12.bin rename to firmware-2712/old/default/pieeprom-2024-11-12.bin diff --git a/firmware-2712/default/pieeprom-2025-01-22.bin b/firmware-2712/old/default/pieeprom-2025-01-22.bin similarity index 100% rename from firmware-2712/default/pieeprom-2025-01-22.bin rename to firmware-2712/old/default/pieeprom-2025-01-22.bin diff --git a/firmware-2712/default/pieeprom-2025-02-12.bin b/firmware-2712/old/default/pieeprom-2025-02-12.bin similarity index 100% rename from firmware-2712/default/pieeprom-2025-02-12.bin rename to firmware-2712/old/default/pieeprom-2025-02-12.bin diff --git a/firmware-2712/default/pieeprom-2025-03-10.bin b/firmware-2712/old/default/pieeprom-2025-03-10.bin similarity index 100% rename from firmware-2712/default/pieeprom-2025-03-10.bin rename to firmware-2712/old/default/pieeprom-2025-03-10.bin diff --git a/firmware-2712/old/default/pieeprom-2025-05-08.bin b/firmware-2712/old/default/pieeprom-2025-05-08.bin new file mode 100644 index 0000000..c4b7871 Binary files /dev/null and b/firmware-2712/old/default/pieeprom-2025-05-08.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-03-19.bin b/firmware-2712/old/latest/pieeprom-2025-03-19.bin similarity index 100% rename from firmware-2712/latest/pieeprom-2025-03-19.bin rename to firmware-2712/old/latest/pieeprom-2025-03-19.bin diff --git a/firmware-2712/latest/pieeprom-2025-03-27.bin b/firmware-2712/old/latest/pieeprom-2025-03-27.bin similarity index 100% rename from firmware-2712/latest/pieeprom-2025-03-27.bin rename to firmware-2712/old/latest/pieeprom-2025-03-27.bin diff --git a/firmware-2712/latest/pieeprom-2025-04-07.bin b/firmware-2712/old/latest/pieeprom-2025-04-07.bin similarity index 100% rename from firmware-2712/latest/pieeprom-2025-04-07.bin rename to firmware-2712/old/latest/pieeprom-2025-04-07.bin diff --git a/firmware-2712/old/latest/pieeprom-2025-05-08.bin b/firmware-2712/old/latest/pieeprom-2025-05-08.bin new file mode 100644 index 0000000..c4b7871 Binary files /dev/null and b/firmware-2712/old/latest/pieeprom-2025-05-08.bin differ diff --git a/firmware-2712/latest/pieeprom-2025-06-09.bin b/firmware-2712/old/latest/pieeprom-2025-06-09.bin similarity index 100% rename from firmware-2712/latest/pieeprom-2025-06-09.bin rename to firmware-2712/old/latest/pieeprom-2025-06-09.bin diff --git a/firmware-2712/latest/pieeprom-2025-03-10.bin b/firmware-2712/old/latest/pieeprom-2025-06-13.bin old mode 100644 new mode 100755 similarity index 78% rename from firmware-2712/latest/pieeprom-2025-03-10.bin rename to firmware-2712/old/latest/pieeprom-2025-06-13.bin index c39c5d7..6399ecf Binary files a/firmware-2712/latest/pieeprom-2025-03-10.bin and b/firmware-2712/old/latest/pieeprom-2025-06-13.bin differ diff --git a/firmware-2712/old/latest/pieeprom-2025-06-20.bin b/firmware-2712/old/latest/pieeprom-2025-06-20.bin new file mode 100644 index 0000000..9f7ce57 Binary files /dev/null and b/firmware-2712/old/latest/pieeprom-2025-06-20.bin differ diff --git a/firmware-2712/old/latest/pieeprom-2025-06-29.bin b/firmware-2712/old/latest/pieeprom-2025-06-29.bin new file mode 100644 index 0000000..ed28349 Binary files /dev/null and b/firmware-2712/old/latest/pieeprom-2025-06-29.bin differ diff --git a/firmware-2712/old/latest/pieeprom-2025-07-03.bin b/firmware-2712/old/latest/pieeprom-2025-07-03.bin new file mode 100644 index 0000000..2c026dd Binary files /dev/null and b/firmware-2712/old/latest/pieeprom-2025-07-03.bin differ diff --git a/firmware-2712/old/latest/recovery.bin b/firmware-2712/old/latest/recovery.bin deleted file mode 100644 index f72ad06..0000000 Binary files a/firmware-2712/old/latest/recovery.bin and /dev/null differ diff --git a/firmware-2712/release-notes.md b/firmware-2712/release-notes.md index 1e1d892..2f5e075 100644 --- a/firmware-2712/release-notes.md +++ b/firmware-2712/release-notes.md @@ -1,5 +1,99 @@ # Raspberry Pi5 bootloader EEPROM release notes +## 2025-07-17: Fix config key search which could cause camera_autodetect to fail (latest) + +* Fix config key search which could cause camera_autodetect to fail + The bootvar0 config property was added in the wrong section which + could cause the config property search for some other properties + to fail. + +## 2025-07-17: arm_loader: Also require the early-watchdog property (latest) + +* arm_loader: Also require the early-watchdog property + The change correcting the implementation of dtoverlay_is_enabled had the + unintended consequence of causing the firmware to enable the watchdog + even though the user had not explicitly requested it. This is harmless + on Linux because the watchdog driver takes over and disarms it, but on + other operating systems this can lead to a reboot. Avoid this problem + by also requiring the presence of a new property, "early-watchdog". + See: https://github.com/raspberrypi/firmware/issues/1980 +* helpers/config_loader: Add bootvar0 eeprom config that can be used in config.txt section expressions + This allows an eeprom config setting (e.g. BOOTVAR0=0x10) to be set on a board + which config.txt can use as a conditional expression (e.g. [bootvar0&0x10]). +* arm_loader: Fix boot-watchdog stop on Pi4 + Fix a problem where the boot_watchdog heartbeat timer was not + stopped correctly which could cause it to clash with the kernel + watchdog driver. + +## 2025-07-03: Enable firmware UART output on the 40-pin header (latest) + +* rp1_uart: Allow rp1_uart to be started earlier + If enabled (with enable_rp1_uart) then the existing boot uart + messages are redirected to the rp1 uart. + +## 2025-06-29: Check for SD card overcurrent on Pi5 and Pi500 (latest) + +* board_info: Use the Ethernet PHY address probed by the bootloader + Use the Ethernet PHY address supplied by the bootloader in + preference to the static configurations defined in start4.elf +* pi5: Fix overwrite of cache EEPROM config in secure-boot mode + See: https://github.com/raspberrypi/rpi-eeprom/issues/719 +* Check for SD card overcurrent on Pi5, Pi500 and Pi4 + Before booting, the bootloader now checks the SD power switch + overcurrent signal. The overcurrent signal occurs if the SD + card is damaged and has a short circuit which will cause it to + get hot. + If an over-current condition is detected the bootloader + switches off power to the SD card and waits five seconds before + probing the SD card again. This error is displayed on the + diagnostic screen, the UART and the activity LED (1 long, 2 short) + flashes. + The check can be switched to a non-blocking warning by setting + SD_OVERCURRENT_CHECK=0 in the bootloader config. +* Add a new error code pattern for SD overcurrent + Add a new error pattern (1 long, 2 short) to signal SD card + overcurrent. +* Enable RTC wakeup from POWER_OFF_ON_HALT=0 +* Improve HAT+ current handling + In shipping firmware, the current_supply value is only being used in the + case of a normal (non-stacked) HAT+, but that is unnecessarily + restrictive. Also, the presence of MODE0 and MODE1 power HATs is not + reflected in the value of max_current. + See: https://github.com/raspberrypi/linux/pull/6678 + +## 2025-06-20: Add support for a bootloader watchdog (latest) + +* Add support for a bootloader watchdog + Add support for a boot watchdog (using PM_RSTC hw wdog) which will + trigger if the OS is not started within the specified amount of time. The + watchdog is enabled by setting the BOOT_WATCHDOG_TIMEOUT=N (seconds) + property in the bootlaoder config. + The BOOT_WATCHDOG_PARTITION=P property can be set to pass a different + partition number to the bootloader on reset if the watchdog + is triggered. + The boot watchdog is automatically cleared just before starting + the OS and (optionally) enabling the kernel watchdog. +* pi5: Add a temperature monitor + In early releases of the bootloader the fan would always be on + during boot which can be distracting. Later releases switch off the + fan until the OS has booted. + This change adds some basic fan control from the bootloader to + enable the fan if the temperature is above 85C. + This may be useful if the Pi was shutdown by the OS because the + temperature limit was exceeded. + Since the Linux hwmon is not active at this stage the bootloader + now implements the same logic to power off the Pi if the chips + is more than 110C. + The PMIC hardware automatically cuts power if the temperature + is more than 125C. +* Skip first SD boot if no card detected + On platforms with an SD Card detect signal, skip the first attempt to + boot from SD if the card appears to be absent. This can save over a + second on a cold boot, and a little under a second for a reboot. + +## 2025-06-13: Update to include production test changes (latest) +* Update to include production test changes. + ## 2025-06-09: NVMe: Fix loading of files > 32MB (latest) * NVMe: Fix loading of files > 32MB