[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/tools/SLT/slt b/mcu/tools/SLT/slt
new file mode 100644
index 0000000..33104de
--- /dev/null
+++ b/mcu/tools/SLT/slt
@@ -0,0 +1,808 @@
+#!/bin/sh
+
+BASE=../../../mcu
+MAKEFILE=make/"build.mak"
+OPTIONFILE=make/"Option.mak"
+ATESTMAKEFILE=make/module/driver/autotest/atest_drv.mak
+MTKREL=mtk_rel
+LABLEINI=label.ini
+PREPEND=tools/SLT/prepend_slt_gfh_file_info.pl
+MODIFY=tools/SLT/modify_slt_gfh_file_info.pl
+CONF=tools/SLT/fileinfo.conf
+SLTBL_C=service/sys_svc/bootloader_slt/inc/bl_slt_config.h
+SLT_NL_CONFIG=interface/service/config/middleWare_task_config.h
+LOADPATCHFILE=tools/SLT/config
+
+ctrl_c()
+# run if user hits control-c
+{
+ if [ -f "$MAKEFILE.bak" ]; then
+ mv $MAKEFILE.bak $MAKEFILE
+ fi
+ if [ -f "$CONF.bak" ]; then
+ mv $CONF.bak $CONF
+ fi
+ if [ -f "$PROJFILE.bak" ]; then
+ mv $PROJFILE.bak $PROJFILE
+ fi
+ if [ -f "$LABLEINI.bak" ]; then
+ mv $LABLEINI.bak $LABLEINI
+ fi
+ if [ -f "$MEMORYCONFIG.bak" ]; then
+ mv $MEMORYCONFIG.bak $MEMORYCONFIG
+ fi
+ if [ -f "$OPTIONFILE.bak" ]; then
+ mv $OPTIONFILE.bak $OPTIONFILE
+ fi
+ if [ -f "$SLTBL_C.bak" ]; then
+ mv $SLTBL_C.bak $SLTBL_C
+ fi
+ if [ -f "$LABLEINI.bak" ]; then
+ mv $LABLEINI.bak $LABLEINI
+ fi
+ if [ -f "$ATESTMAKEFILE.bak" ]; then
+ mv $ATESTMAKEFILE.bak $ATESTMAKEFILE
+ fi
+ if [ -f "$SLT_NL_CONFIG.bak" ]; then
+ mv $SLT_NL_CONFIG.bak $SLT_NL_CONFIG
+ fi
+ exit
+}
+
+function get_bin_path {
+ local filter=0
+ local fline=""
+ local enter=$(awk 'BEGIN{printf("\r")}')
+ echo Parsing $1
+ for line in `cat $1`
+ do
+ if [ $filter -eq 0 ]; then
+ fline=$fline$line
+ fi
+ if [ "${line:0:1}" = "#" ]; then
+ filter=1
+ fi
+ if [ "${line:${#line}-1:1}" != "$enter" ]; then
+ continue
+ fi
+ fline=${fline:0:${#fline}-1}
+ if [ "${fline%=*}" = "ORIGINAL_PROJECT_NAME" ]; then
+ ORIGINAL_PROJECT_NAME=${fline#ORIGINAL_PROJECT_NAME=}
+ fi
+ if [ "${fline%=*}" = "ORIGINAL_FLAVOR" ]; then
+ ORIGINAL_FLAVOR=${fline#ORIGINAL_FLAVOR=}
+ fi
+ if [ "${fline%=*}" = "BOARD_VER" ]; then
+ BOARD_VER=${fline#BOARD_VER=}
+ fi
+ if [ "${fline%=*}" = "CHIP_VER" ]; then
+ CHIP_VER=${fline#CHIP_VER=}
+ break
+ fi
+ fline=""
+ filter=0
+ done
+ BINPATH="build/"$ORIGINAL_PROJECT_NAME"/"$ORIGINAL_FLAVOR"/bin"
+}
+
+function parsing_project_file {
+ PROJECT=$1
+ PROJFILE=make/$PROJECT
+ get_bin_path $PROJFILE
+
+ MEMORYCONFIG="custom/system/"$BOARD_VER"/"$ORIGINAL_FLAVOR"/custom_MemoryDevice.h.conf"
+ if [ ! -f $MEMORYCONFIG ]; then
+ MEMORYCONFIG="custom/system/"$BOARD_VER"/DEFAULT/custom_MemoryDevice.h.conf"
+ if [ ! -f $MEMORYCONFIG ]; then
+ echo $MEMORYCONFIG is not exsit!
+ ctrl_c
+ exit
+ fi
+ fi
+ FEATURECONFIG="custom/system/"$BOARD_VER"/"$ORIGINAL_FLAVOR"/custom_FeatureConfig.h.conf"
+ if [ ! -f $FEATURECONFIG ]; then
+ FEATURECONFIG="custom/system/"$BOARD_VER"/DEFAULT/custom_FeatureConfig.h.conf"
+ if [ ! -f $FEATURECONFIG ]; then
+ echo $FEATURECONFIG is not exsit!
+ ctrl_c
+ exit
+ fi
+ fi
+
+ cp $PROJFILE $PROJFILE.bak
+ chmod +w $PROJFILE
+ cat $PROJFILE.bak \
+ | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \
+ > $PROJFILE
+}
+
+function dispatch_attribute {
+ SLT_LOAD_ATTR_MD=0
+ SLT_LOAD_ATTR_HVT=0
+ SLT_LOAD_ATTR_LOAD_AP=0
+ SLT_LOAD_ATTR_AP_IDX=0
+ attribute_array=($(echo $1 | tr ',' ' ' | tr -s ' '))
+ attribute_array_num=${#attribute_array[@]}
+ SLT_LOAD_ATTR_PARAM0=${attribute_array[0]}
+ for (( attribute_i=0; attribute_i<$attribute_array_num; attribute_i++ ))
+ do
+ if [ "${attribute_array[attribute_i]}" = "MD" ]; then
+ SLT_LOAD_ATTR_MD=1
+ elif [ "${attribute_array[attribute_i]}" = "HVT" ]; then
+ SLT_LOAD_ATTR_HVT=1
+ elif [ "${attribute_array[attribute_i]:0:8}" = "LOAD_AP_" ]; then
+ SLT_LOAD_ATTR_LOAD_AP=1
+ SLT_LOAD_ATTR_AP_IDX=${attribute_array[attribute_i]#LOAD_AP_}
+ fi
+ done
+}
+
+function gen_fileinfo {
+ SLT_TEST_LOAD_IDX=""
+ SLT_LOAD_PATH=""
+ SLT_LOAD_PATH_CHANGED=0
+ SLT_LOAD_ATTRIBUTE=0
+ SLT_LOAD_ADDR=0
+ local gen_fileinfo_clean_conf=0
+ if [ ! -f "$CONF.bak" ]; then
+ cp $CONF $CONF.bak
+ chmod +w $CONF
+ gen_fileinfo_clean_conf=1
+ fi
+ for line in `cat $LOADPATCHFILE`
+ do
+ str=${line%${line#*=$1*}}
+ if [ "${str:0:1}" != "#" ] && [ "${str#*=}" = "$1" ]; then
+ SLT_TEST_LOAD_IDX=${line%=$1*}
+ str=${line#*=$1,*},
+ dispatch_attribute $str
+
+ if [ $SLT_LOAD_ATTR_MD -eq 1 ]; then
+ SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x20000000)}')
+ SLT_LOAD_ADDR=0x40000000
+ fi
+ if [ $SLT_LOAD_ATTR_HVT -eq 1 ]; then
+ SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x10000000)}')
+ fi
+ if [ $SLT_LOAD_ATTR_LOAD_AP -eq 1 ]; then
+ SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x40000000)}')
+ SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+('$SLT_LOAD_ATTR_AP_IDX'*0x01000000))}')
+ fi
+ fi
+ done
+
+ if [ -z $SLT_TEST_LOAD_IDX ] && [ "$SKIP_LOAD_IDX_CHK" != "TRUE" ]; then
+ echo '"'$1'"' is invalid !
+ ctrl_c
+ exit
+ fi
+ if [ "$SLT_LOAD_ADDR" != "0x40000000" ]; then
+ if [ $CHIP = "MT6290" ]; then
+ SLT_LOAD_ADDR=0x10000000
+ else
+ SLT_LOAD_ADDR=0x02000000
+ fi
+ fi
+
+ cat $CONF.bak \
+ | sed -e 's/^FILE_TYPE\s*:.*/FILE_TYPE:'$SLT_TEST_LOAD_IDX'/' \
+ | sed -e 's/^ATTRIBUTE\s*:.*/ATTRIBUTE:'$SLT_LOAD_ATTRIBUTE'/' \
+ | sed -e 's/^LOAD_ADDR\s*:.*/LOAD_ADDR:'$SLT_LOAD_ADDR'/' \
+ | sed -e 's/^MAX_SIZE\s*:.*/MAX_SIZE:0xFFFFFFFF/' \
+ > $CONF
+
+ for line in `cat $LOADPATCHFILE`
+ do
+ if [ "${line%=*}" = "$1" ]; then
+ SLT_LOAD_PATH=${line#$1=}
+ fi
+ done
+ if [ -z $SLT_LOAD_PATH ]; then
+ SLT_LOAD_PATH=.
+ else
+ if [ "${SLT_LOAD_PATH:1:7}" = "BINPATH" ]; then
+ SLT_LOAD_PATH=$BINPATH${SLT_LOAD_PATH#?BINPATH*}
+ SLT_LOAD_PATH_CHANGED=1
+ fi
+ fi
+ if [ $gen_fileinfo_clean_conf -eq 1 ]; then
+ mv $CONF.bak $CONF
+ fi
+ SKIP_LOAD_IDX_CHK=""
+}
+
+function gen_GFH_header {
+ cp $CONF $CONF.bak
+ chmod +w $CONF
+
+ gen_fileinfo $1
+ SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH)
+ if [ $? -ne 0 ]; then
+ echo Generate $1 failed!
+ ctrl_c
+ exit
+ fi
+
+ cp -f $SLT_LOAD_PATH $SLTPATH/"$CHIP"_$1
+ if [ $SLT_LOAD_ATTR_HVT -eq 0 ]; then
+ perl $MODIFY $SLTPATH/"$CHIP"_$1 $SLTPATH/"$CHIP"_$1.gfh $CONF
+ else
+ perl $PREPEND $SLTPATH/"$CHIP"_$1 $SLTPATH/"$CHIP"_$1.gfh $CONF
+ fi
+ mv $SLTPATH/"$CHIP"_$1.gfh $SLTPATH/"$CHIP"_$1
+ mv $CONF.bak $CONF
+}
+
+function backup_compile_files {
+ BAKPATH=$SLTPATH"_ORG/"$1
+ if [ -d $BAKPATH ]; then
+ rm -fr $BAKPATH
+ fi
+ mkdir -p $BAKPATH
+ cp -f $BINPATH/*.elf $BAKPATH/.
+ cp -f $BINPATH/*.bin $BAKPATH/.
+ cp -f $BINPATH/*.cfg $BAKPATH/.
+ cp -f $BINPATH/EXT_BOOTLOADER $BAKPATH/.
+}
+
+function gen_slt_loader {
+
+ SKIP_LOAD_IDX_CHK="TRUE"
+ gen_fileinfo SLT_BL_FILE
+ if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then
+ cat $PROJFILE.bak \
+ | sed -e 's/IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = MT6290_SLT_LOADER/'\
+ > $PROJFILE
+
+ cp $OPTIONFILE $OPTIONFILE.bak
+ chmod +w $OPTIONFILE
+
+ cat $OPTIONFILE.bak \
+ | sed -e 's/COM_DEFS += __IC_SLT__/COM_DEFS += __IC_SLT__ __IC_SLT_LOADER__/'\
+ > $OPTIONFILE
+
+ cp $MAKEFILE $MAKEFILE.bak
+ chmod +w $MAKEFILE
+
+ cat $MAKEFILE.bak \
+ | sed -e 's/^new\s*:\s*update/#new : update/'\
+ > $MAKEFILE
+
+ local output_load_sq=""
+ for line in `cat $LOADPATCHFILE`
+ do
+ if [ "${line%=*}" = "SLT_SQ_ADD" ]; then
+ SLT_SQ_ADD=${line#SLT_SQ_ADD=}
+ output_load_sq=$output_load_sq"{"$SLT_SQ_ADD"},"
+ fi
+ done
+
+ if [ "$output_load_sq" = "" ]; then
+ echo SLT_SQ_ADD is invalid.
+ ctrl_c
+ exit
+ fi
+ if [ -z "$SLT_CHECK_EFUSE" ]; then
+ SLT_CHECK_EFUSE=0xFFFFFFFF
+ fi
+ cp $SLTBL_C $SLTBL_C.bak
+ chmod +w $SLTBL_C
+ cat $SLTBL_C.bak \
+ | sed -e 's/#define SLT_TEST_LOAD_SEQUENCE_FROM_CFG {0,0,PRIMARY_MAUI,NULL,SLT_APMCU_PDN,0}/#define SLT_TEST_LOAD_SEQUENCE_FROM_CFG '$output_load_sq'/'\
+ | sed -e 's/#define SLT_CHECK_EFUSE_FROM_CFG 0xFFFFFFFF/#define SLT_CHECK_EFUSE_FROM_CFG '$SLT_CHECK_EFUSE'/'\
+ > $SLTBL_C
+
+ if [ -d $MTKREL ]; then
+ rm -r $MTKREL
+ fi
+
+ ./m "$PROJECT_LOADER" new
+
+ cp -f $BINPATH/"$ORIGINAL_PROJECT_NAME"_BOOTLOADER*.bin $SLTPATH
+ if [ $? -ne 0 ]; then
+ echo Generate BOOTLOADER binary error!
+ ctrl_c
+ exit
+ fi
+ rm $SLTPATH/"$ORIGINAL_PROJECT_NAME"_BOOTLOADER*_ext.bin
+
+ if [ ! -f "$BINPATH/EXT_BOOTLOADER" ]; then
+ echo Generate EXT_BOOTLOADER binary error!
+ ctrl_c
+ exit
+ fi
+
+ cp -f $BINPATH/EXT_BOOTLOADER $SLTPATH
+ backup_compile_files LOADER
+ mv $MAKEFILE.bak $MAKEFILE
+ mv $OPTIONFILE.bak $OPTIONFILE
+ mv $SLTBL_C.bak $SLTBL_C
+ else
+ SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH)
+ if [ $? -ne 0 ]; then
+ echo $SLT_LOAD_PATH is not exist!
+ ctrl_c
+ exit
+ fi
+ cp -f $SLT_LOAD_PATH $SLTPATH
+
+ SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}"/EXT_BOOTLOADER"
+ if [ -f "$SLT_LOAD_PATH" ]; then
+ cp -f $SLT_LOAD_PATH $SLTPATH
+ else
+ echo $SLT_LOAD_PATH is not exist.
+ ctrl_c
+ exit
+ fi
+ fi
+}
+
+function gen_hvt {
+ gen_GFH_header SLT_HVT_MD_LOAD
+ gen_GFH_header SLT_HVT_AP_LOAD
+}
+
+function gen_atest {
+ cp $ATESTMAKEFILE $ATESTMAKEFILE.bak
+ chmod +w $ATESTMAKEFILE
+ cp $LABLEINI $LABLEINI.bak
+ chmod +w $LABLEINI
+ cp $MEMORYCONFIG $MEMORYCONFIG.bak
+ chmod +w $MEMORYCONFIG
+
+ gen_fileinfo SLT_ATEST_LOAD
+ if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then
+ if [ ! -z "$MOLY_LIB_PATH" ]; then
+ cat $LABLEINI.bak \
+ | sed -e "s,^LINUX_LIB_PATH_1\s*=.*,LINUX_LIB_PATH_1 = "$MOLY_LIB_PATH"," \
+ > $LABLEINI
+ fi
+
+ cat $PROJFILE.bak \
+ | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \
+ | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \
+ > $PROJFILE
+
+ cat $ATESTMAKEFILE.bak \
+ | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \
+ | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT\s*$/COM_DEFS += ATEST_SLT/g' \
+ | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_U3\s*$/COM_DEFS += ATEST_SLT_U3/g' \
+ > $ATESTMAKEFILE
+
+ cat $MEMORYCONFIG.bak \
+ | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \
+ | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \
+ > $MEMORYCONFIG
+
+ if [ -d $MTKREL ]; then
+ rm -r $MTKREL
+ fi
+ ./m -test=ATEST_DRIVER "$PROJECT_ATEST" new
+ backup_compile_files ATEST
+ fi
+
+ gen_GFH_header SLT_ATEST_LOAD
+
+ mv $LABLEINI.bak $LABLEINI
+ mv $ATESTMAKEFILE.bak $ATESTMAKEFILE
+ mv $MEMORYCONFIG.bak $MEMORYCONFIG
+}
+
+function gen_sdio {
+ cp $ATESTMAKEFILE $ATESTMAKEFILE.bak
+ chmod +w $ATESTMAKEFILE
+ cp $LABLEINI $LABLEINI.bak
+ chmod +w $LABLEINI
+ cp $MEMORYCONFIG $MEMORYCONFIG.bak
+ chmod +w $MEMORYCONFIG
+
+ gen_fileinfo SLT_SDIO_LOAD
+ if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then
+ if [ $CHIP = "MT6290" ]; then
+ cat $PROJFILE.bak \
+ | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \
+ > $PROJFILE
+
+ cat $ATESTMAKEFILE.bak \
+ | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \
+ | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_SDIO\s*$/COM_DEFS += ATEST_SLT_SDIO_LOAD_FOR_MSDC/g' \
+ > $ATESTMAKEFILE
+ else
+ cat $PROJFILE.bak \
+ | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \
+ | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \
+ > $PROJFILE
+
+ cat $ATESTMAKEFILE.bak \
+ | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \
+ | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_SDIO\s*$/COM_DEFS += ATEST_SLT_SDIO/g' \
+ > $ATESTMAKEFILE
+ fi
+
+ cat $MEMORYCONFIG.bak \
+ | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \
+ | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \
+ > $MEMORYCONFIG
+
+ if [ -d $MTKREL ]; then
+ rm -r $MTKREL
+ fi
+ ./m -test=ATEST_DRIVER "$PROJECT_ATEST" new
+ backup_compile_files SDIO
+ fi
+ gen_GFH_header SLT_SDIO_LOAD
+
+ mv $LABLEINI.bak $LABLEINI
+ mv $ATESTMAKEFILE.bak $ATESTMAKEFILE
+ mv $MEMORYCONFIG.bak $MEMORYCONFIG
+}
+
+function gen_msdc1 {
+ gen_GFH_header SLT_MSDC1_LOAD
+}
+
+function gen_fdd {
+ gen_fileinfo SLT_FDD_LOAD
+ if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then
+ cp $MEMORYCONFIG $MEMORYCONFIG.bak
+ chmod +w $MEMORYCONFIG
+
+ if [ -d $MTKREL ]; then
+ rm -r $MTKREL
+ fi
+
+ cat $PROJFILE.bak \
+ | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \
+ | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \
+ | sed -e "s/^HIF_USB30_SUPPORT\s*=.*/HIF_USB30_SUPPORT = FALSE/" \
+ | sed -e "s/^HIF_USB_SUPPORT\s*=.*/HIF_USB_SUPPORT = FALSE/" \
+ > $PROJFILE
+
+ cat $MEMORYCONFIG.bak \
+ | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \
+ | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \
+ > $MEMORYCONFIG
+
+ ./m "$PROJECT_FDD" new
+
+ cp -f $BINPATH/*_DSPMOLY*.bin $SLTPATH
+ if [ $? -ne 0 ]; then
+ echo $BINPATH/*_DSPMOLY*.bin is not exist.
+ echo Generate FDD load error!
+ ctrl_c
+ exit
+ fi
+
+ gen_GFH_header SLT_FDD_LOAD
+ cp -f $BINPATH/cmdScript.bin $SLTPATH
+ if [ $? -ne 0 ]; then
+ echo Generate FDD load error!
+ ctrl_c
+ exit
+ fi
+
+ backup_compile_files FDD
+ mv $MEMORYCONFIG.bak $MEMORYCONFIG
+ else
+ gen_GFH_header SLT_FDD_LOAD
+
+ SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}"/cmdScript.bin"
+ if [ -f "$SLT_LOAD_PATH" ]; then
+ cp -f $SLT_LOAD_PATH $SLTPATH
+ else
+ echo $SLT_LOAD_PATH is not exist.
+ ctrl_c
+ exit
+ fi
+ SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}
+ SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH/*_DSPMOLY_*.bin)
+ if [ -f "$SLT_LOAD_PATH" ]; then
+ cp -f $SLT_LOAD_PATH $SLTPATH
+ else
+ echo $SLT_LOAD_PATH is not exist.
+ ctrl_c
+ exit
+ fi
+
+ fi
+}
+
+function gen_tdd {
+ gen_fileinfo SLT_TDD_LOAD
+ if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then
+ cp $MEMORYCONFIG $MEMORYCONFIG.bak
+ chmod +w $MEMORYCONFIG
+ cp $SLT_NL_CONFIG $SLT_NL_CONFIG.bak
+ chmod +w $SLT_NL_CONFIG
+
+ if [ -d $MTKREL ]; then
+ rm -r $MTKREL
+ fi
+
+ cat $PROJFILE.bak \
+ | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = MT6290_TDSCDMA_SLT/" \
+ | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \
+ | sed -e "s/^HIF_USB30_SUPPORT\s*=.*/HIF_USB30_SUPPORT = FALSE/" \
+ | sed -e "s/^HIF_USB_SUPPORT\s*=.*/HIF_USB_SUPPORT = FALSE/" \
+ | sed -e "s/^# Common preprocessor definitions\s*/&\nCUSTOM_OPTION += __TDDSYS_SLT_FACTORY_BOOT__ /g"\
+ > $PROJFILE
+
+ cat $MEMORYCONFIG.bak \
+ | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \
+ | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \
+ | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_BASE_ADDRESS.*/#define NAND_BOOTING_NAND_FS_BASE_ADDRESS 0x04400000/' \
+ > $MEMORYCONFIG
+
+ ./m "$PROJECT_TDD" new
+
+ gen_GFH_header SLT_TDD_LOAD
+ backup_compile_files TDD
+
+ mv $MEMORYCONFIG.bak $MEMORYCONFIG
+ mv $SLT_NL_CONFIG.bak $SLT_NL_CONFIG
+ else
+ gen_GFH_header SLT_TDD_LOAD
+ fi
+}
+
+function gen_cfg {
+ local CFGContent=""
+ local BLContent=""
+ local DSPContent=""
+ local load_idx=""
+ local i=0
+
+ for (( i=0; i<8; i++ ))
+ do
+ if [ $i -eq 7 ]; then
+ load_idx="PRIMARY_MAUI"
+ else
+ load_idx="SLT_TEST_LOAD_"$i
+ fi
+ for line in `cat $LOADPATCHFILE`
+ do
+ if [ "${line%=*}" = "$load_idx" ]; then
+ SLT_LOAD_NAME=${line#$load_idx=}
+ if [ "$SLT_LOAD_NAME" != "" ]; then
+ dispatch_attribute $SLT_LOAD_NAME
+ CFGContent=$CFGContent"\n - file: "$CHIP"_"$SLT_LOAD_ATTR_PARAM0
+ fi
+ break
+ fi
+ done
+ done
+
+ local DSPPATH=$(ls $SLTPATH/*_DSPMOLY_*.bin)
+ if [ -f "$DSPPATH" ]; then
+ DSPContent=" - file: "${DSPPATH##*/}
+ else
+ echo $SLTPATH/*_DSPMOLY_*.bin is not exist.
+ echo Generate CFG error!
+ ctrl_c
+ exit
+ fi
+ local BOOTLOADERPATH=$(ls $SLTPATH/*_BOOTLOADER_*.bin)
+ BLContent=" - file: "${BOOTLOADERPATH##*/}
+
+
+ SKIP_LOAD_IDX_CHK="TRUE"
+ gen_fileinfo PRIMARY_MAUI
+ if [ "$SLT_LOAD_PATH" = "." ]; then
+ echo Can not ignore PRIMARY_MAUI.
+ ctrl_c
+ exit
+ fi
+
+ SKIP_LOAD_IDX_CHK="TRUE"
+ gen_fileinfo SLT_CFG_FILE
+ local val=$(egrep $BOARD_VER"_PCB01_MT6290_"$CHIP_VER"." $SLT_LOAD_PATH)
+ if [ -z "$val" ]; then
+ echo $SLT_LOAD_PATH is not match.
+ ctrl_c
+ exit
+ fi
+ cp -f $SLT_LOAD_PATH $SLTPATH/"$CHIP"_SLT.cfg
+ cat $SLTPATH/"$CHIP"_SLT.cfg \
+ | sed -e "s/.*_BOOTLOADER_.*/$BLContent/" \
+ | sed -e "s/.*"$BOARD_VER"_PCB01_MT6290_"$CHIP_VER".*/$CFGContent/" \
+ | sed -e "s/.*_DSPMOLY_.*/$DSPContent/" \
+ > $SLTPATH/"$CHIP"_SLT.cfg.mod
+
+ mv $SLTPATH/"$CHIP"_SLT.cfg.mod $SLTPATH/"$CHIP"_SLT.cfg
+ if [ $? -ne 0 ]; then
+ echo Generate CFG error!
+ echo Please build MOLY FDD or TDD SLT load first.
+ ctrl_c
+ exit
+ fi
+
+ if [ ! -f "$SLTPATH/cmdScript.bin" ]; then
+ SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}/cmdScript.bin
+ cp -f $SLT_LOAD_PATH $SLTPATH
+ if [ $? -ne 0 ]; then
+ echo ${SLT_LOAD_PATH%/*}/cmdScript.bin is not exist.
+ echo Generate CFG error!
+ ctrl_c
+ exit
+ fi
+ fi
+
+}
+
+function usage {
+ echo "usage:"
+ echo " slt <chip> [module]"
+ echo "<chip>:"
+ echo " 6290"
+ echo " 6290m_[c/f]"
+ echo "[module]:"
+ echo " loader - build SLT loader"
+ echo " hvt - prepend GFH header for HVT binary"
+ echo " atest - build MOLY SLT atest"
+ echo " fdd - build MOLY SLT FDD normal load"
+ echo " tdd - build MOLY SLT TDD normal load"
+ echo " cfg - generate cfg for FlashTool download"
+ echo
+ echo "If not select any [module], all test load for SLT wiil be generated."
+ echo
+}
+
+if [ -z "$1" ]; then
+ usage
+ exit
+fi
+
+if [ "$1" = "6290" ] || [ "${1:0:5}" == "6290_" ]; then
+ CHIP=MT6290
+ echo $CHIP
+elif [ "$1" = "6290m" ] || [ "${1:0:6}" = "6290m_" ]; then
+ CHIP=MT6290M
+ echo $CHIP
+else
+ echo Error argument
+ exit
+fi
+
+LOADPATCHFILE=$LOADPATCHFILE'_'$1
+if [ ! -f "$LOADPATCHFILE" ]; then
+ echo $LOADPATCHFILE is not exist.
+ ctrl_c
+ exit
+fi
+for line in `cat $LOADPATCHFILE`
+do
+ if [ "${line%=*}" = "SLT_CHECK_EFUSE" ]; then
+ SLT_CHECK_EFUSE=${line#SLT_CHECK_EFUSE=}
+ fi
+ if [ "${line%=*}" = "MOLY_ATEST_LIB_PATH" ]; then
+ MOLY_LIB_PATH=${line#MOLY_ATEST_LIB_PATH=}
+ fi
+ if [ "${line%=*}" = "PROJECT_LOADER" ]; then
+ PROJECT_LOADER=${line#PROJECT_LOADER=}
+ fi
+ if [ "${line%=*}" = "PROJECT_ATEST" ]; then
+ PROJECT_ATEST=${line#PROJECT_ATEST=}
+ fi
+ if [ "${line%=*}" = "PROJECT_SDIO" ]; then
+ PROJECT_SDIO=${line#PROJECT_SDIO=}
+ fi
+ if [ "${line%=*}" = "PROJECT_FDD" ]; then
+ PROJECT_FDD=${line#PROJECT_FDD=}
+ fi
+ if [ "${line%=*}" = "PROJECT_TDD" ]; then
+ PROJECT_TDD=${line#PROJECT_TDD=}
+ fi
+ if [ "${line%=*}" = "NANDFLASH" ]; then
+ NANDFLASH=${line#NANDFLASH=}
+ fi
+done
+
+SLTPATH=build/${CHIP}_SLT
+if [ ! -z "$SLT_CHECK_EFUSE" ]; then
+ SLTPATH=$SLTPATH"_"$SLT_CHECK_EFUSE
+fi
+
+case "$2" in
+ "")
+ if [ -d $SLTPATH ]; then
+ rm -r $SLTPATH
+ mkdir -p $SLTPATH
+ else
+ mkdir -p $SLTPATH
+ fi
+ parsing_project_file $PROJECT_LOADER
+ gen_slt_loader
+ mv $PROJFILE.bak $PROJFILE
+ gen_hvt
+ parsing_project_file $PROJECT_ATEST
+ gen_atest
+ mv $PROJFILE.bak $PROJFILE
+ parsing_project_file $PROJECT_FDD
+ gen_fdd
+ mv $PROJFILE.bak $PROJFILE
+ parsing_project_file $PROJECT_TDD
+ gen_tdd
+ mv $PROJFILE.bak $PROJFILE
+ gen_cfg
+ ;;
+ loader)
+ parsing_project_file $PROJECT_LOADER
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate SLT Loader...
+ gen_slt_loader
+ echo Generate SLT Finished!
+ ;;
+ hvt)
+ parsing_project_file $PROJECT_LOADER
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate HVT...
+ gen_hvt
+ echo Generate HVT Finished!
+ ;;
+ atest)
+ parsing_project_file $PROJECT_ATEST
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate MOLY ATEST...
+ gen_atest
+ echo Generate MOLY Finished!
+ ;;
+ fdd)
+ parsing_project_file $PROJECT_FDD
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate MOLY FDD Normal Load...
+ gen_fdd
+ echo Generate MOLY FDD Normal Finished!
+ ;;
+ tdd)
+ parsing_project_file $PROJECT_TDD
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate MOLY TDD Normal Load...
+ gen_tdd
+ echo Generate MOLY TDD Normal Finished!
+ ;;
+ cfg)
+ parsing_project_file $PROJECT_LOADER
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate CFG File...
+ gen_cfg
+ echo Generate CFG Finished!
+ ;;
+ sdio)
+ parsing_project_file $PROJECT_SDIO
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate SDIO File...
+ gen_sdio
+ echo Generate SDIO Finished!
+ ;;
+ msdc1)
+ parsing_project_file $PROJECT_LOADER
+ if [ ! -d $SLTPATH ]; then
+ mkdir -p $SLTPATH
+ fi
+ echo Generate MSDC1 File...
+ gen_msdc1
+ echo Generate MSDC1 Finished!
+ ;;
+ *)
+ gen_GFH_header $2
+esac
+
+if [ -f "$PROJFILE.bak" ]; then
+ mv $PROJFILE.bak $PROJFILE
+fi
+
+exit