blob: 0678cb9c8718b296eeb7c9f4e62b777d180875e8 [file] [log] [blame]
Xiaobo Gu059502e2017-01-12 21:20:39 +08001#!/bin/bash
2#
3# author: xiaobo.gu@amlogic.com
4# 2016.09.28
5# 2016.12.01-2016.12.20 Update for bootloader repo
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +08006# 2017.05.20-2017.05.26 Update for txlx and ATF1.3
Xiaobo Gu059502e2017-01-12 21:20:39 +08007
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +08008# include compile check script
9source fip/check_compile.sh
xiaobo gue6c46862018-01-10 18:58:09 +080010source fip/variables.sh
11source fip/lib.sh
12source fip/build_bl2.sh
13source fip/build_bl30.sh
14source fip/build_bl31.sh
15source fip/build_bl32.sh
16source fip/build_bl33.sh
17source fip/build_bl40.sh
dongqing.li154e45e2021-11-22 07:47:38 +000018source fip/check_coverity.sh
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +080019
Bo Lv78837da2020-12-16 04:13:04 -050020function parse_bl33_global_config() {
21 local oldifs="$IFS"
22 IFS=$'\n'
23
24 BL33_GLOBAL_CONFIG=
25 for line in `cat ${SOURCE_FILE}`; do
26 # add any global configs which define in BL33 and need
27 # to used under bl2/bl2x/bl2e/bl31/....
28 if [[ "${line}" == "CONFIG_PXP_"* ]]; then
29 tmp=${line%=*} # delete =y
30 BL33_GLOBAL_CONFIG="${BL33_GLOBAL_CONFIG}"" -D""${tmp}"
31 fi
Tao Zeng68361e62021-01-06 17:29:40 +080032 if [[ "${line}" == "CONFIG_DDR_FULL_FW"* ]]; then
33 tmp=${line%=*} # delete =y
34 BL33_GLOBAL_CONFIG="${BL33_GLOBAL_CONFIG}"" -D""${tmp}"
35 fi
Bo Lv78837da2020-12-16 04:13:04 -050036 done
37 export BL33_GLOBAL_CONFIG
38 echo "==== BL33 GLOBAL CONFIG: ${BL33_GLOBAL_CONFIG} ==="
39 IFS="$oldifs"
40}
Xiaobo Gu059502e2017-01-12 21:20:39 +080041
xiaobo gue6c46862018-01-10 18:58:09 +080042function init_variable_early() {
43 # source uboot pre-build configs
44 if [ ! -e ${SOURCE_FILE} ]; then
45 echo "${SOURCE_FILE} doesn't exist!"
46 cd ${MAIN_FOLDER}
47 exit -1
48 else
49 source ${SOURCE_FILE} &> /dev/null # ignore warning/error
50 fi
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +080051
xiaobo gue6c46862018-01-10 18:58:09 +080052 CUR_SOC=${CONFIG_SYS_SOC}
Honglin Zhange358be42020-08-12 02:16:02 -040053 BL30_SELECT=${CONFIG_BL30_SELECT}
Xiaobo Gu059502e2017-01-12 21:20:39 +080054
xiaobo gue6c46862018-01-10 18:58:09 +080055 if [ "y" == "${CONFIG_NEED_BL32}" ]; then
56 BLX_NEEDFUL[3]="true"
57 fi
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +080058
Lawrence Mok0c82be32024-06-12 01:02:52 +000059 if [ -n "${CONFIG_AML_CS_SIGNING_SCHEME}" ]; then
60 export CS_SIGNING_SCHEME=${CONFIG_AML_CS_SIGNING_SCHEME}
61 fi
62 if [ -n "${CONFIG_AML_DV_SIGNING_SCHEME}" ]; then
63 export DV_SIGNING_SCHEME=${CONFIG_AML_DV_SIGNING_SCHEME}
64 fi
65
xiaobo gue6c46862018-01-10 18:58:09 +080066 # export variables
67 #export FIP_BUILD_FOLDER
68 #export CUR_SOC
Xiaobo Gu059502e2017-01-12 21:20:39 +080069
xiaobo gue6c46862018-01-10 18:58:09 +080070 export_variables
Xiaobo Gu059502e2017-01-12 21:20:39 +080071}
72
xiaobo gue6c46862018-01-10 18:58:09 +080073function init_variable_late() {
74 # after uboot build, source configs
xiaobo gua64f93c2018-07-31 21:27:43 +080075 local CONFIG_FILE_TMP="${MAIN_FOLDER}/autoconf"
76 local STR_INVALID="option"
77 if [ ! -e ${CONFIG_FILE} ]; then
78 echo "${CONFIG_FILE} doesn't exist!"
79 cd ${MAIN_FOLDER}
80 exit -1
81 else
82 # workaround for source file error
83 while read LINE
84 do
85 #echo $LINE
86 # ignore "*(option)*" lines
87 if [[ ${LINE} =~ ${STR_INVALID} ]]; then
88 echo "ignore: $LINE"
89 else
90 #echo "LINE: ${LINE}"
91 echo "$LINE" >> "${CONFIG_FILE_TMP}"
92 fi
93 done < ${CONFIG_FILE}
94 source "${CONFIG_FILE_TMP}" &> /dev/null
95 rm ${CONFIG_FILE_TMP}
96 fi
dongqing.lie538ef82022-08-24 15:11:31 +080097 if [ "y" == "${CONFIG_SUPPORT_CUSTOMER_BOARD}" ]; then
xiaobo gue6c46862018-01-10 18:58:09 +080098 BOARD_DIR="customer/board/${CONFIG_SYS_BOARD}"
99 else
100 BOARD_DIR="${CONFIG_BOARDDIR}"
101 fi
xiaobo gua64f93c2018-07-31 21:27:43 +0800102 export BOARD_DIR
Xiaobo Gu059502e2017-01-12 21:20:39 +0800103}
104
105function build_blx_src() {
xiaobo gue6c46862018-01-10 18:58:09 +0800106 # compile $name $src_folder $bin_folder $soc
107 local name=$1
108 local src_folder=$2
109 local bin_folder=$3
110 local soc=$4
111 #dbg "compile - name: ${name}, src_folder: ${src_folder}, bin_folder: ${bin_folder}, soc: ${soc}"
Bo Lv78837da2020-12-16 04:13:04 -0500112
xiaobo gu8a3907e2019-05-22 11:46:49 +0800113 if [ $name == ${BLX_NAME_GLB[0]} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800114 # bl2
115 build_bl2 $src_folder $bin_folder $soc
Honglin Zhang637c38b2020-06-28 02:16:39 -0400116 elif [ $name == ${BLX_NAME_GLB[5]} ]; then
117 # bl2e
118 build_bl2e $src_folder $bin_folder $soc
119 elif [ $name == ${BLX_NAME_GLB[6]} ]; then
120 # bl2x
121 build_bl2x $src_folder $bin_folder $soc
xiaobo gu8a3907e2019-05-22 11:46:49 +0800122 elif [ $name == ${BLX_NAME_GLB[1]} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800123 # bl30
124 build_bl30 $src_folder $bin_folder $soc
xiaobo gu8a3907e2019-05-22 11:46:49 +0800125 elif [ $name == ${BLX_NAME_GLB[2]} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800126 # bl31
127 # some soc use v1.3
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800128 # some soc use v2.7
129 local version
xiaobo gue6c46862018-01-10 18:58:09 +0800130 check_bl31_ver $soc
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800131 version=$?
132 #echo "switch_bl31 version=${version}"
133
134 if [ ${version} == 2 ]; then
Meng yue91d80d2023-03-08 10:26:21 +0800135 echo "check bl31 ver: use v2.7"
136 build_bl31_v2_7 $src_folder $bin_folder $soc
benlong.zhou8ecb5ca2023-01-28 19:32:15 +0800137 elif [ ${version} == 1 ]; then
138 echo "check bl31 ver: use v1.3"
139 build_bl31_v1_3 $src_folder $bin_folder $soc
140 else
141 echo "check bl31 ver: use v1.0"
142 build_bl31 $src_folder $bin_folder $soc
Honglin Zhang637c38b2020-06-28 02:16:39 -0400143 fi
xiaobo gu8a3907e2019-05-22 11:46:49 +0800144 elif [ $name == ${BLX_NAME_GLB[3]} ]; then
xiaobo gue8bf44f2019-03-18 14:23:36 +0800145 # control flow for jenkins patchbuild
146 if [ "$BUILD_TYPE" != "AOSP" ]; then
147 # bl32
148 if [ "y" == "${CONFIG_NEED_BL32}" ]; then
149 build_bl32 $src_folder $bin_folder $soc
150 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800151 fi
152 fi
Xiaobo Gu059502e2017-01-12 21:20:39 +0800153}
154
155function build_blx() {
xiaobo gue6c46862018-01-10 18:58:09 +0800156 # build each blx
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +0800157
xiaobo gue6c46862018-01-10 18:58:09 +0800158 # switch bl31 version
159 switch_bl31 ${CUR_SOC}
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +0800160
xiaobo gue6c46862018-01-10 18:58:09 +0800161 # get version of each blx
162 get_versions
Xiaobo Gu9dd3f3f2017-05-26 17:58:57 +0800163
Bo Lv78837da2020-12-16 04:13:04 -0500164 # parse bl33 global configs, so BL33 config in .config/config.h
165 # can be used for BL2/2e/2x/31...
166 parse_bl33_global_config $@
167
xiaobo gue6c46862018-01-10 18:58:09 +0800168 # build loop
169 for loop in ${!BLX_NAME[@]}; do
Honglin Zhang805bd102020-02-14 18:23:23 +0800170 dbg "BIN_PATH[${loop}]: ${BIN_PATH[$loop]}"
171 if [ "null" == ${BIN_PATH[$loop]} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800172 get_blx_bin ${loop}
Honglin Zhang805bd102020-02-14 18:23:23 +0800173 elif [ "source" == ${BIN_PATH[$loop]} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800174 dbg "Build blx source code..."
Honglin Zhang805bd102020-02-14 18:23:23 +0800175 build_blx_src ${BLX_NAME[$loop]} ${BLX_SRC_FOLDER[$loop]} ${FIP_BUILD_FOLDER} ${CUR_SOC}
xiaobo gue6c46862018-01-10 18:58:09 +0800176 else
Honglin Zhang805bd102020-02-14 18:23:23 +0800177 if [ ! -e ${BIN_PATH[$loop]} ]; then
178 echo "Error: ${BIN_PATH[$loop]} doesn't exist... abort"
xiaobo gue6c46862018-01-10 18:58:09 +0800179 exit -1
180 else
Honglin Zhanga5041212020-03-05 21:11:31 +0800181 if [ "y" == "${CONFIG_FIP_IMG_SUPPORT}" ] && \
182 [ -n "${BLX_IMG_NAME[$loop]}" ] && \
183 [ "NULL" != "${BLX_IMG_NAME[$loop]}" ]; then
184 cp ${BIN_PATH[$loop]} ${FIP_BUILD_FOLDER}/${BLX_IMG_NAME[$loop]} -f
Zhongfu Luoa1e540c2020-07-17 15:44:37 +0800185 elif [[ -n "${BLX_IMG_NAME[$loop]}" && "NULL" != "${BLX_BIN_NAME[$loop]}" ]]; then
Honglin Zhanga5041212020-03-05 21:11:31 +0800186 cp ${BIN_PATH[$loop]} ${FIP_BUILD_FOLDER}/${BLX_BIN_NAME[$loop]} -f
187 else
188 cp ${BIN_PATH[$loop]} ${FIP_BUILD_FOLDER} -f
189 fi
190
Honglin Zhang805bd102020-02-14 18:23:23 +0800191 echo "Get ${BLX_NAME[$loop]} from ${BIN_PATH[$loop]}... done"
192 fi
193 fi
194
195 # start to check the blx firmware
196 if [ "bl32" == "${BLX_NAME[$loop]}" ]; then
Honglin Zhanga5041212020-03-05 21:11:31 +0800197 # no bl32/bin are exported for users
Honglin Zhang805bd102020-02-14 18:23:23 +0800198 check_bypass=y
199 else
200 check_bypass=n
201 fi
202
Zhongfu Luo3a6e5342020-12-27 13:11:54 +0800203 if [ "$ADVANCED_BOOTLOADER" == "1" ]; then
Zhongfu Luo7bd99c92020-07-14 19:37:52 +0800204 check_bypass=y
205 fi
206
Honglin Zhang805bd102020-02-14 18:23:23 +0800207 if [ "y" != "${check_bypass}" ]; then
208 if [ "NULL" != "${BLX_BIN_NAME[$loop]}" ] && \
Honglin Zhanga5041212020-03-05 21:11:31 +0800209 [ -n "${BLX_BIN_NAME[$loop]}" ] && \
Honglin Zhang0b81ed72020-03-07 10:38:35 +0800210 [ "NULL" == "${BLX_IMG_NAME[$loop]}" ] && \
Honglin Zhang805bd102020-02-14 18:23:23 +0800211 [ ! -f ${FIP_BUILD_FOLDER}/${BLX_BIN_NAME[$loop]} ]; then
Honglin Zhanga5041212020-03-05 21:11:31 +0800212 echo "Error ${BLX_NAME[$loop]}: ${FIP_BUILD_FOLDER}/${BLX_BIN_NAME[$loop]} doesn't exit... abort"
Honglin Zhang805bd102020-02-14 18:23:23 +0800213 exit -1
214 fi
215 if [ "y" == "${CONFIG_FIP_IMG_SUPPORT}" ] && \
216 [ -n "${BLX_IMG_NAME[$loop]}" ] && \
217 [ "NULL" != "${BLX_IMG_NAME[$loop]}" ] && \
218 [ ! -f ${FIP_BUILD_FOLDER}/${BLX_IMG_NAME[$loop]} ]; then
Honglin Zhanga5041212020-03-05 21:11:31 +0800219 echo "Error ${BLX_NAME[$loop]}: ${FIP_BUILD_FOLDER}/${BLX_IMG_NAME[$loop]} doesn't exit... abort"
Honglin Zhang805bd102020-02-14 18:23:23 +0800220 exit -1
xiaobo gue6c46862018-01-10 18:58:09 +0800221 fi
222 fi
223 done
224 return
Xiaobo Gu059502e2017-01-12 21:20:39 +0800225}
226
227copy_bootloader() {
xiaobo gue6c46862018-01-10 18:58:09 +0800228 mkdir -p ${BUILD_FOLDER}
Haixiang Baof008dc12019-05-23 18:47:15 +0800229 cp ${FIP_BUILD_FOLDER}u-boot.bin* ${BUILD_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +0800230 if [ "y" == "${CONFIG_AML_CRYPTO_IMG}" ]; then
231 cp ${FIP_BUILD_FOLDER}boot.img.encrypt ${BUILD_FOLDER}boot.img.encrypt
232 fi
dongqing.lic6275642021-12-17 19:15:52 +0800233
234 if [ ! -z ${CONFIG_CHIPID_SUPPORT} ]; then
235 mv ${BUILD_FOLDER}/u-boot.bin.signed ${BUILD_FOLDER}/u-boot.bin.${CONFIG_RAMDUMP_CHIPID}.signed
236 mv ${BUILD_FOLDER}/u-boot.bin.sd.bin.signed ${BUILD_FOLDER}/u-boot.bin.${CONFIG_RAMDUMP_CHIPID}.sd.bin.signed
237 mv ${BUILD_FOLDER}/u-boot.bin.usb.signed ${BUILD_FOLDER}/u-boot.bin.${CONFIG_RAMDUMP_CHIPID}.usb.signed
238 fi
Xiaobo Gu059502e2017-01-12 21:20:39 +0800239}
240
241function update_bin_path() {
xiaobo gu8a3907e2019-05-22 11:46:49 +0800242 for loop in ${!BLX_NAME[@]}; do
243 if [ "${BLX_NAME[$loop]}" == "${BLX_NAME_GLB[$1]}" ]; then
Honglin Zhangcd8a9fc2019-11-22 17:52:55 +0800244 dbg "Update BIN_PATH[$loop]=$2"
xiaobo gu8a3907e2019-05-22 11:46:49 +0800245 BIN_PATH[$loop]=$2
Honglin Zhangcd8a9fc2019-11-22 17:52:55 +0800246 break
xiaobo gu8a3907e2019-05-22 11:46:49 +0800247 fi
248 done
249}
Xiaobo Gu059502e2017-01-12 21:20:39 +0800250
251function clean() {
xiaobo gue6c46862018-01-10 18:58:09 +0800252 echo "Clean up"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800253 if [ -e ${BL33_PATH1} ]; then
254 cd ${MAIN_FOLDER}
255 cd ${BL33_PATH1}
256 make distclean
257 fi
258 if [ -e ${BL33_PATH2} ]; then
259 cd ${MAIN_FOLDER}
260 cd ${BL33_PATH2}
261 make distclean
262 fi
Bo Lv26b21672023-01-16 01:50:15 +0000263 if [ -e ${BL33_PATH3} ]; then
264 cd ${MAIN_FOLDER}
265 cd ${BL33_PATH3}
266 make distclean
267 fi
Bo Lv9a448972024-11-29 17:10:12 +0800268
269 if [ -e ${BL33_PATH4} ]; then
270 cd ${MAIN_FOLDER}
271 cd ${BL33_PATH4}
272 make distclean
273 fi
274
xiaobo gue6c46862018-01-10 18:58:09 +0800275 cd ${MAIN_FOLDER}
276 rm ${FIP_BUILD_FOLDER} -rf
xiaobo gu3ce64072018-03-06 17:20:44 +0800277 rm ${BUILD_FOLDER}/* -rf
Haixiang Baof008dc12019-05-23 18:47:15 +0800278 mkdir -p ${BUILD_FOLDER}
xiaobo gue6c46862018-01-10 18:58:09 +0800279 return
Xiaobo Gu059502e2017-01-12 21:20:39 +0800280}
281
282function build() {
xiaobo gue6c46862018-01-10 18:58:09 +0800283 # *************************************************
284 # IMPORTANT!!!!
285 # don't change sequence of following function call
286 # *************************************************
287 clean
288
289 # pre-build, get .config defines
Cheng Wang23dcdb062022-02-25 15:33:03 +0800290 if [ ! $BOARD_COMPILE_HDMITX_ONLY ]; then
Cheng Wang2a16c4af2023-11-16 20:07:56 +0800291 echo "export BOARD_COMPILE_HDMITX_ONLY=null"
292 export BOARD_COMPILE_HDMITX_ONLY=null
293 fi
Cheng Wang2267479a2024-11-26 14:07:26 +0800294 if [ ! $BOARD_KERNEL_VERSION]; then
295 echo "export BOARD_KERNEL_VERSION=null"
296 export BOARD_KERNEL_VERSION=null
297 fi
Cheng Wang2a16c4af2023-11-16 20:07:56 +0800298 if [ ! $BOARD_DISPLAY_PIPELINE ]; then
299 echo "export BOARD_DISPLAY_PIPELINE=null"
300 export BOARD_DISPLAY_PIPELINE=null
Cheng Wang23dcdb062022-02-25 15:33:03 +0800301 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800302 pre_build_uboot $@
303
304 # variable init depends on uboot .config
305 init_variable_early $@
306
307 # must source under main function, all sub function can use these variables
308 # but if source in sub-function, only sub-function(or sub-sub..) can use them
309 source ${FIP_FOLDER}${CUR_SOC}/variable_soc.sh
310
Honglin Zhang694f5342019-12-09 14:54:40 +0800311 # compile fip tools for ddr_parse and map_tool
312 prepare_tools
313
xiaobo gue6c46862018-01-10 18:58:09 +0800314 # source soc package script
315 source ${FIP_FOLDER}${CUR_SOC}/build.sh
316
317 # update bin path, use bin.git or user defined or source code
318 bin_path_parser $@
xiaobo gude8a46a2018-03-05 21:41:54 +0800319 #bin_path_update $@
xiaobo gue6c46862018-01-10 18:58:09 +0800320
321 # build bl33/bl301..etc
Liang Ji51eee082019-05-20 14:01:24 +0800322 if [ ! $CONFIG_SYSTEM_AS_ROOT ]; then
Xindong Xu33eda2d2018-09-25 18:52:38 +0800323 CONFIG_SYSTEM_AS_ROOT=null
324 fi
Liang Ji51eee082019-05-20 14:01:24 +0800325 if [ ! $CONFIG_AVB2 ]; then
Xindong Xu33eda2d2018-09-25 18:52:38 +0800326 CONFIG_AVB2=null
327 fi
ruixuan.li68468212023-05-10 15:25:08 +0800328 if [ ! $CONFIG_AML_GPT ]; then
329 CONFIG_AML_GPT=null
330 fi
Xindong Xu9cf4afc2020-07-24 17:10:21 +0800331 if [ ! $CONFIG_CMD_BOOTCTOL_VAB ]; then
332 CONFIG_CMD_BOOTCTOL_VAB=null
Xindong Xua75ab9b2020-05-25 15:54:01 +0800333 fi
Xindong Xuf010cc32022-05-27 11:04:43 +0800334 if [ ! $CONFIG_FASTBOOT_WRITING_CMD ]; then
335 CONFIG_FASTBOOT_WRITING_CMD=null
336 fi
Matthew Shyu9cf81ee2022-08-30 00:09:36 -0700337 if [ ! $CONFIG_AVB2_RECOVERY ]; then
338 CONFIG_AVB2_RECOVERY=null
339 fi
hao.qi60f37a22022-10-08 16:41:29 +0800340 if [ ! $CONFIG_TESTKEY ]; then
341 CONFIG_TESTKEY=null
342 fi
ruixuan.li68468212023-05-10 15:25:08 +0800343
344 build_uboot ${CONFIG_SYSTEM_AS_ROOT} ${CONFIG_AVB2} ${CONFIG_CMD_BOOTCTOL_VAB} ${CONFIG_FASTBOOT_WRITING_CMD} ${CONFIG_AVB2_RECOVERY} ${CONFIG_TESTKEY} ${CONFIG_AB_UPDATE} ${CONFIG_AML_GPT}
xiaobo gue6c46862018-01-10 18:58:09 +0800345
346 # source other configs after uboot compile
347 init_variable_late
348
349 # bl2/bl30/bl31..etc, build or copy from bin.git
350 build_blx $@
351
ziting.xian530f0ac2024-09-13 10:46:37 +0800352 if [[ "1" == "${CONFIG_NASC_NAGRA_TIER_1}" || "y" == "${CONFIG_ZAPPER_IRDETO_LOADER_V5}" ]]; then
qi.wange123e7e2022-06-24 18:39:17 +0800353 # combine bl2f.bin with bl33(uboot)
354 combine_bl2f_with_bl33
355 fi
356
xiaobo gue6c46862018-01-10 18:58:09 +0800357 # cp bl33(uboot)
358 copy_bl33
359
360 # cp other firmwares(soc related)
361 copy_other_soc
362
Zhongfu Luo6c2587f2019-05-15 16:27:50 +0800363 # make build directory
364 mkdir -p ${BUILD_FOLDER}
365
xiaobo gue6c46862018-01-10 18:58:09 +0800366 # package final bootloader
367 package
368
Zhongfu Luofd0ea3e2018-11-30 14:15:16 +0800369 if [ "y" != "${CONFIG_AML_SIGNED_UBOOT}" ]; then
370 # copy bootloader to main folder
371 copy_bootloader
372 fi
Xiaobo Gu059502e2017-01-12 21:20:39 +0800373}
374
375function usage() {
376 cat << EOF
377 Usage:
378 $(basename $0) --help
379
xiaobo gue6c46862018-01-10 18:58:09 +0800380 Bootloader build script.
Xiaobo Gu059502e2017-01-12 21:20:39 +0800381
382 command list:
Xiaobo Gu059502e2017-01-12 21:20:39 +0800383 1. build default uboot:
384 ./$(basename $0) [config_name]
Xiaobo Gu059502e2017-01-12 21:20:39 +0800385
xiaobo gue6c46862018-01-10 18:58:09 +0800386 2. build uboot with specified bl[x].bin
387 ./$(basename $0) [config_name] --bl[x] [path]
Xiaobo Gu059502e2017-01-12 21:20:39 +0800388
xiaobo gue6c46862018-01-10 18:58:09 +0800389 3. build uboot with bl[x]/src source code
Xiaobo Gu059502e2017-01-12 21:20:39 +0800390 ./$(basename $0) [config_name] --update-bl[x]
Xiaobo Gu059502e2017-01-12 21:20:39 +0800391
xiaobo gue6c46862018-01-10 18:58:09 +0800392 4. print config list
393 ./$(basename $0) --config
394
395 5. check compile status with filter(optional)
396 ./$(basename $0) --check-compile [filter]
397
xiaobo gu6368ebe2018-03-29 21:49:25 +0800398 6. update aml ddr fw by source code (for g12a and later use)
399 ./$(basename $0) [config_name] --update-bl2 --ddrfw
400
dongqing.li5849ac72021-11-24 10:49:26 +0000401 7. build uboot with bl[x]/src source code, and run coverity defect
dongqing.li594791b2022-09-30 11:18:01 +0800402 see help info: ./fip/check_coverity.sh -h
xiaobo gue6c46862018-01-10 18:58:09 +0800403
dongqing.lib66a11a2023-03-27 17:18:43 +0800404 8. build uboot with disable full ramdump(enable by default)
405 ./$(basename $0) [config_name] --disable-bl33z
dongqing.lic6275642021-12-17 19:15:52 +0800406
xiaobo gue6c46862018-01-10 18:58:09 +0800407 Example:
408 1) ./$(basename $0) gxb_p200_v1
409 build gxb_p200_v1 config
410
411 2) ./$(basename $0) gxb_p200_v1 --bl2 fip/bl2.bin --bl30 fip/bl30.bin
412 build gxb_p200_v1 with specified bl2.bin and bl30.bin
413
414 3) ./$(basename $0) gxb_p200_v1 --update-bl31 --update-bl2
415 build gxb_p200_v1 with bl31/bl2 source code
416
417 4) ./$(basename $0) --config
418 print config list
419
420 5) ./$(basename $0) --check-compile skt
421 check all skt board compile status
422
423 Remark:
424 bl[x].bin/img priority:
425 1. uboot will use binaries under bl[x]/bin/ folder by default, bl[x] version specified in .repo/manifest.xml
426 2. if you want use your own bl[x].bin, specify path by add "--bl[x] [path]" parameter
427 3. if you want use bl[x].bin by compile source code, please add "--update-bl[x]" parameter
428
Xiaobo Gu059502e2017-01-12 21:20:39 +0800429
430EOF
431 exit 1
432}
433
xiaobo gue6c46862018-01-10 18:58:09 +0800434function print_config() {
435 cat << EOF
436 Usable configs:
437`uboot_config_list`
438EOF
439 exit 1
440}
441
Xiaobo Gu059502e2017-01-12 21:20:39 +0800442function parser() {
xiaobo gue6c46862018-01-10 18:58:09 +0800443 local i=0
444 local argv=()
445 for arg in "$@" ; do
446 argv[$i]="$arg"
447 i=$((i + 1))
448 done
449 i=0
450 while [ $i -lt $# ]; do
451 arg="${argv[$i]}"
xiaobo gu3ce64072018-03-06 17:20:44 +0800452 i=$((i + 1)) # must place here
xiaobo gue6c46862018-01-10 18:58:09 +0800453 case "$arg" in
wenbo.wanga7e45942023-09-27 19:39:50 +0800454 --h|--help)
xiaobo gue6c46862018-01-10 18:58:09 +0800455 usage
456 exit ;;
457 --config)
458 print_config
xiaobo gu3ce64072018-03-06 17:20:44 +0800459 return ;;
Zhongfu Luo019ee832020-11-13 15:56:33 +0800460 # SCRIPT_ARG_CHIPSET_VARIANT is used in source variable
461 # soc, so should add first
462 --chip-varient)
463 SCRIPT_ARG_CHIPSET_VARIANT="${argv[$i]}"
464 export SCRIPT_ARG_CHIPSET_VARIANT
465 continue ;;
xiaobo gue6c46862018-01-10 18:58:09 +0800466 --check-compile)
xiaobo gu66f95292018-01-11 13:38:13 +0800467 check_compile "${argv[@]:$((i))}"
xiaobo gue6c46862018-01-10 18:58:09 +0800468 exit ;;
dongqing.li154e45e2021-11-22 07:47:38 +0000469 --cov|--cov-high)
dongqing.li5849ac72021-11-24 10:49:26 +0000470 PATTERN_PATH="${argv[$i]}"
471 echo "PATTERN_PATH = ${PATTERN_PATH}"
472 export PATTERN_PATH
dongqing.li154e45e2021-11-22 07:47:38 +0000473 check_coverity $@
474 exit ;;
dongqing.lidf6de9c2022-01-03 22:34:01 +0800475 --enable-ramdump)
476 CONFIG_MDUMP_COMPRESS=1
477 export CONFIG_MDUMP_COMPRESS
478 echo "SET CONFIG: CONFIG_MDUMP_COMPRESS"
479 continue ;;
Tao Zeng118bd252022-11-04 13:53:15 +0800480 --uasan)
481 UASAN_DDR_SIZE="${argv[$i]}"
482 if [ -z "${UASAN_DDR_SIZE}" ]; then
483 echo "Must set UASAN_DDR_SIZE when compile uasan"
484 exit -1;
485 fi
486 if [ "${UASAN_DDR_SIZE}" -gt 0 ] 2>/dev/null; then
487 echo "==== UASAN_DDR_SIZE ${UASAN_DDR_SIZE} ===="
488 else
489 echo "UASAN_DDR_SIZE must be a number"
490 exit -1;
491 fi
492 CONFIG_AML_UASAN=1
493 echo "==== BL33 BUILD ENALBED CONFIG_AML_UASAN ===="
494 export CONFIG_AML_UASAN=1
495 export UASAN_DDR_SIZE
496 continue ;;
Tao Zeng05f75862024-02-02 10:12:03 +0800497 # this option can be used to control log output of each blx
498 # eg: enable silent in bl33 when enable this option
499 --noverbose)
500 echo ~~~~~~ noverbose build ~~~~~~
501 CONFIG_NOVERBOSE_BUILD=1
502 export CONFIG_NOVERBOSE_BUILD=1
503 continue;;
dongqing.li030579d2022-04-11 10:38:27 +0800504 --enable-bl33z)
505 CONFIG_SUPPORT_BL33Z=1
506 export CONFIG_SUPPORT_BL33Z
dongqing.lib66a11a2023-03-27 17:18:43 +0800507 echo "SET CONFIG: CONFIG_SUPPORT_BL33Z=1"
508 continue ;;
509 --disable-bl33z)
510 CONFIG_SUPPORT_BL33Z=0
511 export CONFIG_SUPPORT_BL33Z
512 echo "SET CONFIG: CONFIG_SUPPORT_BL33Z=0"
dongqing.li030579d2022-04-11 10:38:27 +0800513 continue ;;
dongqing.li1f3354f2022-07-26 15:48:52 +0800514 --compress-bl2e)
515 CONFIG_COMPRESS_BL2E=1
516 export CONFIG_COMPRESS_BL2E
517 echo "SET CONFIG: CONFIG_COMPRESS_BL2E"
518 continue ;;
dongqing.lic6275642021-12-17 19:15:52 +0800519 --chipid)
520 CONFIG_CHIPID_SUPPORT=1
521 export CONFIG_CHIPID_SUPPORT
522 CONFIG_RAMDUMP_CHIPID="${argv[$i]}"
523 export CONFIG_RAMDUMP_CHIPID
dongqing.lidf6de9c2022-01-03 22:34:01 +0800524 echo "SET CHIP ID: ${CONFIG_RAMDUMP_CHIPID}"
dongqing.lic6275642021-12-17 19:15:52 +0800525 continue ;;
Bo Lv26b21672023-01-16 01:50:15 +0000526 --build-version)
527 CONFIG_BUILD_VERSION="${argv[$i]}"
528 if [ -z "${CONFIG_BUILD_VERSION}" ]; then
529 echo "need choice 2015/2019/2023 version"
530 fi
531 CONFIG_CHOICE_BUILD=1
532 export CONFIG_CHOICE_BUILD
533 export CONFIG_BUILD_VERSION
Bo Lv0edfe512022-10-14 21:08:09 +0800534 continue ;;
Bo Lvcefaba42022-11-30 14:36:57 +0800535 --ab-update)
536 CONFIG_AB_UPDATE=y
537 echo "export CONFIG_AB_UPDATE"
538 export CONFIG_AB_UPDATE=y
539 continue ;;
Cheng Wang2e87f4112023-07-06 15:31:52 +0800540 --hdmitx-only)
541 echo "export BOARD_COMPILE_HDMITX_ONLY=true"
542 export BOARD_COMPILE_HDMITX_ONLY=true
543 continue ;;
Cheng Wang2a16c4af2023-11-16 20:07:56 +0800544 --display-pipeline)
545 export BOARD_DISPLAY_PIPELINE="${argv[$i]}"
546 echo "export BOARD_DISPLAY_PIPELINE="${argv[$i]}""
547 continue ;;
Cheng Wang2267479a2024-11-26 14:07:26 +0800548 --kernel-version)
549 export BOARD_KERNEL_VERSION="${argv[$i]}"
550 echo "export BOARD_KERNEL_VERSION="${argv[$i]}""
551 continue ;;
Meng yuec57d862024-04-30 11:23:02 +0800552 --ipc-ddr-size)
553 CONFIG_IPC_DDR_SIZE="${argv[$i]}"
554 export CONFIG_IPC_DDR_SIZE
555 continue ;;
556 --ipc-tee-type)
557 CONFIG_TEE_TYPE="${argv[$i]}"
558 export CONFIG_TEE_TYPE
559 continue ;;
Meng yub5356cb2024-10-17 14:43:10 +0800560 --ddrfip-indep)
561 echo ~~~~~~ ddrfip independent ~~~~~~
562 CONFIG_DDRFIP_INDEP=1
563 export CONFIG_DDRFIP_INDEP
564 continue ;;
wenbo.wanga7e45942023-09-27 19:39:50 +0800565 --clean|--distclean)
xiaobo gue6c46862018-01-10 18:58:09 +0800566 clean
567 exit ;;
568 *)
wenbo.wanga7e45942023-09-27 19:39:50 +0800569 local correct_para=0
570 local sub_arg=${arg:0:2}
571 if [ "$sub_arg" == "--" ]; then
572 for arg_loop in ${COMPILE_PARA_LIST[@]}; do
573 if [ "$arg" == "$arg_loop" ]; then
574 correct_para=1
575 break
576 fi
577 done
578 if [ "$correct_para" == "0" ]; then
579 echo "$arg is an invalid parameter!!!"
580 exit 1
581 fi
582 fi ;;
xiaobo gue6c46862018-01-10 18:58:09 +0800583 esac
584 done
dongqing.lib66a11a2023-03-27 17:18:43 +0800585
586 if [ -z $CONFIG_SUPPORT_BL33Z ]; then
587 CONFIG_SUPPORT_BL33Z=1
588 export CONFIG_SUPPORT_BL33Z
589 echo "By default, SET CONFIG_SUPPORT_BL33Z=1"
590 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800591}
592
xiaobo gude8a46a2018-03-05 21:41:54 +0800593function bin_path_update() {
594 # overwrite path in case some git repository doesn't exist
595 for loop in ${!BLX_BIN_FOLDER[@]}; do
596 if [ -ne ${BLX_BIN_FOLDER[$loop]} ]; then
597 dbg "BLX_BIN_FOLDER[$loop] doesn't exist, use src code"
598 update_bin_path $loop "source"
599 fi
600 done
601
602 for loop in ${!BLX_SRC_FOLDER[@]}; do
603 echo ""
604 done
605}
606
xiaobo gue6c46862018-01-10 18:58:09 +0800607function bin_path_parser() {
608 local i=0
609 local argv=()
610 for arg in "$@" ; do
611 argv[$i]="$arg"
612 i=$((i + 1))
613 done
614 i=0
xiaobo gu6368ebe2018-03-29 21:49:25 +0800615 # ddr fw define, co-work with bl2 build script
616 export CONFIG_DDR_FW
xiaobo gue6c46862018-01-10 18:58:09 +0800617 while [ $i -lt $# ]; do
618 arg="${argv[$i]}"
619 i=$((i + 1)) # must pleace here
620 case "$arg" in
621 --bl2)
wenbo.wanga7e45942023-09-27 19:39:50 +0800622 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
623 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
624 exit 1
625 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800626 update_bin_path 0 "${argv[@]:$((i))}"
627 continue ;;
Honglin Zhang637c38b2020-06-28 02:16:39 -0400628 --bl2e)
wenbo.wanga7e45942023-09-27 19:39:50 +0800629 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
630 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
631 exit 1
632 fi
Honglin Zhang637c38b2020-06-28 02:16:39 -0400633 update_bin_path 5 "${argv[@]:$((i))}"
634 continue ;;
ziting.xianaa178cb2024-11-26 20:40:02 +0800635 --bl2e-usb)
636 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
637 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
638 exit 1
639 fi
640
641 BL2E_USB_BIN_FIXED_PATH=${argv[@]:$((i))}
642 BL2E_USB_BIN_FIXED_PATH=${BL2E_USB_BIN_FIXED_PATH%%--*}
643
644 BIN_PATH[3]=${BL2E_USB_BIN_FIXED_PATH}
645 continue ;;
Tao Zeng73e504b2021-07-13 12:29:08 +0800646 --bl2e-size)
647 BL2E_PAYLOAD_SIZE="${argv[i]}"
648 export BL2E_PAYLOAD_SIZE
649 continue ;;
Honglin Zhang637c38b2020-06-28 02:16:39 -0400650 --bl2x)
wenbo.wanga7e45942023-09-27 19:39:50 +0800651 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
652 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
653 exit 1
654 fi
Honglin Zhang637c38b2020-06-28 02:16:39 -0400655 update_bin_path 6 "${argv[@]:$((i))}"
656 continue ;;
caihua.zhaofc017de2024-05-14 19:57:39 +0800657 --bl2f)
658 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
659 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
660 exit 1
661 fi
662
663 BL2F_BIN_FIXED_PATH=${argv[@]:$((i))}
ziting.xian530f0ac2024-09-13 10:46:37 +0800664 BL2F_BIN_FIXED_PATH=${BL2F_BIN_FIXED_PATH%%--*}
caihua.zhaofc017de2024-05-14 19:57:39 +0800665 export BL2F_BIN_FIXED_PATH
666 continue ;;
xiaobo gue6c46862018-01-10 18:58:09 +0800667 --bl30)
wenbo.wanga7e45942023-09-27 19:39:50 +0800668 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
669 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
670 exit 1
671 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800672 update_bin_path 1 "${argv[@]:$((i))}"
673 continue ;;
674 --bl31)
wenbo.wanga7e45942023-09-27 19:39:50 +0800675 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
676 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
677 exit 1
678 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800679 update_bin_path 2 "${argv[@]:$((i))}"
680 continue ;;
681 --bl32)
wenbo.wanga7e45942023-09-27 19:39:50 +0800682 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
683 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
684 exit 1
685 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800686 update_bin_path 3 "${argv[@]:$((i))}"
687 continue ;;
Honglin Zhang637c38b2020-06-28 02:16:39 -0400688 --bl40)
wenbo.wanga7e45942023-09-27 19:39:50 +0800689 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
690 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
691 exit 1
692 fi
Zhongfu Luo3e54c6f2020-02-15 21:30:50 +0800693 update_bin_path 4 "${argv[@]:$((i))}"
694 continue ;;
Tao Zeng68361e62021-01-06 17:29:40 +0800695 --ddr-fip)
wenbo.wanga7e45942023-09-27 19:39:50 +0800696 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
697 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
698 exit 1
699 fi
Tao Zeng68361e62021-01-06 17:29:40 +0800700 DDR_FIP_EXTERN_PATH="${argv[@]:$((i))}"
701 export DDR_FIP_EXTERN_PATH
702 continue ;;
Honglin Zhang637c38b2020-06-28 02:16:39 -0400703 --sign-bl40)
wenbo.wanga7e45942023-09-27 19:39:50 +0800704 if [ "${argv[@]:$((i))}"x == ""x ] || [ ! -f "${argv[@]:$((i))}" ]; then
705 echo "PATH: ${argv[@]:$((i))} is not exit !!!"
706 exit 1
707 fi
Zhongfu Luo3e54c6f2020-02-15 21:30:50 +0800708 update_bin_path 4 "${argv[@]:$((i))}"
709 CONFIG_SIGN_BL40=1
710 continue ;;
xiaobo gue6c46862018-01-10 18:58:09 +0800711 --update-bl2)
712 update_bin_path 0 "source"
713 continue ;;
Honglin Zhang637c38b2020-06-28 02:16:39 -0400714 --update-bl2e)
715 update_bin_path 5 "source"
qi.wange123e7e2022-06-24 18:39:17 +0800716 if [ "1" == "${CONFIG_NASC_NAGRA_TIER_1}" ]; then
717 BL2F_UPDATE_TYPE=y
718 export BL2F_UPDATE_TYPE
719 fi
Tao Zeng332fda22021-07-23 17:52:42 +0800720 if [[ ${argv[i]} == "sto" || ${argv[i]} == "usb" ]]; then
721 BL2E_UPDATE_TYPE=${argv[i]}
722 export BL2E_UPDATE_TYPE
723 fi
Honglin Zhang637c38b2020-06-28 02:16:39 -0400724 continue ;;
725 --update-bl2x)
726 update_bin_path 6 "source"
727 continue ;;
Tao Zeng68361e62021-01-06 17:29:40 +0800728 --update-ddr-fip)
729 GENERATE_DDR_FIP=1
730 export GENERATE_DDR_FIP
731 continue ;;
xiaobo gue6c46862018-01-10 18:58:09 +0800732 --update-bl30)
733 update_bin_path 1 "source"
734 continue ;;
735 --update-bl31)
736 update_bin_path 2 "source"
737 continue ;;
738 --update-bl32)
739 update_bin_path 3 "source"
740 continue ;;
Tao Zengff03b402020-12-09 15:01:44 +0800741 --bl2-branch)
742 BL2_BRANCH_ARG="${argv[i]}"
743 export BL2_BRANCH_ARG
744 continue ;;
xiaobo gu6368ebe2018-03-29 21:49:25 +0800745 --ddrfw)
746 CONFIG_DDR_FW=1
747 export CONFIG_DDR_FW
748 continue ;;
Bo Lv9edb6992021-09-06 11:31:00 +0800749 --jenkins-sign)
750 CONFIG_JENKINS_SIGN=1
751 export CONFIG_JENKINS_SIGN
752 continue ;;
753 --former-sign)
754 CONFIG_FORMER_SIGN=1
755 export CONFIG_FORMER_SIGN
756 continue ;;
Zhongfu Luo43f1a8a2022-03-16 19:13:07 +0800757 --build-unsign)
758 CONFIG_BUILD_UNSIGN=1
759 export CONFIG_BUILD_UNSIGN
760 continue ;;
qi.wange123e7e2022-06-24 18:39:17 +0800761 --nasc_nagra_tier_1)
762 CONFIG_NASC_NAGRA_TIER_1=1
763 export CONFIG_NASC_NAGRA_TIER_1
764 continue;;
Bo Lvc8e2bee2022-09-28 12:48:45 +0800765 --build-nogit)
766 CONFIG_WITHOUT_BIN_GIT=1
767 export CONFIG_WITHOUT_BIN_GIT
768 continue ;;
Honglin Zhang8fa9d152020-02-10 12:29:27 +0800769 --cas)
770 cas="${argv[$i]}"
771 #limit the "--cas xxx" only works for g12a
Lawrence Mok762306e2020-05-13 20:38:08 -0700772 if [ "${CUR_SOC}" == "g12a" ] ||
773 ( [ "${cas}" == "vmx" ] && [ "${CUR_SOC}" == "gxl" ] ); then
Honglin Zhang8fa9d152020-02-10 12:29:27 +0800774 CONFIG_CAS=${cas}
775 fi
Sangho Lee41cedd22023-09-22 13:02:21 +0800776 if [ "${cas}" == "nsk" ]; then
Sangho Lee6be1bf22021-05-24 07:54:37 +0800777 CONFIG_CAS=${cas}
778 fi
Doosan Baek77df4c22024-11-07 13:06:55 +0800779 if [ "${cas}" == "nagra" ]; then
780 CONFIG_CAS=${cas}
781 CONFIG_NAGRA_NOCS=1
782 export CONFIG_NAGRA_NOCS
783 fi
784 if [ "${CONFIG_CAS}" == "irdeto" || \
785 "${CONFIG_CAS}" == "vmx"]; then
Honglin Zhang8fa9d152020-02-10 12:29:27 +0800786 CONFIG_AML_SIGNED_UBOOT=y
787 export CONFIG_AML_SIGNED_UBOOT
788 fi
Lawrence Mok048be0f2020-02-24 18:03:43 -0800789 if [ "${CONFIG_CAS}" == "vmx" ]; then
790 dbg "Loading CAS VMX config"
791 source fip/config_cas_vmx.sh
792 fi
Doosan Baek284dc972022-02-11 11:04:26 +0800793 if [ "${CUR_SOC}" == "s4" ] && [ "${cas}" == "gs" ]; then
794 CONFIG_CAS=${cas}
795 fi
Doosan Baekd2a27822023-06-15 16:28:27 +0800796 if [ "${cas}" == "comcast" ]; then
797 CONFIG_CAS=${cas}
798 fi
Honglin Zhang8fa9d152020-02-10 12:29:27 +0800799 echo "CAS: ${cas},${CONFIG_CAS}"
800 export CONFIG_CAS
801 continue ;;
Xindong Xuad0d2832018-07-30 19:15:52 +0800802 --systemroot)
803 CONFIG_SYSTEM_AS_ROOT=systemroot
804 echo "export CONFIG_SYSTEM_AS_ROOT"
805 export CONFIG_SYSTEM_AS_ROOT=systemroot
806 continue ;;
Xindong Xu33eda2d2018-09-25 18:52:38 +0800807 --avb2)
808 CONFIG_AVB2=avb2
809 echo "export CONFIG_AVB2"
810 export CONFIG_AVB2=avb2
811 continue ;;
Xindong Xu9cf4afc2020-07-24 17:10:21 +0800812 --vab)
813 CONFIG_CMD_BOOTCTOL_VAB=1
814 echo "export CONFIG_CMD_BOOTCTOL_VAB"
815 export CONFIG_CMD_BOOTCTOL_VAB=1
Xindong Xua75ab9b2020-05-25 15:54:01 +0800816 continue ;;
Xindong Xuf010cc32022-05-27 11:04:43 +0800817 --fastboot-write)
818 CONFIG_FASTBOOT_WRITING_CMD=1
819 echo "export CONFIG_FASTBOOT_WRITING_CMD"
820 export CONFIG_FASTBOOT_WRITING_CMD=1
821 continue ;;
Huaihong Leia40d4ba2023-04-14 15:13:15 +0800822 --signpipe)
wenbo.wanga7e45942023-09-27 19:39:50 +0800823 CONFIG_SIGNPIPE=1
824 echo "export CONFIG_SIGNPIPE"
825 export CONFIG_SIGNPIPE=1
826 continue ;;
Matthew Shyu9cf81ee2022-08-30 00:09:36 -0700827 --avb2-recovery)
828 CONFIG_AVB2_RECOVERY=1
829 echo "export CONFIG_AVB2_RECOVERY"
830 export CONFIG_AVB2_RECOVERY=1
831 continue ;;
Lele Liu5767b162023-02-22 19:45:13 +0800832 --patch)
833 CONFIG_PATCH=1
834 echo "export CONFIG_PATCH"
835 export CONFIG_PATCH
836 source fip/auto_patch.sh
837 continue ;;
hao.qi60f37a22022-10-08 16:41:29 +0800838 --testkey)
839 CONFIG_TESTKEY=1
840 echo "export CONFIG_TESTKEY"
841 export CONFIG_TESTKEY=1
842 continue ;;
ruixuan.li68468212023-05-10 15:25:08 +0800843 --gpt)
844 CONFIG_AML_GPT=1
845 export CONFIG_AML_GPT=1
846 continue ;;
wenbo.wanga7e45942023-09-27 19:39:50 +0800847 *)
xiaobo gue6c46862018-01-10 18:58:09 +0800848 esac
849 done
Xiaobo Gu059502e2017-01-12 21:20:39 +0800850}
851
qi.wange123e7e2022-06-24 18:39:17 +0800852function combine_bl2f_with_bl33() {
ziting.xian530f0ac2024-09-13 10:46:37 +0800853 if [[ "1" == "${CONFIG_NASC_NAGRA_TIER_1}" || "y" == "${CONFIG_ZAPPER_IRDETO_LOADER_V5}" ]]; then
qi.wange123e7e2022-06-24 18:39:17 +0800854 # place bl2f at end of u-boot.bin, _end align(4096)
855 if [ "y" == "${BL2F_UPDATE_TYPE}" ]; then
caihua.zhaofc017de2024-05-14 19:57:39 +0800856 echo "use source code build, bl2f bin: bl2/ree/bl2f/bl2f.bin"
qi.wange123e7e2022-06-24 18:39:17 +0800857 BL2F_BIN=bl2/ree/bl2f/bl2f.bin
858 else
caihua.zhaofc017de2024-05-14 19:57:39 +0800859 if [ "" != "${BL2F_BIN_FIXED_PATH}" ]; then
860 BL2F_BIN=${BL2F_BIN_FIXED_PATH}
861 echo "use fixed bl2f bin: ${BL2F_BIN}"
862 else
863 echo CUR_SOC is $CUR_SOC
864 echo CONFIG_CHIPSET_NAME is $CONFIG_CHIPSET_NAME
865 BL2F_BIN=bl2/bin/$CUR_SOC/$CONFIG_CHIPSET_NAME/bl2f.bin
866 echo "use default bl2f bin: bl2/bin/$CUR_SOC/$CONFIG_CHIPSET_NAME/bl2f.bin"
867 fi
qi.wange123e7e2022-06-24 18:39:17 +0800868 fi
869
870 if [ ! -f ${BL2F_BIN} ]; then
871 echo No $BL2F_BIN
872 exit -1
873 fi
874
ziting.xian530f0ac2024-09-13 10:46:37 +0800875 END_LENS=`stat -c "%s" "${BL33_BUILD_FOLDER}u-boot.bin"`
qi.wange123e7e2022-06-24 18:39:17 +0800876 END_ALIGN=4096
877 BL2F_LOAD=`echo "((($END_LENS-1) / $END_ALIGN * $END_ALIGN) + $END_ALIGN)" | bc`
878 echo "uboot.bin size:$END_LENS, align:$END_ALIGN, new uboot size:$BL2F_LOAD"
879
ziting.xian530f0ac2024-09-13 10:46:37 +0800880 dd if=/dev/zero of=${UBOOT_SRC_FOLDER}/u-boot.tmp bs=$BL2F_LOAD count=1
881 dd if=${BL33_BUILD_FOLDER}u-boot.bin of=${UBOOT_SRC_FOLDER}/u-boot.tmp conv=notrunc &> /dev/null
882 cat $BL2F_BIN >> ${UBOOT_SRC_FOLDER}/u-boot.tmp
883 cp -rf ${UBOOT_SRC_FOLDER}/u-boot.tmp ${BL33_BUILD_FOLDER}u-boot.bin
qi.wange123e7e2022-06-24 18:39:17 +0800884 echo "Append bl2f.bin to the end of uboot.bin OK."
885 fi
886}
887
Xiaobo Gu059502e2017-01-12 21:20:39 +0800888function main() {
xiaobo gue6c46862018-01-10 18:58:09 +0800889 if [ -z $1 ]
890 then
891 usage
892 return
893 fi
Xiaobo Gu059502e2017-01-12 21:20:39 +0800894
xiaobo gue6c46862018-01-10 18:58:09 +0800895 MAIN_FOLDER=`pwd`
896 parser $@
897 build $@
Xiaobo Gu059502e2017-01-12 21:20:39 +0800898}
899
900main $@ # parse all paras to function