1170 lines
48 KiB
Bash
Executable File
1170 lines
48 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CUR_DIR=$(cd `dirname $0`; pwd)
|
|
TOP_DIR=$CUR_DIR/../..
|
|
PSRAM_ENABLE_GEN=$(echo $psram_enable)
|
|
FLASH_LAYOUT_INDEX=$(echo $layout_index)
|
|
PROTO_TYPE=$(echo ${PROTO_TYPE} | tr '[a-z]' '[A-Z]')
|
|
RF_ENABLE=$(echo ${rf_enable})
|
|
DUAL_ENABLE=$(echo ${dual_enable})
|
|
NEW_TYPE_CCO=$(echo ${new_type_cco})
|
|
SEC_CPU_ENABLE=$(echo ${sec_cpu_enable})
|
|
while getopts "d:c:i:r:m:s:a:b:v:h:p:t:f:" arg
|
|
do
|
|
case $arg in
|
|
c)
|
|
# board类型 build_flash_kl3.sh 会根据它存储的board列表依次调用 gen_img.sh
|
|
echo "c's arg: $OPTARG"
|
|
BOARD_LOWER=$OPTARG
|
|
;;
|
|
d)
|
|
# 芯片id HZ WQ
|
|
echo "d's arg: $OPTARG"
|
|
CHIP_ID=$OPTARG
|
|
;;
|
|
i)
|
|
echo "i's arg: $OPTARG"
|
|
IMG_LOWER=$OPTARG
|
|
;;
|
|
r)
|
|
echo "r's arg: $OPTARG"
|
|
RUN_LOWER=$OPTARG
|
|
;;
|
|
m)
|
|
echo "m's arg: $OPTARG"
|
|
MODE_LOWER=$OPTARG
|
|
;;
|
|
s)
|
|
echo "s's arg: $OPTARG"
|
|
SIZE_LOWER=$OPTARG
|
|
;;
|
|
a)
|
|
echo "a's arg: $OPTARG"
|
|
APP_LOWER=$OPTARG
|
|
;;
|
|
b)
|
|
echo "b's arg: $OPTARG"
|
|
CHIP_VER_LOWER=$OPTARG
|
|
;;
|
|
v)
|
|
echo "v's arg: $OPTARG"
|
|
DB_LOWER=$OPTARG
|
|
;;
|
|
p)
|
|
echo "p's arg: $OPTARG"
|
|
PSRAM_SIZE=$OPTARG
|
|
;;
|
|
t)
|
|
echo "t's arg: $OPTARG"
|
|
CORE_TYPE_LOWER=$OPTARG
|
|
;;
|
|
f)
|
|
echo "f's arg: $OPTARG"
|
|
FAST_BOOT=$OPTARG
|
|
;;
|
|
h)
|
|
echo "[Usage]"
|
|
echo "$0 -d (hw chip id) -c (custom name) -i (image type) -r (run environment) -m (mode type) -s (flash size) -a (app_name)"
|
|
exit 1
|
|
;;
|
|
?)
|
|
echo "unsupport argument"
|
|
echo "[Usage]"
|
|
echo "$0 -d (hw chip id) -c (custom name) -i (image type) -r (run environment) -s (flash size) -a (app_name)"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "$BOARD_LOWER" == "" ] || [ "$CHIP_ID" == "" ] || [ "$IMG_LOWER" == "" ] || [ "$RUN_LOWER" == "" ]; then
|
|
echo "input argument error"
|
|
echo "[Usage]"
|
|
echo "$0 -d (hw chip id) -c (custom name) -i (image type) -r (run environment)"
|
|
exit 1
|
|
fi
|
|
|
|
#get iot_ver from iot_version.h.
|
|
IOT_VER_FILE="${TOP_DIR}/inc/iot_version.h"
|
|
get_iot_ver() {
|
|
ver_file=$1
|
|
major_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MAJOR"|awk '{print $3}'`
|
|
mionor_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MINOR"|awk '{print $3}'`
|
|
micro_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MICRO"|awk '{print $3}'`
|
|
build_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_BUILD"|awk '{print $3}'`
|
|
|
|
major_ver=${major_ver//(/}
|
|
major_ver=${major_ver//)/}
|
|
mionor_ver=${mionor_ver//(/}
|
|
mionor_ver=${mionor_ver//)/}
|
|
micro_ver=${micro_ver//(/}
|
|
micro_ver=${micro_ver//)/}
|
|
build_ver=${build_ver//(/}
|
|
build_ver=${build_ver//)/}
|
|
|
|
IOT_VER="${major_ver}.${mionor_ver}.${micro_ver}.${build_ver}"
|
|
return
|
|
}
|
|
|
|
if [ "$PSRAM_ENABLE_GEN" == "1" ]; then
|
|
if [ "$PSRAM_SIZE" == "" ] || [ "$PSRAM_SIZE" == "4" ]; then
|
|
# the default psram size is 4m
|
|
PSRAM_SIZE_STR="F"
|
|
PSRAM_SIZE_PARAM="P4"
|
|
elif [ "$PSRAM_SIZE" == "8" ]; then
|
|
PSRAM_SIZE_STR="E"
|
|
PSRAM_SIZE_PARAM="P8"
|
|
else
|
|
PSRAM_SIZE_STR="T"
|
|
PSRAM_SIZE_PARAM="P2"
|
|
fi
|
|
else
|
|
PSRAM_SIZE="0"
|
|
PSRAM_SIZE_PARAM="P0"
|
|
fi
|
|
|
|
# distinguish iot or sg app.
|
|
# 判断是iot还是sg
|
|
if [ "$APP_LOWER" == "plc_uart" ] || [ "$APP_LOWER" == "demo" ] || [ "$APP_LOWER" == "ge" ] || [ "$APP_LOWER" == "ge_ckq" ] \
|
|
|| [ "$APP_LOWER" == "ge_lwip" ] || [ "$APP_LOWER" == "ge_ext" ] || [ "$APP_LOWER" == "cus_at" ] \
|
|
|| [ "$APP_LOWER" == "demo_lwip" ] || [ "$APP_LOWER" == "iot_sniffer" ] \
|
|
|| [ "$APP_LOWER" == "ge_micro" ] || [ "$APP_LOWER" == "sila" ] || [ "$APP_LOWER" == "at_micro" ] || [ "$APP_LOWER" == "iot_dl645" ]; then
|
|
IOT_SMART_BUILD=1
|
|
APP_UPPER=$(echo $APP_LOWER | tr '[a-z]' '[A-Z]')
|
|
else
|
|
IOT_SMART_BUILD=0
|
|
if [ "$APP_LOWER" == "brm" ] || [ "$APP_LOWER" == "brk" ] || [ "$APP_LOWER" == "tfm" ] || [ "$APP_LOWER" == "bsrm" ] \
|
|
|| [ "$APP_LOWER" == "bsrm_cus" ] || [ "$APP_LOWER" == "solr" ] || [ "$APP_LOWER" == "sg_ext" ] \
|
|
|| [ "$APP_LOWER" == "sg_meter" ] || [ "$APP_LOWER" == "sniffer" ]; then
|
|
APP_UPPER=$(echo $APP_LOWER | tr '[a-z]' '[A-Z]')
|
|
else
|
|
APP_UPPER="SG"
|
|
fi
|
|
fi
|
|
|
|
if [ "$DB_LOWER" == "release" ]; then
|
|
DB_RLS_FLAG="R"
|
|
else
|
|
DB_LOWER="debug"
|
|
DB_RLS_FLAG="D"
|
|
fi
|
|
|
|
BOARD_UPPER=$(echo $BOARD_LOWER | tr '[a-z]' '[A-Z]')
|
|
IMG_UPPER=$(echo $IMG_LOWER | tr '[a-z]' '[A-Z]')
|
|
RUN_UPPER=$(echo $RUN_LOWER | tr '[a-z]' '[A-Z]')
|
|
MODE_UPPER=$(echo $MODE_LOWER | tr '[a-z]' '[A-Z]')
|
|
SIZE_UPPER=$(echo $SIZE_LOWER | tr '[a-z]' '[A-Z]')
|
|
CHIP_VER_UPPER=$(echo $CHIP_VER_LOWER | tr '[a-z]' '[A-Z]')
|
|
CORE_TYPE_UPPER=$(echo $CORE_TYPE_LOWER | tr '[a-z]' '[A-Z]')
|
|
|
|
# cleanup old file.
|
|
rm -f $CUR_DIR/sbl.bin
|
|
rm -f $CUR_DIR/pib.bin
|
|
rm -f $CUR_DIR/sp.bin
|
|
rm -f $CUR_DIR/oem*.bin
|
|
rm -f $CUR_DIR/ht.bin
|
|
rm -f $CUR_DIR/ht_1p.bin
|
|
rm -f $CUR_DIR/ht*.fw
|
|
# rm -f $CUR_DIR/cfg_log.txt
|
|
|
|
# 如果是kunlun3
|
|
if [ "x${CHIP_VER_UPPER}" == "x3" ]; then
|
|
# clear files and generate folders
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
rm -f $CUR_DIR/ht_cus.bin
|
|
rm -f $CUR_DIR/ht_cus.bin.fw
|
|
rm -f $CUR_DIR/ht_cus_ori.bin
|
|
fi
|
|
rm -f $CUR_DIR/ht_ori.bin
|
|
|
|
# 根据board类型来指定固件存放的位置
|
|
if [[ "${BOARD_LOWER}" == "fpga"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/fpga/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/fpga/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "evb32"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/hz_evb/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/hz_evb/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "evb558"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/qj_evb/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/qj_evb/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "evb671"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/flx_evb/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/flx_evb/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "htzd3211pt03" ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/pt/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/pt/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "htzd"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/htzd/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/htzd/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "qj"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/qj/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/qj/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "flx"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/flx/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/flx/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "spe"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/spe/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/spe/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "gx"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/gx/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/gx/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "dt"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/dt/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/dt/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "evb5202"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/evb5202/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/evb5202/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "goldfinger_17p"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/goldfinger_17p/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/goldfinger_17p/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "stamp"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/stamp/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/stamp/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "ledc"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/ledc/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/ledc/${IMG_LOWER}/out/
|
|
elif [[ "${BOARD_LOWER}" == "yp"* ]]; then
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/yp/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/yp/${IMG_LOWER}/out/
|
|
else
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/${BOARD_LOWER}/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/${BOARD_LOWER}/${IMG_LOWER}/out/
|
|
fi
|
|
# 创建固件文件存放路径
|
|
mkdir -p $BIN_PATH
|
|
mkdir -p $OUT_PATH
|
|
|
|
# 根据内核类型选择配置文件目录
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
CFG_DIR=${TOP_DIR}"/build/cfg3"
|
|
else
|
|
CFG_DIR=${TOP_DIR}"/build/cfg3_plc"
|
|
fi
|
|
# 链接脚本目录 用来获取sbl的运行地址
|
|
LDS_DIR=${TOP_DIR}"/startup/ldscripts/riscv3"
|
|
# SIZE_UPPER 指的是flash size
|
|
# 根据参数来指定配置文件的名称
|
|
if [ "${RUN_UPPER}" == "UPGRADE" ]; then
|
|
if [ "${SIZE_UPPER}" != "" ]; then
|
|
if [ "$PSRAM_ENABLE_GEN" == "1" ]; then
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}"_upgrade_psram.cfg"
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}"_upgrade.cfg"
|
|
fi
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}"_upgrade.cfg"
|
|
fi
|
|
else
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${SIZE_UPPER}" == "2M" ] || [ "${SIZE_UPPER}" == "4M" ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
CFG_NAME=${CFG_DIR}"/smart_"${SIZE_LOWER}"_"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/smart_"${SIZE_LOWER}"_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/smart_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
if [ "${SIZE_UPPER}" != "" ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}.cfg
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
# 复制一份临时的配置文件 供修改
|
|
TMP_CFG_NAME=${CFG_DIR}"/"${BOARD_LOWER}_${IMG_LOWER}_tmp.cfg
|
|
cp ${CFG_NAME} ${TMP_CFG_NAME}
|
|
# 配置文件中会存储是否快速启动的配置
|
|
# OPT_KEYWORD 是动态配置字段 可以在这个字段添加额外的说明
|
|
if [ "x${FAST_BOOT}" == "x1" ]; then
|
|
OPT_KEYWORD="FB-"
|
|
else
|
|
OPT_KEYWORD=""
|
|
fi
|
|
|
|
if [ "x${DUAL_ENABLE}" == "x1" ]; then
|
|
OPT_KEYWORD=DUAL-${OPT_KEYWORD}
|
|
fi
|
|
|
|
if [ "x${RF_ENABLE}" == "x1" ]; then
|
|
OPT_KEYWORD=RF-${OPT_KEYWORD}
|
|
fi
|
|
|
|
# set option keyword to fw name for kl3.
|
|
# PROTO_TYPE 指的是支持的协议类型
|
|
OPT_KEYWORD=${PROTO_TYPE}-${OPT_KEYWORD}
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
OPT_KEYWORD="AMPPLC-${OPT_KEYWORD}"
|
|
fi
|
|
|
|
# prepare ht.bin
|
|
# 准备好ht.bin
|
|
if [ "${IMG_UPPER}" == "CKB" ]; then
|
|
HT_FILE="ht_sta.bin"
|
|
else
|
|
HT_FILE="ht_"${IMG_LOWER}".bin"
|
|
fi
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
cp ${TOP_DIR}/ap/.output/cus/lib/${HT_FILE} $CUR_DIR/ht_cus.bin
|
|
fi
|
|
|
|
if [[ "${BOARD_LOWER}" == "*3201*" ]]; then
|
|
chip_ver=3201
|
|
fi
|
|
|
|
if [[ "${BOARD_LOWER}" == "*3211*" ]]; then
|
|
chip_ver=3211
|
|
fi
|
|
|
|
if [[ "${BOARD_LOWER}" == "*3031*" ]]; then
|
|
chip_ver=3031
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
# smart build 时要区分 1p 和3p
|
|
if [ "${chip_ver}" == "3201" ]; then
|
|
cp $CUR_DIR/iot_ht_3p.bin $CUR_DIR/ht.bin
|
|
fi
|
|
cp $CUR_DIR/iot_ht_1p.bin $CUR_DIR/ht_1p.bin
|
|
else
|
|
# 其他情况只有3p 修改为ht
|
|
# iot_ht_3p.bin 由 build_flash_kl3.sh 从ht_cco.bin 复制过来
|
|
cp $CUR_DIR/iot_ht_3p.bin $CUR_DIR/ht.bin
|
|
fi
|
|
else
|
|
cp ${TOP_DIR}/ap/.output/plc/lib/${HT_FILE} $CUR_DIR/ht.bin
|
|
fi
|
|
|
|
# prepare oem.bin
|
|
# 根据core类型指定oem文件
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
OEM_CFG=${BOARD_UPPER}"_AMPIOT_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}"_AMPIOT_OEM.bin"
|
|
else
|
|
OEM_CFG=${BOARD_UPPER}"_AMPSG_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}"_AMPSG_OEM.bin"
|
|
fi
|
|
else
|
|
OEM_CFG=${BOARD_UPPER}"_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}"_OEM.bin"
|
|
fi
|
|
cp $TOP_DIR/tools/oem/$OEM_CFG ./tmp_oem.ini
|
|
#set mid for iot board(cco and sta use same oem.ini)
|
|
# smart模式需要根据img类型动态修改mid值
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
sed -i "s/mid.*/mid 1/g" ./tmp_oem.ini
|
|
elif [ "${IMG_UPPER}" == "STA" ]; then
|
|
sed -i "s/mid.*/mid 0/g" ./tmp_oem.ini
|
|
fi
|
|
fi
|
|
if [ "${RUN_UPPER}" != "UPGRADE" ]; then
|
|
# 打包非升级文件的时候生成 oem.bin
|
|
./oem_tool --input=./tmp_oem.ini --output=$TOP_DIR/tools/oem/$OEM_FILE
|
|
fi
|
|
rm ./tmp_oem.ini
|
|
cp $TOP_DIR/tools/oem/$OEM_FILE $CUR_DIR/oem.bin
|
|
|
|
# 修改配置文件中的layout index配置
|
|
sed -i "/img_type=./a layout_index=${FLASH_LAYOUT_INDEX}" ${TMP_CFG_NAME}
|
|
|
|
# config run address and little header of img.
|
|
# 从链接文件中读取 sbl的运行地址,写入到配置文件中
|
|
sbl_lds_file="${LDS_DIR}/link_sbl.lds"
|
|
sbl_run_addr=`grep -ri "iram\ (rxai\!w)" ${sbl_lds_file}|awk '{print $6}'|awk -F, '{print $1}'`
|
|
sed -i "/path=\.\/sbl.bin/a run_addr=${sbl_run_addr}" ${TMP_CFG_NAME}
|
|
# 如果设置了快速启动 则写入配置信息到配置文件中
|
|
if [ "x${FAST_BOOT}" == "x1" ]; then
|
|
sed -i "s/fastboot=./fastboot=1/g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
# 这个部分的代码用于 给各个img.bin生成img_header
|
|
# 虽然配置文件中给每个部分得img都添加了配置 但ah中只会对fw部分的img添加img_header
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
# add run addr
|
|
# 这个链接文件由 ap文件夹中的Makefile复制过来
|
|
cus_lds_file=$CUR_DIR/tmp_cus.lds
|
|
lds_file=$CUR_DIR/tmp_plc.lds
|
|
# 把内存大小写入配置文件
|
|
sed -i "/flash_size=./a psram_size=${PSRAM_SIZE}" ${TMP_CFG_NAME}
|
|
# 从链接文件中读取运行地址并写入配置文件
|
|
plc_run_addr=`grep -ri "flash\ (rxai\!w)" ${lds_file}|awk '{print $6}'|awk -F, '{print $1}'`
|
|
cus_run_addr=`grep -ri "flash\ (rxai\!w)" ${cus_lds_file} |awk '{print $6}'|awk -F, '{print $1}'`
|
|
sed -i "/path=\.\/ht.bin/a run_addr=${plc_run_addr}" ${TMP_CFG_NAME}
|
|
sed -i "/path=\.\/ht_cus.bin/a run_addr=${cus_run_addr}" ${TMP_CFG_NAME}
|
|
|
|
# add iot version
|
|
# 从 iot_version.h 中读取版本信息 写入变量 IOT_VER
|
|
get_iot_ver ${IOT_VER_FILE}
|
|
# 把版本信息写入配置文件
|
|
sed -i "s/version=.*/version=${IOT_VER}/g" ${TMP_CFG_NAME}
|
|
|
|
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
# smart 模式 分别生成1p 和 3p
|
|
sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME}
|
|
# add header
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n-----a------\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME}
|
|
if [ "${chip_ver}" == "3201" ]; then
|
|
#avoid ht_cus.bin add head twice
|
|
sed -i "s/ht_cus.bin/ht_cus_tmp.bin/g" ${TMP_CFG_NAME}
|
|
# add header
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n-----a------\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
sed -i "s/ht_cus_tmp.bin/ht_cus.bin/g" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
# add header
|
|
# 其他模式直接开始生成
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n-----a------\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
# add run addr
|
|
# 非 AMPPLC的情况
|
|
# 这个链接文件由 ap文件夹中的Makefile复制过来
|
|
lds_file=$CUR_DIR/tmp_plc.lds
|
|
# 从链接脚本中读取运行地址然后写入配置文件
|
|
sed -i "/flash_size=./a psram_size=${PSRAM_SIZE}" ${TMP_CFG_NAME}
|
|
plc_run_addr=`grep -ri "flash\ (rxai\!w)" ${lds_file}|awk '{print $6}'|awk -F, '{print $1}'`
|
|
sed -i "/path=\.\/ht.bin/a run_addr=${plc_run_addr}" ${TMP_CFG_NAME}
|
|
|
|
# add iot version
|
|
# 从 iot_version.h 中读取版本信息 然后写入变量 IOT_VER
|
|
get_iot_ver ${IOT_VER_FILE}
|
|
# 把版本信息写入配置文件
|
|
sed -i "s/version=.*/version=${IOT_VER}/g" ${TMP_CFG_NAME}
|
|
|
|
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
# smart_build 时分别生成1p和3p
|
|
sed -i "s/ht.bin/ht_1p.bin/g" ${TMP_CFG_NAME}
|
|
# add header
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n-----a------\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
sed -i "s/ht_1p.bin/ht.bin/g" ${TMP_CFG_NAME}
|
|
if [ "${chip_ver}" == "3201" ]; then
|
|
# add header
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n-----a------\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
# add header
|
|
# 其他情况直接生成
|
|
cat ${TMP_CFG_NAME} >> cfg_log.txt
|
|
echo -e "\n------a-----\n" >> cfg_log.txt
|
|
./ah -a ${TMP_CFG_NAME}
|
|
fi
|
|
fi
|
|
|
|
#config lzma.
|
|
# 如果配置了 lzma 则这里进行压缩,把压缩后的文件命名为 ht.bin
|
|
if [ "${MODE_UPPER}" == "LZMA" ]; then
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ] && [ "x${FAST_BOOT}" != "x1" ]; then
|
|
./elzma e $CUR_DIR/ht_cus.bin $CUR_DIR/ht_cus.bin.lzma
|
|
cp $CUR_DIR/ht_cus.bin $CUR_DIR/ht_cus.bin.fw
|
|
mv $CUR_DIR/ht_cus.bin.lzma $CUR_DIR/ht_cus.bin
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
./elzma e $CUR_DIR/ht_1p.bin $CUR_DIR/ht_1p.bin.lzma
|
|
cp $CUR_DIR/ht_1p.bin $CUR_DIR/ht_1p.bin.fw
|
|
mv $CUR_DIR/ht_1p.bin.lzma $CUR_DIR/ht_1p.bin
|
|
if [ "${chip_ver}" == "3201" ]; then
|
|
./elzma e $CUR_DIR/ht.bin $CUR_DIR/ht.bin.lzma
|
|
cp $CUR_DIR/ht.bin $CUR_DIR/ht.bin.fw
|
|
mv $CUR_DIR/ht.bin.lzma $CUR_DIR/ht.bin
|
|
fi
|
|
else
|
|
./elzma e $CUR_DIR/ht.bin $CUR_DIR/ht.bin.lzma
|
|
cp $CUR_DIR/ht.bin $CUR_DIR/ht.bin.fw
|
|
mv $CUR_DIR/ht.bin.lzma $CUR_DIR/ht.bin
|
|
fi
|
|
fi
|
|
|
|
cp $TOP_DIR/sbl/.output/plc/lib/kunlun_sbl.bin $CUR_DIR/sbl.bin
|
|
# Kl3 compiles ram.bin separately to improve compilation speed, so do not need process ram.bin here.
|
|
|
|
# 这一部分代码根据不同的board类型来写入相应的加密扰码
|
|
if [ "${BOARD_UPPER}" == "QJ5580DCCO03" ] || [ "${BOARD_UPPER}" == "QJ5580DCKB03" ] || [ "${BOARD_UPPER}" == "QJ5582DSTA03" ] || [ "${BOARD_UPPER}" == "QJ5582DIIC03" ] ||
|
|
[ "${BOARD_UPPER}" == "QJ5582D3PS03" ] || [ "${BOARD_UPPER}" == "EVB5580DCCO03" ] || [ "${BOARD_UPPER}" == "EVB5582DSTA03" ] || [ "${BOARD_UPPER}" == "EVB5582D3PS03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0x66,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=20810,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "FLX6710CCO03" ] || [ "${BOARD_UPPER}" == "FLX6710CKB03" ] || [ "${BOARD_UPPER}" == "FLX6711STA03" ] || [ "${BOARD_UPPER}" == "FLX6711IIC03" ] ||
|
|
[ "${BOARD_UPPER}" == "FLX67113PS03" ] || [ "${BOARD_UPPER}" == "EVB6710CCO03" ] || [ "${BOARD_UPPER}" == "EVB6711STA03" ] || [ "${BOARD_UPPER}" == "EVB67113PS03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0x99,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=20552,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "SPE7303CCO03" ] || [ "${BOARD_UPPER}" == "SPE7303CKB03" ] || [ "${BOARD_UPPER}" == "SPE7301STA03" ] || [ "${BOARD_UPPER}" == "SPE7301IIC03" ] ||
|
|
[ "${BOARD_UPPER}" == "SPE73013PS03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0xcc,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=20549,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "GX2001CCO03" ] || [ "${BOARD_UPPER}" == "GX2001CKB03" ] || [ "${BOARD_UPPER}" == "GX2011STA03" ] || [ "${BOARD_UPPER}" == "GX2011IIC03" ] ||
|
|
[ "${BOARD_UPPER}" == "GX20113PS03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0x33,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=18264,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "DT0530CCO03" ] || [ "${BOARD_UPPER}" == "DT0531STA03" ] || [ "${BOARD_UPPER}" == "DT0531IIC03" ] || [ "${BOARD_UPPER}" == "DT05313PS03" ] ||
|
|
[ "${BOARD_UPPER}" == "DT0530CKB03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0xdd,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=17492,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "YP8801CCO03" ] || [ "${BOARD_UPPER}" == "YP8811STA03" ] || [ "${BOARD_UPPER}" == "YP88113PS03" ] || [ "${BOARD_UPPER}" == "YP8801CKB03" ] ||
|
|
[ "${BOARD_UPPER}" == "YP8811IIC03" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0xa9,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=22864,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
# prepare pib file
|
|
# 根据board类型来选择pib文件
|
|
PIB_IMG=${BOARD_UPPER}
|
|
|
|
#BRM BSRM BSRM_CUS BRMT.
|
|
if [ "${BOARD_UPPER}" == "HTZD3201BSRM03" ] || [ "${BOARD_UPPER}" == "HTZD3201BRMT03" ]; then
|
|
PIB_IMG="EVB5202STA03"
|
|
fi
|
|
|
|
# HTZD + EVB.
|
|
if [ "${BOARD_UPPER}" == "HTZD3201CCO03" ] || [ "${BOARD_UPPER}" == "EVB3201CCO03" ] || [ "${BOARD_UPPER}" == "EVB3201CCO03_RFIN" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "HTZD3211IIC03" ] || [ "${BOARD_UPPER}" == "EVB3211IIC03" ]; then
|
|
PIB_IMG=HTZDIIC
|
|
elif [ "${BOARD_UPPER}" == "HTZD32113PS03" ] || [ "${BOARD_UPPER}" == "EVB32113PS03" ] ||
|
|
[ "${BOARD_UPPER}" == "HTZD3211STA03" ] || [ "${BOARD_UPPER}" == "EVB3211STA03" ] ||
|
|
[ "${BOARD_UPPER}" == "EVB3211STA03_RFIN" ] || [ "${BOARD_UPPER}" == "HTZD3211PT03" ]; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
|
|
if [[ "${BOARD_UPPER}" == *"CKB03" ]]; then
|
|
# CKB.
|
|
PIB_IMG=HTZDSTA01_PIB
|
|
fi
|
|
|
|
if [[ "${BOARD_UPPER}" == "EVB32"* ]]; then
|
|
# ${BOARD_UPPER/EVB} 作用是去除BOARD_UPPER 中的 EVB字符串
|
|
BOARD_UPPER=${BOARD_UPPER/EVB/HZEVB}
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/3201/}
|
|
BOARD_UPPER=${BOARD_UPPER/3211/}
|
|
BOARD_UPPER=${BOARD_UPPER/3031/}
|
|
|
|
# QJ + EVB.
|
|
if [ "${BOARD_UPPER}" == "QJ5580DCCO03" ] || [ "${BOARD_UPPER}" == "EVB5580DCCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "QJ5582D3PS03" ] || [ "${BOARD_UPPER}" == "EVB5582D3PS03" ] || \
|
|
[ "${BOARD_UPPER}" == "QJ5582DSTA03" ] || [ "${BOARD_UPPER}" == "EVB5582DSTA03" ] || \
|
|
[ "${BOARD_UPPER}" == "QJ5582DIIC03" ]; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
if [[ "${BOARD_UPPER}" == "EVB558"* ]]; then
|
|
BOARD_UPPER=${BOARD_UPPER/EVB/QJEVB}
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/5580D/}
|
|
BOARD_UPPER=${BOARD_UPPER/5582D/}
|
|
|
|
# FLX + EVB.
|
|
if [ "${BOARD_UPPER}" == "FLX6710CCO03" ] || [ "${BOARD_UPPER}" == "EVB6710CCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "FLX67113PS03" ] || [ "${BOARD_UPPER}" == "EVB67113PS03" ] || \
|
|
[ "${BOARD_UPPER}" == "FLX6711IIC03" ] || \
|
|
[ "${BOARD_UPPER}" == "FLX6711STA03" ] || [ "${BOARD_UPPER}" == "EVB6711STA03" ]; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
if [[ "${BOARD_UPPER}" == "EVB671"* ]]; then
|
|
BOARD_UPPER=${BOARD_UPPER/EVB/FLXEVB}
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/6710/}
|
|
BOARD_UPPER=${BOARD_UPPER/6711/}
|
|
|
|
# SPE.
|
|
if [ "${BOARD_UPPER}" == "SPE7303CCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "SPE73013PS03" ] || [ "${BOARD_UPPER}" == "SPE7301IIC03" ] || \
|
|
[ "${BOARD_UPPER}" == "SPE7301STA03" ] ; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/7303/}
|
|
BOARD_UPPER=${BOARD_UPPER/7301/}
|
|
|
|
# GX.
|
|
if [ "${BOARD_UPPER}" == "GX2001CCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "GX20113PS03" ] || [ "${BOARD_UPPER}" == "GX2011IIC03" ] || \
|
|
[ "${BOARD_UPPER}" == "GX2011STA03" ] ; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/2001/}
|
|
BOARD_UPPER=${BOARD_UPPER/2011/}
|
|
|
|
# DT.
|
|
if [ "${BOARD_UPPER}" == "DT0530CCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "DT05313PS03" ] || [ "${BOARD_UPPER}" == "DT0531STA03" ] || \
|
|
[ "${BOARD_UPPER}" == "DT0531IIC03" ] ; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/0530/}
|
|
BOARD_UPPER=${BOARD_UPPER/0531/}
|
|
|
|
# YP.
|
|
if [ "${BOARD_UPPER}" == "YP8801CCO03" ]; then
|
|
PIB_IMG=HTZDCCO
|
|
elif [ "${BOARD_UPPER}" == "YP88113PS03" ] || [ "${BOARD_UPPER}" == "YP8811STA03" ] || \
|
|
[ "${BOARD_UPPER}" == "YP8811IIC03" ] ; then
|
|
PIB_IMG=HTZDSTA
|
|
fi
|
|
BOARD_UPPER=${BOARD_UPPER/8801/}
|
|
BOARD_UPPER=${BOARD_UPPER/8811/}
|
|
|
|
# GOLDFINGER.
|
|
if [ "${BOARD_UPPER}" == "GOLDFINGER_17P03" ]; then
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
PIB_IMG=${BOARD_UPPER/GOLDFINGER_17P/HTZD3201CCO}
|
|
BOARD_UPPER=${BOARD_UPPER/GOLDFINGER_17P/GOLDFINGER_17PCCO}
|
|
else
|
|
PIB_IMG=${BOARD_UPPER/GOLDFINGER_17P/HTZD3211STA}
|
|
BOARD_UPPER=${BOARD_UPPER/GOLDFINGER_17P/GOLDFINGER_17PSTA}
|
|
fi
|
|
fi
|
|
|
|
# STAMP.
|
|
if [ "${BOARD_UPPER}" == "STAMP03" ]; then
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
PIB_IMG=${BOARD_UPPER/STAMP/HTZD3201CCO}
|
|
BOARD_UPPER=${BOARD_UPPER/STAMP/STAMPCCO}
|
|
else
|
|
PIB_IMG=${BOARD_UPPER/STAMP/HTZD3211STA}
|
|
BOARD_UPPER=${BOARD_UPPER/STAMP/STAMPSTA}
|
|
fi
|
|
fi
|
|
|
|
# LEDC.
|
|
if [ "${BOARD_UPPER}" == "LEDC03" ]; then
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
PIB_IMG=${BOARD_UPPER/LEDC/HTZD3201CCO}
|
|
BOARD_UPPER=${BOARD_UPPER/LEDC/LEDCCCO}
|
|
else
|
|
PIB_IMG=${BOARD_UPPER/LEDC/HTZD3211STA}
|
|
BOARD_UPPER=${BOARD_UPPER/LEDC/LEDCSTA}
|
|
fi
|
|
fi
|
|
|
|
PIB_SRC_PATH=${TOP_DIR}/tools/pib/
|
|
cd ${PIB_SRC_PATH}
|
|
|
|
#kl3 pt board only need two general pib files
|
|
if [ "${BOARD_UPPER}" == "HTZDPT03" ]; then
|
|
PIB_FILE=HTZDSTA01_PIB.bin
|
|
LP_PIB_FILE=HTZDSTA01_LP_PIB.bin
|
|
else
|
|
# 找到所有包含指定名称的pib文件
|
|
# 这里找到的pib文件不区分是01还是03
|
|
PIB_FILE=`ls ${PIB_SRC_PATH} | grep "${PIB_IMG}" | grep "PIB"`
|
|
if [ "${IOT_SMART_BUILD}" == "0" ]; then
|
|
LP_PIB_FILE=`ls ${PIB_SRC_PATH} | grep "${PIB_IMG}" | grep "LP_PIB"`
|
|
fi
|
|
fi
|
|
|
|
cd -
|
|
|
|
#kl3 need to modify the FTM firmware name.
|
|
if [ "${IMG_UPPER}" == "FTM" ]; then
|
|
APP_UPPER="FTM"
|
|
fi
|
|
|
|
# 这段代码由于初步指定最终打包的bin文件名称
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
sed -i "s,key_word=IOT-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${RUN_UPPER}-${PSRAM_SIZE_STR}-${OPT_KEYWORD}${DB_RLS_FLAG}-,g" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s,key_word=IOT-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${OPT_KEYWORD}${DB_RLS_FLAG}-,g" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${RUN_UPPER}-${PSRAM_SIZE_STR}-${OPT_KEYWORD},g" ${TMP_CFG_NAME}
|
|
elif [ "${RUN_UPPER}" == "UPGRADE" ]; then
|
|
if [ "$PSRAM_ENABLE_GEN" == "1" ]; then
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${RUN_UPPER}-PSRAM-${PSRAM_SIZE_STR}-${OPT_KEYWORD},g" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${RUN_UPPER}-${OPT_KEYWORD},g" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${OPT_KEYWORD},g" ${TMP_CFG_NAME}
|
|
fi
|
|
fi
|
|
|
|
if [ "${SIZE_UPPER}" == "4M" ]; then
|
|
# flash size 为 4m 的时候 添加一个 F 标识
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-F-,g" ${TMP_CFG_NAME}
|
|
else
|
|
# flash size 为 其他情况 的时候 添加一个 T 标识
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-T-,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
#define img_type
|
|
if [ "x${DUAL_ENABLE}" == "x1" ]; then
|
|
if [ "${APP_UPPER}" == "BRM" ]; then
|
|
sed -i "s/img_type=./img_type=7/" ${TMP_CFG_NAME}
|
|
elif [ "${APP_UPPER}" == "BSRM_CUS" ]; then
|
|
sed -i "s/img_type=./img_type=8/" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s/img_type=./img_type=2/" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "CKB" ]; then
|
|
sed -i "s/img_type=./img_type=6/" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "x${NEW_TYPE_CCO}" == "x1" ]; then
|
|
sed -i "s/img_type=./img_type=10/" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
if [ "${APP_UPPER}" == "BRM" ]; then
|
|
sed -i "s/img_type=./img_type=12/" ${TMP_CFG_NAME}
|
|
elif [ "${APP_UPPER}" == "BSRM_CUS" ]; then
|
|
sed -i "s/img_type=./img_type=13/" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s/img_type=./img_type=11/" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "CKB" ] || [ "x${NEW_TYPE_CCO}" == "x1" ]; then
|
|
echo "Something wrong!!!, stop generate firmware."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
set -o errexit
|
|
array=("${PIB_FILE// / }" "${LP_PIB_FILE// / }")
|
|
# 根据找到的PIB文件来依次生成 最终的bin文件
|
|
for var in ${array[@]}
|
|
do
|
|
echo "pib:${var}"
|
|
cp ${TOP_DIR}/tools/pib/$var $CUR_DIR/pib.bin
|
|
cp ${TOP_DIR}/tools/pib/$var ${OUT_PATH}
|
|
|
|
left=${var#*_}
|
|
append=""
|
|
while [ "$left"x != "PIB.bin"x ]; do
|
|
val=`echo $left | awk -F '_' '{print $1}'`
|
|
left=${left#*_}
|
|
append=$append$val"-"
|
|
done
|
|
|
|
cp ${TMP_CFG_NAME} ./tmp.cfg
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-1P-${append},g" ./tmp.cfg
|
|
sed -i "s/ht.bin/ht_1p.bin/g" ./tmp.cfg
|
|
cat ./tmp.cfg >> cfg_log.txt
|
|
echo -e "\n------c-----\n" >> cfg_log.txt
|
|
./ah -c ./tmp.cfg
|
|
#board-3201 need extra 3p-cco.
|
|
if [ "${chip_ver}" == "3201" ]; then
|
|
sed -i "s/ht_1p.bin/ht.bin/g" ./tmp.cfg
|
|
sed -i "s/-${BOARD_UPPER}-1P-/-${BOARD_UPPER}-3P-/" ./tmp.cfg
|
|
cat ./tmp.cfg >> cfg_log.txt
|
|
echo -e "\n------c-----\n" >> cfg_log.txt
|
|
./ah -c ./tmp.cfg
|
|
fi
|
|
else
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${append},g" ./tmp.cfg
|
|
if [ "x${NEW_TYPE_CCO}" == "x1" ]; then
|
|
sed -i "/key_word/s/CCO/NEW_TYPE_CCO/g" ./tmp.cfg
|
|
fi
|
|
cat ./tmp.cfg >> cfg_log.txt
|
|
echo -e "\n------c-----\n" >> cfg_log.txt
|
|
./ah -c ./tmp.cfg
|
|
fi
|
|
else
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}-${append},g" ./tmp.cfg
|
|
cat ./tmp.cfg >> cfg_log.txt
|
|
echo -e "\n------c-----\n" >> cfg_log.txt
|
|
./ah -c ./tmp.cfg
|
|
#extra lp only pib upgrade file.
|
|
# 生成只包含pib的升级文件
|
|
if [ "${BOARD_UPPER}X" == "HTZDSTA03X" ] || [ "${BOARD_UPPER}X" == "FPGASTA03X" ] || [ "${BOARD_UPPER}X" == "QJSTA03X" ] \
|
|
|| [ "${BOARD_UPPER}X" == "FLXSTA03X" ] || [ "${BOARD_UPPER}X" == "SPESTA03X" ] || [ "${BOARD_UPPER}X" == "GXSTA03X" ] \
|
|
|| [ "${BOARD_UPPER}X" == "DTSTA03X" ] || [ "${BOARD_UPPER}X" == "YPSTA03X" ]; then
|
|
left=${var#*_}
|
|
if [ "$left"x == "LP_PIB.bin"x ] && [ "${RUN_UPPER}X" == "UPGRADEX" ]; then
|
|
sed -i "s/image_num=.*/image_num=0x1/g" ./tmp.cfg
|
|
sed -i "s/${BOARD_UPPER}/${BOARD_UPPER}-ONLYPIB/g" ./tmp.cfg
|
|
cat ./tmp.cfg >> cfg_log.txt
|
|
echo -e "\n------c-----\n" >> cfg_log.txt
|
|
./ah -c ./tmp.cfg
|
|
fi
|
|
fi
|
|
fi
|
|
rm ./tmp.cfg
|
|
done
|
|
|
|
rm ${TMP_CFG_NAME}
|
|
|
|
#prepare .out file.
|
|
if [ "x${CORE_TYPE_UPPER}" == "xAMPPLC" ]; then
|
|
if [ ! -d ${OUT_PATH}/amp_plc ]; then
|
|
mkdir -p ${OUT_PATH}/amp_plc
|
|
fi
|
|
cp ${TOP_DIR}/ap/.output/plc/lib/* ${OUT_PATH}/amp_plc
|
|
cp ${TOP_DIR}/sbl/.output/plc/lib/* ${OUT_PATH}/amp_plc
|
|
if [ "x${DUAL_ENABLE}" == "x1" ]; then
|
|
cp -f ${TOP_DIR}/bb_cpu/.output/plc/lib/* ${OUT_PATH}/amp_plc
|
|
fi
|
|
|
|
if [ -d "${TOP_DIR}/ap/.output/cus/lib" ]; then
|
|
if [ ! -d ${OUT_PATH}/amp_cus ]; then
|
|
mkdir -p ${OUT_PATH}/amp_cus
|
|
fi
|
|
cp ${TOP_DIR}/ap/.output/cus/lib/* ${OUT_PATH}/amp_cus
|
|
fi
|
|
else
|
|
if [ ! -d ${OUT_PATH}/plc_only ]; then
|
|
mkdir -p ${OUT_PATH}/plc_only
|
|
fi
|
|
cp ${TOP_DIR}/ap/.output/plc/lib/* ${OUT_PATH}/plc_only
|
|
cp ${TOP_DIR}/sbl/.output/plc/lib/* ${OUT_PATH}/plc_only
|
|
if [ "x${DUAL_ENABLE}" == "x1" ]; then
|
|
cp -f ${TOP_DIR}/bb_cpu/.output/plc/lib/* ${OUT_PATH}/plc_only
|
|
fi
|
|
if [ "x${SEC_CPU_ENABLE}" == "x1" ]; then
|
|
cp -f ${TOP_DIR}/sec_cpu/.output/plc/lib/* ${OUT_PATH}/plc_only
|
|
fi
|
|
fi
|
|
|
|
cp ${TOP_DIR}/tools/oem/${OEM_FILE} ${OUT_PATH}
|
|
mv ./${CHIP_ID}-${APP_UPPER}-* $BIN_PATH
|
|
|
|
else
|
|
# 这下面是kunlun1
|
|
if [ "$SIZE_LOWER" == "" ]; then
|
|
BIN_PATH=${CUR_DIR}/customer/1M/${BOARD_LOWER}/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/1M/${BOARD_LOWER}/${IMG_LOWER}/out/
|
|
else
|
|
BIN_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/${BOARD_LOWER}/${IMG_LOWER}/bin/
|
|
OUT_PATH=${CUR_DIR}/customer/${SIZE_UPPER}/${BOARD_LOWER}/${IMG_LOWER}/out/
|
|
fi
|
|
|
|
mkdir -p $BIN_PATH
|
|
mkdir -p $OUT_PATH
|
|
|
|
if [ "${IMG_UPPER}" == "3PS" ] || [ "${IMG_UPPER}" == "CKB" ]; then
|
|
IMG_LOWER="sta"
|
|
fi
|
|
|
|
if [ "${product_line}" == "PLC" ] && [ "${target}" == "kunlun2" ]; then
|
|
CFG_DIR=${TOP_DIR}"/build/cfg2_plc"
|
|
else
|
|
CFG_DIR=${TOP_DIR}"/build/cfg"
|
|
fi
|
|
|
|
if [ "${RUN_UPPER}" == "UPGRADE" ]; then
|
|
if [ "${SIZE_UPPER}" != "" ]; then
|
|
if [ "$PSRAM_ENABLE_GEN" == "1" ] && [[ "${IMG_LOWER}" == "sta" || "${IMG_LOWER}" == "iic" ]]; then
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}"_upgrade_psram.cfg"
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}"_upgrade.cfg"
|
|
fi
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}"_upgrade.cfg"
|
|
fi
|
|
else
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${SIZE_UPPER}" == "2M" ] || [ "${SIZE_UPPER}" == "4M" ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
CFG_NAME=${CFG_DIR}"/smart_"${SIZE_LOWER}"_"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/smart_"${SIZE_LOWER}"_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/smart_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
if [ "${SIZE_UPPER}" != "" ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ] && [[ "${IMG_LOWER}" == "sta" || "${IMG_LOWER}" == "iic" || "${IMG_LOWER}" == "ftm" ]]; then
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${SIZE_LOWER}"_"${IMG_LOWER}.cfg
|
|
fi
|
|
else
|
|
if [ "${RUN_UPPER}" == "PSRAM" ] && [ "${IMG_LOWER}" == "sta" ]; then
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}_psram.cfg
|
|
else
|
|
CFG_NAME=${CFG_DIR}"/"${IMG_LOWER}.cfg
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "${CHIP_VER_UPPER}" == "" ]; then
|
|
CHIP_VER_UPPER="1"
|
|
fi
|
|
|
|
TMP_CFG_NAME=${CFG_DIR}"/"${BOARD_LOWER}_${IMG_LOWER}_tmp.cfg
|
|
cp ${CFG_NAME} ${TMP_CFG_NAME}
|
|
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
sed -i "s,key_word=IOT-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${RUN_UPPER}-${PSRAM_SIZE_STR}-${DB_RLS_FLAG}-,g" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s,key_word=IOT-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${DB_RLS_FLAG}-,g" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
if [ "${RUN_UPPER}" == "PSRAM" ]; then
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${RUN_UPPER}-${PSRAM_SIZE_STR}-,g" ${TMP_CFG_NAME}
|
|
elif [ "${RUN_UPPER}" == "UPGRADE" ]; then
|
|
if [ "$PSRAM_ENABLE_GEN" == "1" ]; then
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${RUN_UPPER}-PSRAM-${PSRAM_SIZE_STR}-,g" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${RUN_UPPER}-,g" ${TMP_CFG_NAME}
|
|
fi
|
|
else
|
|
if [ "$IMG_UPPER" == "CCO" ]; then
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-PSRAM-${PSRAM_SIZE_STR}-,g" ${TMP_CFG_NAME}
|
|
else
|
|
sed -i "s,key_word=SG-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,g" ${TMP_CFG_NAME}
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
#config scramble.
|
|
if [ "${BOARD_UPPER}" == "JSMT" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0xaa,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=19796,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
if [ "${BOARD_UPPER}" == "FLX" ]; then
|
|
sed -i "s,encrypt_mode=0x0,encrypt_mode=0x3,g" ${TMP_CFG_NAME}
|
|
sed -i "s,encrypt_pattern=0x55,encrypt_pattern=0x99,g" ${TMP_CFG_NAME}
|
|
sed -i "s,vendor_id=18516,vendor_id=20552,g" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
# prepare ht.bin
|
|
if [ "${IMG_UPPER}" == "IIC" ] || [ "${IMG_UPPER}" == "3PS" ] || [ "${IMG_UPPER}" == "I3C" ]; then
|
|
HT_FILE="ht_sta.bin"
|
|
else
|
|
HT_FILE="ht_"${IMG_LOWER}".bin"
|
|
fi
|
|
|
|
if [ ${IOT_SMART_BUILD} == 1 ] && [ "${IMG_UPPER}" == "CCO" ]; then
|
|
cp $CUR_DIR/iot_ht_3p.bin $CUR_DIR/ht.bin
|
|
cp $CUR_DIR/iot_ht_1p.bin $CUR_DIR/ht_1p.bin
|
|
fi
|
|
if [ ! -f $CUR_DIR/ht.bin ]; then
|
|
cp ${TOP_DIR}/ap/.output/lib/${HT_FILE} $CUR_DIR/ht.bin
|
|
fi
|
|
|
|
sed -i "/img_type=./a layout_index=${FLASH_LAYOUT_INDEX}" ${TMP_CFG_NAME}
|
|
|
|
if [ "x${NEW_TYPE_CCO}" == "x1" ]; then
|
|
sed -i "s/img_type=./img_type=9/" ${TMP_CFG_NAME}
|
|
fi
|
|
|
|
#config lzma.
|
|
if [ "${MODE_UPPER}" == "LZMA" ]; then
|
|
./elzma e $CUR_DIR/ht.bin $CUR_DIR/ht.bin.lzma
|
|
cp $CUR_DIR/ht.bin $CUR_DIR/ht.bin.fw
|
|
mv $CUR_DIR/ht.bin.lzma $CUR_DIR/ht.bin
|
|
|
|
if [ -f $CUR_DIR/ht_1p.bin ]; then
|
|
./elzma e $CUR_DIR/ht_1p.bin $CUR_DIR/ht_1p.bin.lzma
|
|
cp $CUR_DIR/ht_1p.bin $CUR_DIR/ht_1p.bin.fw
|
|
mv $CUR_DIR/ht_1p.bin.lzma $CUR_DIR/ht_1p.bin
|
|
fi
|
|
fi
|
|
|
|
# prepare oem.bin
|
|
cp $TOP_DIR/sbl/.output/lib/kunlun_sbl.bin $CUR_DIR/sbl.bin
|
|
cp $TOP_DIR/mfgtool/ram/.output/lib/kl${CHIP_VER_UPPER}_ram.bin $CUR_DIR/ram.bin
|
|
cp $TOP_DIR/mfgtool/ram/.output/lib/kl${CHIP_VER_UPPER}_ram*.bin $CUR_DIR
|
|
cp $TOP_DIR/sp/boot/.output/lib/sp_fw.bin $CUR_DIR/sp.bin
|
|
|
|
if [ "${IMG_UPPER}" == "FTM" ] || [ "${IMG_UPPER}" == "CKB" ]; then
|
|
OEM_CFG=${BOARD_UPPER}"STA01_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}"STA01_OEM.bin"
|
|
elif [ "${BOARD_UPPER}" == "STAMP_22P" ] || [ "${BOARD_UPPER}" == "SI301X_30P" ] \
|
|
|| [ "${BOARD_UPPER}" == "GOLDFINGER_17P" ] \
|
|
|| [ "${BOARD_UPPER}" == "MPPT" ] || [ "${BOARD_UPPER}" == "HTR" ]; then
|
|
#cco and sta share one oem for STAMP_22P SI301X_30P GOLDFINGER_17P MPPT HTR.
|
|
OEM_CFG=${BOARD_UPPER}"_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}"_OEM.bin"
|
|
else
|
|
OEM_CFG=${BOARD_UPPER}${IMG_UPPER}"0"${CHIP_VER_UPPER}"_OEM.ini"
|
|
OEM_FILE=${BOARD_UPPER}${IMG_UPPER}"0"${CHIP_VER_UPPER}"_OEM.bin"
|
|
fi
|
|
|
|
cp $TOP_DIR/tools/oem/$OEM_CFG ./tmp_oem.ini
|
|
#set mid for iot board(cco and sta use same oem.ini)
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${IMG_UPPER}" == "CCO" ]; then
|
|
sed -i "s/mid.*/mid 1/g" ./tmp_oem.ini
|
|
elif [ "${IMG_UPPER}" == "STA" ]; then
|
|
sed -i "s/mid.*/mid 0/g" ./tmp_oem.ini
|
|
fi
|
|
fi
|
|
if [ "${RUN_UPPER}" != "UPGRADE" ]; then
|
|
./oem_tool --input=./tmp_oem.ini --output=$TOP_DIR/tools/oem/$OEM_FILE
|
|
fi
|
|
rm ./tmp_oem.ini
|
|
cp $TOP_DIR/tools/oem/$OEM_FILE $CUR_DIR/oem.bin
|
|
|
|
# prepare pib file
|
|
PIB_SRC_PATH=${TOP_DIR}/tools/pib/
|
|
|
|
if [ "${BOARD_UPPER}" == "FLX" ] || [ "${BOARD_UPPER}" == "STAMP_22P" ] \
|
|
|| [ "${BOARD_UPPER}" == "SI301X_30P" ] || [ "${BOARD_UPPER}" == "LEDC_3P0" ] \
|
|
|| [ "${BOARD_UPPER}" == "GOLDFINGER_17P" ] || [ "${BOARD_UPPER}" == "D2D" ] \
|
|
|| [ "${BOARD_UPPER}" == "CCTT" ] || [ "${BOARD_UPPER}" == "MPPT" ] \
|
|
|| [ "${BOARD_UPPER}" == "HTR" ]; then
|
|
BOARD_UPPER_PIB="HTZD"
|
|
else
|
|
BOARD_UPPER_PIB=${BOARD_UPPER}
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "FTM" ] || [ "${IMG_UPPER}" == "CKB" ]; then
|
|
PIB_IMG="STA"
|
|
else
|
|
PIB_IMG=${IMG_UPPER}
|
|
PIB_FILE=${BOARD_UPPER_PIB}${IMG_UPPER}"01_PIB.bin"
|
|
fi
|
|
|
|
if [ "${IMG_UPPER}" == "3PS" ]; then
|
|
PIB_IMG="STA"
|
|
PIB_FILE=${BOARD_UPPER_PIB}"STA01_PIB.bin"
|
|
fi
|
|
|
|
cd ${PIB_SRC_PATH}
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
PIB_FILE=`ls ${PIB_SRC_PATH} | grep "${BOARD_UPPER_PIB}" | grep "${PIB_IMG}0${CHIP_VER_UPPER}_PIB"`
|
|
LP_PIB_FILE=`ls ${PIB_SRC_PATH} | grep "${BOARD_UPPER_PIB}" | grep "${PIB_IMG}0${CHIP_VER_UPPER}_LP_PIB"`
|
|
else
|
|
PIB_FILE=`ls ${PIB_SRC_PATH} | grep "${BOARD_UPPER_PIB}" | grep "${PIB_IMG}" | grep "PIB"`
|
|
fi
|
|
cd -
|
|
|
|
set -o errexit
|
|
array=("${PIB_FILE// / }" "${LP_PIB_FILE// / }")
|
|
for var in ${array[@]}
|
|
do
|
|
echo "pib:${var}"
|
|
cp ${TOP_DIR}/tools/pib/$var $CUR_DIR/pib.bin
|
|
cp ${TOP_DIR}/tools/pib/$var ${OUT_PATH}
|
|
|
|
left=${var#*_}
|
|
append=""
|
|
while [ "$left"x != "PIB.bin"x ]; do
|
|
val=`echo $left | awk -F '_' '{print $1}'`
|
|
left=${left#*_}
|
|
append=$append$val"-"
|
|
done
|
|
|
|
cp ${TMP_CFG_NAME} ./tmp.cfg
|
|
|
|
if [ "${IMG_UPPER}" == "CCO" ] && [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${SIZE_UPPER}" == "COMBO" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-3P-${append},g" ./tmp.cfg
|
|
elif [ "${SIZE_UPPER}" == "4M" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-3P-${append}F-,g" ./tmp.cfg
|
|
elif [ "${SIZE_UPPER}" == "2M" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-3P-${append}T-,g" ./tmp.cfg
|
|
else
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-3P-${append}O-,g" ./tmp.cfg
|
|
fi
|
|
else
|
|
if [ "${SIZE_UPPER}" == "COMBO" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${append},g" ./tmp.cfg
|
|
elif [ "${SIZE_UPPER}" == "4M" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${append}F-,g" ./tmp.cfg
|
|
elif [ "${SIZE_UPPER}" == "2M" ]; then
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${append}T-,g" ./tmp.cfg
|
|
else
|
|
sed -i "s,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-,key_word=${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-${append}O-,g" ./tmp.cfg
|
|
fi
|
|
fi
|
|
|
|
if [ "${APP_UPPER}" == "BSRM" ]; then
|
|
sed -i "s/img_type=./img_type=3/" ./tmp.cfg
|
|
elif [ "${APP_UPPER}" == "BSRM_CUS" ]; then
|
|
sed -i "s/img_type=./img_type=4/" ./tmp.cfg
|
|
fi
|
|
|
|
if [ "x${NEW_TYPE_CCO}" == "x1" ]; then
|
|
sed -i "/key_word/s/CCO/NEW_TYPE_CCO/g" ./tmp.cfg
|
|
fi
|
|
|
|
#structure fw package.
|
|
./ah -c ./tmp.cfg ${PSRAM_SIZE_PARAM}
|
|
if [ ${IOT_SMART_BUILD} == 1 ] && [ "${IMG_UPPER}" == "CCO" ]; then
|
|
sed -i "s/ht.bin/ht_1p.bin/g" ./tmp.cfg
|
|
sed -i "s/-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-3P-/-${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-1P-/" ./tmp.cfg
|
|
./ah -c ./tmp.cfg ${PSRAM_SIZE_PARAM}
|
|
fi
|
|
|
|
#extra lp only pib upgrade file for kl1 htzd sta and kl3 fpga sta.
|
|
if [ "${BOARD_UPPER}${IMG_UPPER}X" == "HTZDSTAX" ] || [ "${BOARD_UPPER}${IMG_UPPER}X" == "FPGASTAX" ]; then
|
|
left=${var#*_}
|
|
if [ "$left"x == "LP_PIB.bin"x ] && [ "${RUN_UPPER}X" == "UPGRADEX" ]; then
|
|
sed -i "s/image_num=.*/image_num=0x1/g" ./tmp.cfg
|
|
sed -i "s/${BOARD_UPPER}${IMG_UPPER}../${BOARD_UPPER}${IMG_UPPER}0${CHIP_VER_UPPER}-ONLYPIB/g" ./tmp.cfg
|
|
./ah -c ./tmp.cfg ${PSRAM_SIZE_PARAM}
|
|
fi
|
|
fi
|
|
rm ./tmp.cfg
|
|
done
|
|
|
|
rm ${TMP_CFG_NAME}
|
|
rm -f *.lds
|
|
|
|
#prepare .out file.
|
|
cp ${TOP_DIR}/sbl/.output/lib/* ${OUT_PATH}
|
|
cp ${TOP_DIR}/mfgtool/ram/.output/lib/* ${OUT_PATH}
|
|
cp ${TOP_DIR}/ap/.output/lib/* ${OUT_PATH}
|
|
cp ${TOP_DIR}/sp/boot/.output/lib/* ${OUT_PATH}
|
|
cp ${TOP_DIR}/tools/oem/${OEM_FILE} ${OUT_PATH}
|
|
mv ./${CHIP_ID}-${APP_UPPER}-${BOARD_UPPER}* $BIN_PATH
|
|
|
|
if [ ${IOT_SMART_BUILD} == 1 ]; then
|
|
if [ "${SIZE_LOWER}" == "" ]; then
|
|
SPECIAL_OUT_FD="${OUT_PATH}/../out_${CHIP_ID}_${APP_LOWER}_${BOARD_LOWER}_${IMG_LOWER}_${RUN_LOWER}_1m_${DB_LOWER}"
|
|
else
|
|
SPECIAL_OUT_FD="${OUT_PATH}/../out_${CHIP_ID}_${APP_LOWER}_${BOARD_LOWER}_${IMG_LOWER}_${RUN_LOWER}_${SIZE_LOWER}_${DB_LOWER}"
|
|
fi
|
|
|
|
if [ -d ${SPECIAL_OUT_FD} ]; then
|
|
rm -rf ${SPECIAL_OUT_FD}/*
|
|
fi
|
|
mv ${OUT_PATH} ${SPECIAL_OUT_FD}
|
|
fi
|
|
fi
|
|
|
|
echo "genarate image finished."
|