sdk-hwV1.3/build/expand_melis.sh

133 lines
4.2 KiB
Bash
Executable File

declare -A board_name_map=(
["v851s_fastboot"]="v851-e907-perf2-board"
["v837s_fastboot"]="v837s-e907-perf2-board"
["v851se_fastboot"]="v851se-e907-perf2-board"
["v851s_fastboot_dual_camera"]="v851-e907-perf2-dual-camera-board"
["v851se_fastboot_dual_camera"]="v851se-e907-perf2-dual-camera-board"
["v851s_fastboot_mpp"]="v851-e907-perf2-board"
["v851s_fastboot_mpp_dual_camera"]="v851-e907-perf2-dual-camera-board"
["v851s_fastboot_sc1721v"]="v851-e907-sc1721v-board"
["v851s_fastboot_sc1721v02"]="v851-e907-sc1721v02-board"
["v853s_fastboot"]="v853s-e907-perf4-board"
["v853s_fastboot_dual_camera"]="v853s-e907-perf4-dual-camera-board"
["v853s_fastboot_three_camera"]="v853s-e907-perf4-three-camera-board"
["v853s_fastboot_mpp"]="v853s-e907-perf4-board"
["v853s_fastboot_mpp_dual_camera"]="v853s-e907-perf4-dual-camera-board"
["r853_scanp"]="v853-e907-ver1-board"
["v853_perf1"]="v853-e907-ver1-board"
["v853_fastboot_emmc"]="v853-e907-perf4-board"
["v853s_perf1"]="v853s-e907-perf1-board"
["v853s_fastboot_emmc"]="v853s-e907-perf4-board"
["v851s3_fastboot"]="v851s3-e907-perf2-board"
["v851s_fastboot_sc1730v1_dual"]="v851-e907-sc1730v1-dual-board"
["v851s3_fastboot_sc1721v02"]="v851s3-e907-sc1721v02-board"
["v851s_fastboot_sc1725v01_nor"]="v851-e907-sc1725v01-board"
["v851s_fastboot_sl100_back"]="v851-e907-sl100_back-board"
["v851s3_fastboot_sl100_front"]="v851s3-e907-sl100-front-board"
["v851s_fastboot_h13_pv"]="v851-e907-h13-pv-board"
)
function get_melis_board_name() {
for key in $(echo ${!board_name_map[*]})
do
if [ $TARGET_PRODUCT == $key ]; then
echo ${board_name_map[$TARGET_PRODUCT]}
fi
done
}
function update_melis_fw() {
local T=$(gettop)
local melis_board=$(get_melis_board_name)
local melis_root=$T/lichee/melis-v3.0
local src=$T/lichee/melis-v3.0/source/ekernel/arch/boot/zImage
local dst_prefix=$T/device/config/chips/${TARGET_PLATFORM}/configs
local dst_plan=${TARGET_BOARD##*-}
if [ -z "${melis_board}" ]; then
echo "Melis: Invalid Melis Board name."
return
fi
if [ ! -e $src ]; then
echo "Melis: melis30.elf not exist, skip it."
return
fi
if [ -e $dst ]; then
dst_time=`stat -c %Y $dst`
src_time=`stat -c %Y $src`
time_change=$((src_time - dst_time))
if [ $time_change -le 0 ]; then
return
fi
fi
# copying fw to configs directory
if [ -e "$dst_prefix/$dst_plan/riscv.fex" ]; then
echo "COPY ekernel/arch/boot/zImage ----> ${dst_plan}/riscv.fex"
cp -f ${src} ${dst_prefix}/${dst_plan}/riscv.fex 2> /dev/null
# strip melis firmware
cd ${melis_root}
./source/tools/scripts/melis-build.sh ${melis_board} strip ${dst_prefix}/${dst_plan}/riscv.fex
cd -
else
echo "COPY ekernel/arch/boot/zImage ----> default/riscv.fex"
cp -f ${src} ${dst_prefix}/default/riscv.fex 2> /dev/null
# strip melis firmware
cd ${melis_root}
./source/tools/scripts/melis-build.sh ${melis_board} strip ${dst_prefix}/default/riscv.fex
cd -
fi
}
function mmelis() {
local T=$(gettop)
local melis_board=$(get_melis_board_name)
local melis_path=$T/lichee/melis-v3.0
local pwd=`pwd`
if [ "$melis_board" ]; then
cd $melis_path
./source/tools/scripts/melis-build.sh $melis_board $@
cd $pwd
update_melis_fw
fi
}
function cmelis() {
local T=$(gettop)
local melis_path=$T/lichee/melis-v3.0
if [ "$melis_path" ]; then
cd $melis_path
else
echo "$melis_path not exist."
fi
}
function make_melis() {
local dst_prefix=$T/device/config/chips/${TARGET_PLATFORM}/configs
local dst_plan=${TARGET_BOARD##*-}
local dst=${dst_prefix}/default/riscv.fex
if [ -e "$dst_prefix/$dst_plan/riscv.fex" ]; then
dst=$dst_prefix/$dst_plan/riscv.fex
fi
MELIS_NEWEST_FILE=`get_newest_file $T/lichee/melis-v3.0/source`
MELIS_REBUILD_FLAG=`echo "$MELIS_REBUILD_FLAG $TARGET_BOARD $dst" | md5sum | awk '{print ".newest-"$1".patch"}'`
if [ ! -f $T/lichee/melis-v3.0/source/$MELIS_REBUILD_FLAG ]; then
mmelis $@
rm -rf $T/lichee/melis-v3.0/source/.newest-*.patch
MELIS_NEWEST_FILE=`get_newest_file $T/lichee/melis-v3.0/source`
MELIS_REBUILD_FLAG=`echo "$MELIS_REBUILD_FLAG $TARGET_BOARD" | md5sum | awk '{print ".newest-"$1".patch"}'`
touch $T/lichee/melis-v3.0/source/$MELIS_REBUILD_FLAG
else
echo -e "no need rebuild melis, the newest file is: \n\t$MELIS_NEWEST_FILE"
fi
}