Commit Graph

1190 Commits

Author SHA1 Message Date
Tim Gover
e0e5d306cc Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  2711: release-notes: Add (automatic) tag
  2711: Change the automatic update minimum version to 2025-05-08
  tools: Add the network install public key
2025-06-04 10:12:45 +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
d3cf658934 Update changelog for 28.0-1 release 2025-05-19 17:21:07 +01:00
Tim Gover
6cf695fe4a Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  2712: Change the automatic update minimum version to 2025-05-08
2025-05-19 17:20:27 +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
378757f65f Update changelog for 27.10-1 release 2025-05-19 11:28:41 +01:00
Tim Gover
066d4aaa55 Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  pieeprom-2025-05-16: 2711: Automatically set revoke_devkey if program_pubkey=1 (latest)
  imager: 2712: 2711: Update to the 2025-05-08 firmware
2025-05-19 11:28:40 +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
be49816e0d Update changelog for 27.9-1 release 2025-05-14 18:44:11 +01:00
Tim Gover
b8145be1e8 Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  pieeprom-2025-05-08: 2711: Promote to the default release
  pieeprom-2025-05-08: 2712: Promote to the default release
2025-05-14 18:44:10 +01:00
Tim Gover
1bb6edeff5 pieeprom-2025-05-08: 2711: Promote to the default release v2025.05.08-2712 v2025.05.08-2711-138c0 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
6632e03362 Update changelog for 27.8-1 release 2025-05-08 17:47:26 +01:00
Tim Gover
0a2a66e7ef Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  pieeprom-2025-05-08: 2711: Implement TCP window for net boot (latest)
  pieeprom-2025-02-24: 2711: Implement TCP window for net boot (latest)
  pieeprom-2025-05-08: 2712: Implement TCP window for net boot (latest)
2025-05-08 17:47:25 +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
93db7656ed Update changelog for 27.7-1 release 2025-05-07 18:31:29 +01:00
Tim Gover
bf38a865db Update maintainer 2025-05-07 18:31:18 +01:00
Tim Gover
71f8ccf492 Merge remote-tracking branch 'origin/master' into pios/bookworm 2025-05-07 17:53:59 +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
Tim Gover
58d416aa5e Update changelog for 27.6-1 release 2025-03-24 13:11:55 +00:00
Tim Gover
7d0ad4ce30 Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  bug_report template: Add missing CM5 + pi500
  pieeprom-2025-03-19: 2712: Log the fan speed at boot (latest)
  firmware: 2712: Archive old '2712' 'latest' firmware
  pieeprom-2025-03-10-12: Promote 2025-10-03 to the default release
2025-03-24 11:33:01 +00:00
Nicolai Buchwitz
1bd0a1052b bug_report template: Add missing CM5 + pi500
Signed-off-by: Nicolai Buchwitz <n.buchwitz@kunbus.com>
v2025.03.10-2712
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
66eff91147 Update changelog for 27.5-1 release 2025-03-11 08:56:32 +00:00
Tim Gover
3fb1c0c0e9 Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  pieeprom-2025-03-10: 2712: Add [boot_partition] filter plus SDRAM init fixes (latest)
  rpi-eeprom-digest: support specifying keys via PKCS#11 URI
  pieeprom-2025-03-03: 2712: Fix bootloader pull configuration on BCM2712D0 (latest)
  image: Update 2711 plus 2712 images and enable boot-menu on 2711
2025-03-11 08:56:31 +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
6e6e43beee Update changelog for 27.4-1 release 2025-02-18 09:42:04 +00:00
Tim Gover
31536e5e69 Merge remote-tracking branch 'pitowers/master' into pios/bookworm
* pitowers/master:
  license: Update wildcards for firmware
  pieeprom-2025-02-12: 2712: Promote to default release
2025-02-18 09:42:04 +00:00
Tim Gover
e47a6d0f39 firmware: 2712: Fixup commit to promote 2025-02-12 release 2025-02-18 09:37:53 +00:00
Tim Gover
c954a72f63 license: Update wildcards for firmware
Fixes: https://github.com/raspberrypi/rpi-eeprom/issues/665
v2025.02.12-2712 v2025.02.11-2711-138c0
2025-02-18 08:17:23 +00:00
Tim Gover
3e3a300112 Update changelog for 27.3-1 release 2025-02-17 19:08:41 +00:00
Tim Gover
d56e7df8fd gpb: Use pios/bookworm branch 2025-02-17 19:07:24 +00:00
Tim Gover
3679582b23 pieeprom-2025-02-12: 2712: Promote to default release 2025-02-17 16:01:28 +00:00
Tim Gover
c24baba79b Update changelog for 27.2-1 release 2025-02-17 10:45:32 +00:00
Tim Gover
9fa4f3a305 Merge remote-tracking branch 'pitowers/master' into debian/bookworm
* pitowers/master:
  pieeprom-2025-02-12: 2712: Promote to default release
  pieeprom-2025-02-11-2711: Promote to default release
2025-02-17 10:45:31 +00:00
Tim Gover
50d7bfcf82 pieeprom-2025-02-12: 2712: Promote to default release 2025-02-17 10:43:59 +00:00