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} |