blob: 33104de091ffb54403523c60d54c5372774823aa [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#!/bin/sh
2
3BASE=../../../mcu
4MAKEFILE=make/"build.mak"
5OPTIONFILE=make/"Option.mak"
6ATESTMAKEFILE=make/module/driver/autotest/atest_drv.mak
7MTKREL=mtk_rel
8LABLEINI=label.ini
9PREPEND=tools/SLT/prepend_slt_gfh_file_info.pl
10MODIFY=tools/SLT/modify_slt_gfh_file_info.pl
11CONF=tools/SLT/fileinfo.conf
12SLTBL_C=service/sys_svc/bootloader_slt/inc/bl_slt_config.h
13SLT_NL_CONFIG=interface/service/config/middleWare_task_config.h
14LOADPATCHFILE=tools/SLT/config
15
16ctrl_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
52function 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
88function 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
119function 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
140function 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
214function 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
236function 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
248function 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
340function gen_hvt {
341 gen_GFH_header SLT_HVT_MD_LOAD
342 gen_GFH_header SLT_HVT_AP_LOAD
343}
344
345function 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
391function 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
440function gen_msdc1 {
441 gen_GFH_header SLT_MSDC1_LOAD
442}
443
444function 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
510function 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
548function 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
632function 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
650if [ -z "$1" ]; then
651 usage
652 exit
653fi
654
655if [ "$1" = "6290" ] || [ "${1:0:5}" == "6290_" ]; then
656 CHIP=MT6290
657 echo $CHIP
658elif [ "$1" = "6290m" ] || [ "${1:0:6}" = "6290m_" ]; then
659 CHIP=MT6290M
660 echo $CHIP
661else
662 echo Error argument
663 exit
664fi
665
666LOADPATCHFILE=$LOADPATCHFILE'_'$1
667if [ ! -f "$LOADPATCHFILE" ]; then
668 echo $LOADPATCHFILE is not exist.
669 ctrl_c
670 exit
671fi
672for line in `cat $LOADPATCHFILE`
673do
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
698done
699
700SLTPATH=build/${CHIP}_SLT
701if [ ! -z "$SLT_CHECK_EFUSE" ]; then
702 SLTPATH=$SLTPATH"_"$SLT_CHECK_EFUSE
703fi
704
705case "$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
802esac
803
804if [ -f "$PROJFILE.bak" ]; then
805 mv $PROJFILE.bak $PROJFILE
806fi
807
808exit