blob: a5ae3e2dcc825199637e1eb7ae63a25c93dffbd8 [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
8 for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/*`; do
9 temp_file=`basename $file`
10 #echo $temp_file
11 temp_file=${temp_file%_*}
12 if [ "$cfg_name" == "$temp_file" ]; then
13 if [ "${BL33_DEFCFG1}" == "$(dirname $file)" ]; then
14 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION1}
xiaobo gu0c2598b2019-06-28 11:22:17 +080015 else
16 bl33_path=${UBOOT_FOLDER}/${UBOOT_VERSION2}
xiaobo gu0c2598b2019-06-28 11:22:17 +080017 fi
18 echo "select bl33: ${bl33_path}"
19 BL33_BUILD_FOLDER=${bl33_path}/build/
20 SOURCE_FILE=("${BL33_BUILD_FOLDER}.config")
21 CONFIG_FILE=("${BL33_BUILD_FOLDER}include/autoconf.mk")
22 UBOOT_SRC_FOLDER=${bl33_path}
23 break
24 fi
25 done
26 export BL33_BUILD_FOLDER SOURCE_FILE CONFIG_FILE UBOOT_SRC_FOLDER
27}
xiaobo gue6c46862018-01-10 18:58:09 +080028
29function pre_build_uboot() {
xiaobo gu0c2598b2019-06-28 11:22:17 +080030 select_uboot $1
xiaobo gue6c46862018-01-10 18:58:09 +080031 cd ${UBOOT_SRC_FOLDER}
32 echo -n "Compile config: "
33 echo "$1"
dongqing.li030579d2022-04-11 10:38:27 +080034 SOCNAME=$1
35 echo "SOCNAME:${SOCNAME}"
xiaobo gue6c46862018-01-10 18:58:09 +080036 make distclean # &> /dev/null
37 make $1'_config' # &> /dev/null
38 if [ $? != 0 ]
39 then
40 echo "Pre-build failed! exit!"
41 cd ${MAIN_FOLDER}
42 exit -1
43 fi
44 cd ${MAIN_FOLDER}
45}
46
47function build_uboot() {
Matthew Shyua4645b92022-04-06 20:20:19 -070048 echo "Build uboot...Please Wait...$1...$2...$3..."
xiaobo gue6c46862018-01-10 18:58:09 +080049 mkdir -p ${FIP_BUILD_FOLDER}
50 cd ${UBOOT_SRC_FOLDER}
Bo Lv6f135a82021-06-29 19:36:35 +080051 if [[ "${SCRIPT_ARG_CHIPSET_VARIANT}" =~ "nocs" ]] || [[ "${CONFIG_CHIPSET_VARIANT}" =~ "nocs" ]]; then
52 CONFIG_CHIP_NOCS=1
53 echo "### ${CONFIG_CHIP_NOCS} ###"
54 fi
dongqing.lidf6de9c2022-01-03 22:34:01 +080055 if [ "${CONFIG_MDUMP_COMPRESS}" = "1" ]; then
56 CONFIG_MDUMP_COMPRESS=1
57 echo "### BL33 CONFIG_MDUMP_COMPRESS = 1 ###"
Matthew Shyua4645b92022-04-06 20:20:19 -070058 make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 CHIPMODE=${CONFIG_CHIP_NOCS} \
dongqing.lidf6de9c2022-01-03 22:34:01 +080059 CONFIG_MDUMP_COMPRESS=${CONFIG_MDUMP_COMPRESS} # &> /dev/null
60 else
61 echo "### BL33 CONFIG_MDUMP_COMPRESS = 0 ###"
Matthew Shyua4645b92022-04-06 20:20:19 -070062 make -j SYSTEMMODE=$1 AVBMODE=$2 BOOTCTRLMODE=$3 CHIPMODE=${CONFIG_CHIP_NOCS} # &> /dev/null
dongqing.lidf6de9c2022-01-03 22:34:01 +080063 fi
Bo Lv6f135a82021-06-29 19:36:35 +080064
dongqing.li030579d2022-04-11 10:38:27 +080065 if [ "${CONFIG_SUPPORT_BL33Z}" = "1" ]; then
66 echo ""
67 echo "ramdump enable, build bl33z.bin for soc [${SOCNAME}] ..."
68 if [ -z "${SOCNAME}" ];then
69 SOCNAME=p1
70 fi
71 if [ -f "./bl33z/Makefile" ]; then
72 make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64 distclean
73 make -C bl33z/ PLAT=${SOCNAME} AARCH=aarch64
74 if [ -f "./bl33z/build/bl33z.bin" -a -f "./build/u-boot.bin" ]; then
75 # place bl33z at end of u-boot.bin, _end align(4096)
76 END_LENS=`ls -l ./build/u-boot.bin | awk '{print $5}'`
77 END_ALIGN=4096
78 BL33Z_LOAD=`echo "((($END_LENS-1) / $END_ALIGN * $END_ALIGN) + $END_ALIGN)" | bc`
79 echo "uboot.bin size:$END_LENS, align:$END_ALIGN, new uboot size:$BL33Z_LOAD"
80
81 dd if=/dev/zero of=u-boot.tmp bs=$BL33Z_LOAD count=1
82 dd if=./build/u-boot.bin of=u-boot.tmp conv=notrunc &> /dev/null
83 cat ./bl33z/build/bl33z.bin >> u-boot.tmp
84 cp -rf u-boot.tmp build/u-boot.bin
85 rm -rf u-boot.tmp
86 echo "Append bl33z.bin to the end of uboot.bin OK."
87 else
88 echo "Error: build bl33z.bin failed... abort"
89 fi
90 else
91 echo "Error: bl33z proj is not exist... abort"
92 fi
93 echo ""
94 fi
xiaobo gue6c46862018-01-10 18:58:09 +080095 ret=$?
96 cd ${MAIN_FOLDER}
97 if [ 0 -ne $ret ]; then
98 echo "Error: U-boot build failed... abort"
99 exit -1
100 fi
101}
102
103function uboot_config_list() {
xiaobo gue6c46862018-01-10 18:58:09 +0800104 echo " ******Amlogic Configs******"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800105 for file in `ls -d ${BL33_DEFCFG1}/* ${BL33_DEFCFG2}/*`; do
xiaobo gue6c46862018-01-10 18:58:09 +0800106 temp_file=`basename $file`
107 #echo "$temp_file"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800108 temp_file=${temp_file%_*}
109 echo " ${temp_file}"
xiaobo gue6c46862018-01-10 18:58:09 +0800110 done
111
xiaobo gu0c2598b2019-06-28 11:22:17 +0800112 customer_folder1="${BL33_PATH1}/customer/board/defconfigs"
113 customer_folder2="${BL33_PATH2}/customer/board/defconfigs"
114 if [ -e ${customer_folder1} ]; then
xiaobo gue6c46862018-01-10 18:58:09 +0800115 echo " ******Customer Configs******"
xiaobo gu0c2598b2019-06-28 11:22:17 +0800116 for file in ${customer_folder1}/*; do
xiaobo gue6c46862018-01-10 18:58:09 +0800117 temp_file=`basename $file`
xiaobo gu0c2598b2019-06-28 11:22:17 +0800118 temp_file=${temp_file%_*}
119 echo " ${temp_file}"
xiaobo gue6c46862018-01-10 18:58:09 +0800120 done
121 fi
xiaobo gu0c2598b2019-06-28 11:22:17 +0800122 if [ -e ${customer_folder2} ]; then
123 for file in ${customer_folder2}/*; do
124 temp_file=`basename $file`
125 temp_file=${temp_file%_*}
126 echo " ${temp_file}"
127 done
128 fi
129
xiaobo gue6c46862018-01-10 18:58:09 +0800130 echo " ***************************"
131}
132
133function copy_bl33() {
xiaobo gua64f93c2018-07-31 21:27:43 +0800134 cp ${BL33_BUILD_FOLDER}/u-boot.bin ${FIP_BUILD_FOLDER}bl33.bin -f
xiaobo gu0c83cb62018-03-19 14:09:38 +0800135
136 # remove src link to prevent android "File system loop detected" issue
xiaobo gua64f93c2018-07-31 21:27:43 +0800137 #cd ${UBOOT_SRC_FOLDER}/build/
138 #rm source
xiaobo gu0c83cb62018-03-19 14:09:38 +0800139 cd ${MAIN_FOLDER}
xiaobo gua64f93c2018-07-31 21:27:43 +0800140}