blob: a09a7a7b9a1e285c648dc0182f693d2ab1bfd0fd [file] [log] [blame]
dongqing.li93ffff32022-07-25 10:38:31 +08001#!/bin/bash
2
3# =============================================================================
4# @module: BootLoader stable branch tools: checkout, pull, push ...
5# @author: Li Dongqing (dongqing.li@amlogic.com)
6# @License: Copyright (c) 2019 Amlogic, Inc. All rights reserved.
7# @Changes:
8# 1. 2022.05.25 v0.1 - Creat stable sub version update tools.
9# 2. 2022.07.13 v0.2 - Add option for s4 branch in bl2/core.
10# 3. 2022.09.18 v0.3 - Support submitting uboot.bin to Android dir.
11# =============================================================================
12
13#
14# Settings
15#
16
17#set -e
18
19# Set these ENV externally, cmd: export ENV=${ENV}
20if [[ -z "${STABLE_MAJOR_VERSION}" ]]; then
wenbo.wang4185a322023-04-28 22:04:11 +080021 STABLE_MAJOR_VERSION="3.5.0"
dongqing.li93ffff32022-07-25 10:38:31 +080022else
23 echo "External settings env: STABLE_MAJOR_VERSION=${STABLE_MAJOR_VERSION}"
24fi
25
26if [[ -z "${ANDROID_ROOT_DIR}" ]]; then
wenbo.wange8d744e2023-09-04 09:56:35 +080027 ANDROID_ROOT_DIR="/mnt/fileroot/wenbo.wang/Android/android_U"
dongqing.li93ffff32022-07-25 10:38:31 +080028else
29 echo "External settings env: ANDROID_ROOT_DIR=${ANDROID_ROOT_DIR}"
30fi
31
32if [[ -z "${ANDROID_TARGET_BRANCH}" ]]; then
wenbo.wange8d744e2023-09-04 09:56:35 +080033 ANDROID_TARGET_BRANCH="u-tv-dev"
dongqing.li93ffff32022-07-25 10:38:31 +080034else
35 echo "External settings env: ANDROID_TARGET_BRANCH=${ANDROID_TARGET_BRANCH}"
36fi
37
38# update, show. 1/s:stable; 2/t:trunk
39SWITCH_TARGET_BRANCH=0
40SHOW_STABLE_VERSION=0
41SHOW_LAST_COMMIT=0
42STABLE_OPTION_TYPE=0
43
44# modify, push
45MODIFY_STABLE_VERSION=0
46ADD_COMMIT_MESSAGE=0
47PUSH_TOPIC_COMMON=0
48
49# openlinux stable branch
50BL2_SC2_BRANCH="projects/openlinux/bl-sc2-${STABLE_MAJOR_VERSION}"
51BL2_S4_BRANCH="projects/openlinux/bl-s4-${STABLE_MAJOR_VERSION}"
wenbo.wang4185a322023-04-28 22:04:11 +080052BL2_S5_BRANCH="projects/openlinux/bl-s5-${STABLE_MAJOR_VERSION}"
wenbo.wang85b492b2023-10-07 17:27:42 +080053BL2_T7_BRANCH="projects/openlinux/bl-t7-${STABLE_MAJOR_VERSION}"
wenbo.wangb4049132024-01-17 16:35:10 +080054BL2_S7_BRANCH="projects/openlinux/bl-s7-${STABLE_MAJOR_VERSION}"
wenbo.wangb1b70ec2024-05-10 15:41:56 +080055BL2_S7D_BRANCH="projects/openlinux/bl-s7d-${STABLE_MAJOR_VERSION}"
dongqing.li93ffff32022-07-25 10:38:31 +080056
57# push uboot.bin to android dir
wenbo.wangb1b70ec2024-05-10 15:41:56 +080058declare -a OPENLINUX_BOARD_TYPE=("ohm" "oppen" "tyson" "t7_an400" "qurra" "ross")
59declare -a OPENLINUX_BOARD_BRANCH=("${BL2_SC2_BRANCH}" "${BL2_S4_BRANCH}" "${BL2_S5_BRANCH}" "${BL2_T7_BRANCH}" "${BL2_S7_BRANCH}" "${BL2_S7D_BRANCH}")
60declare -a OPENLINUX_BOARD_CONFIG=("sc2_ah212" "s4_ap222" "s5_ax201" "t7_an400_lpddr4x" "s7_bh201" "s7d_bm201")
dongqing.li93ffff32022-07-25 10:38:31 +080061ANDROID_DEV_DIR="device/amlogic"
62ANDROID_DIR_OHM="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[0]}"
63ANDROID_DIR_OPPEN="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[1]}"
wenbo.wang4185a322023-04-28 22:04:11 +080064ANDROID_DIR_TYSON="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[2]}"
wenbo.wang85b492b2023-10-07 17:27:42 +080065ANDROID_DIR_T7="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[3]}"
wenbo.wangb4049132024-01-17 16:35:10 +080066ANDROID_DIR_QURRA="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[4]}"
wenbo.wangb1b70ec2024-05-10 15:41:56 +080067ANDROID_DIR_ROSS="${ANDROID_ROOT_DIR}/${ANDROID_DEV_DIR}/${OPENLINUX_BOARD_TYPE[5]}"
dongqing.li93ffff32022-07-25 10:38:31 +080068
wenbo.wangb1b70ec2024-05-10 15:41:56 +080069declare -a ANDROID_DIR_LIST=("${ANDROID_DIR_OHM}" "${ANDROID_DIR_OPPEN}" "${ANDROID_DIR_TYSON}" "${ANDROID_DIR_T7}" "${ANDROID_DIR_QURRA}" "${ANDROID_DIR_ROSS}")
dongqing.li93ffff32022-07-25 10:38:31 +080070
71#
72# Array
73#
wenbo.wang4185a322023-04-28 22:04:11 +080074declare -a BLX_NAME=( \
75 "bl2 " \
wenbo.wangb4049132024-01-17 16:35:10 +080076 "ddr " \
wenbo.wang4185a322023-04-28 22:04:11 +080077 "bl2e " \
78 "bl2x " \
79 "bl30 " \
80 "rtos_sdk " \
81 "bl31_1.3 " \
wenbo.wangb4049132024-01-17 16:35:10 +080082 "bl31_2.7 " \
wenbo.wang4185a322023-04-28 22:04:11 +080083 "bl32_3.8 " \
84 "bl32_3.18 " \
85 "bl33_v2019 " \
wenbo.wangb4049132024-01-17 16:35:10 +080086 "bl33_v2023 " \
wenbo.wang4185a322023-04-28 22:04:11 +080087 "fip ")
88
89declare -a RTOS_NAME=( \
90 "rtos_arch" \
91 "rtos_boards" \
92 "rtos_build" \
93 "rtos_driver_aocpu" \
94 "rtos_freertos" \
95 "rtos_libc" \
96 "rtos_products_aocpu" \
97 "rtos_scripts" \
98 "rtos_soc" )
dongqing.li93ffff32022-07-25 10:38:31 +080099
100declare -a BLX_PATH=( \
101 "bl2/core" \
wenbo.wangb4049132024-01-17 16:35:10 +0800102 "bl2/core/ddr_src/ddr" \
dongqing.li93ffff32022-07-25 10:38:31 +0800103 "bl2/ree" \
104 "bl2/tee" \
105 "bl30/src_ao" \
wenbo.wang4185a322023-04-28 22:04:11 +0800106 "bl30/rtos_sdk" \
wenbo.wange8d744e2023-09-04 09:56:35 +0800107 "bl31/bl31_1.3/src" \
wenbo.wangb4049132024-01-17 16:35:10 +0800108 "bl31/bl31_2.7/src" \
wenbo.wange8d744e2023-09-04 09:56:35 +0800109 "bl32/bl32_3.8/src" \
110 "bl32/bl32_3.18/src" \
dongqing.li93ffff32022-07-25 10:38:31 +0800111 "bl33/v2019" \
wenbo.wangb4049132024-01-17 16:35:10 +0800112 "bl33/v2023" \
wenbo.wang4185a322023-04-28 22:04:11 +0800113 "fip" )
114
115declare -a RTOS_PATH=( \
116 "bl30/rtos_sdk/arch/riscv" \
117 "bl30/rtos_sdk/boards/riscv" \
118 "bl30/rtos_sdk/build_system" \
119 "bl30/rtos_sdk/drivers_aocpu" \
120 "bl30/rtos_sdk/kernel/freertos" \
121 "bl30/rtos_sdk/lib/libc" \
122 "bl30/rtos_sdk/products/aocpu" \
123 "bl30/rtos_sdk/scripts" \
124 "bl30/rtos_sdk/soc/riscv" )
dongqing.li93ffff32022-07-25 10:38:31 +0800125
126declare -a BLX_COMMIT=( \
127 " " \
128 " " \
129 " " \
130 " " \
131 " " \
132 " " \
133 " " \
wenbo.wang4185a322023-04-28 22:04:11 +0800134 " " \
135 " " \
wenbo.wangb4049132024-01-17 16:35:10 +0800136 " " \
137 " " \
138 " " \
dongqing.li93ffff32022-07-25 10:38:31 +0800139 " ")
140
141declare -a BLX_REMOTE=( \
142 "firmware" \
143 "firmware" \
144 "firmware" \
145 "firmware" \
wenbo.wangb4049132024-01-17 16:35:10 +0800146 "firmware" \
wenbo.wang4185a322023-04-28 22:04:11 +0800147 "origin" \
148 "firmware" \
dongqing.li93ffff32022-07-25 10:38:31 +0800149 "firmware" \
150 "firmware" \
wenbo.wangb4049132024-01-17 16:35:10 +0800151 "firmware" \
152 "uboot" \
dongqing.li93ffff32022-07-25 10:38:31 +0800153 "uboot" \
154 "fip")
155
wenbo.wangb10a8162024-01-22 11:01:06 +0800156declare -a BLX_STABLE_BRANCH=( \
dongqing.li93ffff32022-07-25 10:38:31 +0800157 "projects/openlinux/bl-sc2-$STABLE_MAJOR_VERSION" \
158 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
159 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
160 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
161 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
162 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
163 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
wenbo.wangb10a8162024-01-22 11:01:06 +0800164 "projects/openlinux/bl-$STABLE_MAJOR_VERSION-2.7" \
165 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
wenbo.wangb4049132024-01-17 16:35:10 +0800166 "projects/openlinux/bl-$STABLE_MAJOR_VERSION-3.18" \
wenbo.wang4185a322023-04-28 22:04:11 +0800167 "projects/openlinux/bl-$STABLE_MAJOR_VERSION" \
wenbo.wangb4049132024-01-17 16:35:10 +0800168 "projects/openlinux/bl-$STABLE_MAJOR_VERSION-2023" \
dongqing.li93ffff32022-07-25 10:38:31 +0800169 "projects/openlinux/bl-$STABLE_MAJOR_VERSION")
170
171declare -a BLX_TRUNK_BRANCH=( \
172 "projects/sc2" \
wenbo.wangb4049132024-01-17 16:35:10 +0800173 "amlogic-ddr-core" \
dongqing.li93ffff32022-07-25 10:38:31 +0800174 "projects/amlogic-dev" \
175 "projects/amlogic-dev" \
176 "projects/amlogic-dev" \
wenbo.wang4185a322023-04-28 22:04:11 +0800177 "projects/amlogic-dev" \
dongqing.li93ffff32022-07-25 10:38:31 +0800178 "amlogic-dev-1.3" \
wenbo.wangb4049132024-01-17 16:35:10 +0800179 "amlogic-dev-2.7" \
dongqing.li93ffff32022-07-25 10:38:31 +0800180 "amlogic-dev-3.8.0" \
wenbo.wangb4049132024-01-17 16:35:10 +0800181 "amlogic-dev-3.18.0" \
dongqing.li93ffff32022-07-25 10:38:31 +0800182 "amlogic-dev-2019" \
wenbo.wangb4049132024-01-17 16:35:10 +0800183 "amlogic-dev-2023" \
dongqing.li93ffff32022-07-25 10:38:31 +0800184 "amlogic-dev")
185
186declare -a STABLE_VER_FILE=( \
187 "Makefile.gcc" \
wenbo.wangb4049132024-01-17 16:35:10 +0800188 "NULL" \
dongqing.li93ffff32022-07-25 10:38:31 +0800189 "Makefile.gcc" \
190 "Makefile.gcc" \
191 "demos/amlogic/makedefs" \
wenbo.wang4185a322023-04-28 22:04:11 +0800192 "build_system/Makefile" \
dongqing.li93ffff32022-07-25 10:38:31 +0800193 "Makefile" \
wenbo.wangb4049132024-01-17 16:35:10 +0800194 "Makefile" \
dongqing.li93ffff32022-07-25 10:38:31 +0800195 "core/arch/arm/plat-meson/conf.mk" \
wenbo.wang4185a322023-04-28 22:04:11 +0800196 "core/arch/arm/plat-meson/conf.mk" \
dongqing.li93ffff32022-07-25 10:38:31 +0800197 "Makefile" \
wenbo.wangb4049132024-01-17 16:35:10 +0800198 "Makefile" \
dongqing.li93ffff32022-07-25 10:38:31 +0800199 "NULL")
200
wenbo.wang4185a322023-04-28 22:04:11 +0800201declare -a STABLE_VER_INFO=(\
202 " " \
203 " " \
204 " " \
205 " " \
206 " " \
207 " " \
208 " " \
209 " " \
210 " " \
wenbo.wangb4049132024-01-17 16:35:10 +0800211 " " \
212 " " \
213 " " \
dongqing.li93ffff32022-07-25 10:38:31 +0800214 " ")
dongqing.li93ffff32022-07-25 10:38:31 +0800215declare -a STABLE_VER_TOPIC=( \
216 "bl2-sc2" \
wenbo.wangb4049132024-01-17 16:35:10 +0800217 "NULL" \
dongqing.li93ffff32022-07-25 10:38:31 +0800218 "bl2e" \
219 "bl2x" \
220 "bl30" \
wenbo.wang4185a322023-04-28 22:04:11 +0800221 "rtos_sdk" \
dongqing.li93ffff32022-07-25 10:38:31 +0800222 "bl31" \
wenbo.wangb4049132024-01-17 16:35:10 +0800223 "bl31" \
dongqing.li93ffff32022-07-25 10:38:31 +0800224 "bl32" \
wenbo.wang4185a322023-04-28 22:04:11 +0800225 "bl32" \
dongqing.li93ffff32022-07-25 10:38:31 +0800226 "bl33" \
wenbo.wangb4049132024-01-17 16:35:10 +0800227 "bl33" \
dongqing.li93ffff32022-07-25 10:38:31 +0800228 "NULL")
229
230#
231# function
232#
233function go_proj() {
234 cd $rootdir
235
236 output="./pxp_output_$1/"
237
238 if [ -d ${output} ] ; then
239 rm -fr ${output}
240 fi
241 mkdir ${output}
242
243 echo "go proj [ $1 ] !!!!!!!!!!!"
244 echo "./mk $1_pxp --update-bl2 --update-bl2e --update-bl2x --update-bl31"
245 echo ""
246 sleep 2
247
248 ./mk $1_pxp --update-bl2 --update-bl2e --update-bl2x --update-bl31
249
250 if [ -f "./build/u-boot.bin" ]; then
251 echo "run mk ok, found ./build/u-boot.bin"
252 cp -f ./build/u-boot.bin ${output}
253 else
254 echo "run mk error, not find ./build/u-boot.bin"
255 fi
256
257 cp -f ./bl2/core/bl2.bin.sto ${output}bl2.bin
258 cp -f ./bl2/ree/bl2e.bin ${output}bl2e.bin
259 cp -f ./bl2/tee/bl2x.bin ${output}bl2x.bin
260
261 cp -f ./bl31_1.3/src/bl31.bin ${output}bl31.bin
262 cp -f ./fip/_tmp/device-fip.bin ${output}device-fip.bin
263 cp -f ./bl33/v2019/build/u-boot.bin ${output}bl33.bin
264
265 dd if=${output}bl2.bin of=${output}bl2-u1.bin bs=1 count=86016
266 dd if=${output}bl2.bin of=${output}bl2-u2.bin bs=1 skip=86016
267
268 ./fip/c1/aml_encrypt_c1 --bin2hex --input ${output}bl2-u1.bin --usize 32 --bsize 262144 --output ${output}bl2-sram-u1.hex
269 ./fip/c1/aml_encrypt_c1 --bin2hex --input ${output}bl2-u2.bin --usize 32 --bsize 262144 --output ${output}bl2-sram-u2.hex
270
271 rm -f ${output}bl2-u*.bin
272 tar -czf pxp_output_$1.tar.gz ${output}
273
274 echo "-------------------------------------------------------------------------"
275 echo "all patterns for [$1] Z1 are ready in ${output}"
276 echo "-------------------------------------------------------------------------"
277 ls -la ${output}
278 echo
279}
280
281function choose_whether_to_continue() {
282 read -r -p "$1 [y/n] " input
283
284 case $input in
285 [yY][eE][sS]|[yY])
286 echo "ok, run continue ..."
287 ;;
288 [nN][oO]|[nN])
289 echo "ok, exit."
290 exit 1
291 ;;
292 *)
293 echo "Invalid input..."
294 exit 1
295 ;;
296 esac
297}
298
299function err_exit()
300{
301 echo "Error: $1"
302 exit 1
303}
304
305function sync_code() {
306 #echo "begin sync branch: $1/$2"
307 if [ -z $2 ]; then
308 err_exit "branch($2) error !"
309 fi
310 git reset --hard
311 cnt=`git branch |grep test1 -c`
312 if [ $cnt -eq 0 ]; then
313 git checkout -b test1
314 else
315 git checkout test1
316 fi
317 cnt=`git branch |grep $2 -c`
318 if [ ! $cnt -eq 0 ]; then
319 git branch -D $2 > /dev/null
320 fi
321 git checkout -t $1/$2 || err_exit "git checkout -t $1/$2 faild !"
322 git fetch --all
323 git reset --hard $1/$2
324 git pull
325 git branch -D test1
326 echo
327}
328
329function show_setting_commit() {
330 echo
331 echo "git_show_setting_commit:"
332 echo "==============================="
333 for((i=0;i<${#BLX_NAME[@]};i++)); do
334 echo "# ${BLX_NAME[$i]} : ${BLX_COMMIT[$i]}"
335 done
336 echo "==============================="
337 echo
338}
339
340function show_setting_branch() {
341 echo
342 echo "show_setting_branch:"
343 echo "==============================="
344 for((i=0;i<${#BLX_NAME[@]};i++)); do
345 echo "# ${BLX_NAME[$i]} : ${BLX_BRANCH[$i]}"
346 done
347 echo "==============================="
348 echo
349}
350
351function show_stable_branch_version() {
352 echo
353 echo "show_stable_branch_version:"
354 echo "==============================="
355
356 #for i in $(seq 0 ${BLX_NAME[@]}); do
357 for((i=0;i<${#BLX_NAME[@]}-1;i++)); do
358 if [ -d $rootdir/${BLX_PATH[$i]} ]; then
359 cd $rootdir/${BLX_PATH[$i]}
360 # stable branch version format: bl-x.y.z;
361 # x is major version, y is minor version, z is patch version
362 if [ "${STABLE_VER_FILE[$i]}" != "NULL" ]; then
363 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[$i]} |grep '=' |awk '{print $3}'`
364 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[$i]} |grep '=' |awk '{print $3}'`
365 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[$i]} |grep '=' |awk '{print $3}'`
366 STABLE_VER_INFO[$i]="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
367 fi
368
369 CURRENT_BRANCH=`git branch |grep "*"| awk '{print $2}'`
370 if [ $i -eq 0 -a "${CURRENT_BRANCH}" = "${BLX_STABLE_BRANCH[0]}" ];then
371 git checkout ${BL2_S4_BRANCH} > /dev/null 2>&1
372 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
373 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
374 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
375 STABLE_VER_EXT="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
376 echo "# bl2-s4 : ${STABLE_VER_EXT}"
wenbo.wang4185a322023-04-28 22:04:11 +0800377
378 git checkout ${BL2_S5_BRANCH} > /dev/null 2>&1
379 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
380 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
381 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
382 STABLE_VER_EXT="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
383 echo "# bl2-s5 : ${STABLE_VER_EXT}"
384
wenbo.wang85b492b2023-10-07 17:27:42 +0800385 git checkout ${BL2_T7_BRANCH} > /dev/null 2>&1
386 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
387 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
388 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
389 STABLE_VER_EXT="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
390 echo "# bl2-t7 : ${STABLE_VER_EXT}"
391
wenbo.wangb4049132024-01-17 16:35:10 +0800392 git checkout ${BL2_S7_BRANCH} > /dev/null 2>&1
393 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
394 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
395 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
396 STABLE_VER_EXT="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
397 echo "# bl2-s7 : ${STABLE_VER_EXT}"
398
wenbo.wangb1b70ec2024-05-10 15:41:56 +0800399 git checkout ${BL2_S7D_BRANCH} > /dev/null 2>&1
400 VER_MAJOR=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
401 VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
402 VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[0]} |grep '=' |awk '{print $3}'`
403 STABLE_VER_EXT="bl-${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}"
404 echo "# bl2-s7d : ${STABLE_VER_EXT}"
405
dongqing.li93ffff32022-07-25 10:38:31 +0800406 git checkout ${BLX_STABLE_BRANCH[0]} > /dev/null 2>&1
dongqing.li93ffff32022-07-25 10:38:31 +0800407 fi
408 fi
409 done
410
411 for((i=0;i<${#BLX_NAME[@]}-1;i++)); do
412 echo "# ${BLX_NAME[$i]} : ${STABLE_VER_INFO[$i]}"
413 done
414 echo "==============================="
415 echo
416}
417
wenbo.wang4185a322023-04-28 22:04:11 +0800418function modify_stable_branch_version_info() {
419 local index=$1
420 # stable branch version format: bl-x.y.z;
421 # x is major version, y is minor version, z is patch version
422 if [ "${STABLE_VER_FILE[${index}]}" != "NULL" ]; then
423 ######################### 1. modify version ############################
424 # major
425 CURRENT_VER_MAJOG=`grep 'MAJOR_VERSION ' ./${STABLE_VER_FILE[${index}]} |grep '=' |awk '{print $3}'`
426 MODIFY_VER_MAJOR=`echo $MODIFY_STABLE_VERSION | cut -d '.' -f 1`
427 sed -i '/MAJOR_VERSION /s/'$CURRENT_VER_MAJOG'/'$MODIFY_VER_MAJOR'/g' ${STABLE_VER_FILE[${index}]}
428
429 # minor
430 CURRENT_VER_MINOR=`grep 'MINOR_VERSION ' ./${STABLE_VER_FILE[${index}]} |grep '=' |awk '{print $3}'`
431 MODIFY_VER_MINOR=`echo $MODIFY_STABLE_VERSION | cut -d '.' -f 2`
432 sed -i '/MINOR_VERSION /s/'$CURRENT_VER_MINOR'/'$MODIFY_VER_MINOR'/g' ${STABLE_VER_FILE[${index}]}
433
434 # patch
435 CURRENT_VER_PATCH=`grep 'PATCH_VERSION ' ./${STABLE_VER_FILE[${index}]} |grep '=' |awk '{print $3}'`
436 MODIFY_VER_PATCH=`echo $MODIFY_STABLE_VERSION | cut -d '.' -f 3`
437 sed -i '/PATCH_VERSION /s/'$CURRENT_VER_PATCH'/'$MODIFY_VER_PATCH'/g' ${STABLE_VER_FILE[${index}]}
wenbo.wangb4049132024-01-17 16:35:10 +0800438
wenbo.wang4185a322023-04-28 22:04:11 +0800439 ######################### 1. modify version ############################
440 ######################### 2. git add file ############################
441 git add ${STABLE_VER_FILE[${index}]}
442
443 CHECK_COMMIT_FORMAT=`echo $ADD_COMMIT_MESSAGE | grep -c '-'`
444 if [ $CHECK_COMMIT_FORMAT -eq 1 ]; then
445 ######################### 3. git commit -m ############################
446 git commit --sign -m "
wenbo.wang419daab2023-06-21 11:06:42 +0800447${BLX_PATH[${index}]}: stable branch update version: bl-${MODIFY_VER_MAJOR}.${MODIFY_VER_MINOR}.${MODIFY_VER_PATCH} [1/1]
wenbo.wang4185a322023-04-28 22:04:11 +0800448
wenbo.wang419daab2023-06-21 11:06:42 +0800449PD#${ADD_COMMIT_MESSAGE}
wenbo.wang4185a322023-04-28 22:04:11 +0800450
wenbo.wang419daab2023-06-21 11:06:42 +0800451Problem:
452bootloader stable branch(openlinux/bl-${STABLE_MAJOR_VERSION}) update
wenbo.wang4185a322023-04-28 22:04:11 +0800453
wenbo.wang419daab2023-06-21 11:06:42 +0800454Solution:
455add version to build message: bl-${MODIFY_VER_MAJOR}.${MODIFY_VER_MINOR}.${MODIFY_VER_PATCH}
wenbo.wang4185a322023-04-28 22:04:11 +0800456
wenbo.wang419daab2023-06-21 11:06:42 +0800457Verify:
wenbo.wangb1b70ec2024-05-10 15:41:56 +0800458ohm/oppen/tyson/t7c/s7/s7d"
wenbo.wang4185a322023-04-28 22:04:11 +0800459 fi
460 fi
461}
462
dongqing.li93ffff32022-07-25 10:38:31 +0800463function modify_stable_branch_version() {
464 echo
465 echo "modify_stable_branch_version to: bl-$MODIFY_STABLE_VERSION"
466 #for i in $(seq 0 ${BLX_NAME[@]}); do
467 for((i=0;i<${#BLX_NAME[@]}-1;i++)); do
468 if [ -d $rootdir/${BLX_PATH[$i]} ]; then
wenbo.wangb4049132024-01-17 16:35:10 +0800469 if [ ${BLX_NAME[$i]} == "rtos_sdk" ]; then
470 cd $rootdir/${RTOS_PATH[2]}
471 else
472 cd $rootdir/${BLX_PATH[$i]}
473 fi
wenbo.wangb1b70ec2024-05-10 15:41:56 +0800474
wenbo.wang4185a322023-04-28 22:04:11 +0800475 modify_stable_branch_version_info $i
dongqing.li93ffff32022-07-25 10:38:31 +0800476 fi
477 done
478
479}
480
481function push_stable_branch_version() {
482 echo
483 echo "push_stable_branch_version:"
484 #for i in $(seq 0 ${BLX_NAME[@]}); do
485 for((i=0;i<${#BLX_NAME[@]}-1;i++)); do
486 if [ -d $rootdir/${BLX_PATH[$i]} ]; then
wenbo.wang4185a322023-04-28 22:04:11 +0800487 if [ ${BLX_NAME[$i]} == "rtos_sdk" ]; then
488 cd $rootdir/${RTOS_PATH[2]}
489 else
490 cd $rootdir/${BLX_PATH[$i]}
491 fi
dongqing.li93ffff32022-07-25 10:38:31 +0800492
493 #check bl2/core is at sc2 branch
494 CURRENT_BRANCH=`git branch |grep "*"| awk '{print $2}'`
495 if [ $i -eq 0 -a "${CURRENT_BRANCH}" != "${BLX_STABLE_BRANCH[0]}" ];then
496 echo "bl2 core is not at sc2 branch. please switch branch first !"
497 echo ""
498 continue
499 fi
500
501 # stable branch version format: bl-x.y.z;
502 # x is major version, y is minor version, z is patch version
503 if [ "${STABLE_VER_TOPIC[$i]}" != "NULL" ]; then
504 echo ""
505 echo "PUSH ${STABLE_VER_TOPIC[$i]} ==>>"
506 git push review HEAD:refs/for/${BLX_STABLE_BRANCH[$i]}%topic=${PUSH_TOPIC_COMMON}-${STABLE_VER_TOPIC[$i]}
507 echo ""
wenbo.wang4185a322023-04-28 22:04:11 +0800508 if [ "${STABLE_VER_TOPIC[$i]}" == "bl2-sc2" ];then
dongqing.li93ffff32022-07-25 10:38:31 +0800509 echo ""
510 echo "PUSH bl2-s4 ==>>"
511 BL2_SC2_LAST_COMMIT=`git log --pretty=format:"%h" | head -1 | awk '{print $1}'`
512 git checkout ${BL2_S4_BRANCH} > /dev/null
513 git cherry-pick ${BL2_SC2_LAST_COMMIT}
514 git push review HEAD:refs/for/${BL2_S4_BRANCH}%topic=${PUSH_TOPIC_COMMON}-bl2-s4
515 git checkout ${BLX_STABLE_BRANCH[$i]} > /dev/null
516 echo ""
wenbo.wang4185a322023-04-28 22:04:11 +0800517
518 echo ""
519 echo "PUSH bl2-s5 ==>>"
520 BL2_SC2_LAST_COMMIT=`git log --pretty=format:"%h" | head -1 | awk '{print $1}'`
521 git checkout ${BL2_S5_BRANCH} > /dev/null
522 git cherry-pick ${BL2_SC2_LAST_COMMIT}
523 git push review HEAD:refs/for/${BL2_S5_BRANCH}%topic=${PUSH_TOPIC_COMMON}-bl2-s5
524 git checkout ${BLX_STABLE_BRANCH[$i]} > /dev/null
525 echo ""
wenbo.wang85b492b2023-10-07 17:27:42 +0800526
527 echo ""
528 echo "PUSH bl2-t7 ==>>"
529 BL2_SC2_LAST_COMMIT=`git log --pretty=format:"%h" | head -1 | awk '{print $1}'`
530 git checkout ${BL2_T7_BRANCH} > /dev/null
531 git cherry-pick ${BL2_SC2_LAST_COMMIT}
wenbo.wangb4049132024-01-17 16:35:10 +0800532 git push review HEAD:refs/for/${BL2_T7_BRANCH}%topic=${PUSH_TOPIC_COMMON}-bl2-t7
533 git checkout ${BLX_STABLE_BRANCH[$i]} > /dev/null
534 echo ""
535
536 echo ""
537 echo "PUSH bl2-s7 ==>>"
538 BL2_SC2_LAST_COMMIT=`git log --pretty=format:"%h" | head -1 | awk '{print $1}'`
539 git checkout ${BL2_S7_BRANCH} > /dev/null
540 git cherry-pick ${BL2_SC2_LAST_COMMIT}
541 git push review HEAD:refs/for/${BL2_S7_BRANCH}%topic=${PUSH_TOPIC_COMMON}-bl2-s7
wenbo.wang85b492b2023-10-07 17:27:42 +0800542 git checkout ${BLX_STABLE_BRANCH[$i]} > /dev/null
543 echo ""
wenbo.wangb1b70ec2024-05-10 15:41:56 +0800544
545 echo ""
546 echo "PUSH bl2-s7d ==>>"
547 BL2_SC2_LAST_COMMIT=`git log --pretty=format:"%h" | head -1 | awk '{print $1}'`
548 git checkout ${BL2_S7D_BRANCH} > /dev/null
549 git cherry-pick ${BL2_SC2_LAST_COMMIT}
550 git push review HEAD:refs/for/${BL2_S7D_BRANCH}%topic=${PUSH_TOPIC_COMMON}-bl2-s7d
551 git checkout ${BLX_STABLE_BRANCH[$i]} > /dev/null
552 echo ""
dongqing.li93ffff32022-07-25 10:38:31 +0800553 fi
554 fi
555 fi
556 done
557
558 echo
559}
560
561function show_current_branch_info() {
562 echo
563 echo "show_current_branch_commit_info:"
564 echo "==============================="
565 #for i in $(seq 0 ${BLX_NAME[@]}); do
566 for((i=0;i<${#BLX_NAME[@]};i++)); do
567 if [ -d $rootdir/${BLX_PATH[$i]} ]; then
wenbo.wang4185a322023-04-28 22:04:11 +0800568 if [ ${BLX_NAME[$i]} == "rtos_sdk" ]; then
569 cd $rootdir/${RTOS_PATH[2]}
570 else
571 cd $rootdir/${BLX_PATH[$i]}
572 fi
573
dongqing.li93ffff32022-07-25 10:38:31 +0800574 commit=`git rev-parse HEAD`
575 # compare setting commit with current commit
576 if [ ${#BLX_COMMIT[$i]} -gt 20 ]; then
577 if [ "${BLX_COMMIT[$i]}" == "$commit" ]; then
578 echo "[eq] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --oneline -1`"
579 else
580 echo "[no] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --oneline -1`"
581 fi
582 else
583 #echo "= ${BLX_NAME[$i]}: `git branch --show-current && git log --oneline -1 | tr -d '\n'`"
584 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
585 CURRENT_BRANCH=`git branch |grep "*"| awk '{print $2}'`
586 if [ $i -eq 0 -a "${CURRENT_BRANCH}" = "${BLX_STABLE_BRANCH[0]}" ];then
587 git checkout ${BL2_S4_BRANCH} > /dev/null 2>&1
588 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
wenbo.wang4185a322023-04-28 22:04:11 +0800589
590 git checkout ${BL2_S5_BRANCH} > /dev/null 2>&1
591 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
592
wenbo.wang85b492b2023-10-07 17:27:42 +0800593 git checkout ${BL2_T7_BRANCH} > /dev/null 2>&1
594 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
595
wenbo.wangb4049132024-01-17 16:35:10 +0800596 git checkout ${BL2_S7_BRANCH} > /dev/null 2>&1
597 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
598
wenbo.wangb1b70ec2024-05-10 15:41:56 +0800599 git checkout ${BL2_S7D_BRANCH} > /dev/null 2>&1
600 echo "[--] ${BLX_NAME[$i]}: [`git branch --show-current`] `git log --abbrev=8 --oneline -1 `"
601
wenbo.wang4185a322023-04-28 22:04:11 +0800602 git checkout ${BLX_STABLE_BRANCH[0]} > /dev/null 2>&1
dongqing.li93ffff32022-07-25 10:38:31 +0800603 fi
604 fi
605 else
606 echo "[--] ${BLX_NAME[$i]}: ------"
607 fi
608 done
609 echo "==============================="
610 echo
611}
612
613function switch_to_target_branch() {
614 echo
615 if [ $SWITCH_TARGET_BRANCH -eq 1 ] ; then
616 echo "branch: trunk"
617 BLX_BRANCH=(${BLX_TRUNK_BRANCH[*]})
618 elif [ $SWITCH_TARGET_BRANCH -eq 2 ]; then
619 echo "branch: stable"
620 BLX_BRANCH=(${BLX_STABLE_BRANCH[*]})
621 else
622 exit
623 fi
624 show_setting_branch
625
626 echo "switch_to_target_branch:"
627 for((i=0;i<${#BLX_NAME[@]}-1;i++)); do
628 if [ -d $rootdir/${BLX_PATH[$i]} ]; then
629 echo "path: ${BLX_PATH[$i]}"
630 cd $rootdir/${BLX_PATH[$i]}
631 sync_code ${BLX_REMOTE[$i]} ${BLX_BRANCH[$i]}
632 if [ ${#BLX_COMMIT[$i]} -gt 20 ]; then
633 git reset --hard ${BLX_COMMIT[$i]}
634 fi
635 else
636 echo "error, path($rootdir/${BLX_PATH[$i]}) not exist!"
637 fi
638 done
639
640 echo
641}
642
643function modify_stable_sub_version() {
wenbo.wange7c5b552023-08-01 19:44:54 +0800644 echo "###modify_stable_sub_version"
645
dongqing.li93ffff32022-07-25 10:38:31 +0800646 # 1. switch to target branch
647 if [ $SWITCH_TARGET_BRANCH -ne 0 ]; then
648 switch_to_target_branch
649 fi
650
651 # 2. show current branch branch and commit
652 if [ $SHOW_LAST_COMMIT -eq 1 ]; then
653 show_current_branch_info
654 fi
655
656 # 3. show stable branch last version
657 if [ $SHOW_STABLE_VERSION -eq 1 ]; then
658 show_stable_branch_version
659 fi
660
661 # 4. modify stable branch last version
662 CHECK_VERSION_FORMAT=`echo $MODIFY_STABLE_VERSION | awk -F'.' '{print NF-1}'`
663 if [ $CHECK_VERSION_FORMAT -eq 2 ]; then
664 modify_stable_branch_version
665 show_stable_branch_version
666 fi
wenbo.wang4185a322023-04-28 22:04:11 +0800667
dongqing.li93ffff32022-07-25 10:38:31 +0800668 # 5. push stable branch last version
669 if [ "$PUSH_TOPIC_COMMON" != "0" ]; then
670 push_stable_branch_version
671 show_current_branch_info
672 fi
673}
674
675function compile_stable_uboot_bin() {
wenbo.wange7c5b552023-08-01 19:44:54 +0800676 echo "# push_uboot_img_to_android_repo"
677
dongqing.li93ffff32022-07-25 10:38:31 +0800678 for((i=0;i<${#OPENLINUX_BOARD_TYPE[@]};i++)); do
679 echo
680 echo "<$i.${OPENLINUX_BOARD_TYPE[$i]}>############################### push_uboot_img_to_android_repo."
681
682 echo
683 echo "#1. check android dev path"
684 if [ -d ${ANDROID_DIR_LIST[$i]} ];then
685 cd ${ANDROID_DIR_LIST[$i]}
686 git reset --hard HEAD^
687 git clean -df
688 git fetch --all && git reset --hard && git pull
689 cd -
690 else
691 err_exit "Android dir is not exist! (${ANDROID_DIR_LIST[$i]})"
692 fi
693
694 if [ -f "./build-${OPENLINUX_BOARD_TYPE[i]}-${PUSH_TOPIC_COMMON}/u-boot.bin.signed" ]; then
695
696 echo
697 echo "# 2/3. build bootloader manual already, copy it directly"
698 cp -fv ./build-${OPENLINUX_BOARD_TYPE[i]}-${PUSH_TOPIC_COMMON}/u-boot.bin.signed ${ANDROID_DIR_LIST[$i]}/bootloader.img
699 cp -fv ./build-${OPENLINUX_BOARD_TYPE[i]}-${PUSH_TOPIC_COMMON}/u-boot.bin.usb.signed ${ANDROID_DIR_LIST[$i]}/upgrade/
700 cp -fv ./build-${OPENLINUX_BOARD_TYPE[i]}-${PUSH_TOPIC_COMMON}/u-boot.bin.sd.bin.signed ${ANDROID_DIR_LIST[$i]}/upgrade
701
702 else
703 echo
704 echo "# 2. build booloader image"
705 cd bl2/core && git checkout ${OPENLINUX_BOARD_BRANCH[$i]} || err_exit "cd bl2/core faild !"
706 cd -
707 runcmd="./mk ${OPENLINUX_BOARD_CONFIG[i]} --update-bl2 --update-bl2e --update-bl2x --update-bl31 --update-bl32 --avb2 --vab"
708 echo "[run cmd]: ${runcmd}"
709 ${runcmd} || err_exit "./mk ${OPENLINUX_BOARD_CONFIG[i]} faild !"
710 if [ -f "./build/u-boot.bin.signed" ];then
711 echo "\n build booloader(${OPENLINUX_BOARD_TYPE[$i]}) SUCCESS."
712 else
713 err_exit "build booloader(${OPENLINUX_BOARD_TYPE[$i]}) FAILED."
714 fi
715
716 echo
717 echo "# 3. copy booloader img to android dir"
718 cp -fv ./build/u-boot.bin.signed ${ANDROID_DIR_LIST[$i]}/bootloader.img
719 cp -fv ./build/u-boot.bin.usb.signed ${ANDROID_DIR_LIST[$i]}/upgrade/
720 cp -fv ./build/u-boot.bin.sd.bin.signed ${ANDROID_DIR_LIST[$i]}/upgrade/
721 fi
722
723 echo
724 echo "# 4. add commit message"
725 cd ${ANDROID_DIR_LIST[$i]}
726 if [ ! -f "${ANDROID_DIR_LIST[$i]}/bootloader.img" ]; then
727 err_exit " copy bootloader img error, exit."
728 fi
729 git add -u
730git commit --sign -m "
731${OPENLINUX_BOARD_TYPE[$i]}: bootloader stable branch bin for ${PUSH_TOPIC_COMMON} [1/1]
732
733PD#${ADD_COMMIT_MESSAGE}
734
735Problem:
736bootloader stable branch(openlinux/bl-${STABLE_MAJOR_VERSION}) update
737
738Solution:
739add version to build message: ${PUSH_TOPIC_COMMON}
740
741Verify:
742local ${OPENLINUX_BOARD_TYPE[$i]}"
743
744 echo
745 echo "# 5. push booloader img to device/amlogic"
746 git push review HEAD:refs/for/${ANDROID_TARGET_BRANCH}%topic=BL${STABLE_MAJOR_VERSION} || err_exit " push bootloader img error."
747 cd -
748 echo "<$i.${OPENLINUX_BOARD_TYPE[$i]}># done."
749 echo
750 done
751}
752
753show_help()
754{
755 echo -e "\e[1;35m [usage] V0.3 2022.09.18\e[0m"
756 echo " $0 -[o:/s/t/c/v/m:/a:/p/j:/h]"
757 echo ""
758 echo -e "\e[1;35m [option] \e[0m"
759 echo " -o : option type. 1:modify stable sub version; 2:compile stable uboot.bin"
760 echo " -s : switch to stable branch, sync code."
761 echo " -t : switch to trunk branch, sync code."
762 echo " -c : print current branch last commit."
763 echo " -v : print stable branch last version."
764 echo " -m : modify stable branch last version x.y.z, eg: -m 3.4.5"
765 echo " -a : add version change and commit message, eg: -a SWPL-83088"
766 echo " -p : push stable branch with topic info. eg: -p BL3.4.4-20220620"
767 echo " -j : set stable branch major version. eg: -j 3.4.0"
768 echo " -h : show help"
769 echo ""
770 echo -e "\e[1;35m [external ENV] \e[0m"
771 echo " Set these ENV externally(not necessary), cmd: export ENV=\${ENV}"
772 echo " STABLE_MAJOR_VERSION (default:${STABLE_MAJOR_VERSION})"
773 echo " ANDROID_ROOT_DIR (default:${ANDROID_ROOT_DIR})"
774 echo " ANDROID_TARGET_BRANCH (default:${ANDROID_TARGET_BRANCH})"
775 echo ""
776 echo -e "\e[1;35m [example]\e[0m"
777 echo " (1) modify stable sub version, and push to stable"
778 echo " $0 -o 1 -m 3.4.9 -a SWPL-85641 -p BL3.4.9-20220912"
779 echo ""
780 echo " (2) compile stable uboot.bin, and push to android"
781 echo " $0 -o 2 -m 3.4.9 -a SWPL-85641 -p BL3.4.9-20220912"
782 echo ""
783 echo " (3) manual compile stable uboot.bin (sc2_ah212 / s4_ap222)"
784 echo " ./mk sc2_ah212 --update-bl2 --update-bl2e --update-bl2x --update-bl31 --update-bl32 --avb2 --vab"
785 echo ""
786 exit 1
787}
788
789function parser() {
790
791 if [ -z $1 ]; then
792 show_help
793 return
794 fi
795
796 while getopts sStThcCvVm:M:o:O:p:P:a:A:j:J:hH opt; do
797 case ${opt} in
798 o|O)
799 STABLE_OPTION_TYPE=${OPTARG}
800 ;;
801 s|S)
802 SWITCH_TARGET_BRANCH=2
803 ;;
804 t|T)
805 SWITCH_TARGET_BRANCH=1
806 ;;
807 c|C)
808 SHOW_LAST_COMMIT=1
809 ;;
810 v|V)
811 SHOW_STABLE_VERSION=1
812 ;;
813 m|M)
814 MODIFY_STABLE_VERSION=${OPTARG}
815 ;;
816 a|A)
817 ADD_COMMIT_MESSAGE=${OPTARG}
818 ;;
819 j|J)
820 STABLE_MAJOR_VERSION=${OPTARG}
821 ;;
822 p|P)
823 PUSH_TOPIC_COMMON=${OPTARG}
824 ;;
825 h|H)
826 show_help
827 ;;
828 *)
829 show_help
830 ;;
831 esac
832 done
833}
834
835
836function main() {
837 if [ -f "build_bl2.sh" ]; then
838 rootdir=`pwd -P`/../
839 fi
840 if [ -d "fip" ]; then
841 rootdir=`pwd -P`
842 fi
843
844 echo
845 echo "Run start: $rootdir "
846 echo
847
848 parser $@
849
850 # check option type
851 if [ "$STABLE_OPTION_TYPE" = "0" ]; then
852 show_help
853 elif [ "$STABLE_OPTION_TYPE" = "1" ]; then
854 modify_stable_sub_version
855 elif [ "$STABLE_OPTION_TYPE" = "2" ]; then
856 compile_stable_uboot_bin
857 fi
858
859 echo
860 echo "Run finish."
861 echo
862}
863
864#
865# start here.
866#
867main $@