rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | BASE=../../../mcu |
| 4 | MAKEFILE=make/"build.mak" |
| 5 | OPTIONFILE=make/"Option.mak" |
| 6 | ATESTMAKEFILE=make/module/driver/autotest/atest_drv.mak |
| 7 | MTKREL=mtk_rel |
| 8 | LABLEINI=label.ini |
| 9 | PREPEND=tools/SLT/prepend_slt_gfh_file_info.pl |
| 10 | MODIFY=tools/SLT/modify_slt_gfh_file_info.pl |
| 11 | CONF=tools/SLT/fileinfo.conf |
| 12 | SLTBL_C=service/sys_svc/bootloader_slt/inc/bl_slt_config.h |
| 13 | SLT_NL_CONFIG=interface/service/config/middleWare_task_config.h |
| 14 | LOADPATCHFILE=tools/SLT/config |
| 15 | |
| 16 | ctrl_c() |
| 17 | # run if user hits control-c |
| 18 | { |
| 19 | if [ -f "$MAKEFILE.bak" ]; then |
| 20 | mv $MAKEFILE.bak $MAKEFILE |
| 21 | fi |
| 22 | if [ -f "$CONF.bak" ]; then |
| 23 | mv $CONF.bak $CONF |
| 24 | fi |
| 25 | if [ -f "$PROJFILE.bak" ]; then |
| 26 | mv $PROJFILE.bak $PROJFILE |
| 27 | fi |
| 28 | if [ -f "$LABLEINI.bak" ]; then |
| 29 | mv $LABLEINI.bak $LABLEINI |
| 30 | fi |
| 31 | if [ -f "$MEMORYCONFIG.bak" ]; then |
| 32 | mv $MEMORYCONFIG.bak $MEMORYCONFIG |
| 33 | fi |
| 34 | if [ -f "$OPTIONFILE.bak" ]; then |
| 35 | mv $OPTIONFILE.bak $OPTIONFILE |
| 36 | fi |
| 37 | if [ -f "$SLTBL_C.bak" ]; then |
| 38 | mv $SLTBL_C.bak $SLTBL_C |
| 39 | fi |
| 40 | if [ -f "$LABLEINI.bak" ]; then |
| 41 | mv $LABLEINI.bak $LABLEINI |
| 42 | fi |
| 43 | if [ -f "$ATESTMAKEFILE.bak" ]; then |
| 44 | mv $ATESTMAKEFILE.bak $ATESTMAKEFILE |
| 45 | fi |
| 46 | if [ -f "$SLT_NL_CONFIG.bak" ]; then |
| 47 | mv $SLT_NL_CONFIG.bak $SLT_NL_CONFIG |
| 48 | fi |
| 49 | exit |
| 50 | } |
| 51 | |
| 52 | function get_bin_path { |
| 53 | local filter=0 |
| 54 | local fline="" |
| 55 | local enter=$(awk 'BEGIN{printf("\r")}') |
| 56 | echo Parsing $1 |
| 57 | for line in `cat $1` |
| 58 | do |
| 59 | if [ $filter -eq 0 ]; then |
| 60 | fline=$fline$line |
| 61 | fi |
| 62 | if [ "${line:0:1}" = "#" ]; then |
| 63 | filter=1 |
| 64 | fi |
| 65 | if [ "${line:${#line}-1:1}" != "$enter" ]; then |
| 66 | continue |
| 67 | fi |
| 68 | fline=${fline:0:${#fline}-1} |
| 69 | if [ "${fline%=*}" = "ORIGINAL_PROJECT_NAME" ]; then |
| 70 | ORIGINAL_PROJECT_NAME=${fline#ORIGINAL_PROJECT_NAME=} |
| 71 | fi |
| 72 | if [ "${fline%=*}" = "ORIGINAL_FLAVOR" ]; then |
| 73 | ORIGINAL_FLAVOR=${fline#ORIGINAL_FLAVOR=} |
| 74 | fi |
| 75 | if [ "${fline%=*}" = "BOARD_VER" ]; then |
| 76 | BOARD_VER=${fline#BOARD_VER=} |
| 77 | fi |
| 78 | if [ "${fline%=*}" = "CHIP_VER" ]; then |
| 79 | CHIP_VER=${fline#CHIP_VER=} |
| 80 | break |
| 81 | fi |
| 82 | fline="" |
| 83 | filter=0 |
| 84 | done |
| 85 | BINPATH="build/"$ORIGINAL_PROJECT_NAME"/"$ORIGINAL_FLAVOR"/bin" |
| 86 | } |
| 87 | |
| 88 | function parsing_project_file { |
| 89 | PROJECT=$1 |
| 90 | PROJFILE=make/$PROJECT |
| 91 | get_bin_path $PROJFILE |
| 92 | |
| 93 | MEMORYCONFIG="custom/system/"$BOARD_VER"/"$ORIGINAL_FLAVOR"/custom_MemoryDevice.h.conf" |
| 94 | if [ ! -f $MEMORYCONFIG ]; then |
| 95 | MEMORYCONFIG="custom/system/"$BOARD_VER"/DEFAULT/custom_MemoryDevice.h.conf" |
| 96 | if [ ! -f $MEMORYCONFIG ]; then |
| 97 | echo $MEMORYCONFIG is not exsit! |
| 98 | ctrl_c |
| 99 | exit |
| 100 | fi |
| 101 | fi |
| 102 | FEATURECONFIG="custom/system/"$BOARD_VER"/"$ORIGINAL_FLAVOR"/custom_FeatureConfig.h.conf" |
| 103 | if [ ! -f $FEATURECONFIG ]; then |
| 104 | FEATURECONFIG="custom/system/"$BOARD_VER"/DEFAULT/custom_FeatureConfig.h.conf" |
| 105 | if [ ! -f $FEATURECONFIG ]; then |
| 106 | echo $FEATURECONFIG is not exsit! |
| 107 | ctrl_c |
| 108 | exit |
| 109 | fi |
| 110 | fi |
| 111 | |
| 112 | cp $PROJFILE $PROJFILE.bak |
| 113 | chmod +w $PROJFILE |
| 114 | cat $PROJFILE.bak \ |
| 115 | | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \ |
| 116 | > $PROJFILE |
| 117 | } |
| 118 | |
| 119 | function dispatch_attribute { |
| 120 | SLT_LOAD_ATTR_MD=0 |
| 121 | SLT_LOAD_ATTR_HVT=0 |
| 122 | SLT_LOAD_ATTR_LOAD_AP=0 |
| 123 | SLT_LOAD_ATTR_AP_IDX=0 |
| 124 | attribute_array=($(echo $1 | tr ',' ' ' | tr -s ' ')) |
| 125 | attribute_array_num=${#attribute_array[@]} |
| 126 | SLT_LOAD_ATTR_PARAM0=${attribute_array[0]} |
| 127 | for (( attribute_i=0; attribute_i<$attribute_array_num; attribute_i++ )) |
| 128 | do |
| 129 | if [ "${attribute_array[attribute_i]}" = "MD" ]; then |
| 130 | SLT_LOAD_ATTR_MD=1 |
| 131 | elif [ "${attribute_array[attribute_i]}" = "HVT" ]; then |
| 132 | SLT_LOAD_ATTR_HVT=1 |
| 133 | elif [ "${attribute_array[attribute_i]:0:8}" = "LOAD_AP_" ]; then |
| 134 | SLT_LOAD_ATTR_LOAD_AP=1 |
| 135 | SLT_LOAD_ATTR_AP_IDX=${attribute_array[attribute_i]#LOAD_AP_} |
| 136 | fi |
| 137 | done |
| 138 | } |
| 139 | |
| 140 | function gen_fileinfo { |
| 141 | SLT_TEST_LOAD_IDX="" |
| 142 | SLT_LOAD_PATH="" |
| 143 | SLT_LOAD_PATH_CHANGED=0 |
| 144 | SLT_LOAD_ATTRIBUTE=0 |
| 145 | SLT_LOAD_ADDR=0 |
| 146 | local gen_fileinfo_clean_conf=0 |
| 147 | if [ ! -f "$CONF.bak" ]; then |
| 148 | cp $CONF $CONF.bak |
| 149 | chmod +w $CONF |
| 150 | gen_fileinfo_clean_conf=1 |
| 151 | fi |
| 152 | for line in `cat $LOADPATCHFILE` |
| 153 | do |
| 154 | str=${line%${line#*=$1*}} |
| 155 | if [ "${str:0:1}" != "#" ] && [ "${str#*=}" = "$1" ]; then |
| 156 | SLT_TEST_LOAD_IDX=${line%=$1*} |
| 157 | str=${line#*=$1,*}, |
| 158 | dispatch_attribute $str |
| 159 | |
| 160 | if [ $SLT_LOAD_ATTR_MD -eq 1 ]; then |
| 161 | SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x20000000)}') |
| 162 | SLT_LOAD_ADDR=0x40000000 |
| 163 | fi |
| 164 | if [ $SLT_LOAD_ATTR_HVT -eq 1 ]; then |
| 165 | SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x10000000)}') |
| 166 | fi |
| 167 | if [ $SLT_LOAD_ATTR_LOAD_AP -eq 1 ]; then |
| 168 | SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+0x40000000)}') |
| 169 | SLT_LOAD_ATTRIBUTE=$(awk 'BEGIN{printf("%#x",'$SLT_LOAD_ATTRIBUTE'+('$SLT_LOAD_ATTR_AP_IDX'*0x01000000))}') |
| 170 | fi |
| 171 | fi |
| 172 | done |
| 173 | |
| 174 | if [ -z $SLT_TEST_LOAD_IDX ] && [ "$SKIP_LOAD_IDX_CHK" != "TRUE" ]; then |
| 175 | echo '"'$1'"' is invalid ! |
| 176 | ctrl_c |
| 177 | exit |
| 178 | fi |
| 179 | if [ "$SLT_LOAD_ADDR" != "0x40000000" ]; then |
| 180 | if [ $CHIP = "MT6290" ]; then |
| 181 | SLT_LOAD_ADDR=0x10000000 |
| 182 | else |
| 183 | SLT_LOAD_ADDR=0x02000000 |
| 184 | fi |
| 185 | fi |
| 186 | |
| 187 | cat $CONF.bak \ |
| 188 | | sed -e 's/^FILE_TYPE\s*:.*/FILE_TYPE:'$SLT_TEST_LOAD_IDX'/' \ |
| 189 | | sed -e 's/^ATTRIBUTE\s*:.*/ATTRIBUTE:'$SLT_LOAD_ATTRIBUTE'/' \ |
| 190 | | sed -e 's/^LOAD_ADDR\s*:.*/LOAD_ADDR:'$SLT_LOAD_ADDR'/' \ |
| 191 | | sed -e 's/^MAX_SIZE\s*:.*/MAX_SIZE:0xFFFFFFFF/' \ |
| 192 | > $CONF |
| 193 | |
| 194 | for line in `cat $LOADPATCHFILE` |
| 195 | do |
| 196 | if [ "${line%=*}" = "$1" ]; then |
| 197 | SLT_LOAD_PATH=${line#$1=} |
| 198 | fi |
| 199 | done |
| 200 | if [ -z $SLT_LOAD_PATH ]; then |
| 201 | SLT_LOAD_PATH=. |
| 202 | else |
| 203 | if [ "${SLT_LOAD_PATH:1:7}" = "BINPATH" ]; then |
| 204 | SLT_LOAD_PATH=$BINPATH${SLT_LOAD_PATH#?BINPATH*} |
| 205 | SLT_LOAD_PATH_CHANGED=1 |
| 206 | fi |
| 207 | fi |
| 208 | if [ $gen_fileinfo_clean_conf -eq 1 ]; then |
| 209 | mv $CONF.bak $CONF |
| 210 | fi |
| 211 | SKIP_LOAD_IDX_CHK="" |
| 212 | } |
| 213 | |
| 214 | function gen_GFH_header { |
| 215 | cp $CONF $CONF.bak |
| 216 | chmod +w $CONF |
| 217 | |
| 218 | gen_fileinfo $1 |
| 219 | SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH) |
| 220 | if [ $? -ne 0 ]; then |
| 221 | echo Generate $1 failed! |
| 222 | ctrl_c |
| 223 | exit |
| 224 | fi |
| 225 | |
| 226 | cp -f $SLT_LOAD_PATH $SLTPATH/"$CHIP"_$1 |
| 227 | if [ $SLT_LOAD_ATTR_HVT -eq 0 ]; then |
| 228 | perl $MODIFY $SLTPATH/"$CHIP"_$1 $SLTPATH/"$CHIP"_$1.gfh $CONF |
| 229 | else |
| 230 | perl $PREPEND $SLTPATH/"$CHIP"_$1 $SLTPATH/"$CHIP"_$1.gfh $CONF |
| 231 | fi |
| 232 | mv $SLTPATH/"$CHIP"_$1.gfh $SLTPATH/"$CHIP"_$1 |
| 233 | mv $CONF.bak $CONF |
| 234 | } |
| 235 | |
| 236 | function backup_compile_files { |
| 237 | BAKPATH=$SLTPATH"_ORG/"$1 |
| 238 | if [ -d $BAKPATH ]; then |
| 239 | rm -fr $BAKPATH |
| 240 | fi |
| 241 | mkdir -p $BAKPATH |
| 242 | cp -f $BINPATH/*.elf $BAKPATH/. |
| 243 | cp -f $BINPATH/*.bin $BAKPATH/. |
| 244 | cp -f $BINPATH/*.cfg $BAKPATH/. |
| 245 | cp -f $BINPATH/EXT_BOOTLOADER $BAKPATH/. |
| 246 | } |
| 247 | |
| 248 | function gen_slt_loader { |
| 249 | |
| 250 | SKIP_LOAD_IDX_CHK="TRUE" |
| 251 | gen_fileinfo SLT_BL_FILE |
| 252 | if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then |
| 253 | cat $PROJFILE.bak \ |
| 254 | | sed -e 's/IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = MT6290_SLT_LOADER/'\ |
| 255 | > $PROJFILE |
| 256 | |
| 257 | cp $OPTIONFILE $OPTIONFILE.bak |
| 258 | chmod +w $OPTIONFILE |
| 259 | |
| 260 | cat $OPTIONFILE.bak \ |
| 261 | | sed -e 's/COM_DEFS += __IC_SLT__/COM_DEFS += __IC_SLT__ __IC_SLT_LOADER__/'\ |
| 262 | > $OPTIONFILE |
| 263 | |
| 264 | cp $MAKEFILE $MAKEFILE.bak |
| 265 | chmod +w $MAKEFILE |
| 266 | |
| 267 | cat $MAKEFILE.bak \ |
| 268 | | sed -e 's/^new\s*:\s*update/#new : update/'\ |
| 269 | > $MAKEFILE |
| 270 | |
| 271 | local output_load_sq="" |
| 272 | for line in `cat $LOADPATCHFILE` |
| 273 | do |
| 274 | if [ "${line%=*}" = "SLT_SQ_ADD" ]; then |
| 275 | SLT_SQ_ADD=${line#SLT_SQ_ADD=} |
| 276 | output_load_sq=$output_load_sq"{"$SLT_SQ_ADD"}," |
| 277 | fi |
| 278 | done |
| 279 | |
| 280 | if [ "$output_load_sq" = "" ]; then |
| 281 | echo SLT_SQ_ADD is invalid. |
| 282 | ctrl_c |
| 283 | exit |
| 284 | fi |
| 285 | if [ -z "$SLT_CHECK_EFUSE" ]; then |
| 286 | SLT_CHECK_EFUSE=0xFFFFFFFF |
| 287 | fi |
| 288 | cp $SLTBL_C $SLTBL_C.bak |
| 289 | chmod +w $SLTBL_C |
| 290 | cat $SLTBL_C.bak \ |
| 291 | | 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'/'\ |
| 292 | | sed -e 's/#define SLT_CHECK_EFUSE_FROM_CFG 0xFFFFFFFF/#define SLT_CHECK_EFUSE_FROM_CFG '$SLT_CHECK_EFUSE'/'\ |
| 293 | > $SLTBL_C |
| 294 | |
| 295 | if [ -d $MTKREL ]; then |
| 296 | rm -r $MTKREL |
| 297 | fi |
| 298 | |
| 299 | ./m "$PROJECT_LOADER" new |
| 300 | |
| 301 | cp -f $BINPATH/"$ORIGINAL_PROJECT_NAME"_BOOTLOADER*.bin $SLTPATH |
| 302 | if [ $? -ne 0 ]; then |
| 303 | echo Generate BOOTLOADER binary error! |
| 304 | ctrl_c |
| 305 | exit |
| 306 | fi |
| 307 | rm $SLTPATH/"$ORIGINAL_PROJECT_NAME"_BOOTLOADER*_ext.bin |
| 308 | |
| 309 | if [ ! -f "$BINPATH/EXT_BOOTLOADER" ]; then |
| 310 | echo Generate EXT_BOOTLOADER binary error! |
| 311 | ctrl_c |
| 312 | exit |
| 313 | fi |
| 314 | |
| 315 | cp -f $BINPATH/EXT_BOOTLOADER $SLTPATH |
| 316 | backup_compile_files LOADER |
| 317 | mv $MAKEFILE.bak $MAKEFILE |
| 318 | mv $OPTIONFILE.bak $OPTIONFILE |
| 319 | mv $SLTBL_C.bak $SLTBL_C |
| 320 | else |
| 321 | SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH) |
| 322 | if [ $? -ne 0 ]; then |
| 323 | echo $SLT_LOAD_PATH is not exist! |
| 324 | ctrl_c |
| 325 | exit |
| 326 | fi |
| 327 | cp -f $SLT_LOAD_PATH $SLTPATH |
| 328 | |
| 329 | SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}"/EXT_BOOTLOADER" |
| 330 | if [ -f "$SLT_LOAD_PATH" ]; then |
| 331 | cp -f $SLT_LOAD_PATH $SLTPATH |
| 332 | else |
| 333 | echo $SLT_LOAD_PATH is not exist. |
| 334 | ctrl_c |
| 335 | exit |
| 336 | fi |
| 337 | fi |
| 338 | } |
| 339 | |
| 340 | function gen_hvt { |
| 341 | gen_GFH_header SLT_HVT_MD_LOAD |
| 342 | gen_GFH_header SLT_HVT_AP_LOAD |
| 343 | } |
| 344 | |
| 345 | function gen_atest { |
| 346 | cp $ATESTMAKEFILE $ATESTMAKEFILE.bak |
| 347 | chmod +w $ATESTMAKEFILE |
| 348 | cp $LABLEINI $LABLEINI.bak |
| 349 | chmod +w $LABLEINI |
| 350 | cp $MEMORYCONFIG $MEMORYCONFIG.bak |
| 351 | chmod +w $MEMORYCONFIG |
| 352 | |
| 353 | gen_fileinfo SLT_ATEST_LOAD |
| 354 | if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then |
| 355 | if [ ! -z "$MOLY_LIB_PATH" ]; then |
| 356 | cat $LABLEINI.bak \ |
| 357 | | sed -e "s,^LINUX_LIB_PATH_1\s*=.*,LINUX_LIB_PATH_1 = "$MOLY_LIB_PATH"," \ |
| 358 | > $LABLEINI |
| 359 | fi |
| 360 | |
| 361 | cat $PROJFILE.bak \ |
| 362 | | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \ |
| 363 | | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \ |
| 364 | > $PROJFILE |
| 365 | |
| 366 | cat $ATESTMAKEFILE.bak \ |
| 367 | | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \ |
| 368 | | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT\s*$/COM_DEFS += ATEST_SLT/g' \ |
| 369 | | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_U3\s*$/COM_DEFS += ATEST_SLT_U3/g' \ |
| 370 | > $ATESTMAKEFILE |
| 371 | |
| 372 | cat $MEMORYCONFIG.bak \ |
| 373 | | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \ |
| 374 | | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \ |
| 375 | > $MEMORYCONFIG |
| 376 | |
| 377 | if [ -d $MTKREL ]; then |
| 378 | rm -r $MTKREL |
| 379 | fi |
| 380 | ./m -test=ATEST_DRIVER "$PROJECT_ATEST" new |
| 381 | backup_compile_files ATEST |
| 382 | fi |
| 383 | |
| 384 | gen_GFH_header SLT_ATEST_LOAD |
| 385 | |
| 386 | mv $LABLEINI.bak $LABLEINI |
| 387 | mv $ATESTMAKEFILE.bak $ATESTMAKEFILE |
| 388 | mv $MEMORYCONFIG.bak $MEMORYCONFIG |
| 389 | } |
| 390 | |
| 391 | function gen_sdio { |
| 392 | cp $ATESTMAKEFILE $ATESTMAKEFILE.bak |
| 393 | chmod +w $ATESTMAKEFILE |
| 394 | cp $LABLEINI $LABLEINI.bak |
| 395 | chmod +w $LABLEINI |
| 396 | cp $MEMORYCONFIG $MEMORYCONFIG.bak |
| 397 | chmod +w $MEMORYCONFIG |
| 398 | |
| 399 | gen_fileinfo SLT_SDIO_LOAD |
| 400 | if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then |
| 401 | if [ $CHIP = "MT6290" ]; then |
| 402 | cat $PROJFILE.bak \ |
| 403 | | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \ |
| 404 | > $PROJFILE |
| 405 | |
| 406 | cat $ATESTMAKEFILE.bak \ |
| 407 | | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \ |
| 408 | | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_SDIO\s*$/COM_DEFS += ATEST_SLT_SDIO_LOAD_FOR_MSDC/g' \ |
| 409 | > $ATESTMAKEFILE |
| 410 | else |
| 411 | cat $PROJFILE.bak \ |
| 412 | | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \ |
| 413 | | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \ |
| 414 | > $PROJFILE |
| 415 | |
| 416 | cat $ATESTMAKEFILE.bak \ |
| 417 | | sed -e 's/.*CUSTOM_OPTION.*+=.*ATEST_DRV_LEVEL=5\s*$/COM_DEFS += ATEST_DRV_LEVEL=0/g' \ |
| 418 | | sed -e 's/.*COM_DEFS.*+=.*ATEST_SLT_SDIO\s*$/COM_DEFS += ATEST_SLT_SDIO/g' \ |
| 419 | > $ATESTMAKEFILE |
| 420 | fi |
| 421 | |
| 422 | cat $MEMORYCONFIG.bak \ |
| 423 | | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \ |
| 424 | | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \ |
| 425 | > $MEMORYCONFIG |
| 426 | |
| 427 | if [ -d $MTKREL ]; then |
| 428 | rm -r $MTKREL |
| 429 | fi |
| 430 | ./m -test=ATEST_DRIVER "$PROJECT_ATEST" new |
| 431 | backup_compile_files SDIO |
| 432 | fi |
| 433 | gen_GFH_header SLT_SDIO_LOAD |
| 434 | |
| 435 | mv $LABLEINI.bak $LABLEINI |
| 436 | mv $ATESTMAKEFILE.bak $ATESTMAKEFILE |
| 437 | mv $MEMORYCONFIG.bak $MEMORYCONFIG |
| 438 | } |
| 439 | |
| 440 | function gen_msdc1 { |
| 441 | gen_GFH_header SLT_MSDC1_LOAD |
| 442 | } |
| 443 | |
| 444 | function gen_fdd { |
| 445 | gen_fileinfo SLT_FDD_LOAD |
| 446 | if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then |
| 447 | cp $MEMORYCONFIG $MEMORYCONFIG.bak |
| 448 | chmod +w $MEMORYCONFIG |
| 449 | |
| 450 | if [ -d $MTKREL ]; then |
| 451 | rm -r $MTKREL |
| 452 | fi |
| 453 | |
| 454 | cat $PROJFILE.bak \ |
| 455 | | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = "$CHIP"_SLT/" \ |
| 456 | | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \ |
| 457 | | sed -e "s/^HIF_USB30_SUPPORT\s*=.*/HIF_USB30_SUPPORT = FALSE/" \ |
| 458 | | sed -e "s/^HIF_USB_SUPPORT\s*=.*/HIF_USB_SUPPORT = FALSE/" \ |
| 459 | > $PROJFILE |
| 460 | |
| 461 | cat $MEMORYCONFIG.bak \ |
| 462 | | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \ |
| 463 | | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \ |
| 464 | > $MEMORYCONFIG |
| 465 | |
| 466 | ./m "$PROJECT_FDD" new |
| 467 | |
| 468 | cp -f $BINPATH/*_DSPMOLY*.bin $SLTPATH |
| 469 | if [ $? -ne 0 ]; then |
| 470 | echo $BINPATH/*_DSPMOLY*.bin is not exist. |
| 471 | echo Generate FDD load error! |
| 472 | ctrl_c |
| 473 | exit |
| 474 | fi |
| 475 | |
| 476 | gen_GFH_header SLT_FDD_LOAD |
| 477 | cp -f $BINPATH/cmdScript.bin $SLTPATH |
| 478 | if [ $? -ne 0 ]; then |
| 479 | echo Generate FDD load error! |
| 480 | ctrl_c |
| 481 | exit |
| 482 | fi |
| 483 | |
| 484 | backup_compile_files FDD |
| 485 | mv $MEMORYCONFIG.bak $MEMORYCONFIG |
| 486 | else |
| 487 | gen_GFH_header SLT_FDD_LOAD |
| 488 | |
| 489 | SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}"/cmdScript.bin" |
| 490 | if [ -f "$SLT_LOAD_PATH" ]; then |
| 491 | cp -f $SLT_LOAD_PATH $SLTPATH |
| 492 | else |
| 493 | echo $SLT_LOAD_PATH is not exist. |
| 494 | ctrl_c |
| 495 | exit |
| 496 | fi |
| 497 | SLT_LOAD_PATH=${SLT_LOAD_PATH%/*} |
| 498 | SLT_LOAD_PATH=$(ls $SLT_LOAD_PATH/*_DSPMOLY_*.bin) |
| 499 | if [ -f "$SLT_LOAD_PATH" ]; then |
| 500 | cp -f $SLT_LOAD_PATH $SLTPATH |
| 501 | else |
| 502 | echo $SLT_LOAD_PATH is not exist. |
| 503 | ctrl_c |
| 504 | exit |
| 505 | fi |
| 506 | |
| 507 | fi |
| 508 | } |
| 509 | |
| 510 | function gen_tdd { |
| 511 | gen_fileinfo SLT_TDD_LOAD |
| 512 | if [ $SLT_LOAD_PATH_CHANGED -eq 1 ]; then |
| 513 | cp $MEMORYCONFIG $MEMORYCONFIG.bak |
| 514 | chmod +w $MEMORYCONFIG |
| 515 | cp $SLT_NL_CONFIG $SLT_NL_CONFIG.bak |
| 516 | chmod +w $SLT_NL_CONFIG |
| 517 | |
| 518 | if [ -d $MTKREL ]; then |
| 519 | rm -r $MTKREL |
| 520 | fi |
| 521 | |
| 522 | cat $PROJFILE.bak \ |
| 523 | | sed -e "s/^IC_TEST_TYPE\s*=.*/IC_TEST_TYPE = MT6290_TDSCDMA_SLT/" \ |
| 524 | | sed -e "s/^SDS_SUPPORT\s*=.*/SDS_SUPPORT = FALSE/" \ |
| 525 | | sed -e "s/^HIF_USB30_SUPPORT\s*=.*/HIF_USB30_SUPPORT = FALSE/" \ |
| 526 | | sed -e "s/^HIF_USB_SUPPORT\s*=.*/HIF_USB_SUPPORT = FALSE/" \ |
| 527 | | sed -e "s/^# Common preprocessor definitions\s*/&\nCUSTOM_OPTION += __TDDSYS_SLT_FACTORY_BOOT__ /g"\ |
| 528 | > $PROJFILE |
| 529 | |
| 530 | cat $MEMORYCONFIG.bak \ |
| 531 | | sed -e 's/^#define\s*CS1_PART_NUMBER.*/#define CS1_PART_NUMBER '"$NANDFLASH"'/' \ |
| 532 | | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_SIZE.*/#define NAND_BOOTING_NAND_FS_SIZE 0x01B00000/' \ |
| 533 | | sed -e 's/^#define\s*NAND_BOOTING_NAND_FS_BASE_ADDRESS.*/#define NAND_BOOTING_NAND_FS_BASE_ADDRESS 0x04400000/' \ |
| 534 | > $MEMORYCONFIG |
| 535 | |
| 536 | ./m "$PROJECT_TDD" new |
| 537 | |
| 538 | gen_GFH_header SLT_TDD_LOAD |
| 539 | backup_compile_files TDD |
| 540 | |
| 541 | mv $MEMORYCONFIG.bak $MEMORYCONFIG |
| 542 | mv $SLT_NL_CONFIG.bak $SLT_NL_CONFIG |
| 543 | else |
| 544 | gen_GFH_header SLT_TDD_LOAD |
| 545 | fi |
| 546 | } |
| 547 | |
| 548 | function gen_cfg { |
| 549 | local CFGContent="" |
| 550 | local BLContent="" |
| 551 | local DSPContent="" |
| 552 | local load_idx="" |
| 553 | local i=0 |
| 554 | |
| 555 | for (( i=0; i<8; i++ )) |
| 556 | do |
| 557 | if [ $i -eq 7 ]; then |
| 558 | load_idx="PRIMARY_MAUI" |
| 559 | else |
| 560 | load_idx="SLT_TEST_LOAD_"$i |
| 561 | fi |
| 562 | for line in `cat $LOADPATCHFILE` |
| 563 | do |
| 564 | if [ "${line%=*}" = "$load_idx" ]; then |
| 565 | SLT_LOAD_NAME=${line#$load_idx=} |
| 566 | if [ "$SLT_LOAD_NAME" != "" ]; then |
| 567 | dispatch_attribute $SLT_LOAD_NAME |
| 568 | CFGContent=$CFGContent"\n - file: "$CHIP"_"$SLT_LOAD_ATTR_PARAM0 |
| 569 | fi |
| 570 | break |
| 571 | fi |
| 572 | done |
| 573 | done |
| 574 | |
| 575 | local DSPPATH=$(ls $SLTPATH/*_DSPMOLY_*.bin) |
| 576 | if [ -f "$DSPPATH" ]; then |
| 577 | DSPContent=" - file: "${DSPPATH##*/} |
| 578 | else |
| 579 | echo $SLTPATH/*_DSPMOLY_*.bin is not exist. |
| 580 | echo Generate CFG error! |
| 581 | ctrl_c |
| 582 | exit |
| 583 | fi |
| 584 | local BOOTLOADERPATH=$(ls $SLTPATH/*_BOOTLOADER_*.bin) |
| 585 | BLContent=" - file: "${BOOTLOADERPATH##*/} |
| 586 | |
| 587 | |
| 588 | SKIP_LOAD_IDX_CHK="TRUE" |
| 589 | gen_fileinfo PRIMARY_MAUI |
| 590 | if [ "$SLT_LOAD_PATH" = "." ]; then |
| 591 | echo Can not ignore PRIMARY_MAUI. |
| 592 | ctrl_c |
| 593 | exit |
| 594 | fi |
| 595 | |
| 596 | SKIP_LOAD_IDX_CHK="TRUE" |
| 597 | gen_fileinfo SLT_CFG_FILE |
| 598 | local val=$(egrep $BOARD_VER"_PCB01_MT6290_"$CHIP_VER"." $SLT_LOAD_PATH) |
| 599 | if [ -z "$val" ]; then |
| 600 | echo $SLT_LOAD_PATH is not match. |
| 601 | ctrl_c |
| 602 | exit |
| 603 | fi |
| 604 | cp -f $SLT_LOAD_PATH $SLTPATH/"$CHIP"_SLT.cfg |
| 605 | cat $SLTPATH/"$CHIP"_SLT.cfg \ |
| 606 | | sed -e "s/.*_BOOTLOADER_.*/$BLContent/" \ |
| 607 | | sed -e "s/.*"$BOARD_VER"_PCB01_MT6290_"$CHIP_VER".*/$CFGContent/" \ |
| 608 | | sed -e "s/.*_DSPMOLY_.*/$DSPContent/" \ |
| 609 | > $SLTPATH/"$CHIP"_SLT.cfg.mod |
| 610 | |
| 611 | mv $SLTPATH/"$CHIP"_SLT.cfg.mod $SLTPATH/"$CHIP"_SLT.cfg |
| 612 | if [ $? -ne 0 ]; then |
| 613 | echo Generate CFG error! |
| 614 | echo Please build MOLY FDD or TDD SLT load first. |
| 615 | ctrl_c |
| 616 | exit |
| 617 | fi |
| 618 | |
| 619 | if [ ! -f "$SLTPATH/cmdScript.bin" ]; then |
| 620 | SLT_LOAD_PATH=${SLT_LOAD_PATH%/*}/cmdScript.bin |
| 621 | cp -f $SLT_LOAD_PATH $SLTPATH |
| 622 | if [ $? -ne 0 ]; then |
| 623 | echo ${SLT_LOAD_PATH%/*}/cmdScript.bin is not exist. |
| 624 | echo Generate CFG error! |
| 625 | ctrl_c |
| 626 | exit |
| 627 | fi |
| 628 | fi |
| 629 | |
| 630 | } |
| 631 | |
| 632 | function usage { |
| 633 | echo "usage:" |
| 634 | echo " slt <chip> [module]" |
| 635 | echo "<chip>:" |
| 636 | echo " 6290" |
| 637 | echo " 6290m_[c/f]" |
| 638 | echo "[module]:" |
| 639 | echo " loader - build SLT loader" |
| 640 | echo " hvt - prepend GFH header for HVT binary" |
| 641 | echo " atest - build MOLY SLT atest" |
| 642 | echo " fdd - build MOLY SLT FDD normal load" |
| 643 | echo " tdd - build MOLY SLT TDD normal load" |
| 644 | echo " cfg - generate cfg for FlashTool download" |
| 645 | echo |
| 646 | echo "If not select any [module], all test load for SLT wiil be generated." |
| 647 | echo |
| 648 | } |
| 649 | |
| 650 | if [ -z "$1" ]; then |
| 651 | usage |
| 652 | exit |
| 653 | fi |
| 654 | |
| 655 | if [ "$1" = "6290" ] || [ "${1:0:5}" == "6290_" ]; then |
| 656 | CHIP=MT6290 |
| 657 | echo $CHIP |
| 658 | elif [ "$1" = "6290m" ] || [ "${1:0:6}" = "6290m_" ]; then |
| 659 | CHIP=MT6290M |
| 660 | echo $CHIP |
| 661 | else |
| 662 | echo Error argument |
| 663 | exit |
| 664 | fi |
| 665 | |
| 666 | LOADPATCHFILE=$LOADPATCHFILE'_'$1 |
| 667 | if [ ! -f "$LOADPATCHFILE" ]; then |
| 668 | echo $LOADPATCHFILE is not exist. |
| 669 | ctrl_c |
| 670 | exit |
| 671 | fi |
| 672 | for line in `cat $LOADPATCHFILE` |
| 673 | do |
| 674 | if [ "${line%=*}" = "SLT_CHECK_EFUSE" ]; then |
| 675 | SLT_CHECK_EFUSE=${line#SLT_CHECK_EFUSE=} |
| 676 | fi |
| 677 | if [ "${line%=*}" = "MOLY_ATEST_LIB_PATH" ]; then |
| 678 | MOLY_LIB_PATH=${line#MOLY_ATEST_LIB_PATH=} |
| 679 | fi |
| 680 | if [ "${line%=*}" = "PROJECT_LOADER" ]; then |
| 681 | PROJECT_LOADER=${line#PROJECT_LOADER=} |
| 682 | fi |
| 683 | if [ "${line%=*}" = "PROJECT_ATEST" ]; then |
| 684 | PROJECT_ATEST=${line#PROJECT_ATEST=} |
| 685 | fi |
| 686 | if [ "${line%=*}" = "PROJECT_SDIO" ]; then |
| 687 | PROJECT_SDIO=${line#PROJECT_SDIO=} |
| 688 | fi |
| 689 | if [ "${line%=*}" = "PROJECT_FDD" ]; then |
| 690 | PROJECT_FDD=${line#PROJECT_FDD=} |
| 691 | fi |
| 692 | if [ "${line%=*}" = "PROJECT_TDD" ]; then |
| 693 | PROJECT_TDD=${line#PROJECT_TDD=} |
| 694 | fi |
| 695 | if [ "${line%=*}" = "NANDFLASH" ]; then |
| 696 | NANDFLASH=${line#NANDFLASH=} |
| 697 | fi |
| 698 | done |
| 699 | |
| 700 | SLTPATH=build/${CHIP}_SLT |
| 701 | if [ ! -z "$SLT_CHECK_EFUSE" ]; then |
| 702 | SLTPATH=$SLTPATH"_"$SLT_CHECK_EFUSE |
| 703 | fi |
| 704 | |
| 705 | case "$2" in |
| 706 | "") |
| 707 | if [ -d $SLTPATH ]; then |
| 708 | rm -r $SLTPATH |
| 709 | mkdir -p $SLTPATH |
| 710 | else |
| 711 | mkdir -p $SLTPATH |
| 712 | fi |
| 713 | parsing_project_file $PROJECT_LOADER |
| 714 | gen_slt_loader |
| 715 | mv $PROJFILE.bak $PROJFILE |
| 716 | gen_hvt |
| 717 | parsing_project_file $PROJECT_ATEST |
| 718 | gen_atest |
| 719 | mv $PROJFILE.bak $PROJFILE |
| 720 | parsing_project_file $PROJECT_FDD |
| 721 | gen_fdd |
| 722 | mv $PROJFILE.bak $PROJFILE |
| 723 | parsing_project_file $PROJECT_TDD |
| 724 | gen_tdd |
| 725 | mv $PROJFILE.bak $PROJFILE |
| 726 | gen_cfg |
| 727 | ;; |
| 728 | loader) |
| 729 | parsing_project_file $PROJECT_LOADER |
| 730 | if [ ! -d $SLTPATH ]; then |
| 731 | mkdir -p $SLTPATH |
| 732 | fi |
| 733 | echo Generate SLT Loader... |
| 734 | gen_slt_loader |
| 735 | echo Generate SLT Finished! |
| 736 | ;; |
| 737 | hvt) |
| 738 | parsing_project_file $PROJECT_LOADER |
| 739 | if [ ! -d $SLTPATH ]; then |
| 740 | mkdir -p $SLTPATH |
| 741 | fi |
| 742 | echo Generate HVT... |
| 743 | gen_hvt |
| 744 | echo Generate HVT Finished! |
| 745 | ;; |
| 746 | atest) |
| 747 | parsing_project_file $PROJECT_ATEST |
| 748 | if [ ! -d $SLTPATH ]; then |
| 749 | mkdir -p $SLTPATH |
| 750 | fi |
| 751 | echo Generate MOLY ATEST... |
| 752 | gen_atest |
| 753 | echo Generate MOLY Finished! |
| 754 | ;; |
| 755 | fdd) |
| 756 | parsing_project_file $PROJECT_FDD |
| 757 | if [ ! -d $SLTPATH ]; then |
| 758 | mkdir -p $SLTPATH |
| 759 | fi |
| 760 | echo Generate MOLY FDD Normal Load... |
| 761 | gen_fdd |
| 762 | echo Generate MOLY FDD Normal Finished! |
| 763 | ;; |
| 764 | tdd) |
| 765 | parsing_project_file $PROJECT_TDD |
| 766 | if [ ! -d $SLTPATH ]; then |
| 767 | mkdir -p $SLTPATH |
| 768 | fi |
| 769 | echo Generate MOLY TDD Normal Load... |
| 770 | gen_tdd |
| 771 | echo Generate MOLY TDD Normal Finished! |
| 772 | ;; |
| 773 | cfg) |
| 774 | parsing_project_file $PROJECT_LOADER |
| 775 | if [ ! -d $SLTPATH ]; then |
| 776 | mkdir -p $SLTPATH |
| 777 | fi |
| 778 | echo Generate CFG File... |
| 779 | gen_cfg |
| 780 | echo Generate CFG Finished! |
| 781 | ;; |
| 782 | sdio) |
| 783 | parsing_project_file $PROJECT_SDIO |
| 784 | if [ ! -d $SLTPATH ]; then |
| 785 | mkdir -p $SLTPATH |
| 786 | fi |
| 787 | echo Generate SDIO File... |
| 788 | gen_sdio |
| 789 | echo Generate SDIO Finished! |
| 790 | ;; |
| 791 | msdc1) |
| 792 | parsing_project_file $PROJECT_LOADER |
| 793 | if [ ! -d $SLTPATH ]; then |
| 794 | mkdir -p $SLTPATH |
| 795 | fi |
| 796 | echo Generate MSDC1 File... |
| 797 | gen_msdc1 |
| 798 | echo Generate MSDC1 Finished! |
| 799 | ;; |
| 800 | *) |
| 801 | gen_GFH_header $2 |
| 802 | esac |
| 803 | |
| 804 | if [ -f "$PROJFILE.bak" ]; then |
| 805 | mv $PROJFILE.bak $PROJFILE |
| 806 | fi |
| 807 | |
| 808 | exit |