211 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			211 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								chip_id=$1
							 | 
						||
| 
								 | 
							
								flash_type=$2
							 | 
						||
| 
								 | 
							
								BUILD_BRANCH=$3
							 | 
						||
| 
								 | 
							
								BUILD_TAG=$4
							 | 
						||
| 
								 | 
							
								echo "build log:start build" ${chip_id} ${flash_type} ${BUILD_BRANCH} ${BUILD_TAG}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								tool_path=../tools
							 | 
						||
| 
								 | 
							
								dest_rootpath=../tools/gen_img/lib_sg_sdk
							 | 
						||
| 
								 | 
							
								cmake_folder="../../SDKCmake"
							 | 
						||
| 
								 | 
							
								mainline_path="../"
							 | 
						||
| 
								 | 
							
								customer_path="../tools/gen_img/customer"
							 | 
						||
| 
								 | 
							
								export_inc_path=../export/inc/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CHIP_ID=$(echo $chip_id | tr '[a-z]' '[A-Z]')  # HZ WQ
							 | 
						||
| 
								 | 
							
								CHIP_STRING=("HZ" "WQ")
							 | 
						||
| 
								 | 
							
								FLASH_TYPE=$(echo $flash_type | tr '[a-z]' '[A-Z]')  # 1M 2M 2K 2P 4M 4P
							 | 
						||
| 
								 | 
							
								customer_list=("htzd" "jsmt" "gldq")
							 | 
						||
| 
								 | 
							
								customer_num=${#customer_list[*]}
							 | 
						||
| 
								 | 
							
								module_list=("cco" "iic" "sta" "3ps")
							 | 
						||
| 
								 | 
							
								module_num=${#module_list[*]}
							 | 
						||
| 
								 | 
							
								pib_list=("09" "default" "09_LP" "LP")
							 | 
						||
| 
								 | 
							
								pib_num=${#pib_list[*]}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FLASH_TYPE_STRING=("1m" "2m" "2k" "2p" "4m" "4p")
							 | 
						||
| 
								 | 
							
								flash_type_num=${#FLASH_TYPE_STRING[*]}
							 | 
						||
| 
								 | 
							
								GROUP_CCO_PSRAM=(4       4       8       4       8       8)
							 | 
						||
| 
								 | 
							
								GROUP_CCO_FLASH=(1       1       1       1       4       4)
							 | 
						||
| 
								 | 
							
								GROUP_STA_PSRAM=(0       0       2       2       0       2)
							 | 
						||
| 
								 | 
							
								GROUP_STA_FLASH=(1       2       2       2       4       4)
							 | 
						||
| 
								 | 
							
								#print help info.
							 | 
						||
| 
								 | 
							
								if [ "?" == "$1" ]; then
							 | 
						||
| 
								 | 
							
								    echo  "*$0 [CHIP_ID] [FLASH_TYPE] [BUILD_BRANCH] [BUILD_TAG]"
							 | 
						||
| 
								 | 
							
								    echo  "*   [CHIP_ID] -- Optional, to set the chip id, support HZ\WQ."
							 | 
						||
| 
								 | 
							
								    echo  "*   [FLASH_TYPE] -- Optional, to set the flash type, support as follows."
							 | 
						||
| 
								 | 
							
								    for ((index=0; index < flash_type_num; index++)); do
							 | 
						||
| 
								 | 
							
								        echo "*    ${FLASH_TYPE_STRING[$index]} ${GROUP_CCO_BOARD[$index]} (${GROUP_CCO_FLASH[$index]}M flash ${GROUP_CCO_PSRAM[$index]}M psram) + " \
							 | 
						||
| 
								 | 
							
								        "sta ${GROUP_STA_BOARD[$index]} (${GROUP_STA_FLASH[$index]}M flash ${GROUP_STA_PSRAM[$index]}M psram)"
							 | 
						||
| 
								 | 
							
								    done
							 | 
						||
| 
								 | 
							
								    echo  "*   [BUILD_BRANCH] -- Optional, to set the build branch."
							 | 
						||
| 
								 | 
							
								    echo  "*   [BUILD_TAG] -- Optional, to set the build tag."
							 | 
						||
| 
								 | 
							
								    exit 0
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set -o errexit
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$CHIP_ID" == "" ]; then
							 | 
						||
| 
								 | 
							
								    CHIP_ID=${CHIP_STRING[0]}
							 | 
						||
| 
								 | 
							
								    INPUT_CHIP_OK=1
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								    for STR in ${CHIP_STRING[@]}; do
							 | 
						||
| 
								 | 
							
								        if [ "$CHIP_ID" == "$STR" ]; then
							 | 
						||
| 
								 | 
							
								            INPUT_CHIP_OK=1
							 | 
						||
| 
								 | 
							
								            break
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								    done
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$FLASH_TYPE" == "" ]; then
							 | 
						||
| 
								 | 
							
								    FLASH_TYPE=${FLASH_TYPE_STRING[0]}
							 | 
						||
| 
								 | 
							
								    INPUT_FLASH_OK=1
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								    for STR in ${FLASH_TYPE_STRING[@]}; do
							 | 
						||
| 
								 | 
							
								        if [ "$FLASH_TYPE" == "$STR" ]; then
							 | 
						||
| 
								 | 
							
								            INPUT_FLASH_OK=1
							 | 
						||
| 
								 | 
							
								            break
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								    done
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$INPUT_CHIP_OK" != "1" ] || [ "$INPUT_CHIP_OK" != "1" ]; then
							 | 
						||
| 
								 | 
							
								    echo "build param error, chip_id:${CHIP_ID}, flash_type:${FLASH_TYPE}."
							 | 
						||
| 
								 | 
							
								    exit 1
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for((i=0;i<$customer_num;i++))
							 | 
						||
| 
								 | 
							
								do
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/bin
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/bin
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/ld
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/tools
							 | 
						||
| 
								 | 
							
								    mkdir -p $dest_rootpath/${customer_list[i]}/sdk/cmake
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cp -r $mainline_path/app/smart_grid $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app
							 | 
						||
| 
								 | 
							
								    cp -r $cmake_folder/iot_sg_app/CMakeLists.txt $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app
							 | 
						||
| 
								 | 
							
								    cp -r $cmake_folder/iot_sg_app/main.c $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app
							 | 
						||
| 
								 | 
							
								    cp -r $mainline_path/export/* $dest_rootpath/${customer_list[i]}/sdk
							 | 
						||
| 
								 | 
							
								    cp -r $cmake_folder/cmake/* $dest_rootpath/${customer_list[i]}/sdk/cmake
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [ ${FLASH_TYPE} == "4P" ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds
							 | 
						||
| 
								 | 
							
								    elif [ ${FLASH_TYPE} == "4M" ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_flash_4m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds
							 | 
						||
| 
								 | 
							
								    elif [ ${FLASH_TYPE} == "2P" ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_4m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds
							 | 
						||
| 
								 | 
							
								    elif [ ${FLASH_TYPE} == "2K" ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_psram_4m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/link_flash_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [ -e $mainline_path/startup/ldscripts/riscv/sp_cco.addrs.ld ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/sp_cco.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [ -e $mainline_path/startup/ldscripts/riscv/sp_sta.addrs.ld ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/sp_sta.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [ -e $mainline_path/startup/ldscripts/riscv/sp.addrs.ld ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/sp.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if [ -e $mainline_path/startup/ldscripts/riscv/rom.addrs.ld ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/startup/ldscripts/riscv/rom.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cp $mainline_path/tools/gen_img/ah $dest_rootpath/${customer_list[i]}/sdk/tools
							 | 
						||
| 
								 | 
							
								    if [ -e $mainline_path/tools/gen_img/elzma ];then
							 | 
						||
| 
								 | 
							
								        cp $mainline_path/tools/gen_img/elzma $dest_rootpath/${customer_list[i]}/sdk/tools
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for((j=0;j<$module_num;j++))
							 | 
						||
| 
								 | 
							
								    do
							 | 
						||
| 
								 | 
							
								        if [ ${FLASH_TYPE} == "4M" ] || [ ${FLASH_TYPE} == "4P" ]; then
							 | 
						||
| 
								 | 
							
								            bin_size=4M
							 | 
						||
| 
								 | 
							
								        elif [ ${module_list[j]}x == "cco"x ];then
							 | 
						||
| 
								 | 
							
								            bin_size=1M
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								            bin_size=2M
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if [ ! -d ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]} ];then
							 | 
						||
| 
								 | 
							
								            continue
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        mkdir -p $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if [ ${FLASH_TYPE} == "4M" ]; then
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts_4m/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        elif [ ${FLASH_TYPE} == "4P" ]; then
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts_4m_psram/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        elif [ ${FLASH_TYPE} == "2K" ]; then
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts_2k/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        elif [ ${FLASH_TYPE} == "2P" ]; then
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts_2m_psram/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        elif [ ${FLASH_TYPE} == "2M" ]; then
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts_2m/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								            cp -r $cmake_folder/iot_sg_app/scripts/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        module_case=`echo ${module_list[j]}|awk '{print toupper($0)}'`
							 | 
						||
| 
								 | 
							
								        customer_case=`echo ${customer_list[i]}|awk '{print toupper($0)}'`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/*OEM.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/oem.bin
							 | 
						||
| 
								 | 
							
								        cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/kl_ram.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/ram.bin
							 | 
						||
| 
								 | 
							
								        cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/kunlun_sbl.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/sbl.bin
							 | 
						||
| 
								 | 
							
								        cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/sp_fw.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/sp.bin
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for((m=0;m<$pib_num;m++))
							 | 
						||
| 
								 | 
							
								        do
							 | 
						||
| 
								 | 
							
								            if [ ${pib_list[m]}x != "default"x ];then
							 | 
						||
| 
								 | 
							
								                filename=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/$customer_case$module_case"01_"${pib_list[m]}"_PIB.bin"
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								                filename=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/$customer_case$module_case"01_PIB.bin"
							 | 
						||
| 
								 | 
							
								            fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            echo $filename
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if [ -e $filename ];then
							 | 
						||
| 
								 | 
							
								                if [ ${pib_list[m]}x == "default"x ];then
							 | 
						||
| 
								 | 
							
								                    cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/pib.bin
							 | 
						||
| 
								 | 
							
								                elif [ ${pib_list[m]}x == "LP"x ];then
							 | 
						||
| 
								 | 
							
								                    cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/lp_pib.bin
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                    cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}
							 | 
						||
| 
								 | 
							
								                fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                cfgfile=$dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts/flash_mapping_${module_list[j]}.cfg
							 | 
						||
| 
								 | 
							
								                if [ ${pib_list[m]}x == "LP"x ];then
							 | 
						||
| 
								 | 
							
								                    cfgfile=$dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts/flash_mapping_${module_list[j]}_lp.cfg
							 | 
						||
| 
								 | 
							
								                    sed -i "s/key_word=.*/key_word=${CHIP_ID}-SG-${customer_case}${module_case}01-${pib_list[m]}-${BUILD_BRANCH}.${BUILD_TAG}-/g" $cfgfile
							 | 
						||
| 
								 | 
							
								                elif [ ${pib_list[m]}x == "default"x ];then
							 | 
						||
| 
								 | 
							
								                    sed -i "s/key_word=.*/key_word=${CHIP_ID}-SG-${customer_case}${module_case}01-${BUILD_BRANCH}.${BUILD_TAG}-/g" $cfgfile
							 | 
						||
| 
								 | 
							
								                fi
							 | 
						||
| 
								 | 
							
								            fi
							 | 
						||
| 
								 | 
							
								        done
							 | 
						||
| 
								 | 
							
								        if [ ${module_list[j]}x == "iic"x ] || [ ${module_list[j]}x == "3ps"x ];then
							 | 
						||
| 
								 | 
							
								            upgradefile=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/bin/*UPGRADE*.bin
							 | 
						||
| 
								 | 
							
								            rm -f $upgradefile
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								        cp ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/bin/*.bin $dest_rootpath/${customer_list[i]}/bin
							 | 
						||
| 
								 | 
							
								        cd $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts
							 | 
						||
| 
								 | 
							
								        filepath=build-${module_list[j]}.sh
							 | 
						||
| 
								 | 
							
								        if [ -e $filepath ];then
							 | 
						||
| 
								 | 
							
								            chmod 777 $filepath
							 | 
						||
| 
								 | 
							
								            dos2unix ./$filepath
							 | 
						||
| 
								 | 
							
								            ./$filepath
							 | 
						||
| 
								 | 
							
								        fi
							 | 
						||
| 
								 | 
							
								        cd -
							 | 
						||
| 
								 | 
							
								    done
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								echo "build log:end build" ${chip_id} ${flash_type} ${BUILD_BRANCH} ${BUILD_TAG}
							 |