Compare commits

..

560 Commits

Author SHA1 Message Date
Tim Gover
23ca472db4 pieeprom-2026-01-09: 2711: Promote to the default release 2026-01-13 22:19:54 +00:00
Tim Gover
d67a756153 pieeprom-2026-01-09: 2711: arm_loader: Apply rpifwcrypto lock permissions GET/SET USER OTP (latest)
* arm_loader: Apply rpifwcrypto lock permissions GET/SET USER OTP
  Previously, the GET/SET user OTP mailboxes would provide access to the
  device unique private key. Update the mailbox API to fail if the
  key has been locked via lock_device_private_key=1 in config.txt or
  the associated mailbox call.
  GET/SET user OTP fails by setting the result tag to the standard
  error code (0x80000000). The dedicate GET/SET private key continue
  to fail the entire mailbox operation to force vcmailbox to exit
  with a non-zero error code.
* cm5: Add support for 8-bit bus width eMMC
* Query all sdram devices for temperature when adjusting refresh
* Add support for more SDRAM die configurations.
2026-01-09 17:32:13 +00:00
Tim Gover
9e9a954772 rpi-eeprom-config: Use time.monotonic for timeouts instead of wall clock
See: https://github.com/raspberrypi/rpi-eeprom/issues/790
2025-12-16 12:17:13 +00:00
Tim Gover
c77d47cbec imager: make-imager-release: Automatically select latest default EEPROM date
See: https://github.com/raspberrypi/rpi-eeprom/issues/788
2025-12-12 11:23:34 +00:00
Tim Gover
cb1a22eff0 pieeprom-2025-12-08: 2712: 2711: Promote to the default release 2025-12-09 09:40:24 +00:00
Tim Gover
ba4371dd8a pieeprom-2025-12-08: 2712: arm_loader: Add machine ID derived from OTP values (latest)
* arm_loader: Add machine ID derived from OTP values
  Machine ID is generated and exposed in device tree as rpi-machine-id
* arm_ldconfig: Avoid double os_prefix on initramfs
  When using auto_initramfs we were picking up prefix from the kernel,
  but also adding os_prefix later:
  fname = prefixed_path(initramfs_file, os_prefix, temp_path, sizeof(temp_path));
  See: https://forums.raspberrypi.com/viewtopic.php?t=394238
2025-12-08 19:45:07 +00:00
Tim Gover
907c5a672a pieeprom-2025-12-08: 2711: Add machine ID derived from OTP values (latest)
* arm_loader: Add machine ID derived from OTP values
  Machine ID is generated and exposed in device tree as rpi-machine-id
* arm_ldconfig: Avoid double os_prefix on initramfs
  When using auto_initramfs we were picking up prefix from the kernel,
  but also adding os_prefix later:
  fname = prefixed_path(initramfs_file, os_prefix, temp_path, sizeof(temp_path));
  See: https://forums.raspberrypi.com/viewtopic.php?t=394238
* recovery: Use OTP rpiboot GPIO if non-zero
  If an rpiboot GPIO has already been written to OTP then default to
  that value if C(program_rpiboot_gpio) is not specified on config.txt.
2025-12-08 19:37:21 +00:00
Tim Gover
68774da0be pieeprom-2025-11-27: 2711: helpers/config_loader: Also support bootvar0 eeprom config on Pi4 (latest)
* helpers/config_loader: Also support bootvar0 eeprom config on Pi4
  This allows an eeprom config setting (e.g. BOOTARG0=0x10) to be set on a board
  which config.txt can use as a conditional expression (e.g. [bootarg0&0x10]).
* pi5: Write over-voltage config to the UART log
  Write the high level over-voltage configuration to the UART log for
  diagnostic purposes.
* Stop partition-walk after boot-mode timeout/retries limit
  Fix a fatal assert with USB boot where the partition walk could be
  retried after the USB timeout/retry limit had been reached.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/776
* rpiboot: Extend metadata to report status of operations
  Report success/fail status of recovery operations based on config.txt settings
2025-11-27 16:13:42 +00:00
Tim Gover
1c83bfc5b2 pieeprom-2025-11-27: 2712: Stop partition-walk after boot-mode timeout/retries limit (latest)
* pi5: Write over-voltage config to the UART log
  Write the high level over-voltage configuration to the UART log for
  diagnostic purposes.
* Stop partition-walk after boot-mode timeout/retries limit
  Fix a fatal assert with USB boot where the partition walk could be
  retried after the USB timeout/retry limit had been reached.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/776
* rpiboot: Extend metadata to report status of operations
  Report success/fail status of recovery operations based on config.txt settings
2025-11-27 16:09:39 +00:00
Andrew Scheller
0f936ff2e2 Fix remaining typo 2025-11-24 17:42:39 +00:00
Phil Elwell
91e7eb5708 tools: imager: make-pi4-rpiboot-gpio-sd: Minor typos 2025-11-24 17:38:00 +00:00
Tim Gover
eed4273686 tools: imager: Add make-pi4-rpiboot-gpio-sd
Add new utility which creates a SD card image for programming
the rpiboot GPIO OTP option on a Pi 4 or Pi 400.

Example:
sudo imager/make-pi4-rpiboot-gpio-sd 6

Creates images-2711/pi4-program-rpiboot-gpio6.zip which can
be flashed to a spared SD card with Raspberry Pi Imager. This
will select GPIO 6 for use as the rpiboot GPIO.
2025-11-24 17:09:42 +00:00
Tim Gover
801aeb77c5 pieeprom-2025-11-21: 2711: recovery: Restore recovery_wait option (latest)
* recovery: Restore recovery_wait option
  Restore the recovery_wait config.txt option. If this option is set
  then recovery.bin will not rename itself or reboot. Instead flash
  the activity LED on completion.
  This option can be useful when creating an SD card to erase the
  EEPROM or program the RPIBOOT gpio on multiple devices.
  If recovery_wait=1 and recovery.bin is run from the SD card then
  indicate success of erase_eeprom=1 or program_rpiboot_gpio=N was
  set instead of requiring the EEPROM to be updated.
* Manufacture test updates for SDRAM.
2025-11-21 14:15:45 +00:00
Tim Gover
12fde4b848 pieeprom-2025-11-21: 2712: Allow longer overlay file paths (latest)
* recovery: Restore recovery_wait option
  Restore the recovery_wait config.txt option. If this option is set
  then recovery.bin will not rename itself or reboot. Instead flash
  the activity LED on completion.
  This option can be useful when creating an SD card to erase the
  EEPROM or program the RPIBOOT gpio on multiple devices.
  If recovery_wait=1 and recovery.bin is run from the SD card then
  indicate success of erase_eeprom=1 or program_rpiboot_gpio=N was
  set instead of requiring the EEPROM to be updated.
* Load RP1 firmware whilst DDR is initialising
* Allow longer overlay file paths
  load_dtoverlay uses the variable "filename" to hold the full path to an
  overlay. As such it should be declared using LDFILEPATH_MAX, not
  LDFILENAME_MAX.
  See: https://github.com/raspberrypi/firmware/issues/2004
2025-11-21 13:40:43 +00:00
Tim Gover
f38dbcb723 imager: Delete temporary release-2711, release-2712 directories
Update make-imager-release to remove the release-CHIP directories
which contain the plain .zip files. These are used as the input
to make-recovery-images which are disk images.
RPi Imager expects to download disk-images rather than .zips so
remove the temporary directories to avoid confusion.

See: https://github.com/raspberrypi/rpi-eeprom/issues/770
2025-11-11 20:02:41 +00:00
Lincoln Thurlow
1c92bb9bc3 Fix the error message for config signing
When the user runs rpi-eeprom-config to sign a bootloader image,
if the image is not the correct size, the error message returns
a tautology:

rpi-eeprom-config -c boot.conf -p /tmp/rpi-pubkey.pem \
-o pieeprom.upd /tmp/downloaded-boot.img

ERROR: /tmp/downloaded-boot.img: \
Expected size 62914560 bytes actual size 62914560 bytes

When it should be alerting the user that there are only two
valid values for a bootloader size.  My MR addresses this issue
by returning the acceptable values for the bootloader size in the
image.

./rpi-eeprom-config -c boot.conf -p /tmp/rpi-pubkey.pem \
-o pieeprom.upd /tmp/downloaded-boot.img

ERROR: /tmp/downloaded-boot.img: \
Expected sizes [524288, 2097152] bytes, got actual size 62914560 bytes

Signed-off-by: Lincoln Thurlow <lincoln@isi.edu>
2025-11-11 19:52:32 +00:00
Tim Gover
c6a755543e imager: Move the imager release to 2025-11-05 2025-11-10 09:20:48 +00:00
Tim Gover
291e4c2f36 2025-11-09: Promote 2025-11-05 to the default release (default) 2025-11-09 11:31:53 +00:00
Tim Gover
e7504bafda pieeprom-2025-11-05: 2712: arm_loader: Add iommu_dma_numa_policy=interleave when needed (latest)
* arm_loader: Add iommu_dma_numa_policy=interleave when needed
  This applies a similar numa interleave for iommu dma kernel allocations.
  This includes buffers allocated for hevc and v3d.
  See: https://forums.raspberrypi.com/viewtopic.php?t=392666
* Rebuild RP1 firmware to reduce size.
2025-11-05 19:00:13 +00:00
Tim Gover
32f795a171 pieeprom-2025-11-05: 2711: arm_loader: Add iommu_dma_numa_policy=interleave when needed (latest)
* arm_loader: Add iommu_dma_numa_policy=interleave when needed
  This applies a similar numa interleave for iommu dma kernel allocations.
  This includes buffers allocated for hevc and v3d.
  See: https://forums.raspberrypi.com/viewtopic.php?t=392666
2025-11-05 17:40:03 +00:00
Tim Gover
11403637b1 pieeprom-2025-10-17: Enable background refresh on 2712d0 for all SDRAM sizes (latest)
* 2712d0: Enable background refresh on 2712d0 for all SDRAM sizes
  This provides a minor performance benefit.
* Update GPT to support 4K native sectors
  Bootloader logic updated to correctly interpret the GPT layout format specific to 4K native sector drives.
* recovery: Use ROM boot-mode flag to detect rpiboot mode
  In recovery-mode use the bootrom register flag to detect the
  original boot-mode rather than looking at whether the rpiboot
  usb-device boot driver is initialised.
2025-10-17 15:30:44 +01:00
Tim Gover
14b22f02bc pieeprom-2025-10-14: 2711: Use ROM boot-mode flag to detect rpiboot mode (latest)
* recovery: Use ROM boot-mode flag to detect rpiboot mode
  In recovery-mode use the bootrom register flag to detect the
  original boot-mode rather than looking at whether the rpiboot
  usb-device boot driver is initialised.
* Manufacturing test updates.
2025-10-14 17:45:04 +01:00
Tim Gover
229347e811 pieeprom-2025-10-08: 2712: Fix accidental set of PM_RSTS bit 5 when stopping watchdog (latest)
* Fix accidental set of PM_RSTS bit 5 when stopping watchdog
  Fix an issue in the watchdog code where the raw PM_RSTS value
  was used as partition number. If HADWRF (bit 5) was set (on reboot)
  this could cause bit 10 to be set. If an OS didn't clear the partition
  flags on reboot then this could end up being treated as request to
  boot from partition 32.
* pi5: Preliminary support for 4K native sectors with NVMe drives
  Pi5 now supports 4K native sector NVMe drives.
  This allows booting from drives with logical block size 4096,
  while 512B drives remain compatible. With 4K sectors, storage density
  increases along with improved reliability and efficiency.
  N.B. USB boot still requires a 512 byte sector size and there are
  no RPi OS disk images with a 4K sector format.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/577
* arm_dt: Report OTP SDRAM size via device-tree
  Report the SDRAM in gigabits via device-tree as
  /proc/device-tree/chosen/rpi-sdram-size-gbit. Scripts reporting the
  device-capabilities should use this value (if defined) instead of the
  memory-size field in the boardrev row.
2025-10-08 18:03:53 +01:00
Tim Gover
182cdabfe0 pieeprom-2025-10-08: 2711: Fix accidental set of PM_RSTS bit 5 when stopping watchdog (latest)
* Fix accidental set of PM_RSTS bit 5 when stopping watchdog
  Fix an issue in the watchdog code where the raw PM_RSTS value
  was used as partition number. If HADWRF (bit 5) was set (on reboot)
  this could cause bit 10 to be set. If an OS didn't clear the partition
  flags on reboot then this could end up being treated as request to
  boot from partition 32.
2025-10-08 17:23:41 +01:00
Tim Gover
24a4ec1a23 pieeprom-2025-10-03: 2711: arm_dt: Report OTP SDRAM size via device-tree (latest)
* arm_dt: Report OTP SDRAM size via device-tree
  Report the SDRAM in gigabits via device-tree as
  /proc/device-tree/chosen/rpi-sdram-size-gbit. Scripts reporting the
  device-capabilities should use this value (if defined) instead of the
  memory-size field in the boardrev row.
* Apply UART_BAUD in early bootsys UART init
  Update bootsys and fatal error handlers to use the user
  defined UART_BAUD rate.
* rpifwcrypto: Add support for ECDSA P-256 key generation
  Also, slightly improve the entropy by passing the system
  timer value as the personality string.
2025-10-03 11:45:36 +01:00
Tim Gover
2164519657 pieeprom-2025-09-25: 2712: Apply UART_BAUD in early bootsys UART init (latest)
* Apply UART_BAUD in early bootsys UART init
  Update bootsys and fatal error handlers to use the user
  defined UART_BAUD rate.
* rpifwcrypto: Add support for ECDSA P-256 key generation
2025-09-25 21:57:47 +01:00
Tim Gover
b818b44bd5 pieeprom-2025-09-23: 2712: Fix TFTP to allow larger files (latest)
* Fix TFTP to allow larger files
  Allow TFTP block counter to rollover to 0.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/720
2025-09-23 13:26:42 +01:00
Tim Gover
430834f34b pieeprom-2025-09-23: 2711: Fix network install regression on Pi4 (latest)
* Fix network install regression on Pi4
  Fix an issue with the ECDSA signature code which caused network
  install to fail to load on Pi4.
* Fix TFTP to allow larger files
  Allow TFTP block counter to rollover to 0.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/720
2025-09-23 10:05:14 +01:00
Tim Gover
dc781dbbf1 pieeprom-2025-09-22: 2711: Add LZ4 decompressor (latest)
* Add LZ4 decompressor
  LZ4 gives a better compression ratio than the previously used CK compress. The bootloader can now decompress both LZ4 compressed files and CK compressed files.
* rpifwcrypto: Add GET_CRYPTO_PRIVATE_KEY mailbox API
  For provisioning, add a new mailbox API which returns the private key
  in DER format. The API will return an error if the key-status for
  the specified key is LOCKED.
* config: Add support for board_attributes in conditional expressions
  Add support for the board-attributes row in config.txt conditional
  expressions. This can be used to change boot behavior for
  Compute Module Lite / No-WiFi etc.
* board_info: Log the OTP board revision at startup
  Log the board revision plus the raw OTP value at startup.
2025-09-22 15:10:25 +01:00
Tim Gover
8fb396f650 pieeprom-2025-09-22: 2712: Add LZ4 decompressor (latest)
* Add LZ4 decompressor
  LZ4 gives a better compression ratio than the previously used CK compress. The bootloader can now decompress both LZ4 compressed files and CK compressed files.
* rpifwcrypto: Add GET_CRYPTO_PRIVATE_KEY mailbox API
  For provisioning, add a new mailbox API which returns the private key
  in DER format. The API will return an error if the key-status for
  the specified key is LOCKED.
* config: Add support for board_attributes in conditional expressions
  Add support for the board-attributes row in config.txt conditional
  expressions. This can be used to change boot behavior for
  Compute Module Lite / No-WiFi etc.
* board_info: Log the OTP board revision at startup
  Log the board revision plus the raw OTP value at startup.
2025-09-22 13:53:55 +01:00
Andrew Scheller
360324a17e Add link to old 2712 EEPROM images to releases.md page 2025-09-01 09:34:18 +01:00
Tim Gover
f45ed23714 pieeprom-2025-08-27: 2712: Fix PARTITION property to allow default (0) partition to be overridden (latest)
* Fix PARTITION property to allow default (0) partition to be overridden
  Fix the partition selection to allow the bootloader PARTITION
  property to override the reboot partition number if the reboot
  argument is 0 or > 31. Previously, it was only allowing
  partition numbers > 31 to be overridden.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/743
* Enable RPIBOOT in BOOT_ORDER / set-reboot-order
  Previously, rpiboot required the bootrom to have initialised
  rpiboot before running the firmware. Update the rpiboot
  initialisation so that rpiboot to be enabled after booting from
  SPI flash.
  This could be selectively enabled by setting BOOT_ORDER property
  (0x3) behind a GPIO conditional in the EEPROM config. On Pi5, the
  set_reboot_order config.txt option or mailbox property can be
  used to set a one-time boot-order on
  N.B. There is no timeout for RPIBOOT so this should only be set
  as the last boot mode OR used with a boot_watchdog.
2025-08-27 20:11:29 +01:00
Tim Gover
581437bcee pieeprom-2025-08-27: 2711: Fix PARTITION property to allow default (0) partition property to be overridden (latest)
* Fix PARTITION property to allow default (0) partition to be overridden
  Fix the partition selection to allow the bootloader PARTITION
  property to override the reboot partition number if the reboot
  argument is 0 or > 31. Previously, it was only allowing
  partition numbers > 31 to be overridden.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/743
* Enable RPIBOOT in BOOT_ORDER / set-reboot-order
  Previously, rpiboot required the bootrom to have initialised
  rpiboot before running the firmware. Update the rpiboot
  initialisation so that rpiboot to be enabled after booting from
  SPI flash.
  This could be selectively enabled by setting BOOT_ORDER property
  (0x3) behind a GPIO conditional in the EEPROM config. On Pi5, the
  set_reboot_order config.txt option or mailbox property can be
  used to set a one-time boot-order on
  N.B. There is no timeout for RPIBOOT so this should only be set
  as the last boot mode OR used with a boot_watchdog.
2025-08-27 20:02:09 +01:00
Tim Gover
1793f5c4ba rpi-otp-private-key: Fix missing escape character in usage text 2025-08-21 18:51:35 +01:00
Tim Gover
7afa893027 rpi-otp-private-key: Describe how to store an ECDSA P-256 private key
The Raspberry Pi firmware cryptography service requires a valid
ECDSA P-256 key instead of a plain random number. Update the usage
instructions for key-provisioning to use this key type as the example.
2025-08-20 17:01:05 +01:00
Tim Gover
796f883413 pieeprom-2025-08-20: 2712: force_eeprom_read=0 disables HAT I2C (latest)
* force_eeprom_read=0 disables HAT I2C
  Although setting force_eeprom_read=0 has always prevented the HAT EEPROM
  from being read, with the recent changes to support Power HAT+s it does
  not prevent an early scan to see if such an EEPROM exists. This can be
  problematic for applications where the I2C0 pins have been repurposed.
  Change the inhibit logic to cut all HAT I2C probing off at the knees,
  including any automatic settings of usb_max_current_enable, as it should
  always have done.
  See: https://github.com/raspberrypi/firmware/issues/1985
* rpifwcrypto: Preliminary firmware support for rpifwcrypto API
* Add config.txt to block GET_CUSTOMER_PRIVATE_KEY mailbox API lock_device_private_key=1
2025-08-20 17:00:46 +01:00
Tim Gover
513ab6e11c pieeprom-2025-08-20: 2711: Fix PARTITION_WALK for missing start.elf files (latest)
* Fix PARTITION_WALK for missing start.elf files
  Fix a missing call to bootloader_reset_state so that PARTITION_WALK
  will work if the boot-partition is FAT, contains config.txt etc
  but does not have valid firmware.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/738
* force_eeprom_read=0 disables HAT I2C
  Although setting force_eeprom_read=0 has always prevented the HAT EEPROM
  from being read, with the recent changes to support Power HAT+s it does
  not prevent an early scan to see if such an EEPROM exists. This can be
  problematic for applications where the I2C0 pins have been repurposed.
  Change the inhibit logic to cut all HAT I2C probing off at the knees,
  including any automatic settings of usb_max_current_enable, as it should
  always have done.
  See: https://github.com/raspberrypi/firmware/issues/1985
* bootcode.bin: Add support for boot.img ramdisk on Pi3 and earlier
  Add support for boot.img ramdisk support, enable by adding boot_ramdisk=1
  in config.txt
* rpifwcrypto: Preliminary firmware support for rpifwcrypto API
* Add config.txt to block GET_CUSTOMER_PRIVATE_KEY mailbox API
  lock_device_private_key=1
2025-08-20 16:57:36 +01:00
Tim Gover
4ee3f273eb rpi-eeprom-config: Improve No space available error message
Improve the error handler for the case where the new EEPROM config
exceeds the amount of available free space. Display the filename,
new size and space available.

N.B The 2711/pieeprom-2025-08-13.bin restores the free space to a
little of 4KB again.

See: https://github.com/raspberrypi/rpi-eeprom/issues/732
2025-08-18 10:07:37 +01:00
Tim Gover
6f692d1d7b pieeprom-2025-08-13: 2712: Enable the PARTITION_WALK property by default (latest)
* Enable the PARTITION_WALK property by default
  Previously, the new PARTITION_WALK which searches for bootable
  partitions after a failure had to be explicitly enabled. Change
  the default to be enabled by default. It can be switched off by
  setting PARTITION_WALK=0 in the EEPROM config.
* pi5: Fix read for cached copy of PMIC sequencer status
  Previously, this was overwritten by the RTC event status.
2025-08-13 15:26:40 +01:00
Tim Gover
a9ad05065b pieeprom-2025-08-13: 2711: Enable PARTITION_WALK property by default (latest)
* Enable the PARTITION_WALK property by default
  Previously, the new PARTITION_WALK which searches for bootable
  partitions after a failure had to be explicitly enabled. Change
  the default to be enabled by default. It can be switched off by
  setting PARTITION_WALK=0 in the EEPROM config.
* Optimise bootmain for size on Pi4
  Pi4 only has a 512KB SPI flash EEPROM and the addition of features
  plus fixes is now causing contention for space between the code and
  the EEPROM config. Since bootmain is only responsible for loading
  start.elf revert to the original configuration which is optimised
  for size rather than speed. Pi5 continues to be optimised for speed.
2025-08-13 15:12:30 +01:00
Tim Gover
2349daafac pieeprom-2025-07-17: 2712: 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 17:37:39 +01:00
Tim Gover
0b8a0229df release-notes: s/bootarg0/bootvar0/ 2025-07-17 09:56:41 +01:00
Tim Gover
98b77d5fdd pieeprom-2025-07-17: 2711: 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. BOOTARG0=0x10) to be set on a board
  which config.txt can use as a conditional expression (e.g. [bootarg0&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-17 09:54:16 +01:00
Tim Gover
fb562ab467 pieeprom-2025-07-17: 2712: 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. BOOTARG0=0x10) to be set on a board
  which config.txt can use as a conditional expression (e.g. [bootarg0&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-17 09:52:43 +01:00
Tim Gover
37ee92a8b6 2711: Archive releases older than 2025-05-08
Reduce the size of the APT package by moving Pi5 releases older than
2025-05-08 to the firmware-2711/old folder
2025-07-03 16:27:48 +01:00
Tim Gover
dd984a26db pieeprom-2025-07-03: 2711: 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-07-03 16:27:48 +01:00
Tim Gover
0f9da57ffe 2712: Archive releases older than 2025-05-08
Reduce the size of the APT package by moving Pi5 releases older than
2025-05-08 to the firmware-2712/old folder
2025-07-03 16:06:29 +01:00
Tim Gover
ab4c1994f3 pieeprom-2025-07-03: 2712: 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-07-03 16:02:21 +01:00
Tim Gover
54f04c2209 pieeprom-2025-06-29: 2712: 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-30 10:25:09 +01:00
Tim Gover
20deeae5ea pieeprom-2025-06-20: 2712: 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-20 14:44:34 +01:00
Tim Gover
1721eb42b7 pieeprom-2025-06-13: 2712: Update to include production test changes (latest) 2025-06-13 16:50:40 +01:00
Tim Gover
df532a02dc pieeprom-2025-06-09: 2712: NVMe: Fix loading of files > 32MB (latest)
* NVMe: Fix loading of files > 32MB
  Fix an NVMe boot bug which caused large contiguous reads >= 32MB to fail
* Update setting alpha for 2712D0
  D0 moved the alpha blend mode from CTL2 to CTL0.
  Update the bootloader code to follow suit for those using
  the simple framebuffer
* dtoverlay: Fix node_is_enabled for implicit status
  The absence of a status property implies that a node is enabled. Update
  dtoverlay_node_is_enabled to match that behaviour.
  See: https://github.com/raspberrypi/firmware/issues/1970
* arm_loader: GET_CLOCKS: Set useful response length
  The kernel's firmware mailbox API does not make the actual length of the
  response available to clients, but other implementations may care.
  Continue to pad the GET_CLOCKS buffer with zeroes, but set the response
  length to minimally contain the useful content.
  See: https://github.com/raspberrypi/firmware/issues/1969
2025-06-09 12:05:49 +01:00
Tim Gover
fd7c832383 2711: release-notes: Add (automatic) tag 2025-06-04 10:11:53 +01:00
Tim Gover
fac42a0d86 2711: Change the automatic update minimum version to 2025-05-08
Important changes since the last automatic update:

* Add the boot-menu to override the boot-order.
* Implement TCP window for network install.
* Preserve SDRAM contents after crash.
* Improved compatibility for USB pendrives.
2025-06-04 09:49:34 +01:00
Tim Gover
0f6920518f tools: Add the network install public key
For reference, add the Raspberry Pi Network Install public key
which is compiled into the bootmain executable.

To verify the current image:

git clone https://github.com/raspberrypi/rpi-eeprom
wget https://downloads.raspberrypi.com/net_install/boot.sig
wget https://downloads.raspberrypi.com/net_install/boot.img
cd rpi-eeprom
./rpi-eeprom-digest -k imager/net_install_pubkey.pem -i ../boot.img -v ../boot.sig

On success the expected output is "Verified OK" and exit status 0.

See: #711
2025-05-22 17:43:46 +01:00
Tim Gover
e5a60491d0 2712: Change the automatic update minimum version to 2025-05-08
Change the automatic update version to 2025-05-08.

Important changes since the last automatic update:
* RP1 firmware support for PIO
* Improved support for HAT+ and parameters
* Boot menu
* SDRAM performance and stability improvements
2025-05-19 12:26:22 +01:00
Tim Gover
b08dff7e46 pieeprom-2025-05-16: 2711: Automatically set revoke_devkey if program_pubkey=1 (latest)
* 2711: (recovery) Automatically set revoke_devkey if program_pubkey=1
  Previously, on BCM2711 products it was possible to program the key
  hash without revoking the development key. This can be useful for
  testing but should never be used in production because it is possible
  to an install an older version of the bootloader which doesn't
  support secure-boot.  Since the secure-boot tools are stable and
  have improved usability (RPi secure-boot provisioner) this test
  feature not necessary and is just a security risk so the behaviour
  is changed to always revoke the development key if program_pubkey=1.
  This change is not relevant on BCM2712 because secure-boot requires
  that the second stage bootloader is counter-signed with the customer's
  private key.
2025-05-16 13:47:54 +01:00
Tim Gover
47a53c5da0 imager: 2712: 2711: Update to the 2025-05-08 firmware 2025-05-14 19:14:04 +01:00
Tim Gover
1bb6edeff5 pieeprom-2025-05-08: 2711: Promote to the default release 2025-05-13 19:45:02 +01:00
Tim Gover
ce78b31476 pieeprom-2025-05-08: 2712: Promote to the default release 2025-05-13 19:45:02 +01:00
Tim Gover
cd4048df1d pieeprom-2025-05-08: 2711: Implement TCP window for net boot (latest)
Fixup the previous commit to include the 2711 firmware signed
with the secure-boot key.
2025-05-08 16:25:13 +01:00
Tim Gover
96af2e81c7 pieeprom-2025-02-24: 2711: Implement TCP window for net boot (latest)
* Signed boot and HTTP boot mode
  HTTP boot mode is supposed to be disabled if signed boot is enabled and
  a host is not specified. The code is checking the http_secure flag to
  enforce this. But this is valid now we support custom CA certs.
  Only disable HTTP mode if we're using the default HOST.
* Implement TCP window for net boot
  The minimal IP stack used for https booting lacks the ability to cache
  packets received out of order, which can lead to severe slowdown when
  it happens. The problem seems to affect some ISPs more than others.
  The receive window implemented here copes with packet losses of 10%.
* netboot: Correct the TCP MSS
* Correct msecs in debug timestamps
  The fractional part of timestamps in UART debug output was showing the
  100ths and 1000ths of a second, rather than 10ths and 100ths, causing
  strange sequences that appear to jump backwards.
2025-05-08 16:10:16 +01:00
Tim Gover
d584a84891 pieeprom-2025-05-08: 2712: Implement TCP window for net boot (latest)
* arm_loader: Correct some mailbox response lengths
  The GET_GENCMD_RESULT mailbox handler was setting the wrong response
  length, and GET_FIRMWARE_COMMIT_HASH and GET_FIRMWARE_VARIANT were not
  setting any length.
  See: https://github.com/raspberrypi/firmware/issues/1968
* Signed boot and HTTP boot mode
  HTTP boot mode is supposed to be disabled if signed boot is enabled and
  a host is not specified. The code is checking the http_secure flag to
  enforce this. But this is valid now we support custom CA certs.
  Only disable HTTP mode if we're using the default HOST.
* Implement TCP window for net boot
  The minimal IP stack used for https booting lacks the ability to cache
  packets received out of order, which can lead to severe slowdown when
  it happens. The problem seems to affect some ISPs more than others.
  The receive window implemented here copes with packet losses of 10%.
* netboot: Correct the TCP MSS
* rp1_net: Overwrite the length field
  Although concise, ORing in the packet length runs the risk of leaving
  some unwanted bits set. Ensure the length field is cleared before
  ORing in the required value.
* Correct msecs in debug timestamps
  The fractional part of timestamps in UART debug output was showing the
  100ths and 1000ths of a second, rather than 10ths and 100ths, causing
  strange sequences that appear to jump backwards.
* Implement GET_BOARD_MAC_ADDRESS on Pi5
  The Pi 5 EEPROM implements a subset of the original mailbox properties.
  Add GET_BOARD_MAC_ADDRESS to the subset.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/698
* Ensure the initramfs matches the kernel
  As far as is possible, both the kernel and initramfs are matched to the
  device. However, where multiple kernel variants can run on a device, the
  initramfs must be matched to the chosen kernel. Make that the sole rule
  for initramfs selection, rather than duplicating the device matching
  logic.
  See: https://github.com/raspberrypi/firmware/issues/1965
* Enable logging messages from OS loader
  Pi 5 EEPROM builds were missing the output from the main OS loading
  function, including some important diagnostics. Enabling the logging
  output from this loader code results in some near-duplicates, but is
  more user friendly and is available via "sudo vclog -m".
2025-05-08 15:26:30 +01:00
Tim Gover
816bf7c594 test: Add a README 2025-04-08 10:22:17 +01:00
Tim Gover
f087342b26 test: Add github workflow for test-rpi-eeprom-config 2025-04-08 09:35:58 +01:00
Tim Gover
17a9f162c9 pieeprom-2025-04-07: 2712: Revert to using the max fan speed (latest)
* arm_dt: Revert to using the max fan speed
  It has been reported that the presence of a cooling fan at boot time
  can lead to a maximum observed fan speed of ~300 but a current speed
  of 0. The absence of a fan results in 0s for both metrics.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/690
2025-04-08 08:07:22 +01:00
Tim Gover
914dd0f73f rpi-sign-bootcode: Add optional callout to HSM wrapper script from PKCS#1 v1.5 signature 2025-04-07 09:51:17 +01:00
Tim Gover
7f66ffe483 pieeprom-2025-03-27: 2712: os_check: cm5: Check for CM5 specific DTBs (latest)
* os_check: cm5: Check for CM5 specific dtbs
  Check for BCM2712 support in bcm2712-rpi-cm5-cm5io.dtb
  or bcm2712-rpi-cm5l-cm5io.dtb on CM5 instead of bcm2712-rpi-5-b.dtb.
  This avoids needing to put os_check=1 or specifying device_tree
  in config.txt in minimal images for CM5.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/682
2025-03-27 11:52:01 +00:00
Nicolai Buchwitz
1bd0a1052b bug_report template: Add missing CM5 + pi500
Signed-off-by: Nicolai Buchwitz <n.buchwitz@kunbus.com>
2025-03-21 13:24:58 +00:00
Tim Gover
6c2e2d6833 pieeprom-2025-03-19: 2712: Log the fan speed at boot (latest)
* Log the fan speed at boot
  Record the fan RPM (and the maximum seen) during boot, so that it is
  accessible using "sudo vclog -m".
  See: https://github.com/raspberrypi/rpi-eeprom/issues/678
* Add current_supply to HAT+ support
  Refactor the HAT library to make it more self-contained, and combine
  the I2C address detection and the reading of the EEPROM contents.
  Use it to allow the earlier boot stages to check for a current_supply
  setting in the EEPROM of a normal (non-stackable) HAT+.
2025-03-19 17:06:49 +00:00
Tim Gover
78d08e9763 firmware: 2712: Archive old '2712' 'latest' firmware
Following the update of the 'default' release to 2025-03-10
archive the older firmware releases to reduce the size of the APT
package.
2025-03-12 14:07:48 +00:00
Tim Gover
92488a202f pieeprom-2025-03-10-12: Promote 2025-10-03 to the default release 2025-03-12 14:07:48 +00:00
Tim Gover
d50b2b32f1 pieeprom-2025-03-10: 2712: Add [boot_partition] filter plus SDRAM init fixes (latest)
* Update SDRAM init timings to intermittent 8-flash SDRAM init errors
  on some boards.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/67
* config: Fix missing initialisation of selected_expr to 1 in config.txt
  Without an [all] section the new expression filter might default to
  false. This impacts the bootloader early parsing of config.txt
  for things like boot_ramdisk rather than the later config.txt pass
  for device-tree parsing.
* config_loader: Add support [boot_partition=N] as an expression filter
  The boot_partition tests whether the partition number N matches
  the number that the system is booting from. This expression is
  only supported in config.txt and is designed to make it easier
  to have common boot.img ramdisks in an A/B system where the
  conditional loads a different cmdline.txt file depending on
  which partition boot.img is loaded from.
2025-03-10 17:24:25 +00:00
Rasmus Villemoes
3a16bd016f rpi-eeprom-digest: support specifying keys via PKCS#11 URI
In production setups, it is quite normal that the private key does not
exist as a file in the file system, but is kept inside some HSM,
remote signing service or similar, and only accessed via some pkcs#11
interface; moreover, by design, the private key _cannot_ be extracted
from the HSM or signing service.

In such a case, the user will have set OPENSSL_CONF to some
configuration file setting up the appropriate engine, and the "key" is
simply the pkcs#11 URI, e.g. "pkcs11:model=foo;object=bar".

In order to support this use case, automatically infer the appropriate
options to pass to openssl-dgst if "${KEY}" begins with
"pkcs11:". Doing this at the top level avoids duplicating the logic in
both writeSig and verifySig. While here, this also adds a sanity check
that -v can only be used while also providing a (public) key to check
against.

This drops the -keyform argument in the non-pkcs#11 case, as openssl
automatically infers the type, and this then in fact allows one to use
a private key in e.g. DER format.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-03-06 16:04:38 +00:00
Tim Gover
28a2c0242c pieeprom-2025-03-03: 2712: Fix bootloader pull configuration on BCM2712D0 (latest)
* Fix pull configuration on 2712D0
  2712D0 uses a horrendously sparse set of pad control registers. Make
  the pull-setting code sufficiently complex to cope.
  See: https://github.com/raspberrypi/rpi-eeprom/issues/672
* Disable UARTA for CM5s without WiFi
  Just as CM5s without WiFI don't need the SDIO interface, the Bluetooth
  UART is unconnected. Disable the DT node to avoid kernel warnings and
  save some cycles.
2025-03-03 15:18:20 +00:00
Tim Gover
8eef29aed9 image: Update 2711 plus 2712 images and enable boot-menu on 2711 2025-02-18 12:19:00 +00:00
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
Tim Gover
e430a41e73 imager: make-release: Drop the 'default' (unused) BOOT_ORDER release zip 2024-06-13 09:34:54 +01:00
Tim Gover
ab087e5db1 imager: Bump 2712 release to 2024-06-05 2024-06-13 09:25:36 +01:00
Tim Gover
80be2d6d14 pieeprom-2024-06-05: 2712: Promote pieeprom-2024-06-05 to the default release (default) 2024-06-11 14:38:03 +01:00
Tim Gover
88f96b4f86 2024-06-05: 2712: CM5 bringup changes (latest)
* Minor changes to support CM5 bringup and test.
2024-06-05 17:10:08 +01:00
Tim Gover
cf3cadf994 2024-06-04: 2712: Fix [pi5] config.txt conditional state (latest)
* The [pi5] conditional statement should apply to the entire pi5
  family i.e. include cm5 as well.
* Bump SDIO bus priorities to that a GPU/RAM intensive processes
  can't unnecessarily stall an I/O processes.
* Assorted log message tidyups.
2024-06-04 09:35:25 +01:00
Tim Gover
61fb89536f pieeprom: 2024-05-17: 2712: Ignore bootloader updates for Pi5 on Pi4 - (latest)
* Add timestamps to UART log messages
2024-05-17 13:55:38 +01:00
Tim Gover
768f4fbc69 pieeprom-2024-05-17: 2711: Ignore bootloader updates for Pi5 on Pi4 - (latest)
* Add timestamps to UART log messages.
  * Add support for [tryboot] conditional the bootloader EEPROM
    config file.
    See: https://github.com/raspberrypi/rpi-eeprom/issues/454
  * Fix MAX_RESTARTS parameter
    See: https://github.com/raspberrypi/rpi-eeprom/issues/576
  * Add recovery_reboot option to config.txt for rpiboot which causes
    the system to reboot after updating the bootloader.
  * Improve secure-boot OTP provisioning logging.
  * Fix setting to enable secure-boot mode on Pi4B
2024-05-17 13:55:38 +01:00
Tim Gover
2b2c8103ff 2024-05-13: 2712: Add support for NVMe boot with PCIe switches (latest)
* Add preliminary support for booting NVMe devices behind PCIe switches.
  See: https://github.com/raspberrypi/firmware/issues/1833
* Fix MAX_RESTARTS parameter
  See: https://github.com/raspberrypi/rpi-eeprom/issues/576
* arm_dt: Support HAT EEPROM dtparams
* Fix reporting of the partition number via DT
  See: https://github.com/raspberrypi/rpi-eeprom/issues/575
* Resolve HID counting bug which caused Network Install to fail on some keyboards
  See: Fixes https://github.com/raspberrypi/rpi-eeprom/issues/574
* Pull PCIE DET_WAKE high by default on CM5
2024-05-13 17:46:53 +01:00
Tim Gover
2bfd7cb74e LICENSE: Update for qrcodegen 2024-04-22 17:26:22 +01:00
Tim Gover
9a5a522ee8 pieeprom-2024-04-20: 2712: Fix SDRAM default refresh timings 2024-04-20 12:14:16 +01:00
Tim Gover
7a1a01c24f pieeprom-2024-04-17: 2712: Promote to default release (automatic update)
Interesting changes since the last automatic update:
* Enable network install
* Enable over-clocking frequencies > 3GHz
  See: ttps://github.com/raspberrypi/firmware/issues/1876
* Adjust SDRAM refresh rate according to temperature and address a performance
  gap between 4GB and 8GB parts in benchmarks.
  See: https://github.com/raspberrypi/firmware/issues/1854
* Support custom CA certs with HTTPS boot
* Move non Kernel ARM stages back to 512KB
  https://github.com/raspberrypi/firmware/issues/1868
* Assorted HAT+ and NVMe interop improvements.
* Fix TRYBOOT if secure-boot is enabled.
* Preliminary support for D0 and CM5.
2024-04-18 10:39:16 +01:00
Tim Gover
f4580cd6f5 pieeprom-2024-04-18: 2712: Update RP1 firmware to extend PCIe L1 entry timeout to 32 us (latest)
* Extend PCIe L1 entry timeout to 32us
  Fix xhci soft reset on link-down
  Set useful xhci compatibility bits in GUCTL
  See https://github.com/raspberrypi/firmware/issues/1877
2024-04-18 10:20:14 +01:00
Tim Gover
c0a207f452 pieeprom-2024-04-17: 2712: 2711: Build Pi4 and Pi5 firmware from the same branch
* Switch to building the Pi4 firmware from the common Pi4/Pi5
  mainline release. This doesn't change the Pi4 features
  but should make it quicker to release bug fixes in common code.
* Fix issue that caused the TRYBOOT flag to be lost in secure-boot mode.
* dtoverlay: Use %u when converting u32s to strings
   See: https://github.com/raspberrypi/linux/issues/6039
* Improved debug messages for secure-boot.
* Generate the bootloader diagnostics qrcode at run time.
2024-04-17 14:20:36 +01:00
Andrew Scheller
76b990a894 rpi-eeprom-config: fix rpi-eeprom-dgst typo in usage-text 2024-04-17 10:47:18 +01:00
Tim Gover
afa5822e03 rpi-eeprom-config: Add --debug flag to args 2024-04-17 10:46:10 +01:00
Tim Gover
a2fb4ed28d rpi-eeprom-config: Process bootcode arg with other file replacements
It should be possible to change the config, public key, signature
and signed bootcode in a single operation.
2024-04-17 10:46:10 +01:00
Tim Gover
ca7a39efe9 pieeprom-2024-04-15: 2711: Promote stable release to DEFAULT 2024-04-16 09:55:05 +01:00
Tim Gover
c94506e598 pieeprom-2024-04-15: 2711: Fix tryboot mode in secure-boot - STABLE
Fix an issue where the tryboot flag was being reset and lost during
the secure-boot initialization.
2024-04-15 16:52:48 +01:00
Cody Scott
61023cbd32 Remove variable expansion in arithmetic
https://www.shellcheck.net/wiki/SC2004
2024-04-05 16:55:43 +01:00
Tim Gover
d8abe8c67d 2024-04-05: 2712: HAT+ fixes for max-current, custom CA cert for net install and enable over-clocking to > 3GHz (latest)
* bootloader: clock_2712: Remove restriction on arm_freq <= 3000
  See: https://github.com/raspberrypi/firmware/issues/1876
* arm_dt: Update max_current to match HAT value
* arm_dt: Remove unused legacy parameters (core_freq, arm_freq, uart0_clkrate and cache_line_size)
* Add support for custom CA cert for network install
    You need to specify
    HTTP_HOST=myhost.com
    HTTP_PATH=/path/to/files
    HTTP_CACERT_HASH=<hash>

    where <hash> is a sha256 hash of the der encoded ca certificate.
    CA cert is added using rpi-eeprom-config.
* Optimise Vbat current draw with charging disabled
* Display OTP boot status in UART log messages.
* Preliminary support for secure-boot OTP provisioning.
* Update PCIE DET_WAKE pinmux for D0 products
2024-04-05 12:39:42 +01:00
Tim Gover
14f05613b4 tools: rpi-eeprom-digest: Improve docs for secure-boot
Make it clearer that rpi-eeprom-digest is used create optionally
signed hashes for binary files.

For secure-boot the update-pieeprom.sh wrapper must be used
because only the boot configuration is signed by the customer
key rather than the entire SPI flash image.
2024-03-27 14:45:28 +00:00
Tim Gover
07bf72a919 tools: Preliminary tool support for signed-boot on 2712
Update rpi-eeprom-config to support replacement of bootcode.bin
with a customer counter-signed version.

Add a new rpi-sign-bootcode script which enables bootcode.bin
to be counter-signed with the customer key.

N.B. Signed boot on 2712 requires newer firmware which is currently
under development and has not been released.
2024-03-27 14:45:28 +00:00
Tim Gover
b745226b41 tools: rpi-otp-private-key: Update to same version as usbboot 2024-03-01 17:05:33 +00:00
Peter Harper
c478689de0 Add new cacertder option
Allows you to add a custom ca cert to an image.

Note: This option is only relevant for newer (as yet unreleased)
bootloader images that support custom CA certs and reserve a space for
this in the flash image.
2024-03-01 13:26:06 +00:00
Tim Gover
8c67b27665 rpi-eeprom-update: Only check for flashrom during an update
There's no need to check for flashrom when querying the current
version, removing pending updates etc.

See: https://github.com/raspberrypi/rpi-eeprom/issues/548
2024-03-01 10:28:58 +00:00
Tim Gover
18620870d7 rpi-eeprom-update: Output warnings to stderr
Output non-fatal warnings to stderr in order to avoid breaking
programs like rpi-eeeprom-config which parse the output of
rpi-eeprom-update.

Fixes: https://github.com/raspberrypi/rpi-eeprom/issues/548
2024-03-01 10:28:58 +00:00
Tim Gover
11c64e3721 rpi-eeprom-update: Use flashrom by default on Pi5
Use flashrom by default on Pi5 unless the the RPI_EEPROM_USE_FLASHROM
environment variable has been set to zero OR flashrom is not available.
2024-02-21 18:02:37 +00:00
Tim Gover
36e58db5c2 imager-release: 2712: Bump to 2024-02-16 2024-02-18 22:23:26 +00:00
Tim Gover
b1a715b256 2024-02-16: 2712: u-boot loading and thermal throttling fixes (latest) (default)
* arm_loader: Move non-kernels back to 512KB
  See: https://github.com/raspberrypi/firmware/issues/1868

* Limit throttled frequency to OS requested frequency rather than config.txt frequency.
   See: https://github.com/raspberrypi/rpi-eeprom/issues/518
2024-02-16 15:45:05 +00:00
Tim Gover
0e8ecbcf83 2024-02-14: 2712: Adjust SDRAM refresh based on temperature (latest)
* Adjust the SDRAM refresh interval based on the temperature. This
  addresses the gap in performance between the 8GB and 4GB variants.
  See https://github.com/raspberrypi/firmware/issues/1864
* Preliminary support for signed boot.
2024-02-14 08:58:47 +00:00
timg236
d4918d4d4c Merge pull request #539 from timg236/pieeprom-2024-02-08-2712
pieeprom-2024-02-08: 2712: Adjust SDRAM refresh based on temperature (latest)
2024-02-08 12:25:09 +00:00
Tim Gover
b5c7f1bee6 pieeprom-2024-02-08: 2712: Adjust SDRAM refresh based on temperature (latest)
* Adjust the SDRAM refresh interval based on the temperature. This
  addresses the gap in performance between the 8GB and 4GB variants.
  See https://github.com/raspberrypi/firmware/issues/1854
* Preliminary support for signed boot
2024-02-08 11:55:52 +00:00
timg236
c987375f1d Merge pull request #538 from timg236/pieeprom-2024-02-05
pieeprom-2024-02-05: 2712: Add support for HAT+ POE HATs (latest)
2024-02-05 16:53:46 +00:00
Tim Gover
99cb0bdaa2 pieeprom-2024-02-05: 2712: Add support for HAT+ POE HATs (latest)
* Add support for probing HAT+ POE HATs
* Implement DWC3 specific XHCI quirks
2024-02-05 15:18:32 +00:00
timg236
a8f2eb75b5 Merge pull request #537 from mocknen/warn-flashrom-not-found
Print warning when flashrom is not found, instead of silently ignorin…
2024-02-05 09:22:05 +00:00
Shogo Yamazaki
606c5d25e5 Print warning when flashrom is not found, instead of silently ignoring it 2024-02-04 11:50:06 +09:00
Peter Harper
88b33ab030 Merge pull request #528 from peterharperuk/nvme_boot_wd_fix
2024-01-24: NVMe boot fix for WD NVMe (latest)
2024-01-24 14:25:50 +00:00
Peter Harper
a7f982962b 2024-01-24: NVMe boot fix for WD NVMe (latest)
* Add a workaround for an issue seen when booting with WD Blue SN550 NVMe SSD
2024-01-24 12:48:26 +00:00
timg236
9df346bc1c Merge pull request #525 from timg236/pieeprom-2024-01-22-2712
2024-01-22: 2712: Fixes for small boot.img files + SD CD indicator (latest)
2024-01-22 15:57:58 +00:00
Tim Gover
68fca2166b 2024-01-22: 2712: Fixes for small boot.img files + SD CD indicator (latest)
* Fix issue boot.img end sector check - STABLE
  See:  https://github.com/raspberrypi/rpi-eeprom/issues/521
* Fix handling of files that use the last cluster in the partition
  See: https://github.com/raspberrypi/rpi-eeprom/issues/521
* Fix SD card detection
  See: https://github.com/raspberrypi/rpi-eeprom/issues/523
2024-01-22 15:54:03 +00:00
timg236
eca47c5f4c Merge pull request #524 from timg236/pieeprom-2024-01-22-2711
pieeprom-2024-01-22: 2711: Fix issue boot.img end sector check - STABLE
2024-01-22 10:58:02 +00:00
Tim Gover
097e2d0573 pieeprom-2024-01-22: 2711: Fix issue boot.img end sector check - STABLE
See https://github.com/raspberrypi/rpi-eeprom/issues/521
2024-01-22 10:51:22 +00:00
timg236
4b8e875510 Merge pull request #522 from timg236/pieeprom-2024-01-18-2711
2024-01-18: 2711: Fix issue with minimal sized FAT partition - STABLE
2024-01-18 20:10:04 +00:00
Tim Gover
21a78a91de 2024-01-18: 2711: Fix issue with minimal sized FAT partition - STABLE
* Fix handling of files that use the last cluster in the partition
  https://github.com/raspberrypi/rpi-eeprom/issues/521
2024-01-18 20:08:20 +00:00
timg236
cc020609fb Merge pull request #520 from timg236/pieeprom-2024-01-15-2712
pieeprom-2024-01-15: 2712: Add support for network-install (latest)
2024-01-16 16:03:48 +00:00
Tim Gover
d5f1ab30fa pieeprom-2024-01-15: 2712: Add support for network-install (latest)
* Add support for Network Install
* Preliminary D0 firmware support
2024-01-15 19:35:12 +00:00
timg236
8855da9889 Merge pull request #517 from timg236/pieeprom-2024-01-05-2712-default
Update default release to 2024-01-05 and mark as an automatic update
2024-01-08 11:43:57 +00:00
Tim Gover
a5b4f91caf Update RPi Imager release to 2024-01-05 2024-01-08 10:30:01 +00:00
Tim Gover
7232154170 pieeprom-2024-01-05: 2712: Promote to default (automatic update) 2024-01-08 10:24:11 +00:00
TrevorM
759460850c Updated documentation links
Documentation anchor IDs had been changed as they aren't Pi 4 specific now.
2024-01-08 09:29:00 +00:00
timg236
9e0bffb291 Merge pull request #515 from timg236/pieeprom-2024-05-01-2712
pieeprom-2024-01-05: 2712: Fix handling of FAT files without LFNs.
2024-01-06 08:35:44 +00:00
Tim Gover
258d0114c0 pieeprom-2024-01-05: 2712: Fix handling of FAT files without LFNs.
* Fix issues with SFN entries sometimes being treated as LFNs
  see https://github.com/raspberrypi/rpi-eeprom/issues/514
* Add a dedicated message for "M.2 HAT" not being found instead of
  the generic 'unsupported boot order' message when NVMe boot is
  skipped.
2024-01-06 08:33:36 +00:00
timg236
0cd761bc84 Update bug_report.yml 2024-01-05 15:58:49 +00:00
timg236
72cedfe5ee Merge pull request #512 from timg236/pieeprom-2023-12-14-default
pieeprom-2023-12-14: 2712: Promote pieeprom-2023-12-14 to default
2023-12-18 17:27:17 +00:00
Tim Gover
14e934cee3 pieeprom-2023-12-14: 2712: Promote pieeprom-2023-12-14 to default 2023-12-18 17:24:57 +00:00
Tim Gover
e407fb0030 rpi-eeprom-update: Tweak chipNotSupported message
Tweak the message to look like like an error.
2023-12-18 17:18:52 +00:00
timg236
b405ed7465 Merge pull request #511 from lurch/patch-1
rpi-eeprom-update: Fix package-names in error messages
2023-12-18 17:11:57 +00:00
Pavel Djundik
ef0cfffced Check that strings exists, suggest installing binutils 2023-12-18 17:11:09 +00:00
Andrew Scheller
a66e79ba99 rpi-eeprom-update: Fix package-names in error messages
Looks like some things have moved around in Bookworm.
2023-12-18 16:22:09 +00:00
Andrew Scheller
745eabf90e Fix typo in warning message 2023-12-18 11:55:29 +00:00
timg236
043841636c Merge pull request #507 from timg236/pieeprom-2023-12-14-2712
pieeprom-2023-12-14: 2712 + update imager release
2023-12-14 17:07:47 +00:00
Tim Gover
3f325bd482 pieeprom-2023-12-14: 2712: Fix boot partition parameter (latest)
* Fix an issue where the boot partition parameter in PM_RSTS was cleared
  before being checked.
  https://github.com/raspberrypi/firmware/issues/1853
* Add a specific fatal error pattern for RP1 not found - 4 long - 3 short
2023-12-14 17:04:22 +00:00
Tim Gover
52c5d89d48 imager: Update imager release to 2023-12-06 2023-12-12 10:27:19 +00:00
timg236
77402b6527 Merge pull request #506 from timg236/pieeprom-2023-12-06-default
pieeprom-2023-12-12: 2712: Promote 2023-12-06 to default release.
2023-12-12 09:54:53 +00:00
Tim Gover
9c8d97d6a2 pieeprom-2023-12-12: 2712: Promote 2023-12-06 to default release.
Promote this bootloader to the default release and remove the
executable bit from the file.
2023-12-12 09:16:32 +00:00
Tim Gover
f20bb90a67 imager: 2712: Add NVMe into default boot configurations
Add NVMe into the SD/USB/DEFAULT boot modes with a higher
priority than USB. The detection of NVMe HATs is quick so
there is no disadvantage in trying NVMe first.
2023-12-12 09:08:03 +00:00
timg236
7e22b8ff47 Merge pull request #503 from raspberrypi/pieeprom-2023-12-06-2712
pieeprom-2023-12-06: 2712: Initialise DWC PHY (latest)
2023-12-06 18:58:47 +00:00
Tim Gover
8f19146862 pieeprom-2023-12-06: 2712: Initialise DWC PHY (latest)
* Initialise the DWC PHY to enable DWC host+peripheral support under Linux.
  Requires 82069a7a02
* Force PWM on 3V3 supply if cameras or HATs are connected or if
   power_force_3v3_pwm=1 in config.txt
   Resolves an image quality issue with the GS camera.
* Add support for C(arm_min_freq) < 1500 MHz (must be at >= 200 MHz)
* Manufacturing test updates for DVFS.
2023-12-06 18:47:05 +00:00
timg236
e4724b4783 Merge pull request #500 from timg236/rpi-eeprom-update-ignore-dpkg-checksums
rpi-eeprom: Disable the dpkg checksum validation by default
2023-11-30 12:56:35 +00:00
Tim Gover
1e5594c51b rpi-eeprom: Disable the dpkg checksum validation by default
Enforcing package checksum validation makes it difficult to install
new EEPROM binaries via rpi-update causing extra churn of APT releases.

Drop this check by default because random corruption of these files
either via software or users never actually happens.
2023-11-30 12:55:31 +00:00
timg236
b57586ead2 Merge pull request #498 from timg236/pieeprom-2023-11-20-2712
pieeprom-2023-11-20: 2712: Auto-detect support for PCIe expansion HAT… (default + latest)
2023-11-21 11:29:19 +00:00
Tim Gover
46c89bee09 pieeprom-2023-11-20: 2712: Auto-detect support for PCIe expansion HAT (default + latest)
* Add autodetect support for PCIe expansion HATs
* Add PCIE_PROBE=1 to the EEPROM config for custom PCIe exapansion
  designs that do not support the upcoming HAT spec. This gives
  similar behaviour to CM4 where PCIe x1 is enumerated to discover NVMe
  devices.
* Fix loading of multiple initramfs images that are not 32-bit aligned sizes
  https://github.com/raspberrypi/firmware/issues/1843
* Kernel load performance improvement - remove a memcpy
2023-11-21 09:45:11 +00:00
timg236
6b14e84a2f Merge pull request #492 from timg236/raspberrypi5-use-flashrom
rpi-eeprom-update: Add the option to use flashrom for updates on Raspberry Pi 5
2023-11-09 12:09:42 +00:00
Tim Gover
db154d4710 rpi-eeprom-update: Add the option to use flashrom for updates on Raspberry Pi 5
On Raspberry Pi 5 there are dedicated pins for the bootloader SPI
EEPROM. This makes it possible to do immediate updates via flashrom.

The "current" EEPROM config is the EEPROM config at boot rather
than what has just been written to the SPI flash because this is
consistent with current behaviour.

To use flashrom instead of recovery.bin for bootloader updates
set RPI_EEPROM_USE_FLASHROM=1 in /etc/defaults/rpi-eeprom-update

BCM2711
On CM4, Pi4, CM4-S, Pi400 config.txt must be modified to disable
the analog audio driver which shares the GPIO pins used by the
bootloader EEPROM.

dtparam=spi=on
dtoverlay=audremap
dtoverlay=spi-gpio40-45
2023-11-02 16:54:34 +00:00
timg236
aded0825e3 Merge pull request #494 from timg236/pieeprom-2023-10-30-2712
pieeprom-2023-10-30: 2712: UPG watchdog support + SD reset fixes
2023-10-30 17:47:06 +00:00
Tim Gover
d53db79009 pieeprom-2023-10-30: 2712: UPG watchdog support + SD reset fixes (default + latest)
* Fix SDIO / WiFi clock-setup for BOOT_ORDER=0xf14
* Fix SD power-on-reset
* Firmware support for improved watchdog driver
* Update DHCP Option97 to be R,P,i,5 on Pi5
2023-10-30 16:54:48 +00:00
Tim Gover
5ec5c003ba rpi-eeprom-update: Switch back to recovery.bin on Pi5
The Pi5 EEPROM is larger and can take longer to update which
slightly increases the change of failure if the board power is
disconnected across an update. Re-enable recovery.bin for SD
updates for now.
2023-10-22 14:28:32 +01:00
timg236
b066f89a40 Merge pull request #491 from lurch/patch-1
rpi-eeprom-update: Fix typos in usage text
2023-10-22 14:06:34 +01:00
Andrew Scheller
ff81e998c5 rpi-eeprom-update: Fix typos in usage text 2023-10-21 15:05:18 +01:00
timg236
fdff8e81f0 Merge pull request #490 from timg236/tim/pieeprom-2023-10-18-2712-automatic-update
rpi-eeprom-update: 2712: Bump the min version to pieeprom-2023-10-18
2023-10-20 11:35:50 +01:00
Tim Gover
645c2a1201 rpi-eeprom-update: 2712: Bump the min version to pieeprom-2023-10-18 2023-10-20 10:51:21 +01:00
Tim Gover
f13b5789f5 imager-release: Update for Pi5 2023-10-19 13:57:49 +01:00
timg236
a9d76cf703 Merge pull request #488 from lurch/patch-1
Fix typo
2023-10-19 09:22:27 +01:00
Andrew Scheller
ee72242f76 Fix typo 2023-10-18 23:56:16 +01:00
timg236
a75b0368e0 Merge pull request #487 from timg236/pieeprom-2023-10-18-2712
pieeprom-2023-10-18: 2712: Display autodetect + HAT gpiomap (default + latest)
2023-10-18 18:49:28 +01:00
Tim Gover
3b393d31ac pieeprom-2023-10-18: 2712: Display autodetect + HAT gpiomap (default + latest)
* Add support for HAT gpiomap for improved HAT compatibility.
* Add I2C probe for DSI display auto detect
* Automatically set dtparam=nvme if booted from nvme
* Fix network boot reset issue where only the first attempt works.
* Adding pciex4_reset=0 to config.txt will leave RP1 PCIe enabled when
ARM stage is started.
* Prevent HDMI diagnostics being displayed immediately when waking
after HALT.
* Update board-name - "Rasberry Pi 5"
2023-10-18 18:37:58 +01:00
timg236
e120a595d4 Update README.md 2023-10-17 11:26:51 +01:00
timg236
3271aba368 Update README.md 2023-10-17 10:59:59 +01:00
timg236
dbb6bfd9b9 Update releases.md 2023-10-17 10:58:21 +01:00
timg236
2c35493e7f Update releases.md
Add a link to 2712 and drop reference to latest default release because this will just bitrot
2023-10-17 10:55:50 +01:00
Tim Gover
4f2d676b4e Merge pull request #485 from timg236/pi5
Add support for Pi5
2023-09-29 13:02:08 +01:00
Tim Gover
ac013de80e firmware-2711: Switch symlinks to use the standard release names
The EEPROM release names were changed to follow the naming
in raspi-config some time ago. Since the firmware directory
is being renamed to be chip specific for Pi5 support it's
good time to swap the symlink / release names.
2023-09-29 11:19:24 +01:00
Tim Gover
3ce1fd8823 pieeprom-2023-09-28: 2712: vcgencmd pmic_read_adcs fixes
* Fix the LDO names and current scaling codes
* Manufacturing test updates

Bump BOOTLOADER_AUTO_UPDATE_MIN_VERSION to this version.
2023-09-28 16:35:50 +01:00
Tim Gover
e1971ba483 pieeprom-2023-09-21: 2712: Add recovery.bin for make-image-release 2023-09-28 16:35:50 +01:00
Tim Gover
a8ca86532c pieeprom-2023-09-21: 2712: Power button and ACT LED improvements 2023-09-28 16:35:50 +01:00
Tim Gover
9e5c0ed0c4 pieeprom-2023-09-13: 2712: Initial firmware release for Pi5 2023-09-28 16:35:50 +01:00
Tim Gover
9147a1a1c6 scripts: Add support for chip-specific firmware directories
BCM2711 and BCM2712 require different EEPROM firmware and
consequently the binaries have been moved to chip specific
firmware directories.

firmware-2711 / firmware-2712
2023-09-28 16:35:50 +01:00
Tim Gover
f818c860b4 firmware-2712: Create the 2712 firmware directory structure 2023-09-28 16:35:50 +01:00
Tim Gover
c2918a8ec6 Rename firmware to firmware-2711 2023-09-28 16:35:50 +01:00
Tim Gover
3e2de88bcb Merge pull request #478 from XECDesign/boot_firmware_support
If /boot/firmware is in fstab, use it as BOOTFS
2023-09-04 11:31:25 +01:00
Tim Gover
fa281d3be1 test: install: Clean /lib/firmware/bootloader
Update the test/install script to remove previous firmware files.

This fixes a problem where the install script failed because
beta is now a symlink and not a directory.
2023-08-23 08:48:45 +01:00
Tim Gover
d774d5794c Merge pull request #482 from timg236/remove-beta-releases
firmware: Remove the beta release folder
2023-08-02 14:51:21 +01:00
Tim Gover
299b1c7e12 firmware: Remove the beta release folder
Remove the beta release folder and replace with a symlink to the
'latest' release.

Including beta firmware in the APT release causes unecessary churn
and occasionally causes an issue where a user might end up on an
old and unsupported beta release.

Instead, beta releases are will be feature specific and installed
manually via 'rpi-eeprom-config --edit beta-firmware.bin'

i.e. beta releases will be out-of-package custom firmware releases
downloaded from github. The functionality will be merged into
a new latest/stable release or abandoned.

N.B. The old beta releases have been archived to 'old' but are no
longer included in APT.
2023-08-02 14:48:45 +01:00
Serge Schneider
0ef3adc1d4 If /boot/firmware is in fstab, use it as BOOTFS
Debian's raspi-firmware package assumes the boot partition is mounted as
/boot/firmware/ rather than /boot/. This commit adds support for either
approach by default.
2023-08-02 12:22:53 +01:00
Tim Gover
df46db226e Merge pull request #481 from trejan/patch-1
Update URL for CM4 bootloader docs
2023-07-04 16:35:31 +01:00
TM
6950fff013 Update URL for CM4 bootloader doc site 2023-07-04 16:19:49 +01:00
Tim Gover
75d3a76046 Merge pull request #477 from timg236/pieeprom-2023-05-11-STABLE
pieeprom-2023-05-11: Promote BETA release to STABLE
2023-05-15 15:27:52 +01:00
Tim Gover
4856a034e3 pieeprom-2023-05-11: Promote BETA release to STABLE 2023-05-15 09:19:06 +01:00
Tim Gover
43477c6a91 Merge pull request #476 from timg236/pieeprom-2023-05-11
pieeprom-2023-05-11: Fix intermittent hang during secure-boot - BETA
2023-05-11 08:03:01 +01:00
Tim Gover
abce28f9bc pieeprom-2023-05-11: Fix intermittent hang during secure-boot - BETA 2023-05-11 07:52:25 +01:00
Tim Gover
3c3dadb5b1 Merge pull request #467 from hanzyd/master
rpi-eeprom-update: Follow links when looking for latest EEPROM
2023-01-30 12:20:43 +00:00
Ivan T. Ivanov
d82d08db06 rpi-eeprom-update: Follow links when looking for latest EEPROM
latest and default are links to directories, so follow them.

Before:

/usr/bin/rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
    LATEST: Thu Jan  1 00:00:00 UTC 1970 (0)
   RELEASE: critical (/lib/firmware/raspberrypi/bootloader/critical)

After:

/usr/bin/rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
    LATEST: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
   RELEASE: critical (/lib/firmware/raspberrypi/bootloader/critical)

Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
2023-01-30 12:19:24 +02:00
Tim Gover
bf7419c961 Merge pull request #465 from timg236/pieeprom-2023-01-11-default
2023-01-18 - Promote pieeprom-2023-01-11 STABLE release to DEFAULT
2023-01-18 16:34:30 +00:00
Tim Gover
6532032cc6 2023-01-18 - Promote pieeprom-2023-01-11 STABLE release to DEFAULT
Interesting changes since the last default release
* Update VL805 to 138C0 - fix for handling of split transactions
  https://github.com/raspberrypi/linux/pull/5262
* Fix HID error handling with network install
  https://github.com/raspberrypi/rpi-eeprom/issues/458
2023-01-18 14:49:24 +00:00
Tim Gover
e2fc5b1993 Merge pull request #464 from timg236/pieeprom-2023-01-11
pieeprom-2023-01-11: Promote previous BETA release to STABLE
2023-01-13 10:54:08 +00:00
Tim Gover
259c4e99ed Merge pull request #463 from allanembedded/busybox-find
Fix rpi-eeprom-update when using busybox find
2023-01-13 10:30:52 +00:00
Tim Gover
5129267f6a pieeprom-2023-01-11: Promote previous BETA release to STABLE
This commit updates the VL805 firmware to vl805-000138c0.bin
See https://github.com/raspberrypi/linux/pull/5262
2023-01-13 09:27:26 +00:00
Allan Xavier
55ca589ab9 Fix rpi-eeprom-update when using busybox find
The busybox implementation of find does not detect recursive nested
symlinks, this results in it finding multiple instances of of_node
matching -samefile, the result of which then fails the -e path test.

The of_node symlink we're tyring to find should match the path
/sys/bus/nvmem/devices/*/of_node so just limit the find depth to 3 as
there's no point searching deeper than that.

Signed-off-by: Allan Xavier <mr.a.xavier@googlemail.com>
2023-01-12 13:47:27 +00:00
Tim Gover
b4b4605c7d Merge pull request #460 from timg236/pieeprom-2023-01-04
pieeprom-2023-01-04 VL805 firmware update - BETA
2023-01-05 10:16:07 +00:00
Tim Gover
2fb2132904 pieeprom-2023-01-04 VL805 firmware update - BETA
* Update VL805 to 138C0 - fix for handling of split transactions
  https://github.com/raspberrypi/linux/pull/5262
* Fix HID error handling with network install
  https://github.com/raspberrypi/rpi-eeprom/issues/458
2023-01-05 09:40:30 +00:00
Tim Gover
6e79e995bb Merge pull request #457 from timg236/pieeprom-2022-12-07
pieeprom-2022-12-07
2022-12-07 15:55:40 +00:00
Tim Gover
36886df55b 2022-12-07 - Fix SD voltage reset on Pi4 R1.1 (DEFAULT/STABLE/BETA).
Fix issue where SD voltage was not reset by power cycling PMIC on reboot.

See https://github.com/raspberrypi/firmware/issues/1763
2022-12-07 14:35:40 +00:00
Tim Gover
388ee17283 make-imager-release: Move image release to 2022-12-07 2022-12-07 14:35:19 +00:00
Tim Gover
2c6dabedf1 Point to the latest release 2022-12-06 17:24:14 +00:00
Tim Gover
e86fc31d7a Merge pull request #456 from timg236/pieeprom-2022-11-25-default
pieeprom-2022-11-25 Promote STABLE to DEFAULT release
2022-12-05 09:52:09 +00:00
Tim Gover
ca1f5469db pieeprom-2022-11-25 Promote STABLE to DEFAULT release
* [tryboot] conditional statement + tryboot_a_b mode
* Support custom OTP mac addresses
* Increase TFTP_MAX_BLOCK_SIZE
* Stop NVMe cleanly
* Fixes for NETCONSOLE parsing and initialisation.
* Long filename support for start_file / fixup_file.
* Secure boot and display debug info on the diagnostis screen.
2022-12-01 15:53:42 +00:00
Tim Gover
0ebda77d49 tools: Add secure-boot related scripts to tools
Copy the tools from usbboot. The next step is for usbboot
to include rpi-eeprom as a git submodule to de-duplicate
EEPROM images and tools.
2022-11-29 16:59:19 +00:00
Tim Gover
b9fcc9dc72 Merge pull request #455 from timg236/rpi-eeprom-config-padding
rpi-eeprom-config: Improve robustness of padding code
2022-11-28 15:41:48 +00:00
Tim Gover
2c709e087a unit-test: Update to cover all the releases including beta 2022-11-28 12:56:03 +00:00
Tim Gover
214cb6ffd4 rpi-eeprom-config: Make padding more robust.
Make it explicit that a modifiable file is stored withing a
single 4K sector (for erase) and that this includes the 20
byte header.

When modifying a file pad up to the next section instead of
just to an alignment size. This enables future changes to be
more flexible in terms of alignment and padding. Although,
files/sections with different padding requirements will likely
get a different magic.
2022-11-28 12:55:58 +00:00
Tim Gover
d2cbfbc292 rpi-eeprom-config: Add -x option to extract files
For test/debug add an option to extract all of the modifiable files.
2022-11-28 12:55:58 +00:00
Tim Gover
7bbbd9407f Merge pull request #453 from timg236/pieeprom-2022-11-25
pieeprom-2022-11-25 - Fix unconfigured netconsole messages - BETA + STABLE
2022-11-25 11:21:40 +00:00
Tim Gover
141a8cd9f0 pieeprom-2022-11-25 - Fix unconfigured netconsole messages - BETA + STABLE
* Fix unconfigured netconsole messages https://github.com/raspberrypi/rpi-eeprom/issues/452
* Add display state to HDMI diagnostics screen
2022-11-25 11:00:38 +00:00
Tim Gover
9269d78320 Align rpi-eeprom-digest with usbboot 2022-11-07 09:37:15 +00:00
Tim Gover
1197a4ae31 Merge pull request #449 from timg236/pieeprom-2022-11-04
* Fix an OOM issue that was causing secure boot to fail (but not from RPIBOOT)
2022-11-04 15:34:15 +00:00
Tim Gover
551d9da184 * Fix an OOM issue that was causing secure boot to fail (but not from RPIBOOT) 2022-11-04 15:26:17 +00:00
Tim Gover
eb3bb76a81 rpi-eeprom-digest: Update from usbboot for the verify option
Sync to the version from usbboot in order to add support for
the verify option. This provides a command line interface for
verifying a .sig file (with RSA) against a public key in .PEM
format.
2022-11-03 11:48:54 +00:00
Tim Gover
049da63a4e Merge pull request #448 from timg236/pieeprom-2022-11-02
pieeprom-2022-11-02: Add option to use Customer OTP for MAC address -…
2022-11-02 14:05:51 +00:00
Tim Gover
cb57a7df05 pieeprom-2022-11-02: Add option to use Customer OTP for MAC address - BETA
Add a new EEPROM property that allows the Ethernet MAC address
programmed during manufacture to be overridden a value in the
Customer OTP register.

MAC_ADDRESS_OTP=A,B
where A and B are the customer row numbers (0..7)
2022-11-02 11:05:01 +00:00
Tim Gover
092f876595 Merge pull request #447 from timg236/pieeprom-2022-10-18-stable
pieeprom-2022-10-18: Promote BETA release to STABLE
2022-10-20 12:00:11 +01:00
Tim Gover
ec3ed8bc3c pieeprom-2022-10-18: Promote BETA release to STABLE 2022-10-20 10:59:51 +01:00
Tim Gover
d0ff0d5d72 Update release notes for 2022-10-18 - BETA 2022-10-20 10:56:52 +01:00
Tim Gover
d995c13dd9 Merge pull request #446 from timg236/pieeprom-2022-10-18
2022-10-18 - Tryboot enhancements for A/B partition booting - BETA
2022-10-18 12:30:47 +01:00
Tim Gover
0a5328a01a 2022-10-18 - Tryboot enhancements for A/B partition booting - BETA
* Add support for a [tryboot] conditional statement in config files.
* Load config.txt instead of tryboot.txt if tryboot_a_b=1 in autoboot.txt
* Fix failover to partition 1  if the `boot_partition` points to non-bootable partition.
* Enable `autoboot.txt` in secure-boot mode.
2022-10-18 12:06:10 +01:00
Tim Gover
19362b763f Merge pull request #445 from peterharperuk/fix_usb_issue
2022-10-12 - Fix USB boot regression - BETA
2022-10-12 17:12:40 +01:00
Peter Harper
a16f73a2e3 2022-10-12 - Fix USB boot regression - BETA
* Reduce size of USB transfer
2022-10-12 17:00:13 +01:00
Tim Gover
272d1573e3 Merge pull request #444 from peterharperuk/fix_screen_clearing_issue
2022-10-06 - Fix issue with screen display - BETA
2022-10-06 16:51:29 +01:00
Peter Harper
a5f5513b16 2022-10-06 - Fix issue with screen display - BETA
* Fix issue with the bootloader display not being cleared properly
2022-10-06 16:49:38 +01:00
Tim Gover
3f85bc0126 Merge pull request #441 from peterharperuk/nvme_fix_to_beta
2022-10-03 - Add pieeprom-2022-10-03.bin - BETA
2022-10-03 15:20:30 +01:00
Peter Harper
134e95484a 2022-10-03 - Add pieeprom-2022-10-03.bin - BETA
* Increase the size of USB in-transfers
* Increase TFTP_MAX_BLOCKSIZE to 1468
* stop NVMe cleanly
2022-10-03 14:33:42 +01:00
Tim Gover
2efe9daef6 rpi-eeprom-update: Mention rpiboot in the CM4 not supported error message 2022-09-30 10:52:44 +01:00
Tim Gover
e41bec0bed * Parse target MAC address in NETCONSOLE property
https://github.com/raspberrypi/rpi-eeprom/issues/440
2022-09-02 16:50:16 +01:00
Tim Gover
8c18e9c9bb chmod -x pieeprom-2022-08-02.bin 2022-09-02 15:17:25 +01:00
Tim Gover
e4f90a89e6 2022-08-02 - Add pieeprom-2022-08-02 - BETA + STABLE
* Display the secure-boot configuration on the diagnostics screen
  if secure-boot is enabled.
  See https://www.raspberrypi.com/documentation/computers/configuration.html#bcm2711-bootloader-properties-chosenbootloader
* Toggle SD power at boot to reset card-state after ROM SD probe.
2022-08-02 17:05:12 +01:00
Tim Gover
38ee969c32 Merge pull request #439 from timg236/pieeprom-2022-07-26
pieeprom-2022-07-26: - Add pieeprom-2022-07-26 - BETA + STABLE
2022-07-26 11:41:11 +01:00
Tim Gover
7bc807661f pieeprom-2022-07-26: - Add pieeprom-2022-07-26 - BETA + STABLE
* Fix FAT issue https://github.com/raspberrypi/rpi-eeprom/issues/438
2022-07-26 11:34:23 +01:00
Tim Gover
4703b71a95 Merge pull request #437 from timg236/pieeprom-2022-07-22
pieeprom-2022-07-22 - Add pieeprom-2022-07-22 - BETA + STABLE
2022-07-22 14:52:36 +01:00
Tim Gover
a70a48ccb3 pieeprom-2022-07-22 - Add pieeprom-2022-07-22 - BETA + STABLE
* NVMe fix large file reads - see https://github.com/raspberrypi/firmware/issues/1731
  The firmware fix is also relevant for the bootloader when loading large boot.img files.
2022-07-22 13:45:42 +01:00
Tim Gover
51648bb0b3 Merge pull request #436 from timg236/pieeprom-2022-07-19
pieeprom-2022-07-19: Promote release from beta to STABLE
2022-07-20 12:22:35 +01:00
Tim Gover
6425f70225 pieeprom-2022-07-19: Promote release from beta to STABLE 2022-07-20 10:03:20 +01:00
Tim Gover
d7e137cf05 Merge pull request #435 from timg236/pieeprom-2022-07-14
2022-07-14 - Add pieeprom-2022-07-14 - BETA
2022-07-15 15:16:16 +01:00
Tim Gover
564fdb44f9 2022-07-14 - Add pieeprom-2022-07-14 - BETA
Enable long-filenames & sub-directories for start_file & fixup_file.
Use Unix path separators with a maximum path of 255 characters.
Relative paths (. or ..) are not supported.
2022-07-14 17:12:50 +01:00
Tim Gover
4eb1bd11c1 Restore ARM 32-bit vl805 flash programming tool
The tool was removed because for Pi4/Pi400 the VL805 update is now
handled by the bootloader. However, this might still be be useful
for anyone who is developing a custom VL805 board with an SPI EEPROM
and needs a mechanism to flash this.
2022-07-10 19:47:31 +01:00
Tim Gover
1c758a0904 Merge pull request #429 from timg236/pieeprom-2022-05-20.bin
pieeprom-2022-05-20.bin Reduce boot-time when network install is disabled. - BETA
2022-05-20 10:08:06 +01:00
Tim Gover
288489257f pieeprom-2022-05-20.bin Reduce boot-time when network install is disabled - BETA
* Reduce boot-time when network install is disabled NET_INSTALL_ENABLED=0.
* Switch to the newer SDIO HC and increase SPI clock speed.
2022-05-20 09:51:34 +01:00
Tim Gover
f38458e7cd Merge pull request #428 from timg236/prefer-self-update
rpi-eeprom-update: Avoid using recovery.bin if the current bootloader supports self-update
2022-05-16 08:34:16 +01:00
Tim Gover
4cbc4bc1c5 rpi-eeprom-update: Avoid using recovery.bin if the current bootloader supports self-update
Self-update is preferred to using recovery.bin because it avoids modifiy the
boot partition in order to rename recovery.bin after use. Since the 2711 ROM
does not support network or USB MSD loading of recovery.bin self-update has to
be used with other boot modes anyway.

If RPI_EEPROM_SELF_UPDATE=1 then avoid installing recovery.bin so long as the
current bootloader version supports self-update from SD/MMC and that doesn't
look as though SELF_UPDATE has been disable in the EEPROM config.
2022-05-11 14:06:13 +01:00
Tim Gover
43262c2c5c make-recovery-images: Attempt to avoid orphaned loopback devices 2022-05-11 14:04:00 +01:00
Tim Gover
3393903982 make-imager-release: Bump the imager release to 2022-04-26 2022-05-11 14:04:00 +01:00
Tim Gover
51491abb9c Merge pull request #426 from timg236/default-2022-04-26
2022-04-27 - Promote pieeprom-2022-04-26 to the DEFAULT release
2022-04-28 15:08:19 +01:00
Tim Gover
1b22faf38d pieeprom-2022-04-26: Promote pieeprom-2022-04-26 to the DEFAULT release
Enable Network Install in the default bootloader release.
This release is signed with the secure-boot key and supports
the new HTTP boot-order for downloading signed boot images for
automated provisioning systems.
2022-04-27 16:52:10 +01:00
Tim Gover
a4419567b8 Move old beta releases out of the APT package and into the old directory 2022-04-27 16:49:23 +01:00
Tim Gover
d75e8ff07f Merge pull request #425 from timg236/network-install-secure
pieeprom-2022-04-26: Network install / secure-boot STABLE/BETA
2022-04-27 10:50:45 +01:00
Tim Gover
83347f3968 pieeprom-2022-04-26: Network install / secure-boot STABLE/BETA
Candidate for the next default release.
2022-04-26 14:09:52 +01:00
Tim Gover
61f40841b7 Merge pull request #424 from timg236/pieeprom-2022-04-14
pieeprom-2022-04-14: Ethernet auto IDDQ fix & EEPROM update diagnostics
2022-04-22 20:09:38 +01:00
Tim Gover
7dfdc23014 pieeprom-2022-04-14: Ethernet auto IDDQ fix & EEPROM update diagnostics - BETA
* Fix netboot reboot failure on Pi 4B R1.1 if OS enables IDDQ power saving
     https://github.com/raspberrypi/rpi-eeprom/issues/417
* Fix incorrect error code (configuration error) on EEPROM update failure.
* Enable more verbose errors for EEPROM update failures
2022-04-22 17:52:15 +01:00
Tim Gover
dd0e086280 Merge pull request #420 from peterharperuk/net_install_stable
2022-03-10: Promote 2022-03-10 to LATEST/STABLE
2022-03-16 10:15:18 +00:00
Peter Harper
e8927007e3 2022-03-10: Promote 2022-03-10 to LATEST/STABLE
* Includes new net install feature, enabled by default for Pi 4 and Pi 400
* New net install download screen may appear on boot if a boot location can't
  be found or if boot is slow. Alternative press and hold shift on boot to
  start net install.
* New HTTP boot order.
* Bootloader diagnosis screen is now 720p if supported by your monitor.
* Self update mode is now enabled during SD/EMMC boot.
* The PARTITION number can now be specified as an EEPROM property.
* Allow smaller MSD discovery timeouts to be specified.
* Some tweaks and fixes to IPV6 netboot.
* Increase the max ramdisk size to 128MB
* Increase timeout of early SD/EMMC commands to 100ms
2022-03-16 09:50:01 +00:00
Tim Gover
056d2432ba Merge pull request #418 from peterharperuk/final_net_install_update
2022-03-10: HTTP_PATH fix - BETA
2022-03-10 16:50:37 +00:00
Peter Harper
2dad157037 2022-03-10: HTTP_PATH fix - BETA
* Fix the defective HTTP_PATH eeprom configuration
2022-03-10 14:59:53 +00:00
Tim Gover
e866f258d9 Merge pull request #415 from peterharperuk/net_install_beta3
2022-02-28: More net Install changes - BETA
2022-02-28 17:51:00 +00:00
Peter Harper
827a199c7c 2022-02-28: More net Install changes - BETA
Net install changes.
* Net install is initiated on boot if shift is pressed.
* New HTTP boot order (7) and configuration parameters,
  HTTP_HOST, HTTP_PATH, HTTP_PORT to set url

Other interesting changes.
* Increase the max ramdisk size to 128MB
* Increase timeout of early SD/EMMC commands to 100ms
2022-02-28 16:00:34 +00:00
peterharperuk
42de218ded Merge pull request #411 from peterharperuk/net_install_beta_fixes
2022-02-16: Network Install updated - BETA
2022-02-17 14:15:28 +00:00
Peter Harper
e2e58a7dba 2022-02-16: Network Install updated - BETA
Net install changes.
* Got rid of confirmation step that required you to press <Space> to
  initiate net install. Now just long press <Shift>
* Updated the screen text to make it more obvious the device is still
  trying boot when the net install is showing.
* Fixed a DHCP net install bug which caused us to lose the
  gateway address.
* Fixed a bug with the uIP timers which could cause net install to
  always fail.
* Implemented resume and retry on download failure.

Other interesting changes.
* Allow smaller MSD discovery timeouts to be specified.
* Some tweaks and fixes to IPV6 netboot.
2022-02-17 12:09:20 +00:00
Tim Gover
9a70770c3e Update config.yml 2022-02-12 08:25:02 +00:00
Tim Gover
e899089b42 Update bug_report.yml 2022-02-12 08:22:52 +00:00
Tim Gover
e75ccb4b1c Update bug_report.yml 2022-02-12 08:18:46 +00:00
Tim Gover
aa59c8f7f8 Update bug_report.yml
Fix URL and tidyup
2022-02-12 08:13:44 +00:00
Tim Gover
c09026fcc7 Update bug_report.yml
Added request for bootloader config plus links to various sections of the docs for diagnostics
2022-02-12 08:08:54 +00:00
Tim Gover
348f7a5009 Update bug_report.yml 2022-02-11 09:28:25 +00:00
Tim Gover
368227330b Update bug_report.yml 2022-02-11 09:22:47 +00:00
Tim Gover
27fa8d7529 Update bug_report.yml 2022-02-11 09:18:44 +00:00
Tim Gover
f555eff6e6 Update bug_report.yml 2022-02-11 09:18:23 +00:00
Tim Gover
a84587a1ba Update bug_report.yml 2022-02-11 09:17:42 +00:00
Tim Gover
2e6344b4d2 Update bug_report.yml 2022-02-11 08:54:21 +00:00
Tim Gover
12e3352ce5 Update bug_report.yml 2022-02-11 08:53:24 +00:00
Tim Gover
55300389a9 Update and rename bug_report.md to bug_report.yml
Initial draft
2022-02-11 08:51:19 +00:00
Tim Gover
70df0c270d Update config.yml 2022-02-11 08:26:54 +00:00
Tim Gover
7deaaa181a Merge pull request #407 from timg236/pieeprom-2022-02-08
pieeprom-2022-02-08: Fix secure-boot boot failure - STABLE
2022-02-09 17:49:10 +00:00
Tim Gover
eb4502d528 pieeprom-2022-02-08: Fix secure-boot boot failure - STABLE
Fix boot failure regression on boards which had the OTP secure boot bits set.
2022-02-09 13:27:27 +00:00
Tim Gover
21bc8412b8 Merge pull request #406 from timg236/network-install-release-notes
Update release-notes for network-install BETA
2022-02-08 17:21:23 +00:00
Tim Gover
829c57378d Update release-notes for network-install BETA
Include details of other changes plus instructions for disabling
network-install.
2022-02-08 14:32:52 +00:00
Tim Gover
0254a8e959 Merge pull request #405 from peterharperuk/net_install_beta
2022-02-04: Network Install - BETA
2022-02-08 09:47:10 +00:00
Peter Harper
14b6455d07 2022-02-04: Network Install - BETA
* Includes new network install feature
2022-02-04 12:48:54 +00:00
timg236
77e4322e1f Merge pull request #404 from timg236/make-release-timestamp
make-release: Use rpi-eeprom-digest to generate update timestamps
2022-02-03 10:17:10 +00:00
Tim Gover
05cc42b98b make-release: Use rpi-eeprom-digest to generate update timestamps
Previously, the .sig would have an update timestamp of zero. Switching
to rpi-eeprom-digest is preferable because the update timestamp will
be much closer to when the image was installed.

N.B. Update-timestamp is used to track configuration changes and is
independent of the build-timestamps which are the version of the
bootloader executable.
2022-02-03 09:29:42 +00:00
Tim Gover
9652be2271 Fix typo in release notes date 2022-01-31 15:42:29 +00:00
Tim Gover
bd09360d11 Update make-imager-release to 2022-01-25 2022-01-31 15:42:29 +00:00
Tim Gover
1ce83c09b3 Merge pull request #401 from timg236/default-release-2022-01-25
2022-01-25 - Promote pieeprom-2022-01-25 to the DEFAULT release
2022-01-31 11:48:20 +00:00
Tim Gover
49355f48b3 2022-01-25 - Promote pieeprom-2022-01-25 to the DEFAULT release
Interesting changes since the last default release
    * Support and bug fixes for all Compute Module variants.
    * NVMe interoperability fixes
    * FAT/GPT fixes and file-system performance improvements.
    * Add secure-boot support for industrial applications
      See https://github.com/raspberrypi/usbboot/blob/master/secure-boot-recovery/README.md
    * Added ramdisk / boot.img - for RPIBOOT and secure-boot.
2022-01-31 09:48:01 +00:00
Tim Gover
c1c19fd4ba Merge pull request #400 from timg236/pieeprom-2022-01-25
pieeprom-2022-01-25: Create stable release from pieeprom-2022-01-20
2022-01-25 17:06:17 +00:00
Tim Gover
1d8ff7f3b3 pieeprom-2022-01-25: Create stable release from pieeprom-2022-01-20 2022-01-25 14:48:26 +00:00
Tim Gover
c38a977a7c Merge pull request #399 from timg236/gpu-memory
Add note about GPU memory in latest beta
2022-01-24 17:11:28 +00:00
Tim Gover
567586bbac Add note about GPU memory in latest beta 2022-01-24 16:05:14 +00:00
Tim Gover
28e29df650 Merge pull request #398 from peterharperuk/nvme_fixes_to_beta
2022-01-20: Some NVMe boot fixes - BETA
2022-01-20 15:12:57 +00:00
Peter Harper
a2a017d7c5 2022-01-20: Some NVMe boot fixes - BETA
* PCIe retry on error
* NVMe logging changes
* NVMe attempts to boot twice
2022-01-20 12:11:38 +00:00
Andrew Scheller
3d90553337 fix typo and tweak formatting (#390)
* fix typo and tweak formatting

* Address Phil's feedback
2021-12-19 14:26:00 +00:00
Tim Gover
9ca0e123e6 Merge pull request #387 from peterharperuk/promote_mtb_fix_to_stable
Promote mtb fix to stable
2021-12-13 13:05:50 +00:00
Peter Harper
3fdf703f3f 2021-12-02: Promote the 2021-12-02 beta release to LATEST/STABLE
* Just fixes a regression with MTB detection affecting factory testing
2021-12-13 11:56:11 +00:00
Peter Harper
b64fc25a1a Fix permissions on files
A few files had the execute attribute set. Remove this.
2021-12-13 11:52:12 +00:00
Tim Gover
a4c259a2e4 Merge pull request #386 from peterharperuk/fix_mtb_detection2
2021-12-02: Fix MTB detection for factory test - BETA
2021-12-10 13:53:23 +00:00
Peter Harper
ca5730a9dc 2021-12-02: Fix MTB detection for factory test - BETA
* Just fixes a regression with MTB detection affecting factory testing

Note: This is just a rename of 2021-12-09 which had the wrong date
2021-12-10 13:04:23 +00:00
Tim Gover
91676cba22 Merge pull request #385 from peterharperuk/fix_mtb_detection
2021-12-09: Fix MTB detection for factory test - BETA
2021-12-09 20:13:49 +00:00
Peter Harper
2f8d0861f8 2021-12-09: Fix MTB detection for factory test - BETA
* Just fixes a regression with MTB detection affecting factory testing
2021-12-09 16:17:31 +00:00
Tim Gover
8dcecf429c Merge pull request #384 from timg236/default-recovery.bin
Update default recovery.bin to the latest stable release
2021-12-09 14:26:52 +00:00
Tim Gover
8de4a4db05 Update default recovery.bin to the latest stable release
* Promote the recovery.bin from stable to default. This avoids an
  issue where recovery.bin fails to load on large FAT32 boot partions with
  32K clusters.
2021-12-09 11:11:18 +00:00
Tim Gover
86eee571e2 rpi-eeprom-digest: Don't require xxd/openssl unless RSA signing is requested. 2021-12-01 21:34:19 +00:00
timg236
c62427e1d5 Merge pull request #382 from timg236/pieeprom-2021-11-22-stable
Promote pieeprom-2021-11-22 beta release to stable
2021-11-29 12:00:14 +00:00
Tim Gover
91fdb8648b Promote pieeprom-2021-11-22 beta release to stable
* NVMe / PCIe reset fixes
* GPT / FAT enhancements
* FAT performance improvements
* Secure-boot for industrial customers (see usbboot repo)
2021-11-29 10:45:34 +00:00
Tim Gover
12907d02ff rpi-eeprom-config: Fix calls for reading/replacing bootconf.txt
The config read/update APIs have been replaced with generic
read/replace 'boot file' APIs in order to support secure-boot.

The previous secure-boot related commits  broke the interactive
rpi-eeprom-config --edit/-a options.
2021-11-23 11:26:27 +00:00
timg236
3e56160f8b Merge pull request #380 from peterharperuk/nvme-reboot-fix
2021-11-22: Fix for Sabrent rocket Nano NVMe reboot issue - BETA
2021-11-22 14:36:31 +00:00
Tim Gover
34b790407c rpi-eeprom-digest: Add to test/install and specify -o in rpi-eeprom-update 2021-11-22 14:29:59 +00:00
Peter Harper
c4a7e752d0 2021-11-22: Fix for Sabrent rocket Nano NVMe reboot issue - BETA
* Fixes issue with Sabrent rocket Nano NVMe disk after a reboot.
  Run pcie initialisation again if there's an error.
2021-11-22 12:40:56 +00:00
Tim Gover
77784b4b6a test: Add a simple loopback test for signed boot 2021-11-13 15:50:23 +00:00
Tim Gover
3d5ab049d4 rpi-eeprom-config: Update to the same version as raspberrypi/usbboot
Update rpi-eeprom-config to include the secure-boot changes.
2021-11-13 15:50:23 +00:00
Tim Gover
43610e19ec rpi-eeprom-update: Use rpi-eeprom-digest to generate the .sig files 2021-11-13 15:50:23 +00:00
Tim Gover
86cc791879 rpi-eeprom-digest: Import script from rapsberrypi/usbboot
Update rpi-eeprom to use the common .sig generator script from usbboot.
2021-11-13 15:47:50 +00:00
Tim Gover
47976e4409 Merge pull request #377 from andrum99/patch-2
release-notes.md: Fix semi-dead link
2021-10-27 19:40:24 +01:00
andrum99
ecf25d217b Update release-notes.md 2021-10-27 18:34:47 +01:00
Tim Gover
978ced96c9 2021-10-27 - Secure boot improvements - BETA
* Improve the error logging if a file is too large and truncated.
* Increase the maximum size of the ramdisk to 96MB.
* Preliminary changes to expose the boot-mode used to load the
  ramdisk via device-tree.

N.B. Secure boot is only recommended for industrial customers and is
currently a beta release. This can only be enabled via RPIBOOT

https://github.com/raspberrypi/usbboot/blob/master/Readme.md
2021-10-27 17:41:56 +01:00
Tim Gover
a03de8554b make-recovery-images: Change partition size to be 256MB
Make this the same size as Raspberry Pi OS. Since this is compressed
it doesn't make the downloads noticably longer.
2021-10-13 10:16:14 +01:00
Tim Gover
0b4cab2af9 make-recovery-images: Set GID 2021-10-13 08:35:57 +01:00
Tim Gover
95e04c9910 Update a few more URLs to raspberrypi.com 2021-10-13 08:27:20 +01:00
Tim Gover
e76eaf795e Merge pull request #374 from andrum99/patch-1
imager/README.txt: typo, grammar, style fixes
2021-10-11 08:57:55 +01:00
andrum99
0cddcd363f Update README.txt 2021-10-09 16:01:26 +01:00
andrum99
8161d3a89e Update README.txt 2021-10-09 15:59:46 +01:00
andrum99
9ae4ec02a7 Update README.txt 2021-10-09 00:37:32 +01:00
andrum99
a30fbd6928 Update README.txt 2021-10-08 17:06:14 +01:00
andrum99
75b4ea7c7a Update README.txt 2021-10-08 17:03:28 +01:00
andrum99
573770c06f Update README.txt 2021-10-08 17:02:43 +01:00
andrum99
72a79d0b7e Don't think we need to specify 'spare' - that's up to the user 2021-10-08 17:01:28 +01:00
andrum99
7a811e4256 Update README.txt 2021-10-08 17:00:29 +01:00
andrum99
960b80e14c imager/README.txt: typo, grammar, style fixes 2021-10-08 16:59:02 +01:00
Tim Gover
a63b3c7ff4 Merge pull request #373 from timg236/make-recovery-images
make-recovery-images: Build FAT32 disk-images for the imager zips
2021-10-08 15:46:43 +01:00
Tim Gover
01da541b85 make-recovery-images: Build FAT32 disk-images for the imager zips
Create small (40MB) FAT32 images with 512 KB sectors. The aim
is to have a simple, fixed format to avoid compatibility / FAT
issues.
2021-10-08 15:42:44 +01:00
Tim Gover
194960a023 Merge pull request #372 from timg236/rpi-eeprom-config-python3
rpi-eeprom-config: require python3
2021-10-07 13:10:22 +01:00
Tim Gover
28878ba2c5 rpi-eeprom-config: require python3
Require python3 instead of relying on all distros including
python-is-python3 etc.

The code will still work with python2 but distros which require
python2 will need to maintain that as a downstream patch.
2021-10-07 11:11:04 +01:00
Tim Gover
e049a0807f Merge pull request #371 from peterharperuk/fix_readme_url
Fix URLs in README
2021-10-07 10:24:07 +01:00
Peter Harper
51d7c9bb78 Fix URLs in README
These got broken by the recent doc update and the redirects to
raspberrypi.com don't seem to be correct
2021-10-06 17:57:31 +01:00
Tim Gover
b93a7569a3 pieeprom-2021-10-05: Update for latest Broadcom SDRAM settings - BETA
* Minor update for latest SDRAM tuning settings.
2021-10-05 09:17:11 +01:00
Tim Gover
cc347ddaa2 Merge pull request #369 from timg236/pieeprom-2021-10-04
pieeprom-2021-10-04: Add support for GPT FAT16 and increase USB timeouts - BETA
2021-10-04 17:08:14 +01:00
Tim Gover
c297ba744c pieeprom-2021-10-04: Add support for GPT FAT16 and increase USB timeouts - BETA
* Update the FAT detection to support FAT16 for EFI/ESD paritions with
  GPT instead of assuming FAT32. The latest firmware is also required
  for a similar update.
* Increase the timeouts for MSD SCSI commands to reduce the risk of
  timeouts when probing the capacity of slow to start devices
  e.g. USB RAID with spinning disks.
2021-10-04 15:29:53 +01:00
Tim Gover
7cae0129e0 Additional fix to beta recovery.bin 2021-09-27 16:26:45 +01:00
Tim Gover
650e255daf 2021-09-27 - Fix recovery.bin rename issue and EEPROM netconsole - BETA
* Fix recovery.bin rename issue
* Update pieeprom-2021-09-27.bin to fix netconsole
2021-09-27 15:20:10 +01:00
Tim Gover
504e18bb3a recovery.bin 2021-09-23 - Temporarily revert recovery.bin 2021-09-22
Revert until fix for can be verified https://github.com/raspberrypi/rpi-eeprom/issues/367
2021-09-27 12:57:36 +01:00
Tim Gover
4b5a46947e pieeprom-2021-09-23.bin: Bootloader file-system updates - BETA
This release makes major changes to the bootloader file-system code in
order to support new features and should be treated as a bleeding edge BETA
release!

* Improve file-system performance to reduce boot time.
* Preliminary support for IPV6 TFTP. Requires an updated start4.elf.
  Details to follow.
* Fix VL805=1 option for CM4 IO boards that follow the same XHCI
  design as Pi4B. Start.elf will be updated in the next rpi-update
  release and the latest CM4 DTBs are required for the 'XHCI reset controller'
* Preliminary suppport for loading signed boot image files.
  Requires updated GPU firmware.
2021-09-23 17:47:06 +01:00
Tim Gover
1fc1d40117 Merge pull request #363 from timg236/recovery-22-09-2021-stable
Promote 22/09/2021 beta recovery.bin to stable
2021-09-23 15:39:47 +01:00
Tim Gover
7e6a961a24 Promote 22/09/2021 beta recovery.bin to stable 2021-09-23 10:08:58 +01:00
Tim Gover
953a7fe05f Merge pull request #362 from timg236/recovery-update-beta
recovery.bin: Fix recovery.bin loading on larger FAT partitions - BETA
2021-09-22 17:37:30 +01:00
Tim Gover
7208a1ca0f recovery.bin: Fix recovery.bin loading on larger FAT partitions - BETA 2021-09-22 16:41:03 +01:00
Tim Gover
cc38b35bbe Merge pull request #358 from lurch/patch-1
Update documentation link
2021-09-01 15:15:26 +01:00
Andrew Scheller
ffda73b9cd Update documentation link 2021-09-01 15:02:01 +01:00
Tim Gover
8dac90ae9a Update bug_report.md 2021-08-10 12:00:17 +01:00
Tim Gover
f7d7a9c8a6 Update bug_report.md 2021-08-10 11:59:52 +01:00
Tim Gover
6a47bc4900 Update bug_report.md 2021-08-10 11:59:23 +01:00
Tim Gover
eae21cbae3 Merge pull request #353 from tmm1/patch-1
Fix typo
2021-07-15 22:54:06 +01:00
Aman Gupta Karmani
75216fb64c Fix typo 2021-07-14 15:05:43 -07:00
Tim Gover
f19990103e pieeprom-2021-07-06: Promote to STABLE
Promote the latest beta release to stable which notably adds
NVMe boot support for CM4.
2021-07-07 11:33:46 +01:00
Tim Gover
45accca3dc pieeprom-2021-07-06 - Tidyup PXE debug strings - BETA
* Remove redundant debug string - hexdump is more useful for debug.
* Minor internal changes for manufacturing test.
2021-07-06 14:06:46 +01:00
Tim Gover
5d70742580 pieeprom-2021-06-25 - Support 256MB gpu_mem with boot.img ramdisk - BETA
* Tweak the address map so that boot.img files can support
  larger GPU memory allocations e.g. start4x.elf with camera
  loaded from a boot.img.
2021-06-25 13:55:34 +01:00
Tim Gover
cecc46f687 pieeprom-2021-06-17 CM4 avoid touching PCIe - BETA
* Avoid default PCIe / XHCI probe on CM4 unless required for the
  current boot mode (USB_MSD or NVME).
* Leave PCIe RC in reset state when loading start.elf except for
  USB-MSD mode.
2021-06-18 10:18:10 +01:00
Tim Gover
4b7fcc65e9 pieeprom-2021-06-11 - Add USB_MSD_STARTUP_DELAY
* Minor update to BRCM SDRAM settings.
* Add USB_MSD_STARTUP_DELAY option (default 0 option).

This adds a configurable delay (in milliseconds) the first time
the USB host controller is initialised before device enumeration.

Normally, this should not be required. However, some HDD enclosures may
require an extended startup delay in order to spinup drives.  Without this
the get-capacity command may stall and timeout.
2021-06-11 14:54:46 +01:00
Tim Gover
949e9c49f8 Merge pull request #343 from waveform80/ignore-non-pi
Add a test to cause the script to exit cleanly on non-Pi hardware
2021-06-11 11:51:18 +01:00
Tim Gover
1dab88d0d0 Merge pull request #342 from waveform80/remove-vcmailbox
Remove redundant vcmailbox reference
2021-06-11 11:47:53 +01:00
Dave Jones
71ef83abbc Add a test to cause the script to exit cleanly on non-Pi hardware
At present, the update script exits cleanly in the case it finds itself
run on Pi hardware prior to the 4/CM4/400, but if installed on non-Pi
hardware exits with various slightly cryptic errors (missing vcgencmd
and some subsequent math errors from trying to bit-shift the empty
BOARD_INFO variable).

This patch adds a similar exit to the non-Pi 4 case, with a slightly
more useful message.
2021-06-10 10:04:13 +01:00
Dave Jones
6a310b5d4d Remove redundant vcmailbox reference
The vcmailbox binary is no longer used (like flashrom), hence there's little point in keeping the configuration variable for it
2021-06-09 17:48:09 +01:00
Tim Gover
34aa94bdd2 Merge pull request #337 from timg236/pieeprom-2021-05-19
Pieeprom 2021 05 19
2021-05-20 14:12:11 +01:00
Tim Gover
48864f3d1f pieeprom-2021-05-19 - Use latest BRCM SDRAM setting
* Use the latest BRCM SDRAM settings.
* FAT12 support for small bootloader ramdisk images.
* Minor file-system performance optimisations.
* Added recovery.bin config.txt option (erase_eeprom=1) to perform
  an SPI chip-erase operation instead of programming the bootloader image.
2021-05-19 17:51:24 +01:00
Tim Gover
503f1c0055 rpi-eeprom-update: Display a warning when the bootloader is downgraded
Display a warning if the bootloader version is downgraded. This can
happen when swapping boot-media and the bootloader configuration is
changed from an OS with an old version of the rpi-eeprom package.

Remove the duplicated "update pending" and "to cancel update" messages.
2021-05-17 15:21:29 +01:00
Tim Gover
f7402923bc Merge pull request #331 from lurch/patch-1
Typos and wording tweaks
2021-05-04 16:34:15 +01:00
Tim Gover
34b752e8be Update imager-release to 2021-04-29 2021-04-30 11:24:31 +01:00
Tim Gover
90daaae301 pieeprom-2021-04-29: Update default release to this image 2021-04-30 10:02:10 +01:00
Tim Gover
e6107348e0 pieeprom-2021-04-29.bin - Pi400 MII clock freq - STABLE 2021-04-29 17:23:56 +01:00
Andrew Scheller
650e942947 Typos and wording tweaks 2021-04-24 02:39:43 +01:00
Tim Gover
53f121d651 Merge pull request #329 from andrum99/patch-5
rpi-eeprom-update: up-to-date -> up to date
2021-04-22 09:09:36 +01:00
andrum99
89a68bc405 rpi-eeprom-update: up-to-date -> up to date
This is only meant to be hyphenated when used as a compound adjective, which is not the case here. See https://www.thewriter.co.uk/tools/style-guide/punctuation/hyphens#:~:text=When%20it%20comes%20after%20the,up%2Dto%2Ddate%20document.
2021-04-21 16:59:35 +01:00
Tim Gover
f3b402d7e6 Merge pull request #319 from timg236/pieeprom-2021-03-18-default
2021-03-18 - Promote 2021-03-18 to default/critical release
2021-04-19 14:11:55 +01:00
Tim Gover
45800f00c7 2021-04-19 - Promote 2021-03-18 to the default/critical release
Interesting changes since the last default release:-
   * Display VC_BUILD_ID strings instead of the SHA256 hash
   * Add support for [cm4] and [pi400] config conditionals filters.
   * Change network boot to use the same "RXID" Ethernet PHY configuration as the 5.10 kernel
   * TFTP - reply to duplicate ACKS
   * Skip rendering of HDMI diagnostics display for the first 8 seconds unless an error occurs.
   * UDP checksum fixes
   * Add support for the BCM2711 XHCI controller - BOOT_ORDER 0x5
   * XHCI protocol layer fixes for non-VLI controllers
   * Avoid USB MSD timeout of there is only one device
   * Implement tryboot for OS upgrade fallback
   * Check the update-timestamp before applying an update in SELF-UPDATE mode
   * Update recovery.bin to 2021-04-13 release for error pattern fix
     on SDRAM failure.
2021-04-19 14:07:27 +01:00
Tim Gover
e5d73dc857 recovery.bin: Fix error pattern handling for HDMI/SDRAM failures 2021-04-14 14:47:59 +01:00
Tim Gover
b6d1893973 recovery.bin: Fix error pattern 2021-04-14 14:46:29 +01:00
Tim Gover
85425c0806 Update README.md 2021-03-30 08:45:50 +01:00
Tim Gover
053f8483af Merge pull request #325 from lurch/patch-1
Fix typos in test script
2021-03-29 19:42:33 +01:00
Andrew Scheller
7c26d67583 Fix typos in test script 2021-03-29 19:06:46 +01:00
Tim Gover
1e0be05d6e Merge pull request #321 from timg236/min-version
rpi-eeprom-update: Set a minimum version number for silent updates
2021-03-25 16:57:49 +00:00
Tim Gover
a4d7bdbef0 rpi-eeprom-update: Specifiy a minimum version number for automatic updates
Add a new flag '-s' which init scripts should specify to indicate that
the bootloader is running silently to do an automatic update. If '-s'
is specified and the 'default' release is specified then the bootloader
is only updated if it is older than the minimum version number specified
within this script.
This allows the default release to be updated to support new hardware
without forcing updates for existing users. However, if the
configuration is updated then the latest release should be used.

E.g. If network boot is selected via raspi-config or the Raspberry Pi
Imager then it's desirable to get the latest production release to
benefit from any bug fixes. However, a bootloader updated to support
new hardware (e.g. CM4) should not require Pi4B users to to upgrade
their bootloader.

The min-version is set to pieeprom-2020-09-03.
2021-03-25 14:24:17 +00:00
Tim Gover
587683e8e5 test: Extend loopback test to cover old beta releases.
Also copy the current beta releases into old for a bit more test coverage.
2021-03-24 09:37:21 +00:00
Tim Gover
953c9fea43 Merge pull request #320 from andrum99/patch-1
releases.md: improve page title, add missing full stops
2021-03-23 14:17:24 +00:00
andrum99
2e0801a4da releases.md: improve page title, add missing full stops 2021-03-23 14:02:55 +00:00
Tim Gover
8113d3f8a0 Update releases.md 2021-03-23 10:09:20 +00:00
Tim Gover
303c2e110d Update README.md 2021-03-22 08:20:22 +00:00
Tim Gover
3408d368e3 Update README.md 2021-03-22 08:18:14 +00:00
Tim Gover
4e51d9a735 Merge pull request #317 from timg236/pieeprom-2021-03-18
pieeprom-2021-03-18 Fix reboot issue on older Pi 4B boards - STABLE
2021-03-18 13:33:39 +00:00
Tim Gover
ff27ccf694 pieeprom-2021-03-18 Fix reboot issue on older Pi 4B boards - STABLE 2021-03-18 09:33:05 +00:00
Tim Gover
26366bb378 Merge pull request #314 from peterharperuk/bridge-fix
pieeprom-2021-03-17.bin - Fix problem with PCIe bridges - BETA
2021-03-17 13:18:30 +00:00
Peter Harper
a1e86f1350 pieeprom-2021-03-17.bin - Fix problem with PCIe bridges - BETA 2021-03-17 12:13:32 +00:00
Tim Gover
bc5fba23cb remove +x bit on beta recovery.bin and 2021-04-03 release 2021-03-12 20:37:20 +00:00
Tim Gover
5579d39ab0 Merge pull request #310 from lurch/make_beta
Add make-beta-release as a wrapper around make-release
2021-03-10 19:13:06 +00:00
Andrew Scheller
7589fbf981 Allow a custom firmware_status to be set via env-var 2021-03-10 16:56:47 +00:00
Andrew Scheller
6b1851750a Add make-beta-release as a wrapper around make-release 2021-03-09 19:18:43 +00:00
Tim Gover
2971da10ee Merge pull request #309 from peterharperuk/nvme_bootloader
pieeprom-2021-03-04.bin - NVMe boot support - BETA
2021-03-09 17:02:33 +00:00
peter.harper
c5fea074c1 pieeprom-2021-03-04.bin - NVMe boot support - BETA 2021-03-09 16:29:38 +00:00
Tim Gover
71a6049b2b Merge pull request #308 from lurch/imager_script_refactor
Refactor the imager script to reduce duplication and remove reliance on symlinks
2021-03-09 15:25:47 +00:00
Andrew Scheller
7880114040 Make make-release more flexible, and add make-imager-release as a wrapper script around it 2021-03-05 16:21:33 +00:00
Andrew Scheller
869c14518b Refactor the imager script to reduce duplication and remove reliance on symlinks 2021-03-05 13:45:16 +00:00
Tim Gover
b9955dba91 Add recovery.bin to make-release
It won't work without it!
2021-03-05 13:38:49 +00:00
Tim Gover
2c46b979dc Merge pull request #307 from lurch/patch-1
Typos
2021-03-05 13:36:48 +00:00
Andrew Scheller
26c4f2b3da Typos 2021-03-05 12:35:19 +00:00
Tim Gover
0dfc9dc8e5 Merge pull request #306 from timg236/make-release
make-release: Add a script for generating Raspberry Pi Imager releases
2021-03-05 10:40:50 +00:00
Tim Gover
3b952e996a make-release: Add a script for generating Raspberry Pi Imager releases
Create an EEPROM update zip files for use with the Raspberry Pi Imager.
The Raspberry Pi Imager JSON will soon be updated to support the 3
different boot priority choices offered by raspi-config.
2021-03-04 15:24:53 +00:00
Tim Gover
8c9c14526d Revert "rpi-eeprom-update: Use 'tr' instead of 'strings'"
This reverts commit 9a2aede8034aab0bfb050b481d422fddb5c25683.
2021-02-26 14:06:29 +00:00
Tim Gover
dcd114f8fd Revert "rpi-eeprom-update: Surround [:print:] with quotes"
This reverts commit f14fc0f8f6974129ffccc0d5b85e04a1ec96399b.
2021-02-26 14:06:29 +00:00
Tim Gover
6265c773e7 Remove SPI_SPEED variable now that flashrom has been removed. 2021-02-24 14:04:23 +00:00
timg236
738ac4b432 Merge pull request #302 from vianpl/no-binutils
rpi-eeprom-update: Surround [:print:] with quotes
2021-02-24 14:02:46 +00:00
Nicolas Saenz Julienne
73c91317ca rpi-eeprom-update: Surround [:print:] with quotes
It seems that [:print:] could be substituted by rogue shells[1], so
surround it with quotes to make sure it doesn't happen. Use single
quotes as they are the most constraining kind. All in all, this change
should be harmless.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
[1] https://github.com/raspberrypi/rpi-eeprom/pull/298#issuecomment-784542905
2021-02-24 13:09:59 +01:00
timg236
d642c795a7 Merge pull request #298 from vianpl/no-binutils
rpi-eeprom-update: Use 'tr' instead of 'strings'
2021-02-22 11:47:11 +00:00
timg236
0294cdec42 Merge pull request #300 from timg236/pieeprom-2021-02-16-latest
pieeprom-2021-02-16: Promote to STABLE
2021-02-22 11:25:05 +00:00
Tim Gover
1b937edc4b pieeprom-2021-02-16: Promote to STABLE
Promote the pieeprom-2021-02-16 release to stable/latest.
2021-02-22 10:38:08 +00:00
Nicolas Saenz Julienne
b760758c5e rpi-eeprom-update: Use 'tr' instead of 'strings'
The 'strings' utility is installed by binutils whereas 'tr' belongs with
coreutils. Minimal systems will only contain the latter, due to binutils'
size (20-50 MB). So, convert all uses of 'strings' to 'tr' so as to
avoid the package dependency.

The second 'tr' usage converts non-ASCII characters into newlines so as
to isolate the "BUILD_TIMESTAMP=1234567890" statement (similar to what
'strings' does). There is no need for this in the first one: non-ASCII
characters are simply discarded as DT aliases have a fixed one line
format.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-02-19 10:45:46 +01:00
Tim Gover
3129546271 pieeprom-2021-02-16: Change VC version info & TFTP ACK fix BETA 2021-02-16 14:58:11 +00:00
timg236
d9ed0cd680 Merge pull request #296 from timg236/tim/move_vl805_to_old
vl805: Move to old following removal of USE_FLASHROM option
2021-02-16 13:23:11 +00:00
Tim Gover
3e03056215 vl805: Move to old following removal of USE_FLASHROM option
Move to to the old directory now that it's no longer referenced by rpi-eeprom-update.

Add a dependency check for 'lspci' which is normally provided by
pciutils or busybox and remove the failover to the vl805 helper.

Tweak the failure messages for missing dependencies to be slightly less
OS specific.
2021-02-15 20:57:48 +00:00
timg236
2fec47bd7f rpi-eeprom-update: Expand help to describe CM4 bootloader updates (#293)
Add some brief documentation about CM4 bootloader updates and provide
links to the full documentation.
2021-02-12 08:53:32 +00:00
timg236
cfc700e2f7 Merge pull request #283 from timg236/tim/remove-flashrom
rpi-eeprom-update: Remove deprecated flashrom script options.
2021-02-10 19:29:00 +00:00
Tim Gover
7da4173852 rpi-eeprom-update: Remove deprecated flashrom script options.
The muxing of the SPI EEPROM and analog audio pins makes flashrom
usage unreliable and having two flashing mechanisms adds unnecessary
complexity to this script.

The bootloader supports EEPROM updates from USB-MSD, Network
and rpiboot there is no real need to support flashrom within this
utility. Therefore, the option to use flashrom can be removed from this
script.
2021-02-10 19:26:06 +00:00
timg236
9de028aad2 Merge pull request #291 from vianpl/plat-check
rpi-eeprom-config/update: Exit cleanly when not run on rpi4
2021-02-10 15:02:16 +00:00
Nicolas Saenz Julienne
6fe6f22bad rpi-eeprom-config/update: Exit cleanly when not run on rpi4
Some users might forcibly install this on a board that isn't an rpi4.
Exit early, and explain why the program can't be run.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-02-09 15:22:52 +01:00
timg236
3d6165304c Merge pull request #290 from timg236/raspi_config
rpi-eeprom-update: Reference raspi-config from version message
2021-01-29 18:26:12 +00:00
Tim Gover
5f0de19aee rpi-eeprom-update: Reference raspi-config from version message
Update the human readable version of the version information to indicate
that raspi-config may be used to change the release type.
raspi-config can be replaced with other program names if necessary.
2021-01-29 08:04:24 +00:00
timg236
b9c255df58 Merge pull request #288 from vianpl/blconfig-fixes
rpi-eeprom-config: Properly decode sysfs binary files
2021-01-26 12:26:29 +00:00
Nicolas Saenz Julienne
eeb4a19c7f rpi-eeprom-config: Properly decode sysfs binary files
The previous implementation was reading the sysfs files as plain text
and encoding them as 'ascii' to remove all the trailing zeros. This is
wrong twofold. To start with, the sysfs file we're querying are binary
files[1], and we're reading it as a string. On top of that we're
benefiting that *some* python implementations of string.encode() will
deal with trailing zeros.

Fix this by marking the files as binary and decoding them as strings
before consuming them.

[1] sysfs files are generally text based, but there is also the option
to output binary data. Our configuration file does the later.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-01-26 13:05:43 +01:00
timg236
3ae6694fbb Merge pull request #284 from vianpl/blconfig_nvmem
rpi-eeprom-update: Get bootloader configuration from DT
2021-01-24 16:19:41 +00:00
Nicolas Saenz Julienne
2aa97029fd rpi-eeprom-update: Get bootloader configuration from DT
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-01-22 19:20:22 +01:00
timg236
7cb9d4162f Merge pull request #280 from timg236/tim/sd_1v8
pieeprom-2021-01-16: Fix SD 1V8 reset - LATEST + BETA
2021-01-16 14:45:41 +00:00
Tim Gover
9b74ec49a1 pieeprom-2021-01-16: Fix SD 1V8 reset - LATEST + BETA 2021-01-16 14:32:30 +00:00
Tim Gover
54cadc816b Promote pieeprom-2021-01-11 to STABLE (LATEST) 2021-01-14 11:00:33 +00:00
Tim Gover
a95ecf9355 rpi-eeprom-update: Update docs and default ENV for release names
Change default FIRMWARE_RELEASE_STATUS variable to 'default' rather
than 'critical'.

Update the built in help for new release names which align the
rpi-eeprom release names with raspi-config documentation.
2021-01-13 09:52:56 +00:00
Tim Gover
690872a3ca rpi-eeprom-update: Add trailing / so find follows the FW symlink 2021-01-12 16:44:31 +00:00
Tim Gover
4b17575e83 pieeprom-2021-01-11: Timeout stalled USB MSD devices - BETA 2021-01-11 17:17:35 +00:00
Tim Gover
92c048b90c rpi-eeprom-update: Add default/latest symlinks to reflect raspi-config naming 2021-01-11 17:08:01 +00:00
timg236
2318f44baa Merge pull request #273 from timg236/tim/dt-version
rpi-eeprom-update: Get bootloader build-timestamp from device-tree
2021-01-09 09:40:59 +00:00
Tim Gover
289befb382 rpi-eeprom-update: Get bootloader build-timestamp from device-tree 2021-01-09 09:38:31 +00:00
Tim Gover
b481076132 Merge pull request #271 from lurch/patch-1
typo
2021-01-07 17:35:37 +00:00
Andrew Scheller
0d3ac86cc3 typo 2021-01-07 00:50:30 +00:00
Tim Gover
e9ec8adfd8 Merge pull request #270 from andrum99/patch-1
release-notes.md: label 2020-01-05 release as BETA
2021-01-06 19:10:45 +00:00
andrum99
868efb3ad1 release-notes.md: label 2020-01-05 release as BETA 2021-01-06 18:15:26 +00:00
Tim Gover
ab3bcf0dae pieeprom-2021-01-05: USB MSD interoperability improvements for Pi 4B < R1.4 2021-01-05 16:54:43 +00:00
Tim Gover
54a9796abb Promote pieeprom-2020-12-11 release from beta to stable 2020-12-14 11:42:52 +00:00
Tim Gover
80fd3016d0 pieeprom-2020-12-11: CM4/PI400 conditional filters - BETA 2020-12-11 11:21:45 +00:00
Tim Gover
361f4703fd Update bug_report.md 2020-12-11 10:04:37 +00:00
Tim Gover
008b0962f5 Update bug_report.md 2020-12-11 10:01:07 +00:00
Tim Gover
f6d2fd7312 Update bug_report.md 2020-12-11 09:58:38 +00:00
Tim Gover
7982134b18 Update bug_report.md 2020-12-11 09:55:19 +00:00
Tim Gover
3702e706af pieeprom-2020-11-24: Enable booting from BCM2711 XHCI controller - BETA 2020-11-24 15:31:05 +00:00
Tim Gover
1443b30f52 Merge pull request #256 from timg236/tim/master
rpi-eeprom-config: Change --edit to use the current EEPROM config
2020-11-16 16:05:49 +00:00
Tim Gover
d5c564d47c rpi-eeprom-config: Change --edit to use the current EEPROM config
Always use the current EEPROM configuration unless there is an
update pending in which case use that to support incremental edits.

Update help and update message to indicate that
'sudo rpi-eeprom-update -r'
may be used to cancel a pending update.

Fix a few comments
2020-11-15 21:36:09 +00:00
Tim Gover
b3e45cb7b0 Merge pull request #254 from MishterKirby/patch-1
Update release-notes.md
2020-11-15 18:47:14 +00:00
Sebastian Rivera
398534b04e Update release-notes.md 2020-11-11 10:48:47 -06:00
Sebastian Rivera
2f2910472f Update release-notes.md 2020-11-11 10:15:31 -06:00
Tim Gover
13b0bb602e Merge pull request #252 from MishterKirby/patch-1
Update release-notes.md
2020-11-10 18:19:44 +00:00
Sebastian Rivera
2fb94103ae Update release-notes.md 2020-11-10 12:17:03 -06:00
Sebastian Rivera
64b747495e Update release-notes.md
Fixed typo
2020-11-07 14:45:47 -06:00
Tim Gover
27ba1c582a Merge pull request #248 from andrum99/patch-1
Release notes: mark 2020-10-28 as beta
2020-11-06 17:51:12 +00:00
andrum99
499ea81f9e Update release-notes.md 2020-11-02 17:52:11 +00:00
Tim Gover
16bb29427f Merge pull request #246 from timg236/tim/pieeprom-2020-10-28
pieeprom-2020-10-28: Defer HDMI diagnostics display, update-timestamp…
2020-10-28 19:12:14 +00:00
Tim Gover
ee2e650332 pieeprom-2020-10-28: Defer HDMI diagnostics display, update-timestamps, tryboot support 2020-10-28 19:00:24 +00:00
Tim Gover
0125155f9d Merge pull request #245 from lurch/patch-1
typos
2020-10-28 09:50:56 +00:00
Andrew Scheller
435da0f3cb typos 2020-10-28 09:47:50 +00:00
Tim Gover
7f054d6700 Merge pull request #244 from timg236/update_timestamp
Add the timestamp of the update to the pieeprom.sig file.
2020-10-28 07:47:38 +00:00
Tim Gover
7612907337 Add the timestamp of the update to the pieeprom.sig file.
Add the timestamp to pieeprom.sig for use with a future bootloader
update.

This is not relevant for the VL805 firmware because it is not
configurable.
2020-10-28 07:40:59 +00:00
Tim Gover
f24abcd305 Merge pull request #238 from timg236/tim/pkg_info
Only check package checksums on systems with package checksums
2020-10-20 17:18:39 +01:00
Tim Gover
b1ed98c779 rpi-eeprom-update: Skip checksums if there is no dpkg info directory 2020-10-20 16:49:36 +01:00
Tim Gover
2730572da2 rpi-eeprom-update: Fix shellcheck warnings 2020-10-20 16:49:36 +01:00
Tim Gover
718820bceb rpi-eeprom-config: Use decode('utf-8') to convert subprocess txt
This matters on Python3 but not on Python2
2020-10-05 19:35:12 +01:00
Tim Gover
84e4615814 rpi-eeprom-config: Update help for --edit
Add -E to sudo in the example to preserve the environment.

Remove the redundant escaping of single quotes now that the help is
enclosed in triple quotes.
2020-10-04 09:55:16 +01:00
Tim Gover
b0066b091e Merge pull request #229 from timg236/rpi_eeprom_config_apply
Update rpi-eeprom-config to provide wrap simple interactive and non-interactive update opertions
2020-10-02 09:21:46 +01:00
Tim Gover
d34f62ee3d rpi-eeprom-update: Move .bin filter for checksums into subshell
Move all package checksum related operations to the subshell and check
the old rpi-eeprom-images packages if rpi-eeprom contains no .bin
files.
The rpi-eeprom-config --edit and --apply option passes the -i flag so
checksums should have been skipped anyway.
2020-10-01 20:07:53 +01:00
Tim Gover
e63f3dcfc3 Require 'sudo' for --edit or --apply instead of spawing sudo command 2020-09-30 11:44:10 +01:00
Tim Gover
6ab4179bae rpi-eeprom-config: Trap errors when deleting previous update files 2020-09-29 10:35:34 +01:00
Tim Gover
5ab94e88f2 rpi-eeprom-config: Update --edit to read config from pending updates
Use the config from the pending update if there is one so that it's
possible to make multiple edits before rebooting.
2020-09-28 10:41:20 +01:00
Tim Gover
b6c6b03add rpi-eeprom-update: Add -b flag to output BOOTFS path
Add an API for external scripts to safely determine which the directory
the EEPROM image update files will be written to.
2020-09-28 10:41:20 +01:00
Tim Gover
ca647a6b90 Fix doc comments and ignore package checksums 2020-09-28 10:41:20 +01:00
Tim Gover
ccd8444501 Implement review comments
Update --apply --edit to allow the eeprom image to be specified.
Add some error checking around chmod in rpi-eeprom-update

TODO: Test this on NFS
2020-09-28 10:41:20 +01:00
Tim Gover
55ece6bab5 rpi-eeprom-config: Add --edit for interactive editor style operation 2020-09-28 10:41:20 +01:00
Tim Gover
1fe54409b8 rpi-eeprom-config: Add new option to apply config and update in one operation
* Add -a/--apply parameter which provides a one shot image for applying
  a new configuration to the latest bootloader image and installs it
  via rpi-eeprom-update.
* Print the live configuration if no arguments are specified.
* Add short flags instead of requiring verbose names.
* Make the errors more human readable instead of Exceptions
2020-09-28 10:41:20 +01:00
Tim Gover
a554034c1d rpi-eeprom-update: Add -l option to resolve the latest bootloader image
Add the -l option to return the latest bootloader EEPROM image. This
will be used by rpi-eeprom-config to provide a more convenient mechanism
for quick config changes.
2020-09-28 10:41:20 +01:00
Tim Gover
29fe479af9 rpi-eeprom-update: Restrict package checksums to EEPROM images.
Only check EEPROM image binaries because it's annoying if
rpi-eeprom-update errors due to the release notes or the script
changing.
2020-09-28 10:41:20 +01:00
Tim Gover
8d4af8db97 rpi-eeprom-update: Use multiple sources for BOARD_INFO
Try device-tree, then cpuinfo and failing that raw OTP.
2020-09-28 10:37:15 +01:00
Tim Gover
1a099a5a9d Archive 2020-08-31 and 2020-09-02 beta releases.
Move these out of the directories selected by APT now that 2020-09-03
is the default release.
Preserve the releases which were promoted to stable in-case these are
referenced via scripts.
2020-09-14 08:58:35 +01:00
Tim Gover
d246201eb5 Update README.md
Indicate that we mean the USB XHCI controller when we say VLI
2020-09-14 08:51:48 +01:00
Tim Gover
a0302ef004 Update releases.md 2020-09-14 08:49:43 +01:00
Tim Gover
fae9021057 Merge pull request #224 from timg236/tim/pieeprom-2020-09-03-default
pieeprom-2020-09-03: Promote latest stable to default/critical
2020-09-14 08:38:01 +01:00
Tim Gover
9cff16af0c pieeprom-2020-09-03: Promote latest stable to default/critical
Promote the latest stable release of the bootloader, VLI EEPROMs
and recovery.bin to the default (critical update) release.
2020-09-11 09:44:06 +01:00
Tim Gover
0512377e94 Update releases.md 2020-09-07 11:36:29 +01:00
407 changed files with 5406 additions and 726 deletions

View File

@@ -1,46 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
For general boot questions please check the read the [Boot Problems](https://www.raspberrypi.org/forums/viewtopic.php?t=58151) sticky post on the forums.
N.B The bootloader does not persist in memory and if the rainbow splash screen has been displayed the issue is likely to be in the firmware or Linux. If so, it's better to target the bug in the [Firmware](https://github.com/raspberrypi/firmware/) or [Linux](https://github.com/raspberrypi/linux/) repositories first e.g. NFS, USB or dmesg logs would be Linux issues.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
**Expected behaviour**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add a photograph of the bootloader HDMI diagnostics screen.
**Bootloader version and configuration**
If you have modified the default bootloader release or configuration then please attach the bootloader configuration (vcgencmd bootloader_config) and version (vcgencmd bootloader_version)
**SD card boot (please complete the following information):**
- OS e.g. Raspbian
- SD card type
- Partition information (fdisk -l) if you are able to obtain this from another computer.
**Network boot (please complete the following information):**
Network boot configuration can get very complicated. To get started we recommend using [PiServer](https://github.com/raspberrypi/piserver) and this is the official test/reference configuration. For other configurations, packet capture or a UART log is nearly always required because setting up custom network configurations to investigate bugs is extremely time-consuming and error-prone.
- DHCP server configuration files e.g. dnsmasq.conf
- Wireshark binary packet capture
- UART logs
**USB boot (please complete the following information):**
For issues booting with specific USB devices please verify that the system boots from an SD-card with the same devices connected and attach the results of 'lsusb -vvv'. This helps to rule out USB HUB power issues.
In the beta release it's likely that a UART or NetConsole boot trace will be required.
**Additional context**
Add any other context about the problem here.

128
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,128 @@
name: "Bug report"
description: Create a report to help us fix your issue
body:
- type: markdown
attributes:
value: |
**Is this the right place for my bug report?**
* This repository contains the Raspberry Pi 5, Raspberry Pi 4, Pi400, CM4 and CM4-S bootloader EEPROM images and installation scripts.
* Please report boot issues for the earlier models at the GPU firmware repo [github.com/raspberrypi/firmware](https://github.com/raspberrypi/firmware).
* Please report USB issues which occur after the OS has started at the Linux repo [github.com/raspberrypi/linux/](https://github.com/raspberrypi/linux/).
* If you simply have a question, then [the Raspberry Pi forums](https://www.raspberrypi.org/forums) are the best place to ask it.
* The ["Is your Pi not booting?"](https://forums.raspberrypi.com/viewtopic.php?f=28&t=58151) post has lots of useful advice.
- type: textarea
id: description
attributes:
label: Describe the bug
description: |
Add a clear and concise description of what you think the bug is.
* Attach a photo of the bootloader [diagnostics](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#boot-diagnostics-on-the-raspberry-pi-4).
* If the system is failing to boot then please check if the green activity LED is displaying an [error pattern](https://www.raspberrypi.com/documentation/computers/configuration.html#led-warning-flash-codes).
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce the behaviour
description: |
List the steps required to reproduce the issue.
validations:
required: true
- type: dropdown
id: model
attributes:
label: Device (s)
description: On which device you are facing the bug?
multiple: true
options:
- Raspberry Pi 5
- Raspberry Pi 500
- Raspberry Pi 4 Mod. B
- Raspberry Pi 400
- Raspberry Pi CM5
- Raspberry Pi CM5 Lite
- Raspberry Pi CM4
- Raspberry Pi CM4 Lite
- Raspberry Pi CM4-S
- Other
validations:
required: true
- type: textarea
id: config
attributes:
label: Bootloader configuration.
description: |
Copy and paste the results of `rpi-eeprom-config` or describe the failing configuration.
* `rpi-eeprom-update` saves a backup of the previous bootloader configuration to `/var/lib/raspberrypi/bootloader/backup` before it schedules the update.
* `rpi-eeprom-config pieeprom.upd` can be used to read the contents of an EEPROM image.
validations:
required: true
- type: textarea
id: system
attributes:
label: System
description: |
Copy and paste the results of the `raspinfo` command in to this section.
Alternatively, copy and paste a pastebin link, or add answers to the following questions:
* Which OS and version (`cat /etc/rpi-issue`)?
* Which bootloader version (`vcgencmd bootloader_version`)?
* Which firmware version (`vcgencmd version`)?
* Which kernel version (`uname -a`)?
validations:
required: false
- type: textarea
id: Logs
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 (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.
Please paste the bootloader logs here.
validations:
required: false
- type: textarea
id: USB
attributes:
label: USB boot
description: |
Before using USB as the boot device it's advisble to verify that the USB device is [compatible](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#hardware-compatibility) and works reliably from Linux.
Please specify the make and model of the USB device plus any HUBs or USB/SATA adapters. Please also capture the output of the following command from Linux `lsusb -vvv` and paste the results here.
validations:
required: false
- type: textarea
id: NVMe
attributes:
label: NVMe boot
description: |
Before using NVMe as the boot device it's advisble to verify that the NVMe storage is working reliably when mounted from Linux. Please specify the make and model and also capture the following information from a working system when reporting NVMe issues.
* `sudo apt-get install nvme-cli`
* `sudo nvme list`
* `sudo nvme id-ctrl -H /dev/nvme0`
* `sudo nvme list-ns /dev/nvme0`
* `sudo nvme id-ns -H /dev/nvme0 --namespace-id=1`
validations:
required: false
- type: textarea
id: tftp
attributes:
label: Network (TFTP boot)
description: |
Please provide the following information if possible:-
* DHCP server configuration files e.g. `dnsmasq.conf`
* Wireshark binary packet capture
validations:
required: false

View File

@@ -1,2 +1,9 @@
blank_issues_enabled: false
contact_links:
- name: "⛔ Question"
url: https://www.raspberrypi.org/forums
about: "Please do not use GitHub for asking questions. If you simply have a question, then the Raspberry Pi forums are the best place to ask it. Thanks in advance for helping us keep the issue tracker clean!"
- name: "⛔ Problems with Raspberry Pi Imager / network-install"
url: https://github.com/raspberrypi/rpi-imager
about: "If the problem with network install occurs after the Raspberry Pi Imager UI has started then please report it at https://github.com/raspberrypi/rpi-imager/issues. Otherwise, raise the bug report here."

31
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Test EEPROM Config
on:
pull_request:
branches: [ 'master' ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Create and activate virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install dependencies
run: |
pip install pycryptodomex
- name: Run EEPROM Config Tests
run: |
cd test
chmod +x test-rpi-eeprom-config
./test-rpi-eeprom-config

2
.gitignore vendored
View File

@@ -1 +1,3 @@
*.swp
images-2711/
images-2712/

58
LICENSE
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
@@ -64,4 +68,54 @@ License: custom
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
DAMAGE.
License: uIP
Copyright (c) 2006, Swedish Institute of Computer Science.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the Institute nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
License: MIT
QR Code generator library (C)
Copyright (c) Project Nayuki. (MIT License)
https://www.nayuki.io/page/qr-code-generator-library
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
- The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
- The Software is provided "as is", without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability,
fitness for a particular purpose and noninfringement. In no event shall the
authors or copyright holders be liable for any claim, damages or other
liability, whether in an action of contract, tort or otherwise, arising from,
out of or in connection with the Software or the use or other dealings in the
Software.

View File

@@ -1,16 +1,15 @@
# rpi-eeprom
This repository contains the scripts and pre-compiled binaries used to create the `rpi-eeprom` package which is used to update the Raspberry Pi 4 bootloader and VLI EEPROMs.
This repository contains the scripts and pre-compiled binaries used to create the `rpi-eeprom` package which is used to update the Raspberry Pi 4 and Raspberry Pi 5 bootloaders EEPROM images.
# Support
Please check the Raspberry Pi [general discussion forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) if you have a support question.
Please check the Raspberry Pi [general discussion forum](https://forums.raspberrypi.com/viewforum.php?f=63) if you have a support question.
# Reset to factory defaults
The [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) provides an EEPROM recovery image which may be used to reset the bootloader and VLI EEPROMs to factory defaults.
To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https://www.raspberrypi.com/software/) to write an EEPROM update image to a spare SD card. Select `Misc utility images` under the `Operating System` tab.
# Bootloader documentation
* [The boot folder](https://www.raspberrypi.org/documentation/configuration/boot_folder.md)
* [Config.txt boot options](https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md)
* [Bootloader EEPROM](https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md)
* [Bootloader configuration](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md)
* [Release notes](firmware/release-notes.md)
* [Releases](releases.md)
* [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#update-the-compute-module-bootloader)
* [Releases and release notes](releases.md)

1
firmware-2711/beta Symbolic link
View File

@@ -0,0 +1 @@
latest/

1
firmware-2711/critical Symbolic link
View File

@@ -0,0 +1 @@
default/

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.

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.

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