Files
2026-08-24 10:03:24 +08:00

318 lines
8.3 KiB
Bash
Executable File

#!/bin/bash
# static
declare BLX_BIN_SUB_CHIP="${CONFIG_CHIPSET_NAME}"
if [ -n "${CONFIG_CHIPSET_VARIANT_MIN}" ]; then
## trunk bl32 bin in 429 409_emmc
declare CHIPSET_VARIANT_MIN_SUFFIX=".${CONFIG_CHIPSET_VARIANT_MIN}"
fi
if [ -n "${SCRIPT_ARG_CHIPSET_VARIANT}" ]; then
declare CHIPSET_VARIANT_SUFFIX=".${SCRIPT_ARG_CHIPSET_VARIANT}"
## not trunk, use fastboot/ipc branch
elif [ -n "${CONFIG_CHIPSET_VARIANT}" ]; then
## bl2e bl32 bl40 bin name with fastboot or null
declare CHIPSET_VARIANT_SUFFIX=".${CONFIG_CHIPSET_VARIANT}"
## choose bb1st bin name is fastboot or ipc
if [ "${CONFIG_IPC_TYPE}" == "normal" ]; then
declare CHIPSET_VARIANT_SUFFIX_IPC=".ipc"
elif [ "${CONFIG_IPC_TYPE}" == "fastboot" ]; then
declare CHIPSET_VARIANT_SUFFIX_IPC=".fastboot"
else
echo "Not setting the correct range CONFIG_IPC_TYPE ${CONFIG_IPC_TYPE}"
declare CHIPSET_VARIANT_SUFFIX_IPC=".${CONFIG_CHIPSET_VARIANT}"
fi
if [ "${CONFIG_IPC_DDR_SIZE}" == "256m" ]; then
## choose bl2x bl31 bin name witch fastboot_256, otherwise it is fastboot)
declare CHIPSET_VARIANT_SUFFIX_DDR=".${CONFIG_CHIPSET_VARIANT}_256"
if [ "${CONFIG_TEE_TYPE}" == "8m" ]; then
## fastboot/ipc use bl32 bin in 402 409
CHIPSET_VARIANT_MIN_SUFFIX=".8m"
elif [ "${CONFIG_TEE_TYPE}" == "1m" ]; then
## Will not enter here
CHIPSET_VARIANT_MIN_SUFFIX=".1m"
fi
else
declare CHIPSET_VARIANT_SUFFIX_DDR=".${CONFIG_CHIPSET_VARIANT}"
fi
else
declare CHIPSET_VARIANT_SUFFIX=""
fi
declare -a BLX_NAME=("bl2" \
"bl2" \
"bl2e" \
"bl2e" \
"bl2x" \
"bl31" \
"bl32" \
"bl40")
declare -a BLX_SRC_FOLDER=("bl2/core" \
"bl2/core" \
"bl2/ree" \
"bl2/ree" \
"bl2/tee" \
"bl31/bl31_1.3/src" \
"bl32/bl32_3.8/src" \
"NULL" \
"bl33")
declare -a BLX_BIN_FOLDER=("bl2/bin" \
"bl2/bin" \
"bl2/bin" \
"bl2/bin" \
"bl2/bin" \
"bl31/bl31_1.3/bin" \
"bl32/bl32_3.8/bin" \
"bl40/bin")
if [ "y" == "${CONFIG_PXP_NO_SIGNED}" ]; then
declare -a BLX_BIN_NAME=("bl2.bin.sto" \
"bl2.bin.usb" \
"bl2e.bin.sto" \
"bl2e.bin.usb" \
"bl2x.bin" \
"bl31.bin" \
"bl32.bin" \
"bl40.bin")
else
declare -a BLX_BIN_NAME=("bb1st.sto${CHIPSET_VARIANT_SUFFIX_IPC}.bin.signed" \
"bb1st.usb${CHIPSET_VARIANT_SUFFIX_IPC}.bin.signed" \
"blob-bl2e.sto${CHIPSET_VARIANT_SUFFIX}.bin.signed" \
"blob-bl2e.usb${CHIPSET_VARIANT_SUFFIX}.bin.signed" \
"blob-bl2x${CHIPSET_VARIANT_SUFFIX_DDR}.bin.signed" \
"blob-bl31${CHIPSET_VARIANT_SUFFIX_DDR}.bin.signed" \
"blob-bl32${CHIPSET_VARIANT_MIN_SUFFIX}${CHIPSET_VARIANT_SUFFIX}.bin.signed" \
"blob-bl40${CHIPSET_VARIANT_SUFFIX}.bin.signed")
fi
declare -a BLX_BIN_CLEAR_NAME=("bb1st.sto.bin.signed" \
"bb1st.usb.bin.signed" \
"blob-bl2e.sto.bin.signed" \
"blob-bl2e.usb.bin.signed" \
"blob-bl2x.bin.signed" \
"blob-bl31.bin.signed" \
"blob-bl32.bin.signed" \
"blob-bl40.bin.signed")
## c3 old aw402s
if [ "" != "${CHIPSET_VARIANT_MIN_SUFFIX}" ] && [ "${CONFIG_TEE_TYPE}" == "" ] && [ "fastboot" == "${CONFIG_CHIPSET_VARIANT}" ]; then
declare -a BLX_BIN_SIZE=("169984" \
"169984" \
"74864" \
"74864" \
"66672" \
"98304" \
"528384" \
"8192")
declare BL30_BIN_SIZE="65536"
declare BL33_BIN_SIZE="524288"
## fastboot/ipc branch (402 409)
elif [ "fastboot" == "${CONFIG_CHIPSET_VARIANT}" ]; then
## c3 support bl32 in 256m
if [ "${CONFIG_IPC_DDR_SIZE}" == "256m" ] && [ "${CONFIG_TEE_TYPE}" == "8m" ]; then
declare -a BLX_BIN_SIZE=("169984" \
"169984" \
"74864" \
"74864" \
"66672" \
"98304" \
"528384" \
"8192")
## c3 not support bl32
else
declare -a BLX_BIN_SIZE=("169984" \
"169984" \
"74864" \
"74864" \
"66672" \
"98304" \
"8192" \
"8192")
fi
declare BL30_BIN_SIZE="4096"
export CONFIG_BL33_SIZE
if [ "${CONFIG_BL33_SIZE}" = "s" ]; then
## +64k
declare BL33_BIN_SIZE="389120"
elif [ "${CONFIG_BL33_SIZE}" = "m" ]; then
## +128k
declare BL33_BIN_SIZE="454656"
else
declare BL33_BIN_SIZE="323584"
fi
else
## c3 trunk 419 429 409_emmc
declare -a BLX_BIN_SIZE=("169984" \
"169984" \
"74864" \
"74864" \
"66672" \
"266240" \
"528384" \
"102400")
declare BL30_BIN_SIZE="65536"
declare BL33_BIN_SIZE="1572864"
fi
declare DEV_ACS_BIN_SIZE="4096"
declare -a BLX_RAWBIN_NAME=("bl2.bin.sto" \
"bl2.bin.usb" \
"bl2e.bin.sto" \
"bl2e.bin.usb" \
"bl2x.bin" \
"bl31.bin" \
"bl32.bin" \
"bl40.bin")
declare -a BLX_IMG_NAME=("NULL" \
"NULL" \
"NULL" \
"NULL" \
"NULL" \
"NULL" \
"NULL")
declare -a BLX_NEEDFUL=("true" \
"true" \
"true" \
"true" \
"true" \
"ture" \
"true")
declare -a BLX_SRC_GIT=("bootloader/amlogic-advanced-bootloader/core" \
"bootloader/amlogic-advanced-bootloader/core" \
"bootloader/amlogic-advanced-bootloader/ree" \
"bootloader/amlogic-advanced-bootloader/ree" \
"bootloader/amlogic-advanced-bootloader/tee" \
"ARM-software/arm-trusted-firmware" \
"OP-TEE/optee_os" \
"uboot")
declare -a BLX_BIN_GIT=("firmware/bin/bl2" \
"firmware/bin/bl2" \
"firmware/bin/bl2" \
"firmware/bin/bl2" \
"firmware/bin/bl2" \
"firmware/bin/bl31" \
"firmware/bin/bl32" \
"firmware/bin/b40")
# blx priority. null: default, source: src code, others: bin path
declare -a BIN_PATH=("null" \
"null" \
"null" \
"null" \
"null" \
"null" \
"null" \
"null")
# variables
declare -a CUR_REV # current version of each blx
declare -a BLX_READY=("false", \
"false", \
"false", \
"false", \
"false", \
"false", \
"false", \
"false") # blx build/get flag
# package variables
declare BL33_COMPRESS_FLAG=""
declare BL3X_SUFFIX="bin"
declare V3_PROCESS_FLAG=""
declare FIP_ARGS=""
declare AML_BL2_NAME=""
declare AML_KEY_BLOB_NAME=""
declare FIP_BL32_PROCESS=""
declare BOOT_SIG_FLAG=""
declare EFUSE_GEN_FLAG=""
declare DDRFW_TYPE=""
BUILD_PATH=${FIP_BUILD_FOLDER}
BUILD_PAYLOAD=${FIP_BUILD_FOLDER}/payload
CHIPSET_TEMPLATES_PATH="soc/templates"
CONFIG_DDR_FW=0
DDR_FW_NAME="aml_ddr.fw"
CONFIG_NEED_BL32=y
ADVANCED_BOOTLOADER=1
BL2X_BL31_BRANCH="projects/fastboot/c3"
BL2X_BL31_256_BRANCH="projects/fastboot/c3_256"
local find_base='0'
function get_branch() {
local oldifs="$IFS"
local base_branch=""
local tmp=""
IFS=$'\n'
tmp=`git branch`
# Eg: * (HEAD detached at firmware/projects/sc2)
if [[ "${tmp}" =~ "HEAD detached " ]]; then
tmp=`git branch -vv | grep '^\*.*\[.*\]' | awk '{print $5}'`
else
tmp=`git branch -vv | grep '^\*.*\[.*\]' | awk '{print $4}'`
fi
if [ "${CONFIG_IPC_DDR_SIZE}" == "256m" ] && [[ "${tmp}" =~ "${BL2X_BL31_256_BRANCH}" ]]; then
base_branch=${BL2X_BL31_256_BRANCH}
find_base=1
elif [ "${CONFIG_IPC_DDR_SIZE}" == "128m" ] && [[ "${tmp}" =~ "${BL2X_BL31_BRANCH}" ]] && [[ ! "${tmp}" =~ "${BL2X_BL31_256_BRANCH}" ]]; then
base_branch=${BL2X_BL31_BRANCH}
find_base=1
fi
IFS="$oldifs"
CURRENT_BL_BRANCH=${base_branch}
export CURRENT_BL_BRANCH
echo "CURRENT_BL_BRANCH ${CURRENT_BL_BRANCH}"
return
}
# Check the correct use of (aw402/aw409) bl2x bl31 branch for ddr size
function check_branch_bl2x_bl31() {
if [ -n "${CONFIG_CHIPSET_VARIANT}" ] && [ -z "${CONFIG_CHIPSET_VARIANT_MIN}" ]; then
if [ "${CONFIG_IPC_DDR_SIZE}" == "256m" ]; then
local dest_branch=${BL2X_BL31_256_BRANCH}
elif [ "${CONFIG_IPC_DDR_SIZE}" == "128m" ]; then
local dest_branch=${BL2X_BL31_BRANCH}
else
echo -e "Not setting the correct range CONFIG_IPC_DDR_SIZE ${CONFIG_IPC_DDR_SIZE}"
exit -1
fi
local str=`git branch --remote | grep ${dest_branch}`
# 1, check if existed amlogic git branch name format
if [ "${str}" == "" ]; then
echo "can't find ${dest_branch}"
else
local cur_branch=''
local diff=`git diff`
# 2, check current branch is based on target soc?
get_branch
if [ "${find_base}" -eq 0 ]; then
echo ==== BRANCH ${dest_branch} not found ====
exit -1
fi
find_base=0 # reset find_base
echo ==== current branch:${CURRENT_BL_BRANCH} ====
if [[ "${CURRENT_BL_BRANCH}" == *"${dest_branch}" ]]; then
echo ==== NO NEED TO SWITCH BRANCH ====
return
else
echo ==== NEED TO SWITCH BRANCH ${dest_branch}====
exit -1
fi
fi
fi
}