armbian-build/extensions/gxlimg.sh
Igor Velkov 8cb897856f (#9400 P1a) extensions/gxlimg.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on two file existence checks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00

108 lines
3.3 KiB
Bash

#!/usr/bin/env bash
function fetch_sources_tools__gxlimg() {
# Branch: master, Commit date: Nov 10, 2025 (please update when updating commit ref)
fetch_from_repo "${GITHUB_SOURCE}/repk/gxlimg" "gxlimg" "commit:37a3ea072ca81bb3872441a09fe758340fd67dcb"
}
function build_host_tools__compile_gxlimg() {
# Compile and install only if git commit hash changed
cd "${SRC}/cache/sources/gxlimg" || exit
# need to check if /usr/local/bin/gxlimg to detect new Docker containers with old cached sources
if [[ ! -f .commit_id || $(git rev-parse @ 2> /dev/null) != $(< .commit_id) || ! -f /usr/local/bin/gxlimg ]]; then
display_alert "Compiling" "gxlimg" "info"
run_host_command_logged make distclean
run_host_command_logged make
run_host_command_logged install -Dm0755 gxlimg /usr/local/bin/gxlimg
git rev-parse @ 2> /dev/null > .commit_id
fi
}
# This function extracts bl2 and bl3x from the old FIP and repackages them with the new u-boot.bin into a FIP
# $1 path to old FIP file
# $2 SoC family
function gxlimg_repack_fip_with_new_uboot() {
display_alert "${BOARD}" "Repacking FIP with new u-boot.bin" "info"
if [[ ! -f "$1" ]]; then
exit_with_error "FIP file $1 does not exist"
fi
if [[ ! -f u-boot.bin ]]; then
exit_with_error "u-boot.bin not found under $(pwd)"
fi
mv u-boot.bin raw-u-boot.bin
EXTRACT_DIR=$(mktemp -d)
trap 'rm -rf "$EXTRACT_DIR"' EXIT
run_host_command_logged gxlimg -e "$1" "$EXTRACT_DIR"
rm -f "${EXTRACT_DIR}/bl33.enc"
case $2 in
gxl)
run_host_command_logged gxlimg \
-t bl3x \
-c raw-u-boot.bin \
"${EXTRACT_DIR}/bl33.enc"
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
--bl30 "${EXTRACT_DIR}/bl30.enc" \
--bl301 "${EXTRACT_DIR}/bl301.enc" \
--bl31 "${EXTRACT_DIR}/bl31.enc" \
--bl33 "${EXTRACT_DIR}/bl33.enc" \
u-boot.bin
;;
g12a | g12b)
run_host_command_logged gxlimg \
-t bl3x \
-s raw-u-boot.bin \
"${EXTRACT_DIR}/bl33.enc"
if [[ -e "${EXTRACT_DIR}/lpddr3_1d.fw" ]]; then
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
--ddrfw "${EXTRACT_DIR}/piei.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
--bl30 "${EXTRACT_DIR}/bl30.enc" \
--bl31 "${EXTRACT_DIR}/bl31.enc" \
--bl33 "${EXTRACT_DIR}/bl33.enc" \
--rev v3 u-boot.bin
else
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
--ddrfw "${EXTRACT_DIR}/piei.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
--bl30 "${EXTRACT_DIR}/bl30.enc" \
--bl31 "${EXTRACT_DIR}/bl31.enc" \
--bl33 "${EXTRACT_DIR}/bl33.enc" \
--rev v3 u-boot.bin
fi
;;
*)
exit_with_error "Unsupported SoC family: $2"
;;
esac
if [[ ! -s u-boot.bin ]]; then
exit_with_error "FIP repack produced empty u-boot.bin"
fi
}