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
This commit is contained in:
Tim Gover
2023-09-25 15:43:57 +01:00
parent f818c860b4
commit 9147a1a1c6
17 changed files with 156 additions and 86 deletions

View File

@@ -19,9 +19,16 @@ CONFIG="/etc/default/rpi-eeprom-update"
[ "$(id -u)" = "0" ] || die "$0 Must be run as root - try 'sudo $0 [-b]'"
# Clear out the old firmware
rm -rf /lib/firmware/raspberrypi/bootloader
mkdir -p /lib/firmware/raspberrypi/bootloader
cp -rf "${FIRMWARE_DIR}"/* /lib/firmware/raspberrypi/bootloader
rm -rf /lib/firmware/raspberrypi/bootloader-2711
rm -rf /lib/firmware/raspberrypi/bootloader-2712
mkdir -p /lib/firmware/raspberrypi/bootloader-2711
rsync -alv "${FIRMWARE_DIR}-2711"/* /lib/firmware/raspberrypi/bootloader-2711 || echo "Failed"
mkdir -p /lib/firmware/raspberrypi/bootloader-2712
rsync -alv "${FIRMWARE_DIR}-2712"/* /lib/firmware/raspberrypi/bootloader-2712 || echo "Failed"
cp -fv "${script_dir}/../rpi-eeprom-config" /usr/bin
cp -fv "${script_dir}/../rpi-eeprom-digest" /usr/bin
cp -fv "${script_dir}/../rpi-eeprom-update" /usr/bin

View File

@@ -167,11 +167,11 @@ check_conf_size_too_large()
echo "Check config read and loopback read/write against reference config files"
versions="$(cd configs; ls *.txt | sed 's/bootconf-//g' | sed 's/.txt//g')"
for ver in ${versions}; do
if [ -f "../firmware/old/beta/pieeprom-${ver}.bin" ]; then
if [ -f "../firmware-2711/old/beta/pieeprom-${ver}.bin" ]; then
# Use this directory if the bootloader has been archived
check_loopback "../firmware/old/beta/pieeprom-${ver}.bin" "configs/bootconf-${ver}.txt"
check_loopback "../firmware-2711/old/beta/pieeprom-${ver}.bin" "configs/bootconf-${ver}.txt"
else
check_loopback "../firmware/beta/pieeprom-${ver}.bin" "configs/bootconf-${ver}.txt"
check_loopback "../firmware-2711/beta/pieeprom-${ver}.bin" "configs/bootconf-${ver}.txt"
fi
cleanup
done
@@ -181,14 +181,14 @@ check_loopback pieeprom-signed.bin bootconf.txt
check_signed_loopback pieeprom-signed.bin bootconf.txt bootconf.sig public.pem
cleanup
check_update "../firmware/old/beta/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
check_update "../firmware-2711/old/beta/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
cleanup
check_reduce_size "../firmware/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
check_reduce_size "../firmware-2711/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
cleanup
check_conf_size_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
check_conf_size_large "../firmware-2711/old/beta/pieeprom-2019-07-15.bin"
cleanup
check_conf_size_too_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
check_conf_size_too_large "../firmware-2711/old/beta/pieeprom-2019-07-15.bin"
cleanup