mirror of
https://github.com/raspberrypi/rpi-eeprom.git
synced 2026-01-21 06:13:33 +08:00
Merge branch 'master' into debian/buster
This commit is contained in:
BIN
firmware/beta/pieeprom-2020-05-26.bin
Normal file
BIN
firmware/beta/pieeprom-2020-05-26.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2020-05-27.bin
Normal file
BIN
firmware/beta/pieeprom-2020-05-27.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,23 @@
|
|||||||
# Raspberry Pi4 bootloader EEPROM release notes
|
# Raspberry Pi4 bootloader EEPROM release notes
|
||||||
|
|
||||||
|
## 2020-05-27 Fix DPI issue - BETA
|
||||||
|
* Resolve: DPI failure after HDMI diagnostics screen in beta bootloader #133
|
||||||
|
* Resolve: VL805 readback failure in the bootloader #134
|
||||||
|
|
||||||
|
## 2020-05-26 USB MSD updates - BETA
|
||||||
|
* Resolve: USB boot fails if the GPT contains no basic data or EFI partitions #130
|
||||||
|
* Resolve: Fix default BOOT_ORDER in mass storage beta #129
|
||||||
|
* Resolve: Add support for booting from a "superfloppy" disk #120
|
||||||
|
* Resolve: USB MSD timeout message - incorrect units #131
|
||||||
|
* Resolve: Recognize efi partition (0xef) as a valid boot #126
|
||||||
|
* The HDMI diagnostics screen now displays the most significant bytes
|
||||||
|
of the SHA-256 of the config.txt file.
|
||||||
|
|
||||||
|
## 2020-05-26 rpi-eeprom-update
|
||||||
|
* Mark USE_FLASHROM as deprecated.
|
||||||
|
* Resolve: Unnecessary check for '*.elf' in BOOTFS #92
|
||||||
|
* Update help for FIRMWARE_RELEASE_STATUS.
|
||||||
|
|
||||||
## 2020-05-15 Add pieeprom-2020-05-15 beta with USB boot
|
## 2020-05-15 Add pieeprom-2020-05-15 beta with USB boot
|
||||||
* USB mass storage boot will NOT work without the updated firmware
|
* USB mass storage boot will NOT work without the updated firmware
|
||||||
start.elf binaries. These will probably be released via rpi-update
|
start.elf binaries. These will probably be released via rpi-update
|
||||||
|
|||||||
@@ -46,7 +46,16 @@ SPI_SPEED=16000
|
|||||||
# Timestamp for first release which doesn't have a timestamp field
|
# Timestamp for first release which doesn't have a timestamp field
|
||||||
BOOTLOADER_FIRST_VERSION=1557513636
|
BOOTLOADER_FIRST_VERSION=1557513636
|
||||||
EEPROM_SIZE=524288
|
EEPROM_SIZE=524288
|
||||||
|
BOARD_INFO=
|
||||||
BOARD_REVISION=
|
BOARD_REVISION=
|
||||||
|
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.
|
||||||
|
HAVE_VL805_EEPROM=0
|
||||||
|
|
||||||
# Simple bootloader which is able to load start.elf in the event of a power
|
# Simple bootloader which is able to load start.elf in the event of a power
|
||||||
# cut. This runs SDRAM at low speed and may have reduced functionality but
|
# cut. This runs SDRAM at low speed and may have reduced functionality but
|
||||||
@@ -187,6 +196,7 @@ applyUpdate() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${BOOTLOADER_UPDATE_IMAGE}" ]; then
|
if [ -f "${BOOTLOADER_UPDATE_IMAGE}" ]; then
|
||||||
|
echo "WARNING: USE_FLASHROM is deprecated."
|
||||||
# Bootloader EEPROM chip-select is muxed with audio pin so disable audio
|
# Bootloader EEPROM chip-select is muxed with audio pin so disable audio
|
||||||
# LDO first to avoid sending noise to analog audio.
|
# LDO first to avoid sending noise to analog audio.
|
||||||
"${VCMAILBOX}" 0x00030056 4 4 0 > /dev/null || true
|
"${VCMAILBOX}" 0x00030056 4 4 0 > /dev/null || true
|
||||||
@@ -251,14 +261,25 @@ getBootloaderUpdateVersion() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkDependencies() {
|
checkDependencies() {
|
||||||
BOARD_REVISION="$(sed -n '/^Revision/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo)"
|
BOARD_INFO="$(sed -n '/^Revision/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo)"
|
||||||
if [ $(((0x$BOARD_REVISION >> 23) & 1)) -ne 0 ] && [ $(((0x$BOARD_REVISION >> 12) & 15)) -eq 3 ]; then
|
if [ $(((0x$BOARD_INFO >> 23) & 1)) -ne 0 ] && [ $(((0x$BOARD_INFO >> 12) & 15)) -eq 3 ]; then
|
||||||
echo "BCM2711 detected"
|
echo "BCM2711 detected"
|
||||||
else
|
else
|
||||||
# Not a BCM2711, no EEPROMs to update.
|
# Not a BCM2711, no EEPROMs to update.
|
||||||
exit ${EXIT_SUCCESS}
|
exit ${EXIT_SUCCESS}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
BOARD_TYPE=$(((0x$BOARD_INFO >> 4) & 0xff))
|
||||||
|
BOARD_REVISION=$((0x$BOARD_INFO & 0xf))
|
||||||
|
|
||||||
|
if [ ${BOARD_TYPE} = 17 ] && [ ${BOARD_REVISION} \< 4 ]; then
|
||||||
|
echo "Dedicated VL805 EEPROM detected"
|
||||||
|
HAVE_VL805_EEPROM=1
|
||||||
|
else
|
||||||
|
echo "VL805 firmware in bootloader EEPROM"
|
||||||
|
HAVE_VL805_EEPROM=0
|
||||||
|
fi
|
||||||
|
|
||||||
if ! command -v vcgencmd > /dev/null; then
|
if ! command -v vcgencmd > /dev/null; then
|
||||||
die "vcgencmd not found. On Debian, try installing the libraspberrypi-bin package."
|
die "vcgencmd not found. On Debian, try installing the libraspberrypi-bin package."
|
||||||
fi
|
fi
|
||||||
@@ -269,8 +290,8 @@ checkDependencies() {
|
|||||||
|
|
||||||
# If a board revision specific firmware directory is defined then use that
|
# If a board revision specific firmware directory is defined then use that
|
||||||
# in preference to the generic directory.
|
# in preference to the generic directory.
|
||||||
if [ -d "${FIRMWARE_IMAGE_DIR}-${BOARD_REVISION}" ]; then
|
if [ -d "${FIRMWARE_IMAGE_DIR}-${BOARD_INFO}" ]; then
|
||||||
FIRMWARE_IMAGE_DIR="${FIRMWARE_IMAGE_DIR}-${BOARD_REVISION}"
|
FIRMWARE_IMAGE_DIR="${FIRMWARE_IMAGE_DIR}-${BOARD_INFO}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if vcgencmd bootloader_config | grep -qi "Command not registered"; then
|
if vcgencmd bootloader_config | grep -qi "Command not registered"; then
|
||||||
@@ -358,6 +379,9 @@ and POWER_OFF_ON_HALT settings.
|
|||||||
|
|
||||||
USE_FLASHROM
|
USE_FLASHROM
|
||||||
|
|
||||||
|
USE_FLASHROM is deprecated and there is no support for this. The muxing
|
||||||
|
of the SPI pins causes too many issues for this to ever be reliable.
|
||||||
|
|
||||||
The flashrom update mechanism may be enabled by setting USE_FLASHROM=1. This
|
The flashrom update mechanism may be enabled by setting USE_FLASHROM=1. This
|
||||||
also selects the vl805 tool instead of using recovery.bin to perform the
|
also selects the vl805 tool instead of using recovery.bin to perform the
|
||||||
update. This may be desirable if an immediate update is required or if an
|
update. This may be desirable if an immediate update is required or if an
|
||||||
@@ -370,15 +394,27 @@ those devices to stop working until after the system is reboot.
|
|||||||
|
|
||||||
FIRMWARE_RELEASE_STATUS
|
FIRMWARE_RELEASE_STATUS
|
||||||
|
|
||||||
Specifies the release status of the firmware to apply. The default is 'critical'
|
Specifies the release status of the firmware to apply. The default is 'critical'.
|
||||||
which is the most stable production version. Alternatively, 'stable' or
|
|
||||||
'beta' may be selected for development releases.
|
|
||||||
A 'critical' update is the latest stable production version and is normally
|
|
||||||
only updated after it has been tested via the 'beta' and then a 'stable' release.
|
|
||||||
Before selecting a firmware release directory this script checks whether there
|
Before selecting a firmware release directory this script checks whether there
|
||||||
is a board revision specific variant e.g. critical-c03111. If present then the
|
is a board revision specific variant e.g. critical-c03111. If present then the
|
||||||
board-revision specific version is used in preference.
|
board-revision specific version is used in preference.
|
||||||
|
|
||||||
|
Release status:
|
||||||
|
|
||||||
|
critical: The latest production release plus important security or hardware compatibility bug fixes.
|
||||||
|
|
||||||
|
stable: Contains new features have already undergone some beta testing.
|
||||||
|
These are candidats for new production releases.
|
||||||
|
|
||||||
|
beta: New features, bug fixes for development/test purposes. Use at your own
|
||||||
|
risk!
|
||||||
|
|
||||||
|
As far as rpi-eeprom-update is concerned FIRMWARE_RELEASE_STATUS is just
|
||||||
|
the subdirectory mapping under ${FIRMWARE_ROOT}. Therefore, custom release
|
||||||
|
directories are supported by creating the relevant directory and changing
|
||||||
|
the FIRMWARE_RELEASE_STATUS environment variable.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
To extract the configuration file from an EEPROM image:
|
To extract the configuration file from an EEPROM image:
|
||||||
rpi-eeprom-config pieeprom.bin --out bootconf.txt
|
rpi-eeprom-config pieeprom.bin --out bootconf.txt
|
||||||
@@ -440,7 +476,11 @@ findBootFS()
|
|||||||
# If BOOTFS is not a directory or doesn't contain any .elf files then
|
# If BOOTFS is not a directory or doesn't contain any .elf files then
|
||||||
# it's probably not the boot partition.
|
# it's probably not the boot partition.
|
||||||
[ -d "${BOOTFS}" ] || die "BOOTFS: \"${BOOTFS}\" is not a directory"
|
[ -d "${BOOTFS}" ] || die "BOOTFS: \"${BOOTFS}\" is not a directory"
|
||||||
[ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" -gt 0 ] || die "BOOTFS: \"${BOOTFS}\" contains no .elf files"
|
if [ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" -gt 0 ]; then
|
||||||
|
echo "BOOTFS ${BOOTFS}"
|
||||||
|
else
|
||||||
|
echo "WARNING: BOOTFS: \"${BOOTFS}\" contains no .elf files. Please check boot directory"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
getVL805CurrentVersion()
|
getVL805CurrentVersion()
|
||||||
@@ -485,7 +525,6 @@ lookupVersionInfo()
|
|||||||
getBootloaderUpdateVersion
|
getBootloaderUpdateVersion
|
||||||
|
|
||||||
getVL805CurrentVersion
|
getVL805CurrentVersion
|
||||||
getVL805UpdateVersion
|
|
||||||
|
|
||||||
if [ "${BOOTLOADER_UPDATE_VERSION}" -gt "${BOOTLOADER_CURRENT_VERSION}" ]; then
|
if [ "${BOOTLOADER_UPDATE_VERSION}" -gt "${BOOTLOADER_CURRENT_VERSION}" ]; then
|
||||||
ACTION_UPDATE_BOOTLOADER=1
|
ACTION_UPDATE_BOOTLOADER=1
|
||||||
@@ -493,12 +532,18 @@ lookupVersionInfo()
|
|||||||
BOOTLOADER_UPDATE_IMAGE=""
|
BOOTLOADER_UPDATE_IMAGE=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${VL805_CURRENT_VERSION}" ] && [ -n "${VL805_UPDATE_VERSION}" ]; then
|
if [ "${HAVE_VL805_EEPROM}" = 1 ]; then
|
||||||
if [ "${VL805_CURRENT_VERSION}" \< "${VL805_UPDATE_VERSION}" ]; then
|
getVL805UpdateVersion
|
||||||
ACTION_UPDATE_VL805=1
|
if [ -n "${VL805_CURRENT_VERSION}" ] && [ -n "${VL805_UPDATE_VERSION}" ]; then
|
||||||
else
|
if [ "${VL805_CURRENT_VERSION}" \< "${VL805_UPDATE_VERSION}" ]; then
|
||||||
VL805_UPDATE_IMAGE=""
|
ACTION_UPDATE_VL805=1
|
||||||
|
else
|
||||||
|
VL805_UPDATE_IMAGE=""
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
VL805_UPDATE_VERSION="${VL805_CURRENT_VERSION}"
|
||||||
|
ACTION_UPDATE_VL805=0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,17 +141,17 @@ check_conf_size_too_large()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_loopback "../firmware/critical/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
|
check_loopback "../firmware/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
check_update "../firmware/critical/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
|
check_update "../firmware/old/beta/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
check_reduce_size "../firmware/critical/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
|
check_reduce_size "../firmware/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
check_conf_size_large "../firmware/critical/pieeprom-2019-07-15.bin"
|
check_conf_size_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
check_conf_size_too_large "../firmware/critical/pieeprom-2019-07-15.bin"
|
check_conf_size_too_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||
Reference in New Issue
Block a user