mirror of
https://github.com/raspberrypi/rpi-eeprom.git
synced 2026-01-21 06:13:33 +08:00
Compare commits
36 Commits
v2021.04.2
...
v2021.04.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
194960a023 | ||
|
|
28878ba2c5 | ||
|
|
e049a0807f | ||
|
|
51d7c9bb78 | ||
|
|
b93a7569a3 | ||
|
|
cc347ddaa2 | ||
|
|
c297ba744c | ||
|
|
7cae0129e0 | ||
|
|
650e255daf | ||
|
|
504e18bb3a | ||
|
|
4b5a46947e | ||
|
|
1fc1d40117 | ||
|
|
7e6a961a24 | ||
|
|
953a7fe05f | ||
|
|
7208a1ca0f | ||
|
|
cc38b35bbe | ||
|
|
ffda73b9cd | ||
|
|
8dac90ae9a | ||
|
|
f7d7a9c8a6 | ||
|
|
6a47bc4900 | ||
|
|
eae21cbae3 | ||
|
|
75216fb64c | ||
|
|
f19990103e | ||
|
|
45accca3dc | ||
|
|
5d70742580 | ||
|
|
cecc46f687 | ||
|
|
4b7fcc65e9 | ||
|
|
949e9c49f8 | ||
|
|
1dab88d0d0 | ||
|
|
71ef83abbc | ||
|
|
6a310b5d4d | ||
|
|
34aa94bdd2 | ||
|
|
48864f3d1f | ||
|
|
503f1c0055 | ||
|
|
f7402923bc | ||
|
|
650e942947 |
29
.github/ISSUE_TEMPLATE/bug_report.md
vendored
29
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -9,7 +9,6 @@ This repository tracks bugs for the Raspberry Pi 4 bootloader EEPROM and Linux u
|
||||
* If you suspect a hardware problem then please read the [Boot Problems](https://www.raspberrypi.org/forums/viewtopic.php?p=437084) post first before contacting the reseller.
|
||||
* Support questions or should be posted on the Raspberry Pi [General Discussion](https://www.raspberrypi.org/forums/viewforum.php?f=63)**
|
||||
|
||||
|
||||
**Mandatory information**
|
||||
* Raspberry Pi model
|
||||
* Board revision (cat /proc/cpuinfo | grep Revision)
|
||||
@@ -27,24 +26,38 @@ Steps to reproduce the behavior:
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**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)
|
||||
Please include the bootloader version and config.
|
||||
```bash
|
||||
vcgencmd bootloader_version
|
||||
vcgencmd bootloader_config
|
||||
```
|
||||
|
||||
**SD card boot (please complete the following information):**
|
||||
**SD card boot (please complete the following information):**
|
||||
- SD card type
|
||||
- Partition information (sudo fdisk -l) if you are able to obtain this from another computer.
|
||||
|
||||
**Network boot (please complete the following information):**
|
||||
**USB boot (please complete the following information):**
|
||||
Verify that the the USB device works correctly when hot-plugged under Linux and attache the output of 'lsusb -vvv'
|
||||
|
||||
**Network boot (please complete the following information):**
|
||||
Network boot bug normally require one or more of the following log types. [PiServer](https://github.com/raspberrypi/piserver) is the officially supported network boot server.
|
||||
|
||||
- DHCP server configuration files e.g. dnsmasq.conf
|
||||
- Wireshark binary packet capture
|
||||
- UART logs
|
||||
- UART logs with `uart_2ndstage=1` set in `config.txt`
|
||||
|
||||
**USB boot (please complete the following information):**
|
||||
Verify that the the USB device works correctly when hot-plugged under Linux and attache the output of 'lsusb -vvv'
|
||||
**NVMe boot (please complete the following information):**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
The [Bootloader configuration](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md) page describes how to enable UART or NETCONSOLE logs. For complex USB boot issues NETCONSOLE logs are recommended.
|
||||
The [Bootloader configuration](https://www.raspberrypi.org/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration) page describes how to enable UART or NETCONSOLE logs. For complex USB boot issues NETCONSOLE logs are recommended.
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -5,13 +5,13 @@ This repository contains the scripts and pre-compiled binaries used to create th
|
||||
Please check the Raspberry Pi [general discussion forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) if you have a support question.
|
||||
|
||||
# Reset to factory defaults
|
||||
To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) to write an EEPROM update image to a spare SD card. Select `Misc utility images` under the `Operating System` tab.
|
||||
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)
|
||||
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md#cm4bootloader)
|
||||
* [The boot folder](https://www.raspberrypi.com/documentation/computers/configuration.html#the-boot-folder)
|
||||
* [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-4-boot-eeprom)
|
||||
* [Bootloader configuration](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration)
|
||||
* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader)
|
||||
* [Release notes](firmware/release-notes.md)
|
||||
* [Releases](releases.md)
|
||||
|
||||
BIN
firmware/beta/pieeprom-2021-05-19.bin
Normal file
BIN
firmware/beta/pieeprom-2021-05-19.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-06-11.bin
Normal file
BIN
firmware/beta/pieeprom-2021-06-11.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-06-17.bin
Normal file
BIN
firmware/beta/pieeprom-2021-06-17.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-06-25.bin
Normal file
BIN
firmware/beta/pieeprom-2021-06-25.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-07-06.bin
Normal file
BIN
firmware/beta/pieeprom-2021-07-06.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-09-23.bin
Normal file
BIN
firmware/beta/pieeprom-2021-09-23.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-09-27.bin
Normal file
BIN
firmware/beta/pieeprom-2021-09-27.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-10-04.bin
Normal file
BIN
firmware/beta/pieeprom-2021-10-04.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2021-10-05.bin
Normal file
BIN
firmware/beta/pieeprom-2021-10-05.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -3,6 +3,76 @@
|
||||
USB MSD boot also requires the firmware from Raspberry Pi OS 2020-08-20 or newer.
|
||||
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
|
||||
|
||||
## 2021-10-05 - Update for latest Broadcom SDRAM settings - BETA
|
||||
* Minor update for latest SDRAM tuning settings.
|
||||
|
||||
## 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-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-23 - Temporarily revert recovery.bin 2021-09-22 BETA/STABLE
|
||||
* Revert until fix for can be verified https://github.com/raspberrypi/rpi-eeprom/issues/367
|
||||
|
||||
## 2021-09-23 - 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 support for loading signed boot image files.
|
||||
Requires updated GPU firmware.
|
||||
|
||||
## 2021-09-22 - Update recovery.bin to fix issue with large FAT partitions - STABLE
|
||||
* Bump the latest recovery.bin under beta to stable.
|
||||
|
||||
## 2021-09-22 - Update recovery.bin to fix issue with large FAT partitions - BETA
|
||||
* Fix an issue where the ROM fails to load larger recovery.bin files
|
||||
on FAT partitions with large cluster sizes.
|
||||
|
||||
## 2021-07-07 - Promote pieeprom-2021-07-06 to stable - STABLE
|
||||
* Promote the latest beta to stable. For CM4 users this adds NVMe
|
||||
boot support to the stable release.
|
||||
|
||||
## 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-06-25 - Support 256MB gpu_mem with boot ramdisk - BETA
|
||||
* Tweak the address map so that boot ramdisks (e.g. rpiboot -d imager)
|
||||
work with large amounts of GPU memory.
|
||||
|
||||
## 2021-06-17 - Avoid unnecessary PCIe probe on CM4 - 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-11 - Add USB_MSD_STARTUP_DELAY option - BETA
|
||||
* 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-05-19 - Use the latest BRCM SDRAM settings - BETA
|
||||
* 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-04-30 - Update default version to 2021-04-29
|
||||
* The manufacturing release has been updated to pieeprom-2021-04-29 so update the default release to match this.
|
||||
|
||||
@@ -18,7 +88,7 @@ https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloade
|
||||
* 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
|
||||
* Avoid USB MSD timeout if there is only one device
|
||||
* Implement tryboot for OS upgrade fallback
|
||||
* Check the update-timestamp before applying an update in SELF-UPDATE mode
|
||||
|
||||
|
||||
BIN
firmware/stable/pieeprom-2021-07-06.bin
Normal file
BIN
firmware/stable/pieeprom-2021-07-06.bin
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
rpi-eeprom-config
|
||||
@@ -118,8 +118,6 @@ def apply_update(config, eeprom=None, config_src=None):
|
||||
sys.stdout.write("Updating bootloader EEPROM\n image: %s\nconfig_src: %s\nconfig: %s\n%s\n%s\n%s\n" %
|
||||
(eeprom_image, config_src, config, '#' * 80, config_str, '#' * 80))
|
||||
|
||||
sys.stdout.write("\n*** To cancel this update run 'sudo rpi-eeprom-update -r' ***\n\n")
|
||||
|
||||
# Ignore APT package checksums so that this doesn't fail when used
|
||||
# with EEPROMs with configs delivered outside of APT.
|
||||
# The checksums are really just a safety check for automatic updates.
|
||||
|
||||
@@ -30,7 +30,6 @@ FIRMWARE_BACKUP_DIR=${FIRMWARE_BACKUP_DIR:-/var/lib/raspberrypi/bootloader/backu
|
||||
ENABLE_VL805_UPDATES=${ENABLE_VL805_UPDATES:-1}
|
||||
RECOVERY_BIN=${RECOVERY_BIN:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}/recovery.bin}
|
||||
BOOTFS=${BOOTFS:-/boot}
|
||||
VCMAILBOX=${VCMAILBOX:-/opt/vc/bin/vcmailbox}
|
||||
CM4_ENABLE_RPI_EEPROM_UPDATE=${CM4_ENABLE_RPI_EEPROM_UPDATE:-0}
|
||||
RPI_EEPROM_UPDATE_CONFIG_TOOL="${RPI_EEPROM_UPDATE_CONFIG_TOOL:-raspi-config}"
|
||||
|
||||
@@ -58,8 +57,8 @@ BOARD_TYPE=
|
||||
# Newer board revisions embed the VLI firmware in the bootloader EEPROM and
|
||||
# there is no way to separately update the VLI firmware. Consequently,
|
||||
# standalone vl805 update files do not trigger automatic updates.
|
||||
# Recovery.bin and the the SPI bootloader ignore vl805.bin files on boards
|
||||
# without a dedicate VL805 EEPROM.
|
||||
# recovery.bin and the SPI bootloader ignore vl805.bin files on boards
|
||||
# without a dedicated VL805 EEPROM.
|
||||
HAVE_VL805_EEPROM=0
|
||||
|
||||
TMP_EEPROM_IMAGE=""
|
||||
@@ -174,8 +173,18 @@ applyRecoveryUpdate()
|
||||
{
|
||||
[ -n "${BOOTLOADER_UPDATE_IMAGE}" ] || [ -n "${VL805_UPDATE_IMAGE}" ] || die "No update images specified"
|
||||
|
||||
getBootloaderCurrentVersion
|
||||
BOOTLOADER_UPDATE_VERSION=$(strings "${BOOTLOADER_UPDATE_IMAGE}" | grep BUILD_TIMESTAMP | sed 's/.*=//g')
|
||||
if [ "${BOOTLOADER_CURRENT_VERSION}" -gt "${BOOTLOADER_UPDATE_VERSION}" ]; then
|
||||
echo " WARNING: Installing an older bootloader version."
|
||||
echo " Update the rpi-eeprom package to fetch the latest bootloader images."
|
||||
echo
|
||||
fi
|
||||
echo " CURRENT: $(date -u "-d@${BOOTLOADER_CURRENT_VERSION}") (${BOOTLOADER_CURRENT_VERSION})"
|
||||
echo " UPDATE: $(date -u "-d@${BOOTLOADER_UPDATE_VERSION}") (${BOOTLOADER_UPDATE_VERSION})"
|
||||
|
||||
findBootFS
|
||||
echo "BOOTFS ${BOOTFS}"
|
||||
echo " BOOTFS: ${BOOTFS}"
|
||||
|
||||
# A '.sig' file is created so that recovery.bin can check that the
|
||||
# EEPROM image has not been corrupted (e.g. SD card corruption).
|
||||
@@ -232,6 +241,10 @@ applyRecoveryUpdate()
|
||||
|
||||
cp -f "${RECOVERY_BIN}" "${BOOTFS}/recovery.bin" \
|
||||
|| die "Failed to copy ${RECOVERY_BIN} to ${BOOTFS}"
|
||||
|
||||
echo ""
|
||||
echo "EEPROM updates pending. Please reboot to apply the update."
|
||||
echo "To cancel a pending update run \"sudo rpi-eeprom-update -r\"."
|
||||
}
|
||||
|
||||
applyUpdate() {
|
||||
@@ -301,8 +314,11 @@ checkDependencies() {
|
||||
BOARD_INFO="$(od -v -An -t x1 /sys/firmware/devicetree/base/system/linux,revision | tr -d ' \n')"
|
||||
elif grep -q Revision /proc/cpuinfo; then
|
||||
BOARD_INFO="$(sed -n '/^Revision/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo)"
|
||||
else
|
||||
elif command -v vcgencmd > /dev/null; then
|
||||
BOARD_INFO="$(vcgencmd otp_dump | grep '30:' | sed 's/.*://')"
|
||||
else
|
||||
echo "No Raspberry Pi board info found"
|
||||
exit ${EXIT_SUCCESS}
|
||||
fi
|
||||
|
||||
if [ $(((0x$BOARD_INFO >> 23) & 1)) -eq 0 ] || [ $(((0x$BOARD_INFO >> 12) & 15)) -ne 3 ]; then
|
||||
@@ -405,14 +421,14 @@ Options:
|
||||
firmware updates.
|
||||
-h Display help text and exit
|
||||
-i Ignore package checksums - for rpi-eeprom developers.
|
||||
-j Write status information using JSON notation
|
||||
-j Write status information using JSON notation (requires -m option)
|
||||
-l Returns the full path to the latest available EEPROM image file according
|
||||
to the FIRMWARE_RELEASE_STATUS and FIRMWARE_IMAGE_DIR settings.
|
||||
-m Write status information to the given file when run without -a or -f
|
||||
-r Removes temporary EEPROM update files from the boot partition. This also
|
||||
reverts a pending update.
|
||||
cancels a pending update.
|
||||
-s Skips silent, automatic upgrades for default releases if the current
|
||||
bootloader release is newer than the the version specified by
|
||||
bootloader release is newer than the version specified by
|
||||
BOOTLOADER_AUTO_UPDATE_MIN_VERSION ${BOOTLOADER_AUTO_UPDATE_MIN_VERSION}
|
||||
-u Install the specified VL805 (USB EEPROM) image file.
|
||||
|
||||
@@ -484,10 +500,10 @@ cause the system to fail to boot so automatic updates are disabled. We also
|
||||
recommend write-protecting the SPI EPPROM after flashing it using usbboot.
|
||||
|
||||
CM4 bootloader and EEPROM update instructions:
|
||||
https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md
|
||||
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
|
||||
|
||||
usbboot instructions for flashing CM4 EMMC and bootloader EEPROM:
|
||||
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
|
||||
https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md
|
||||
|
||||
The CM4 ROM does not support running recovery.bin from the EMMC on CM4 so this service
|
||||
is disabled by default. SELF_UPDATE from USB or Network boot is supported but this
|
||||
@@ -658,9 +674,6 @@ checkAndApply()
|
||||
|
||||
printVersions
|
||||
applyUpdate
|
||||
echo ""
|
||||
echo "EEPROM updates pending. Please reboot to apply the update."
|
||||
echo "To cancel a pending update run \"sudo rpi-eeprom-update -r\"."
|
||||
else
|
||||
printVersions
|
||||
fi
|
||||
@@ -670,6 +683,7 @@ fileUpdate()
|
||||
{
|
||||
removePreviousUpdates
|
||||
echo "*** INSTALLING ${BOOTLOADER_UPDATE_IMAGE} ${VL805_UPDATE_IMAGE} ***"
|
||||
echo
|
||||
|
||||
if [ -n "${BOOTLOADER_UPDATE_IMAGE}" ]; then
|
||||
[ -f "${BOOTLOADER_UPDATE_IMAGE}" ] || die "Bootloader image \"${BOOTLOADER_UPDATE_IMAGE}\" not found"
|
||||
@@ -680,7 +694,6 @@ fileUpdate()
|
||||
fi
|
||||
|
||||
applyUpdate
|
||||
echo "EEPROM update pending. Please reboot to apply the update."
|
||||
}
|
||||
|
||||
removePreviousUpdates()
|
||||
|
||||
Reference in New Issue
Block a user