blob: c2c17ff4a893916a1820931bb2644eec8ab9653b [file] [log] [blame]
xiaobo gue6c46862018-01-10 18:58:09 +08001#!/bin/bash
2
xiaobo gu0c2598b2019-06-28 11:22:17 +08003function select_uboot() {
4 local cfg_name=$1
Honglin Zhange358be42020-08-12 02:16:02 -04005
xiaobo gu0c2598b2019-06-28 11:22:17 +08006 cd ${MAIN_FOLDER}
7
Bo Lv9a448972024-11-29 17:10:12 +08008 for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/* ${BL33_DEFCFG3}/* ${BL33_DEFCFG4}/*`; do
xiaobo gu0c2598b2019-06-28 11:22:17 +08009 temp_file=`basename $file`
10 #echo $temp_file
11 temp_file=${temp_file%_*}
12 if [ "$cfg_name" == "$temp_file" ]; then
Bo Lv26b21672023-01-16 01:50:15 +000013 if [ "1" == "${CONFIG_CHOICE_BUILD}" ]; then
14 if [ "2015" == "${CONFIG_BUILD_VERSION}" ]; then
15 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION1}
16 elif [ "2019" == "${CONFIG_BUILD_VERSION}" ]; then
17 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION2}
18 elif [ "2023" == "${CONFIG_BUILD_VERSION}" ]; then
19 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION3}
Bo Lv9a448972024-11-29 17:10:12 +080020 elif [ "2025" == "${CONFIG_BUILD_VERSION}" ]; then
21 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION4}
Bo Lv26b21672023-01-16 01:50:15 +000022 else
23 echo "input parameter error"
24 exit 1
25 fi
Bo Lv0edfe512022-10-14 21:08:09 +080026 else
27 if [ "${BL33_DEFCFG1}" == "$(dirname $file)" ]; then
28 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION1}
Bo Lv26b21672023-01-16 01:50:15 +000029 elif [ "${BL33_DEFCFG2}" == "$(dirname $file)" ]; then
Bo Lv0edfe512022-10-14 21:08:09 +080030 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION2}
Bo Lv26b21672023-01-16 01:50:15 +000031 elif [ "${BL33_DEFCFG3}" == "$(dirname $file)" ]; then
32 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION3}
Bo Lv9a448972024-11-29 17:10:12 +080033 elif [ "${BL33_DEFCFG4}" == "$(dirname $file)" ]; then
34 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION4}
Bo Lv26b21672023-01-16 01:50:15 +000035 else
36 echo "not found defconfig"
37 exit 1
Bo Lv0edfe512022-10-14 21:08:09 +080038 fi
xiaobo gu0c2598b2019-06-28 11:22:17 +080039 fi
40 echo "select bl33: ${bl33_path}"
41 BL33_BUILD_FOLDER=${bl33_path}/build/
42 SOURCE_FILE=("${BL33_BUILD_FOLDER}.config")
43 CONFIG_FILE=("${BL33_BUILD_FOLDER}include/autoconf.mk")
44 UBOOT_SRC_FOLDER=${bl33_path}
45 break
46 fi
47 done
48 export BL33_BUILD_FOLDER SOURCE_FILE CONFIG_FILE UBOOT_SRC_FOLDER
49}
xiaobo gue6c46862018-01-10 18:58:09 +080050
51function pre_build_uboot() {
xiaobo gu0c2598b2019-06-28 11:22:17 +080052 select_uboot $1
xiaobo gue6c46862018-01-10 18:58:09 +080053 cd ${UBOOT_SRC_FOLDER}
54 echo -n "Compile config: "
55 echo "$1"
dongqing.li030579d2022-04-11 10:38:27 +080056 SOCNAME=$1
57 echo "SOCNAME:${SOCNAME}"
Bo Lv0c0b81a2024-11-19 10:01:15 +080058 export ${SOCNAME}
xiaobo gue6c46862018-01-10 18:58:09 +080059 make distclean # &> /dev/null
60 make $1'_config' # &> /dev/null
61 if [ $? != 0 ]
62 then
63 echo "Pre-build failed! exit!"
64 cd ${MAIN_FOLDER}
65 exit -1
66 fi
67 cd ${MAIN_FOLDER}
68}
69
70function build_uboot() {
ruixuan.li68468212023-05-10 15:25:08 +080071 echo "Build uboot...Please Wait...$1...$2...$3...$4...$5...$6...$7"
xiaobo gue6c46862018-01-10 18:58:09 +080072 mkdir -p ${FIP_BUILD_FOLDER}
73 cd ${UBOOT_SRC_FOLDER}
Bo Lv6f135a82021-06-29 19:36:35 +080074 if [[ "${SCRIPT_ARG_CHIPSET_VARIANT}" =~ "nocs" ]] || [[ "${CONFIG_CHIPSET_VARIANT}" =~ "nocs" ]]; then
75 CONFIG_CHIP_NOCS=1
76 echo "### ${CONFIG_CHIP_NOCS} ###"
77 fi
wenbo.wange8d2fbe2023-10-23 19:04:56 +080078 set -e
dongqing.lidf6de9c2022-01-03 22:34:01 +080079 if [ "${CONFIG_MDUMP_COMPRESS}" = "1" ]; then
80 CONFIG_MDUMP_COMPRESS=1
81 echo "### BL33 CONFIG_MDUMP_COMPRESS = 1 ###"
ruixuan.li68468212023-05-10 15:25:08 +080082 make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 GPTMODE=$7 CHIPMODE=${CONFIG_CHIP_NOCS} \
Meng yu654238f2024-06-05 11:06:32 +080083 CONFIG_MDUMP_COMPRESS=${CONFIG_MDUMP_COMPRESS} \
84 CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null
dongqing.lidf6de9c2022-01-03 22:34:01 +080085 else
Meng yu654238f2024-06-05 11:06:32 +080086 echo "### BL33 CONFIG_MDUMP_COMPRESS = 0 ### CONFIG_TEE_TYPE ${CONFIG_TEE_TYPE}"
87 make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 GPTMODE=$7 CHIPMODE=${CONFIG_CHIP_NOCS} \
88 CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null
dongqing.lidf6de9c2022-01-03 22:34:01 +080089 fi
wenbo.wange8d2fbe2023-10-23 19:04:56 +080090 set +e
Bo Lvcefaba42022-11-30 14:36:57 +080091
92 if [ "y" == "${CONFIG_AB_UPDATE}" ]; then
93 cp ./build/board/amlogic/${SOCNAME}/firmware/acs.bin ../../${BUILD_PATH}/acs.bin -f
94 fip_bl33_size=`stat -c %s ./build/u-boot.bin`
95 dd if=/dev/zero of=./build/fip.tmp bs=2097120 count=1
96 dd if=./build/u-boot.bin of=./build/fip.tmp bs=${fip_bl33_size} count=1 conv=notrunc
97
98 # sha fip ab
99 openssl dgst -sha256 -binary ./build/fip.tmp > ./build/u-boot.bin.sha256
100 dd if=./build/u-boot.bin.sha256 of=./build/fip.tmp bs=1 count=32 oflag=append conv=notrunc
101 cp ./build/fip.tmp ../../build/fip-bl33.bin -f
102
103 # sign fip ab
104 ../../fip/stool/signing-tool-c1/sign-boot-c1.sh --sign-kernel -i ./build/fip.tmp \
105 -k ./board/amlogic/common/ab_mode/aml-key/kernelkey.pem -a ./board/amlogic/common/ab_mode/aml-key/kernelaeskey \
106 --iv ./board/amlogic/common/ab_mode/aml-key/kernelaesiv -o ./build/fip-bl33.bin.encrypt
107 cp ./build/fip-bl33.bin.encrypt ../../build/ -f
108 #cp ./build/fip-bl33.bin.encrypt ../../${BUILD_PATH}/fip-bl33.bin -f
109
110 # build pre bl33
wenbo.wange8d2fbe2023-10-23 19:04:56 +0800111 set -e
Bo Lvcefaba42022-11-30 14:36:57 +0800112 make distclean
113 make ${SOCNAME}_defconfig
114 make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 FASTBOOTMODE=$4 AVB2RECOVERY=$5 TESTKEY=$6 CHIPMODE=${CONFIG_CHIP_NOCS} \
Meng yu654238f2024-06-05 11:06:32 +0800115 ABUPDATE=${CONFIG_AB_UPDATE} \
116 CONFIG_TEE_TYPE=${CONFIG_TEE_TYPE} # &> /dev/null
wenbo.wange8d2fbe2023-10-23 19:04:56 +0800117 set +e
Bo Lvcefaba42022-11-30 14:36:57 +0800118 if [ $? != 0 ]; then
119 echo "Pre bl33 failed! exit!"
120 cd ${MAIN_FOLDER}
121 exit 1
122 fi
123 cp ./build/u-boot.bin ../../${FIP_BUILD_FOLDER}bl33.bin
124 fi
Bo Lv6f135a82021-06-29 19:36:35 +0800125
dongqing.lib66a11a2023-03-27 17:18:43 +0800126 SOC_GROUP=`echo ${SOCNAME} | cut -d '_' -f 1`
dongqing.lic1174902024-10-10 11:03:34 +0000127 skiped=("c1" "c2" "c3" "g12a" "g12b" "sm1" "t5w")
dongqing.lib66a11a2023-03-27 17:18:43 +0800128 if [[ "${skiped[@]}" =~ "${SOC_GROUP}" ]]; then
129 echo ""
130 echo "The soc(${SOC_GROUP}) does not support bl33z, skip."
131 echo ""
132 elif [ "${CONFIG_SUPPORT_BL33Z}" = "1" ]; then
dongqing.li030579d2022-04-11 10:38:27 +0800133 echo ""
dongqing.li82e38992022-06-23 15:56:15 +0800134 set -e
dongqing.li030579d2022-04-11 10:38:27 +0800135 echo "ramdump enable, build bl33z.bin for soc [${SOCNAME}] ..."
dongqing.li030579d2022-04-11 10:38:27 +0800136 if [ -f "./bl33z/Makefile" ]; then
wenbo.wange8d2fbe2023-10-23 19:04:56 +0800137 set -e
dongqing.li030579d2022-04-11 10:38:27 +0800138 make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64 distclean
139 make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64
wenbo.wange8d2fbe2023-10-23 19:04:56 +0800140 set +e
dongqing.li030579d2022-04-11 10:38:27 +0800141 if [ -f "./bl33z/build/bl33z.bin" -a -f "./build/u-boot.bin" ]; then
142 # place bl33z at end of u-boot.bin, _end align(4096)
dongqing.lid326e6a2024-10-09 01:01:29 +0000143 END_LENS=$(stat -c%s "./build/u-boot.bin")
dongqing.li030579d2022-04-11 10:38:27 +0800144 END_ALIGN=4096
145 BL33Z_LOAD=`echo "((($END_LENS-1) / $END_ALIGN * $END_ALIGN) + $END_ALIGN)" | bc`
146 echo "uboot.bin size:$END_LENS, align:$END_ALIGN, new uboot size:$BL33Z_LOAD"
147
148 dd if=/dev/zero of=u-boot.tmp bs=$BL33Z_LOAD count=1
149 dd if=./build/u-boot.bin of=u-boot.tmp conv=notrunc &> /dev/null
150 cat ./bl33z/build/bl33z.bin >> u-boot.tmp
151 cp -rf u-boot.tmp build/u-boot.bin
152 rm -rf u-boot.tmp
153 echo "Append bl33z.bin to the end of uboot.bin OK."
154 else
155 echo "Error: build bl33z.bin failed... abort"
156 fi
157 else
158 echo "Error: bl33z proj is not exist... abort"
159 fi
dongqing.li82e38992022-06-23 15:56:15 +0800160 set +e
dongqing.li030579d2022-04-11 10:38:27 +0800161 echo ""
162 fi
xiaobo gue6c46862018-01-10 18:58:09 +0800163 ret=$?
164 cd ${MAIN_FOLDER}
165 if [ 0 -ne $ret ]; then
166 echo "Error: U-boot build failed... abort"
167 exit -1
168 fi
169}
170
171function uboot_config_list() {
xiaobo gue6c46862018-01-10 18:58:09 +0800172 echo " ******Amlogic Configs******"
Bo Lv9a448972024-11-29 17:10:12 +0800173 for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/* ${BL33_DEFCFG3}/* ${BL33_DEFCFG4}/*`; do
xiaobo gue6c46862018-01-10 18:58:09 +0800174 temp_file=`basename $file`
175 #echo "$temp_file"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800176 temp_file=${temp_file%_*}
177 echo " ${temp_file}"
xiaobo gue6c46862018-01-10 18:58:09 +0800178 done
179
xiaobo gu0c2598b2019-06-28 11:22:17 +0800180 customer_folder1="${BL33_PATH1}/customer/board/defconfigs"
181 customer_folder2="${BL33_PATH2}/customer/board/defconfigs"
182 if [ -e ${customer_folder1} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800183 echo " ******Customer Configs******"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800184 for file in ${customer_folder1}/*; do
xiaobo gue6c46862018-01-10 18:58:09 +0800185 temp_file=`basename $file`
xiaobo gu0c2598b2019-06-28 11:22:17 +0800186 temp_file=${temp_file%_*}
187 echo " ${temp_file}"
xiaobo gue6c46862018-01-10 18:58:09 +0800188 done
189 fi
xiaobo gu0c2598b2019-06-28 11:22:17 +0800190 if [ -e ${customer_folder2} ]; then
191 for file in ${customer_folder2}/*; do
192 temp_file=`basename $file`
193 temp_file=${temp_file%_*}
194 echo " ${temp_file}"
195 done
196 fi
197
xiaobo gue6c46862018-01-10 18:58:09 +0800198 echo " ***************************"
199}
200
201function copy_bl33() {
Bo Lvcefaba42022-11-30 14:36:57 +0800202 if [ "y" != "${CONFIG_AB_UPDATE}" ]; then
203 cp ${BL33_BUILD_FOLDER}/u-boot.bin ${FIP_BUILD_FOLDER}bl33.bin -f
204 fi
xiaobo gu0c83cb62018-03-19 14:09:38 +0800205
206 # remove src link to prevent android "File system loop detected" issue
xiaobo gua64f93c2018-07-31 21:27:43 +0800207 #cd ${UBOOT_SRC_FOLDER}/build/
208 #rm source
xiaobo gu0c83cb62018-03-19 14:09:38 +0800209 cd ${MAIN_FOLDER}
xiaobo gua64f93c2018-07-31 21:27:43 +0800210}