Files
kunlun/build/build_flash_ckb.sh

277 lines
7.9 KiB
Bash
Raw Permalink Normal View History

2024-09-28 14:24:04 +08:00
#!/bin/bash
INPUT_CHIP=$1
INPUT_FLASH_SIZE=$2
INPUT_PSRAM_SIZE=$3
INPUT_CUSTOM=$4
INPUT_APPID=$5
CHIP_STRING=("HZ" "WQ")
FLASH_SIZE_STRING=("2m" "4m")
PSRAM_SIZE_STRING=("2m" "4m" "8m")
CUSTOM_STRING=("htzd" "jsmt" "wqrd" "gldq")
IMG_TYPE=("ckb")
RUN_TYPE_STRING=("flash" "psram" "upgrade")
HTZD_ENV_ID=0
JSMT_ENV_ID=0
WQRD_ENV_ID=0
GLDQ_ENV_ID=0
CHIP_ID_ENV="export HW_CHIP_ID="
VER_ID_ENV="export hw_board_id="
SRC_ENV_FILE="env_flash_ckb.sh"
SRC_ENV_PSRAM_FILE="env_psram_ckb.sh"
PSRAM_SIZE_ENV="export psram_size="
FLASH_SIZE_ENV="export flash_size="
# BUILD_FLAGS:
# 0 --> error
# 1 --> set default chip_id=wq, and pack all customers bin
# 2 --> set chip=arg1, and pack all customers bin
# 3 --> set chip=arg1, custom=arg2, and pack one customer bin
# 4 --> set chip=arg1, flash_size=arg2, and pack all customers bin
BUILD_FLAGS=0
usage(){
echo "[Usage]"
echo "$0 [chip name] [flash size] [psram size] [custom name] [app id] [psram]"
echo "[chip name] HZ/WQ"
echo "[flash size] 2m/4m"
echo "[psram size] 2m/4m/8m"
echo "[custom name] htzd/jsmt/wqrd/gldq/hzbj"
echo "[app id] 0:sg/15:sniffer."
echo "[psram] 'psram':with psram, null:without psram"
exit 1
}
if [ "$INPUT_APPID" == 15 ]; then
APP_SEL=15
else
APP_SEL=0
fi
if [ "$INPUT_CHIP" == "" ]; then
BUILD_FLAGS=1
else
for STR in ${CHIP_STRING[@]}; do
if [ "$INPUT_CHIP" == "$STR" ]; then
BUILD_FLAGS=2
CHIP=$STR
fi
done
if [ "$CHIP" == "" ];then
usage
fi
fi
if [ "$INPUT_FLASH_SIZE" == "" ];then
FLASH_SIZE=${FLASH_SIZE_STRING[0]}
else
for STR in ${FLASH_SIZE_STRING[@]}; do
if [ "$INPUT_FLASH_SIZE" == "$STR" ]; then
BUILD_FLAGS=4
FLASH_SIZE=$STR
fi
done
fi
if [ "$FLASH_SIZE" == "4m" ]; then
FLASH_SIZE_nM=4
elif [ "$FLASH_SIZE" == "2m" ]; then
FLASH_SIZE_nM=2
else
FLASH_SIZE_nM=1
fi
if [ "$INPUT_PSRAM_SIZE" == "" ];then
PSRAM_SIZE=${PSRAM_SIZE_STRING[0]}
else
for STR in ${PSRAM_SIZE_STRING[@]}; do
if [ "$INPUT_PSRAM_SIZE" == "$STR" ]; then
PSRAM_SIZE=$STR
fi
done
fi
if [ "$PSRAM_SIZE" == "8m" ]; then
PSRAM_SIZE_nM=8
elif [ "$PSRAM_SIZE" == "4m" ]; then
PSRAM_SIZE_nM=4
else
PSRAM_SIZE_nM=2
fi
if [ "$INPUT_CUSTOM" != "" ]; then
for STR in ${CUSTOM_STRING[@]}; do
if [ "$INPUT_CUSTOM" == "$STR" ]; then
BUILD_FLAGS=3
CUSTOM=$STR
fi
done
fi
for input_char in $@; do
if [ "$input_char" == "psram" ]; then
RUN_TYPE="psram"
unset RUN_TYPE_STRING[0]
cp $SRC_ENV_PSRAM_FILE env_tmp.sh
ENV_STRING=${PSRAM_SIZE_ENV}${PSRAM_SIZE_nM}
echo $ENV_STRING >> env_tmp.sh
fi
done
if [ "$RUN_TYPE" != "psram" ]; then
RUN_TYPE="flash"
PSRAM_SIZE_nM=0
unset RUN_TYPE_STRING[1]
cp $SRC_ENV_FILE env_tmp.sh
fi
if [ $PSRAM_SIZE_nM -eq 0 ]; then
if [ $FLASH_SIZE_nM -eq 1 ]; then
export layout_index=0
elif [ $FLASH_SIZE_nM -eq 2 ]; then
export layout_index=1
elif [ $FLASH_SIZE_nM -eq 4 ]; then
export layout_index=3
fi
else
if [ $FLASH_SIZE_nM -eq 1 ]; then
export layout_index=0
elif [ $FLASH_SIZE_nM -eq 2 ]; then
export layout_index=2
elif [ $FLASH_SIZE_nM -eq 4 ]; then
export layout_index=4
fi
fi
ENV_STRING=${FLASH_SIZE_ENV}${FLASH_SIZE_nM}
echo $ENV_STRING >> env_tmp.sh
rm ../Makefile 2>/dev/null
ln -s ./build/Makefile ../Makefile
set -o errexit
if [ $BUILD_FLAGS == 0 ]; then
usage
elif [ $BUILD_FLAGS == 1 ]; then
# set default chip_id=wq, and pack all customers bin
echo "BUILD FLAGS: "${BUILD_FLAGS}
CHIP=${CHIP_STRING[0]}
ENV_STRING=${CHIP_ID_ENV}${CHIP}
echo $ENV_STRING >> env_tmp.sh
cat env_tmp.sh
. env_tmp.sh && make APP=$APP_SEL -C .. clobber && make PLATFORM=CHIP APP=$APP_SEL -C ..
rm env_tmp.sh
for STR in ${CUSTOM_STRING[@]}; do
cd ../tools/gen_img
for IMG in ${IMG_TYPE[@]}; do
for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do
# 1M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE}
if [ "${STR}" != "jsmt" ]; then
# 2M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -p ${PSRAM_SIZE_nM}
# 4M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -p ${PSRAM_SIZE_nM}
fi
done
done
cd -
done
elif [ $BUILD_FLAGS == 2 ]; then
# set chip=arg1, and pack all customers bin
echo "BUILD FLAGS: "${BUILD_FLAGS}
ENV_STRING=${CHIP_ID_ENV}${CHIP}
echo $ENV_STRING >> env_tmp.sh
cat env_tmp.sh
. env_tmp.sh && make APP=$APP_SEL -C .. clobber && make PLATFORM=CHIP APP=$APP_SEL -C ..
rm env_tmp.sh
for STR in ${CUSTOM_STRING[@]}; do
cd ../tools/gen_img
for IMG in ${IMG_TYPE[@]}; do
for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do
# 1M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE}
if [ "${STR}" != "jsmt" ]; then
# 2M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -p ${PSRAM_SIZE_nM}
# 4M flash image
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -p ${PSRAM_SIZE_nM}
fi
done
done
cd -
done
elif [ $BUILD_FLAGS == 3 ]; then
# set chip=arg1, custom=arg2, and pack one customers bin
echo "BUILD FLAGS: "${BUILD_FLAGS}
if [ "$CUSTOM" == "htzd" ]; then
ENV_STRING=${VER_ID_ENV}${HTZD_ENV_ID}
elif [ "$CUSTOM" == "jsmt" ]; then
ENV_STRING=${VER_ID_ENV}${JSMT_ENV_ID}
elif [ "$CUSTOM" == "wqrd" ]; then
ENV_STRING=${VER_ID_ENV}${WQRD_ENV_ID}
elif [ "$CUSTOM" == "gldq" ]; then
ENV_STRING=${VER_ID_ENV}${GLDQ_ENV_ID}
else
echo "build script parameters error"
echo "[Usage]"
echo "$0 [custom name]"
exit 1
fi
echo $ENV_STRING >> env_tmp.sh
ENV_STRING=${CHIP_ID_ENV}${CHIP}
echo $ENV_STRING >> env_tmp.sh
cat env_tmp.sh
. env_tmp.sh && make APP=$APP_SEL -C .. clobber && make PLATFORM=CHIP APP=$APP_SEL FLASH_SIZE=$FLASH_SIZE_nM -C ..
rm env_tmp.sh
cd ../tools/gen_img
for IMG in ${IMG_TYPE[@]}; do
for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do
if [ "$FLASH_SIZE" == "1m" ]; then
./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -p ${PSRAM_SIZE_nM}
else
if [ "$STR" != "jsmt" ]; then
./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -p ${PSRAM_SIZE_nM}
fi
fi
done
done
cd -
elif [ $BUILD_FLAGS == 4 ]; then
#build 2m flash image
echo "BUILD FLAGS: "${BUILD_FLAGS}
ENV_STRING=${CHIP_ID_ENV}${CHIP}
echo $ENV_STRING >> env_tmp.sh
cat env_tmp.sh
. env_tmp.sh && make APP=$APP_SEL -C .. clobber && make PLATFORM=CHIP APP=$APP_SEL FLASH_SIZE=$FLASH_SIZE_nM -C ..
rm env_tmp.sh
for STR in ${CUSTOM_STRING[@]}; do
cd ../tools/gen_img
for IMG in ${IMG_TYPE[@]}; do
for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do
# 1M flash image
if [ "$FLASH_SIZE" == "1m" ]; then
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -p ${PSRAM_SIZE_nM}
else
if [ "$STR" != "jsmt" ]; then
./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -p ${PSRAM_SIZE_nM}
fi
fi
done
done
cd -
done
fi
cd ../tools/gen_img
mkdir -p ../../bin && cp -rf customer ../../bin