Compare commits

..

71 Commits

Author SHA1 Message Date
Tim Gover
c954a72f63 license: Update wildcards for firmware
Fixes: https://github.com/raspberrypi/rpi-eeprom/issues/665
2025-02-18 08:17:23 +00:00
Tim Gover
3679582b23 pieeprom-2025-02-12: 2712: Promote to default release 2025-02-17 16:01:28 +00:00
Tim Gover
1e5578b70c pieeprom-2025-02-11-2711: Promote to default release 2025-02-17 10:39:42 +00:00
Tim Gover
a1bffdeb5d pieeprom-2025-02-12: 2712: Fixup change to disable 3.7V WiFi power on CM5 no-wifi (latest)
* Fixup change to disable 3.7V PMIC output on CM5 no-wifi
2025-02-12 11:02:38 +00:00
Tim Gover
bad328a72e pieeprom-2025-02-11: 2711: 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.
2025-02-11 17:40:24 +00:00
Tim Gover
34eab17ce6 pieeprom-2025-02-11: 2712: 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)
  [ARG<VALUE]      selected if (ARG < VALUE)
  [ARG>VALUE]      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-02-11 17:31:10 +00:00
Tim Gover
0190dbc122 pieeprom-2025-01-27: 2712: Add PARTITION_WALK option (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-27 19:22:58 +00:00
Tim Gover
b67b21ddda imager: 2712: Move imager release to 2025-01-22 2025-01-22 16:36:34 +00:00
Tim Gover
9c95b83551 2025-01-22: 2712: Promote 2025-01-22 to default release (default) 2025-01-22 10:21:04 +00:00
Tim Gover
7918c84b4b pieeprom-2025-01-22: 2712: Add DT property for hash of signed boot image (latest)
* Add DT /chosen property signed-boot boot.img hash
  Make the sha256 hash of the boot.img file available via
  device-tree /proc/device-tree/chosen/bootloader/boot_img_sha256 if
  signed boot is enabled.
* filesystem: GPT autoboot/reboot partition number fixes for Pi4 and older
* Fix problems when setting arm_freq_min=arm_freq and display clocks
  if performance governor is not enabled.
2025-01-22 08:45:40 +00:00
Tim Gover
478ad485ca test: Update test script 2025-01-19 11:04:52 +00:00
Tim Gover
0944712c0a scripts: Failover to /usr/lib before /lib if FIRMWARE_ROOT is not set
Update the scripts to follow "merged-/usr" conventions by default
https://wiki.debian.org/UsrMerge
2025-01-18 20:12:03 +00:00
Tim Gover
cc58b7d6ce pieeprom-2025-01-14: 2712: Add set_reboot_order API (latest)
* Add set_reboot_order API and config.txt properties
  If set_reboot_order is defined in config.txt or set via vcmailbox
  then this will override the bootloader config BOOT_ORDER property
  on the next reboot. The parameter is stored in a reset safe register
  and is cleared by the bootloader after reading it.
  Typically, the config.txt value only be used via rpiboot to
  override the boot-order on the next reboot. Otherwise, it should
  reside in a conditional section so that the boot order is not
  overridden on every reboot.
  Example, test network boot
  sudo vcmailbox 0x0003808b 4 4 0xf4612; sudo reboot
2025-01-14 15:17:39 +00:00
andrum993
6a7ca681cb 2712 release-notes.md: correct name of new config parameter 2025-01-13 17:08:16 +00:00
Tim Gover
62292b43ad pieeprom-2025-01-13: 2712: Improved SDRAM refresh timings for Pi5 - 16GB (latest)
* Improved SDRAM refresh timings for Pi5 - 16GB
* Add an option to wait for the power button to be pressed before booting.
  If POWER_OFF_ON_HALT=1 and WAIT_FOR_POWER_BTN=1 in the bootloader
  config then the bootloader will wait for either the power button
  to be pressed or an RTC alarm before booting. The wait state
  switches the PMIC to STANDBY mode which is the lowest possible
  power state.
2025-01-13 10:11:55 +00:00
Tim Gover
54d9c333a9 pieeprom-2025-01-08: 2712: Update SDRAM timings for BCM2712D0 products (latest)
* Update SDRAM timings for BCM2712D0 products.
2025-01-08 18:07:33 +00:00
Tim Gover
edf686cd51 pieeprom-2025-01-07: 2712: Fixup M.2 HAT+ detection (latest)
* Fix a potential timing issue introduced in the 2025-01-06
  release when enabling PCIE_PWR when booting from SD/USB.
2025-01-07 17:26:47 +00:00
Tim Gover
888e374d47 pieeprom-2025-01-06: 2712: Stop the fan after fan-probe (latest)
* Stop the fan after after fan-probe
  After the fan-probe has completed drive the fan PWM GPIO
  to high if a fan was detected and let the OS take over.
* Add SD_QUIRKS for hardware bringup / workarounds
  Add a new SD_QUIRKS flags property which can be used to
  disable high-speed mode (bit 0). Other bits are reserved for
  future use.
* Change uart_2ndstage default to 1 on Pi5
  Change the default to 1 because this gives useful diagnostics
  for device-tree loading with minimal overhead. Set uart_2ndstage=0
  or BOOT_UART=0 to disable this.
* Move M.2 HAT+ detection to early boot.
  Initialse M.2 HAT+ detection before DDR init to give NVMe
  drive firmware more time to boot.
2025-01-06 17:43:42 +00:00
Tim Gover
f02f0eaf4e pieeprom-2024-12-19: 2712: Disable PWM fan at shutdown (POWER_OFF_ON_HALT=0) (latest)
* Disable fan PWM before shutdown
  Drive the RP1 fan PWM GPIO high before entering the VPU
  sleep (POWER_OFF_ON_HALT=0) to stop the fan spinning.
* Disable fan PWM GPIO between RP1 init and fan probe
  Drive fan PWM GPIO high during early boot to disable the fan
  until it is probed during the device-tree setup stage.
  This stops the spinning at max rpm during network-install.
* arm_dt: enable_uart defaults to 0 on 2712
  The default value of enable_uart on 2712 is 0, regardless of the
  presence of the debug UART cable, so guarantee that the default is
  always set correctly.
2024-12-19 12:05:43 +00:00
Tim Gover
4ba7cedf18 pieeprom-2024-12-15: 2712: Add net install to boot menu (latest)
* Add net install to boot menu
  Press N (or shift).
* enable_uart: Require enable_uart=1 to enable RP1 UART console
  See: https://github.com/raspberrypi/rpi-eeprom/issues/643
2024-12-16 09:13:08 +00:00
Tim Gover
6b431180b8 rpi-eeprom-update: Update user prompt to indicate how to install update immediately
Also, link to raspi-config as the mechanism for changing bootloader
update policies. raspi-config already provides a UI for selecting
the bootloader release streams and is the best place to provide
any other configuration options.
2024-12-12 13:52:31 +00:00
Tim Gover
adb3b9befc rpi-eeprom-config: Remove misleading message about cancelling updates
Flashrom is the default update mechanism on Pi5 and is not
cancellable. Remove this misleading message.
rpi-eeprom-update already has a message which knows about flashrom.
2024-12-12 13:52:31 +00:00
Phil Elwell
d57c084c9f bug_report template: Be more precise about the UART pins 2024-12-10 14:41:01 +00:00
Tim Gover
585ec185f2 rpi-eeprom-config: Increase default timeouts
Increase the delays to compensate for an (unlikely) retry loop
if flashrom reports an error.
2024-12-09 19:12:00 +00:00
Tim Gover
af0426b473 rpi-eeprom-update: Add retries and verification to flashrom stage
Retry flashrom updates on failure and explicitly verify the images.
So far, there haven't been any reports of flashrom failures but
retrying is the best course of action in case this failure ever
occurs.
2024-12-09 19:12:00 +00:00
Tim Gover
fe7bfc7201 pieeprom-2024-12-07: 2711: 2712: Enable NUMA by default (latest)
* Enable banklow (and so NUMA) by default
  banklow=1 (2712) and banklow=3 (2711) give the best performance.
* enable_uart=1 now enables a Linix UART console on the 40-pin header
  unless a cable is detected on the dedicated boot-uart.
* Recreate internal bl31 stub from clean git tree to fix dirty commit
  message.
2024-12-07 18:14:54 +00:00
Tim Gover
9621ef6a92 pieeprom-2024-11-27: 2712: rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM (latest)
* rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM
  RP1 firmware eb39cfd516f8c90628aa9d91f52370aade5d0a55 adds
  methods to drain the TX FIFO and retrieve the state of both FIFOs. It
  also fixes the CAN_ADD_PROGRAM implementation, which was fatally
  broken.
* network-install - Update the UI to display the board model / variant.
2024-11-27 17:30:53 +00:00
Tim Gover
4a7375bebe imager: Update 2712 imager release to 2024-11-12 2024-11-25 13:56:09 +00:00
Tim Gover
eefb7b83bc image: 2712: Update config for POWER_OFF_ON_HALT and NET_INSTALL_AT_POWER_ON
* The 2024-11-12 automatically sets the POWER_OFF_ON_HALT property
  according to the board-type so remove the override network install
  images.
* Set NET_INSTALL_AT_POWER_ON=1 by default which briefly display
  the network-install / boot-menu UI after a cold power-on.
  This can be switched off by removing the line
  either via "rpi-eeprom-config --edit" or the new menu in raspi-config
  Advanced Options.
2024-11-22 18:08:42 +00:00
Tim Gover
85e8a5924c imager: remove unused boot-conf-default.txt files 2024-11-22 18:08:42 +00:00
Tim Gover
d2f255b464 pieeprom: 2024-11-12-2712: Promote 2024-11-12 to default release (default)
* Promote 2024-11-12 to the default release and archive older versions.
2024-11-22 17:08:35 +00:00
Tim Gover
cc0ad4698e imager: gitignore: Ignore the imager build directories 2024-11-12 18:10:45 +00:00
Tim Gover
96349fe65c pieeprom: 2024-11-12-2712: Enable initial_turbo=60 by default (latest)
* net-install: Fix keyboard detection on hubs
* recovery: Always enable UART debug output on 2712
* Set POWER_OFF_ON_HALT defaults
  The default value for POWER_OFF_ON_HALT on CM5 and Pi 500 will be 1.
  Pi5 defaults to 0 for backwards compatibility.
* boot-time: Remove unnecessary 1 second delay when configuring DWC2 controller.
* Enable initial_turbo=60 by default
  This reduces the time to get load and decompress the kernel.
* logging: Remove superfluous newline on SDRAM refresh changed messages
* Fix initial_turbo duration
  The timeout counter for the previous implementation could run too quickly
  causing the initial-turbo timeout to end earlier than expected.
* rp1-fw: Add the mailbox firmware interface, and PIO support that uses it.
* rp1-fw: Turn off unused 25MHz Ethernet refclk
2024-11-12 18:10:45 +00:00
Tim Gover
8ff07213bc 2712: release-notes: Update note for min supported version 2024-11-08 11:37:19 +00:00
Rasmus Villemoes
c6b8de409d rpi-eeprom-digest: honour SOURCE_DATE_EPOCH
If used in a build environment that sets SOURCE_DATE_EPOCH, we should
honour that in order to generate reproducible binaries.

See https://reproducible-builds.org/specs/source-date-epoch/ .
2024-11-08 09:48:14 +00:00
Tim Gover
c873eecc28 2024-11-07: recovery.bin - Update default release to latest version (default)
* Update recovery.bin to the most recent version required for CM5
  (firmware version 2024-10-21)
2024-11-07 13:47:15 +00:00
Andrew Scheller
89e9c75bab Fix release-notes typo 2024-11-05 15:03:40 +00:00
Tim Gover
3eecae9975 pieeprom-2024-11-05: 2712: NUMA - Add system_heap.max_order=0 when needed (latest)
* NUMA - Add system_heap.max_order=0 when needed - configure this
  setting automtically depedning on whether NUMA is enabled.
2024-11-05 14:49:16 +00:00
Tim Gover
336e82cfb7 firmware: 2711: Archive firmware older than the last automatic update (2023-01-11) 2024-11-04 16:31:08 +00:00
Tim Gover
5d868a9d91 firmware: 2712: Archive old releases
Move everything older than the last automatic update (2024-09-23) to the
old firmware directory which is not included in the APT package. This
reduces the size of the APT updates.
2024-11-04 16:31:08 +00:00
Tim Gover
e9717985d2 pieeprom- 2024-10-21: 2712: 2711: 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-21 18:45:38 +01:00
Tim Gover
489a587f4a image: Add release-fw helper script
Add a simple utility script to help with the internal CI flow.
2024-10-21 18:45:38 +01:00
Tim Gover
f2e314d294 release-notes: Additional updates for the 2024-10-10 release 2024-10-15 08:45:34 +01:00
Tim Gover
3c822369be 2024-10-10: 2711: 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
2024-10-10 11:15:07 +01:00
Tim Gover
9d98c4af3b 2024-10-10: 2712: 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: fc45bc492d
* debug: Only display the program_pubkey log if configuring secure-boot
2024-10-10 11:15:07 +01:00
Andrew Scheller
f4996a1952 Add missing 'sudo' to rpi-eeprom-config's help-text 2024-10-09 09:31:36 +01:00
Harry Horsperg
50a3aa3d42 Update release-notes.md
Fixed a typo in release notes. :-)
2024-09-26 16:55:26 +01:00
Tim Gover
c8fffcda5a 2024-09-24: 2712: Promote 2024-09-23 release (default) (automatic update) 2024-09-24 13:41:01 +01:00
Tim Gover
2bdaadd0b4 pieeprom-2024-09-23: 2712: SDRAM performance tuning (latest)
* Allow BANKLOW to be configured by SDRAM_BANKLOW parameter
* Manufacturing test updates
2024-09-23 14:26:28 +01:00
Tim Gover
8bec2593aa imager: 2712: Move to the 2024-09-10 release 2024-09-23 14:26:28 +01:00
Tim Gover
d05f05c94f rpi-eeprom-config: Increase the timeout for flashrom shell-cmd
20 seconds is a little too short for safety with flashrom if every
page has to be erased and re-written. Bump this to 60 seconds
which is probably too long but nothing good will come from
interrupting flashrom.
2024-09-16 10:55:14 +01:00
Tim Gover
d53e3dd4b1 pieeprom-2024-09-10: 2712: Fix filename 2024-09-11 21:21:01 +01:00
andrum993
ab8698afa0 2712 release-notes.md: fix typo 2024-09-11 15:03:00 +01:00
Tim Gover
e6026c8d4e pieeprom-2024-10-09: 2712: Promote to default release (automatic update) 2024-09-11 14:43:47 +01:00
Tim Gover
171e47acb1 2024-09-10: 2712: Fix lockup on 7" DSI panel clones (latest)
* Fix lockup regression with some 3rd party 7" DSI panels
  See: https://github.com/raspberrypi/linux/issues/6341
2024-09-10 16:26:54 +01:00
Nicolai Buchwitz
ccfc47b215 Fix docs link to CM4 bootloader
Signed-off-by: Nicolai Buchwitz <nb+github@tipi-net.de>
2024-09-07 12:08:33 +01:00
andrum993
6a0b84c0d1 Update release-notes.md
Clarify rp1 earlycon instructions, typos.
2024-09-06 09:19:17 +01:00
Tim Gover
40134bc34b pieeprom-2024-09-05: 2712: 2711: 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.
* recovery.bin - Fix erase_eeprom to not block reboot_recovery
* Fix self-update to continue to boot instead of retrying forever
  if the EEPROM is write protected.
  https://github.com/raspberrypi/rpi-eeprom/issues/597
2024-09-05 22:07:04 +01:00
Tim Gover
5f28534e85 image: Update 2712 release to 2024-07-30 2024-09-05 13:41:00 +01:00
Tim Gover
ef2fc67d23 pieeprom: 2024-07-30: 2712: Promote the 2024-07-30 release to default (default) 2024-08-15 16:55:37 +01:00
Tim Gover
3fe49842bc 2024-08-14 - (recovery.bin) Add support for OTP metadata (latest)
Update the recovery.bin firmware with support for retrieving
OTP meta-data (e.g. boardrev, mac addr etc) during rpiboot
provisioning.
2024-08-15 16:55:37 +01:00
Tim Gover
4c5aebdb20 2024-08-14 - (recovery.bin) Add support for OTP metadata (latest)
Update the recovery.bin firmware with support for retrieving
OTP meta-data (e.g. boardrev, mac addr etc) during rpiboot
provisioning.
2024-08-15 16:05:58 +01:00
andrum993
66d569e2c5 BCM2712 release-notes.md - correct notes for most recent 2 releases
- 2024-07-30 is marked `default` here, but the image is actually in `latest`

- 2024-07-25 doesn't specify default or latest - fix that

(Aside: neither seem to have found their way to apt yet).
2024-08-15 16:02:19 +01:00
andrum993
f368cd9438 Update release-notes.md 2024-08-14 13:01:53 +01:00
andrum993
63fca1c2a1 release-notes.md: update heading formatting for older releases
Notes for new releases have level 2 heading markup: extend this to older releases as well, to make things a bit more readable for older releases.
2024-08-14 13:01:53 +01:00
Tim Gover
945d708fd0 pieeprom-2024-07-30: 2712: Optimized SDRAM timings for Pi5 8GB (latest)
* Optimize all-banks/per-bank refresh timings for Pi5 8GB
* Improve compatibility for booting from some USB SD card readers
    https://github.com/raspberrypi/rpi-eeprom/issues/527
* Add enable_rp1_uart=1 to config.txt to initialise RP1 UART0 immediately
  prior to starting the ARMs get earlycon on 40-pin header (pins 14,15)
  Also requires pciex4_reset=0 in config.txt
  earlycon=pl011,0x1f00030000,115200n8
2024-07-30 17:31:39 +01:00
Tim Gover
f7aa474cb2 pieeprom-2024-07-30: 2711: USB boot fixes for CM4-S and interop improvments (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
    https://github.com/raspberrypi/rpi-eeprom/issues/527
2024-07-30 15:54:30 +01:00
Tim Gover
132ad70437 rpi-eeprom-update: Don't display the cancel/revert message in flashrom mode
It's not possible to cancel an update via flashrom because it's
already happened.
2024-07-29 14:13:01 +01:00
Tim Gover
d2979963b3 rpi-eeprom-digest: Fix help text regarding secure-boot support 2024-07-29 14:11:24 +01:00
Tim Gover
be8232be75 2024-07-05: 2711: (recovery.bin) - Enable program_rpioboot_gpio - (latest)
* Enable the usage of program_rpiboot_gpio in config.txt for recovery.bin
  without requiring secure-boot to be enabled.
  This may be useful CI systems provisioning images on Pi4B / Pi400 via RPIBOOT.
  This is an OTP setting and cannot be reverted after programming.

  See https://www.raspberrypi.com/documentation/computers/config_txt.html#program_rpiboot_gpio
2024-07-25 18:24:56 +01:00
Tim Gover
634b49c9dd pieeprom-2024-07-25: 2712: Support CM4 nEXTRST on CM5
* Drive nEXTRST on CM5 for CM4IO compatibility.
* Preliminary changes for CM5 Lite.
2024-07-25 16:47:38 +01:00
138 changed files with 577 additions and 65 deletions

View File

@@ -80,7 +80,7 @@ body:
attributes:
label: Bootloader logs
description: |
If the problem can't be diagnosed from the bootloader HDMI diagnostics screen then we'll normally need to see more detailed logs to diagnose the problem. The bootloader and GPU firmware can be configured to enable log output to the UART pins `14` and `15` on the [40-pin GPIO header](https://www.raspberrypi.com/documentation/computers/os.html#gpio-and-the-40-pin-header)
If the problem can't be diagnosed from the bootloader HDMI diagnostics screen then we'll normally need to see more detailed logs to diagnose the problem. The bootloader and GPU firmware can be configured to enable log output to the UART (GPIOs `14` and `15`, pins `8` and `10` on the [40-pin GPIO header](https://www.raspberrypi.com/documentation/computers/os.html#gpio-and-the-40-pin-header, or on the Debug header on a Pi 5)
* To enable UART logging from the bootloader specify [BOOT_UART=1](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_UART) in the EEPROM config
* To enable UART logging from the `start.elf` GPU firmware stage add [uart_2ndstage=1](https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage) to `config.txt`.
* If you are familiar with using Wireshark then it's also possible to use [NETCONSOLE](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#NETCONSOLE) write logs to UDP packets.

View File

@@ -6,10 +6,14 @@ Files: *
Copyright: 2019, Raspberry Pi (Trading) Ltd.
License: BSD-3
Files: firmware/*
Files: firmware-2711/*
Copyright: 2019, Raspberry Pi (Trading) Ltd.
License: custom
Files: firmware-2712/*
Copyright: 2024, Raspberry Pi (Trading) Ltd.
License: custom
License: BSD-3
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions

View File

@@ -11,5 +11,5 @@ To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https
* [Config.txt boot options](https://www.raspberrypi.com/documentation/computers/config_txt.html#boot-options)
* [Bootloader EEPROM](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-boot-eeprom)
* [Bootloader configuration](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-bootloader-configuration)
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader)
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#update-the-compute-module-bootloader)
* [Releases and release notes](releases.md)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +0,0 @@
../beta/pieeprom-2020-04-16.bin

Binary file not shown.

View File

@@ -1 +0,0 @@
../beta/vl805-000137ad.bin

Binary file not shown.

View File

@@ -1 +0,0 @@
../beta/pieeprom-2020-04-16.bin

Binary file not shown.

View File

@@ -1 +0,0 @@
../beta/vl805-000137ad.bin

Binary file not shown.

View File

@@ -1,5 +1,109 @@
# Raspberry Pi4 bootloader EEPROM release notes
## 2025-02-17: Promote 2025-02-11 to default release (default)
## 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
banklow=1 (2712) and banklow=3 (2711) give the best performance.
## 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.
* recovery.bin - Fix erase_eeprom to not block reboot_recovery
* Fix self-update to continue to boot instead of retrying forever
if the EEPROM is write protected.
https://github.com/raspberrypi/rpi-eeprom/issues/597
## 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 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
https://github.com/raspberrypi/rpi-eeprom/issues/527
## 2024-07-05 (recovery.bin) - Enable program_rpioboot_gpio - (latest)
* Enable the usage of program_rpiboot_gpio in config.txt for recovery.bin
without requiring secure-boot to be enabled.
This may be useful CI systems provisioning images on Pi4B / Pi400
via RPIBOOT.
This is an OTP setting and cannot be reverted after programming.
See https://www.raspberrypi.com/documentation/computers/config_txt.html#program_rpiboot_gpio
## 2024-05-17 - Ignore bootloader updates for Pi5 on Pi4 - (latest)
* Add timestamps to UART log messages.
* Add support for [tryboot] conditional the bootloader EEPROM

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More