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

@@ -0,0 +1,4 @@
[all]
BOOT_UART=1
BOOT_ORDER=0xf41
POWER_OFF_ON_HALT=0

View File

@@ -0,0 +1,5 @@
[all]
BOOT_UART=1
BOOT_ORDER=0xf21
POWER_OFF_ON_HALT=0

View File

@@ -0,0 +1,4 @@
[all]
BOOT_UART=1
BOOT_ORDER=0xf41
POWER_OFF_ON_HALT=0

View File

@@ -0,0 +1,5 @@
[all]
BOOT_UART=1
BOOT_ORDER=0xf14
POWER_OFF_ON_HALT=0

View File

@@ -1,13 +0,0 @@
#!/bin/sh
set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
firmware_status=${firmware_status:-"beta"}
firmware_dir=${script_dir}/../firmware/${firmware_status}
pieeprom_version=$(basename $(ls ${firmware_dir}/pieeprom-*.bin | sort -V | tail -1) .bin | cut -d- -f2-5)
vl805_version=$(basename $(ls ${firmware_dir}/vl805-*.bin | sort -V | tail -1) .bin | cut -d- -f2)
${script_dir}/make-release ${firmware_status} ${pieeprom_version} ${vl805_version} "${script_dir}" ${firmware_status}_release rpi-boot-eeprom-recovery-${firmware_status}

View File

@@ -4,4 +4,8 @@ set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}" release rpi-boot-eeprom-recovery
# Pi4, Pi400, CM4, CM4-S
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711
# Pi5
${script_dir}/make-release critical 2023-09-21 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712

View File

@@ -32,8 +32,10 @@ gen_release() {
cd "${tmp_dir}"
cp "${script_dir}/README.txt" .
cp "${firmware_dir}/recovery.bin" .
cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin
sha256sum vl805.bin | awk '{print $1}' > vl805.sig
if [ ${bcm_chip} = 2711 ]; then
cp "${firmware_dir}/vl805-${vl805_version}.bin" vl805.bin
sha256sum vl805.bin | awk '{print $1}' > vl805.sig
fi
"${script_dir}/../rpi-eeprom-config" \
--config "${config}" --out pieeprom.bin \
@@ -61,20 +63,26 @@ vl805_version="${3}"
config_dir="${4}"
output_dir="${5}"
output_basename="${6}"
bcm_chip="${7}"
[ -n "${firmware_status}" ] || usage
[ -n "${pieeprom_version}" ] || usage
[ -n "${vl805_version}" ] || usage
[ -n "${config_dir}" ] || usage
[ -n "${output_dir}" ] || usage
[ -n "${output_basename}" ] || usage
[ -n "${bcm_chip}" ] || usage
firmware_dir=${script_dir}/../firmware/${firmware_status}
firmware_dir=${script_dir}/../firmware-${bcm_chip}/${firmware_status}
[ -d "${firmware_dir}" ] || (echo "${firmware_dir} doesn't exist" && exit 1)
[ -f "${firmware_dir}/pieeprom-${pieeprom_version}.bin" ] || (echo "${firmware_status}/pieeprom-${pieeprom_version}.bin doesn't exist" && exit 1)
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${firmware_status}/vl805-${vl805_version}.bin doesn't exist" && exit 1)
[ -d "${config_dir}" ] || (echo "${config_dir} doesn't exist" && exit 1)
tag="${pieeprom_version}-vl805-${vl805_version}"
if [ "${bcm_chip}" = 2711 ]; then
[ -f "${firmware_dir}/vl805-${vl805_version}.bin" ] || (echo "${firmware_status}/vl805-${vl805_version}.bin doesn't exist" && exit 1)
[ -d "${config_dir}" ] || (echo "${config_dir} doesn't exist" && exit 1)
tag="${pieeprom_version}-vl805-${vl805_version}"
else
tag="${pieeprom_version}"
fi
# use realpath to ensure paths are absolute
config_dir=$(realpath "${config_dir}")
output_dir=$(realpath "${output_dir}")