mirror of
https://github.com/raspberrypi/rpi-eeprom.git
synced 2026-01-20 21:13:36 +08:00
Merge branch 'master' into debian/bookworm
This commit is contained in:
BIN
firmware-2711/latest/pieeprom-2024-04-17.bin
Normal file
BIN
firmware-2711/latest/pieeprom-2024-04-17.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,15 @@
|
|||||||
# Raspberry Pi4 bootloader EEPROM release notes
|
# Raspberry Pi4 bootloader EEPROM release notes
|
||||||
|
|
||||||
|
## 2024-04-17 - Build Pi4 firmware from the mainline branch - STABLE
|
||||||
|
* 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-15 - Fix tryboot mode in secure-boot - DEFAULT
|
## 2024-04-15 - Fix tryboot mode in secure-boot - DEFAULT
|
||||||
* Promote the secure-boot fix to the DEFAULT release.
|
* Promote the secure-boot fix to the DEFAULT release.
|
||||||
|
|
||||||
|
|||||||
BIN
firmware-2712/default/pieeprom-2024-04-17.bin
Normal file
BIN
firmware-2712/default/pieeprom-2024-04-17.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
firmware-2712/latest/pieeprom-2024-04-17.bin
Normal file
BIN
firmware-2712/latest/pieeprom-2024-04-17.bin
Normal file
Binary file not shown.
BIN
firmware-2712/latest/pieeprom-2024-04-18.bin
Normal file
BIN
firmware-2712/latest/pieeprom-2024-04-18.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,22 @@
|
|||||||
# Raspberry Pi5 bootloader EEPROM release notes
|
# Raspberry Pi5 bootloader EEPROM release notes
|
||||||
|
|
||||||
|
2024-04-18: Promote the 2024-04-17 release to the default release (default) (automatic update)
|
||||||
|
* Select pieeprom-2024-04-17.bin to be the new default release and bump the
|
||||||
|
automatic update minimum version to this.
|
||||||
|
|
||||||
|
2024-04-18: 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-17: Fix TRYBOOT flag in secure-boot mode (latest)
|
||||||
|
* 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-05: HAT+ fixes for max-current, custom CA cert for net install and enable over-clocking to > 3GHz (latest)
|
2024-04-05: 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
|
* bootloader: clock_2712: Remove restriction on arm_freq <= 3000
|
||||||
See: https://github.com/raspberrypi/firmware/issues/1876
|
See: https://github.com/raspberrypi/firmware/issues/1876
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ script_dir=$(cd "$(dirname "$0")" && pwd)
|
|||||||
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711
|
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711
|
||||||
|
|
||||||
# Pi5
|
# Pi5
|
||||||
${script_dir}/make-release critical 2024-02-16 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712
|
${script_dir}/make-release critical 2024-04-17 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712
|
||||||
|
|||||||
@@ -463,6 +463,7 @@ class BootloaderImage(object):
|
|||||||
sys.stdout.write(config_bytes)
|
sys.stdout.write(config_bytes)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
global DEBUG
|
||||||
"""
|
"""
|
||||||
Utility for reading and writing the configuration file in the
|
Utility for reading and writing the configuration file in the
|
||||||
Raspberry Pi bootloader EEPROM image.
|
Raspberry Pi bootloader EEPROM image.
|
||||||
@@ -510,7 +511,7 @@ Operating modes:
|
|||||||
The configuration file will be taken from:
|
The configuration file will be taken from:
|
||||||
* The blconfig reserved memory nvmem device
|
* The blconfig reserved memory nvmem device
|
||||||
* The cached bootloader configuration 'vcgencmd bootloader_config'
|
* The cached bootloader configuration 'vcgencmd bootloader_config'
|
||||||
* The current pending update - typically /boot/pieeprom.upd
|
* The current pending update - typically /boot/firmware/pieeprom.upd
|
||||||
|
|
||||||
sudo -E rpi-eeprom-config --edit [pieeprom.bin]
|
sudo -E rpi-eeprom-config --edit [pieeprom.bin]
|
||||||
|
|
||||||
@@ -524,8 +525,7 @@ Operating modes:
|
|||||||
the corresponding RSA public key.
|
the corresponding RSA public key.
|
||||||
|
|
||||||
Requires Python Cryptodomex libraries and OpenSSL. To install on Raspberry Pi OS run:-
|
Requires Python Cryptodomex libraries and OpenSSL. To install on Raspberry Pi OS run:-
|
||||||
sudo apt install openssl python-pip
|
sudo apt install python3-pycryptodome
|
||||||
sudo python3 -m pip install cryptodomex
|
|
||||||
|
|
||||||
rpi-eeprom-digest -k private.pem -i bootconf.txt -o bootconf.sig
|
rpi-eeprom-digest -k private.pem -i bootconf.txt -o bootconf.sig
|
||||||
rpi-eeprom-config --config bootconf.txt --digest bootconf.sig --pubkey public.pem --out pieeprom-signed.bin pieeprom.bin
|
rpi-eeprom-config --config bootconf.txt --digest bootconf.sig --pubkey public.pem --out pieeprom-signed.bin pieeprom.bin
|
||||||
@@ -543,14 +543,16 @@ See 'rpi-eeprom-update -h' for more information about the available EEPROM image
|
|||||||
parser.add_argument('-c', '--config', help='Name of bootloader configuration file', required=False)
|
parser.add_argument('-c', '--config', help='Name of bootloader configuration file', required=False)
|
||||||
parser.add_argument('-e', '--edit', action='store_true', default=False, help='Edit the current EEPROM config')
|
parser.add_argument('-e', '--edit', action='store_true', default=False, help='Edit the current EEPROM config')
|
||||||
parser.add_argument('-o', '--out', help='Name of output file', required=False)
|
parser.add_argument('-o', '--out', help='Name of output file', required=False)
|
||||||
parser.add_argument('-d', '--digest', help='Signed boot only. The name of the .sig file generated by rpi-eeprom-dgst for config.txt ', required=False)
|
parser.add_argument('-d', '--digest', help='Signed boot only. The name of the .sig file generated by rpi-eeprom-digest for config.txt ', required=False)
|
||||||
parser.add_argument('-p', '--pubkey', help='Signed boot only. The name of the RSA public key file to store in the EEPROM', required=False)
|
parser.add_argument('-p', '--pubkey', help='Signed boot only. The name of the RSA public key file to store in the EEPROM', required=False)
|
||||||
parser.add_argument('-x', '--extract', action='store_true', default=False, help='Extract the modifiable files (boot.conf, pubkey, signature)', required=False)
|
parser.add_argument('-x', '--extract', action='store_true', default=False, help='Extract the modifiable files (boot.conf, pubkey, signature)', required=False)
|
||||||
parser.add_argument('-b', '--bootcode', help='Signed boot 2712 only. The name of the customer signed bootcode.bin file to store in the EEPROM', required=False)
|
parser.add_argument('-b', '--bootcode', help='Signed boot 2712 only. The name of the customer signed bootcode.bin file to store in the EEPROM', required=False)
|
||||||
parser.add_argument('-t', '--timestamp', help='Set the timestamp in the EEPROM image file', required=False)
|
parser.add_argument('-t', '--timestamp', help='Set the timestamp in the EEPROM image file', required=False)
|
||||||
parser.add_argument('--cacertder', help='The name of a CA Certificate DER encoded file to store in the EEPROM', required=False)
|
parser.add_argument('--cacertder', help='The name of a CA Certificate DER encoded file to store in the EEPROM', required=False)
|
||||||
|
parser.add_argument('--debug', help='Debug logging for this tool', action='store_true', required=False)
|
||||||
parser.add_argument('eeprom', nargs='?', help='Name of EEPROM file to use as input')
|
parser.add_argument('eeprom', nargs='?', help='Name of EEPROM file to use as input')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
DEBUG = args.debug
|
||||||
|
|
||||||
if (args.edit or args.apply is not None) and os.getuid() != 0:
|
if (args.edit or args.apply is not None) and os.getuid() != 0:
|
||||||
exit_error("--edit/--apply must be run as root")
|
exit_error("--edit/--apply must be run as root")
|
||||||
@@ -571,10 +573,15 @@ See 'rpi-eeprom-update -h' for more information about the available EEPROM image
|
|||||||
image = BootloaderImage(args.eeprom, args.out)
|
image = BootloaderImage(args.eeprom, args.out)
|
||||||
if args.timestamp is not None:
|
if args.timestamp is not None:
|
||||||
image.set_timestamp(args.timestamp)
|
image.set_timestamp(args.timestamp)
|
||||||
|
|
||||||
if args.bootcode is not None:
|
if args.bootcode is not None:
|
||||||
image.update_file(args.bootcode, BOOTCODE_BIN)
|
image.update_file(args.bootcode, BOOTCODE_BIN)
|
||||||
image.write()
|
|
||||||
elif args.config is not None:
|
if args.cacertder is not None:
|
||||||
|
image.update_file(args.cacertder, CACERT_DER)
|
||||||
|
|
||||||
|
if args.config is not None:
|
||||||
|
# The public key, EEPROM config and signature should be set together
|
||||||
if not os.path.exists(args.config):
|
if not os.path.exists(args.config):
|
||||||
exit_error("config file '%s' not found" % args.config)
|
exit_error("config file '%s' not found" % args.config)
|
||||||
image.update_file(args.config, BOOTCONF_TXT)
|
image.update_file(args.config, BOOTCONF_TXT)
|
||||||
@@ -582,10 +589,9 @@ See 'rpi-eeprom-update -h' for more information about the available EEPROM image
|
|||||||
image.update_file(args.digest, BOOTCONF_SIG)
|
image.update_file(args.digest, BOOTCONF_SIG)
|
||||||
if args.pubkey is not None:
|
if args.pubkey is not None:
|
||||||
image.update_key(args.pubkey, PUBKEY_BIN)
|
image.update_key(args.pubkey, PUBKEY_BIN)
|
||||||
if args.cacertder is not None:
|
|
||||||
image.update_file(args.cacertder, CACERT_DER)
|
if args.config is not None or args.timestamp is not None or args.bootcode is not None or args.cacertder is not None:
|
||||||
image.write()
|
debug("Writing image")
|
||||||
elif args.config is None and args.timestamp is not None:
|
|
||||||
image.write()
|
image.write()
|
||||||
else:
|
else:
|
||||||
image.read()
|
image.read()
|
||||||
|
|||||||
@@ -400,7 +400,7 @@ checkDependencies() {
|
|||||||
elif [ $(((0x$BOARD_INFO >> 12) & 15)) = 4 ]; then
|
elif [ $(((0x$BOARD_INFO >> 12) & 15)) = 4 ]; then
|
||||||
BCM_CHIP=2712
|
BCM_CHIP=2712
|
||||||
EEPROM_SIZE=2097152
|
EEPROM_SIZE=2097152
|
||||||
BOOTLOADER_AUTO_UPDATE_MIN_VERSION="${BOOTLOADER_AUTO_UPDATE_MIN_VERSION:-1704470260}"
|
BOOTLOADER_AUTO_UPDATE_MIN_VERSION="${BOOTLOADER_AUTO_UPDATE_MIN_VERSION:-1713358463}"
|
||||||
SPIDEV=/dev/spidev10.0
|
SPIDEV=/dev/spidev10.0
|
||||||
# Default is to use flashrom if availableon BCM2712
|
# Default is to use flashrom if availableon BCM2712
|
||||||
RPI_EEPROM_USE_FLASHROM=${RPI_EEPROM_USE_FLASHROM:-1}
|
RPI_EEPROM_USE_FLASHROM=${RPI_EEPROM_USE_FLASHROM:-1}
|
||||||
|
|||||||
Reference in New Issue
Block a user