tizen: build-amlogic: change the config names
[platform/kernel/u-boot.git] / tizen / build-amlogic.sh
1 #!/bin/bash
2
3 CROSS_COMPILE=${CROSS_COMPILE:-/usr/bin/aarch64-linux-gnu-}
4 JOBS="-j 5"
5 shopt -s extglob
6
7 set_names()
8 {
9         case $1 in
10         c4)
11                 FIP=fip/c4
12                 CONFIG=tizen-odroid-c4_defconfig
13                 ENCRYPT=fip/aml_encrypt_g12a
14                 NAME=ODROID-C4
15                 PARAMS=params-c4.bin
16                 OUTPUT_BIN=u-boot-c4.bin
17                 OUTPUT_TAR=odroidc4_bootloader.tar
18                 OUTPUT2_TGZ=odroidc4_format_bootloader.tar.gz
19                 ;;
20
21         n2)
22                 FIP=fip/n2
23                 CONFIG=tizen-odroid-n2_defconfig
24                 ENCRYPT=fip/aml_encrypt_g12b
25                 NAME=ODROID-N2
26                 PARAMS=params-n2.bin
27                 OUTPUT_BIN=u-boot-n2.bin
28                 OUTPUT_TAR=odroidn2_bootloader.tar
29                 OUTPUT2_TGZ=odroidn2_format_bootloader.tar.gz
30                 ;;
31
32         vim3)
33                 FIP=fip/kvim3
34                 CONFIG=tizen-khadas-vim3_defconfig
35                 ENCRYPT=fip/aml_encrypt_g12b
36                 NAME="Khadas VIM3"
37                 PARAMS=params-vim3.bin
38                 OUTPUT_BIN=u-boot-vim3.bin
39                 OUTPUT_TAR=kvim3_bootloader.tar
40                 OUTPUT2_TGZ=kvim3_format_bootloader.tar.gz
41                 ;;
42
43         vim3l)
44                 FIP=fip/kvim3l
45                 CONFIG=tizen-khadas-vim3l_defconfig
46                 ENCRYPT=fip/aml_encrypt_g12a
47                 NAME="Khadas VIM3L"
48                 PARAMS=params-vim3l.bin
49                 OUTPUT_BIN=u-boot-vim3l.bin
50                 OUTPUT_TAR=kvim3l_bootloader.tar
51                 OUTPUT2_TGZ=kvim3l_format_bootloader.tar.gz
52                 ;;
53
54         all)
55                 OUTPUT_TAR=amlogic_bootloader.tar
56                 OUTPUT2_TGZ=amlogic_format_bootloader.tar.gz
57                 ;;
58         esac
59 }
60
61 # Check this system has ccache
62 check_ccache()
63 {
64         type ccache
65         if [ "$?" -eq "0" ]; then
66                 CCACHE=ccache
67         fi
68 }
69
70 clean_output()
71 {
72         if [ -d output ]; then
73                 rm -f output/*
74         fi
75
76         [ -d output ] || mkdir -p output
77 }
78
79 build_uboot()
80 {
81         make ARCH=arm64 ${CONFIG}
82         make CROSS_COMPILE="$CCACHE $CROSS_COMPILE" $JOBS
83         ./tools/mkimage -A arm64 -T script -C none -n "Tizen ${NAME} u-boot helper" -d ./tizen/bootscript/tizen-boot-amlogic-64b.scr ./output/boot.scr.uimg
84
85 }
86
87 generate_param() {
88         CROSS_COMPILE="$CROSS_COMPILE" ./scripts/get_default_envs.sh > default_envs.txt
89         ./tools/mkenvimage -s 16384 -o params.bin default_envs.txt
90         rm default_envs.txt
91 }
92
93 build_amlogic()
94 {
95         if [ -e u-boot.bin ] ; then
96                 cp u-boot.bin output/bl33.bin
97         fi
98
99         ./${ENCRYPT} --bl3sig --input output/bl33.bin --compress lz4 \
100                                         --output output/bl33.bin.enc \
101                                         --level v3 --type bl33 --compress lz4
102
103         ./${ENCRYPT} --bootmk \
104                 --output output/${OUTPUT_BIN} \
105                 --bl2 ${FIP}/bl2.n.bin.sig \
106                 --bl30 ${FIP}/bl30_new.bin.enc \
107                 --bl31 ${FIP}/bl31.img.enc \
108                 --bl33 output/bl33.bin.enc \
109                 --ddrfw1 ${FIP}/ddr4_1d.fw \
110                 --ddrfw2 ${FIP}/ddr4_2d.fw \
111                 --ddrfw3 ${FIP}/ddr3_1d.fw \
112                 --ddrfw4 ${FIP}/piei.fw \
113                 --ddrfw5 ${FIP}/lpddr4_1d.fw \
114                 --ddrfw6 ${FIP}/lpddr4_2d.fw \
115                 --ddrfw7 ${FIP}/diag_lpddr4.fw \
116                 --ddrfw8 ${FIP}/aml_ddr.fw \
117                 --ddrfw9 ${FIP}/lpddr3_ld.fw \
118                 --level v3
119
120         cp params.bin output/${PARAMS}
121         cp images/tizen_logo.bmp.gz output
122         cd ./output/
123         tar cvf ${OUTPUT_TAR} ${OUTPUT_BIN} boot.scr.uimg ${PARAMS} *.bmp.gz
124         cd ..
125 }
126
127 build_format()
128 {
129         cd output
130
131         rm -f 0-format.cmd
132         for i in params*.bin
133         do
134                 strings $i | grep 'board_name=' | sed -e 's/\([a-z_]*\)=\(.*\)/if test \$\{\1\} = "\2"; then/' >>0-format.cmd
135                 strings $i | grep 'dfu_alt_info=' | sed -e 's/\([a-z_]*\)=\(.*\)/setenv \1 "\2";/' >>0-format.cmd
136                 strings $i | grep 'mbr_parts=' | sed -e 's/\([a-z_]*\)=\(.*\)/setenv \1 "\2";/' >>0-format.cmd
137                 echo 'mbr write ${dfu_interface} ${dfu_device} "${mbr_parts}";' >>0-format.cmd
138                 echo 'fi;' >>0-format.cmd
139         done
140
141         # make empty FAT partiton
142         dd if=/dev/zero of=boot.img bs=1024 count=128k
143         mkfs.vfat -n BOOT boot.img
144         mmd -i boot.img odroid
145         mmd -i boot.img kvim
146         # WARNING: the order of files in the TAR is important!!!
147         # 0-format.cmd MUST be before any other MBR related entity
148         # boot.img must be before any file from FAT partiton
149         tar cvfz ${OUTPUT2_TGZ} u-boot-+([a-z0-9]).bin 0-format.cmd boot.img boot.scr.uimg params*.bin *.bmp.gz
150         cd ..
151 }
152
153 case $1 in
154 c4|n2|vim3|vim3l)
155         BOARDS=$1
156         ;;
157
158 all)
159         BOARDS="c4 n2 vim3 vim3l"
160         ;;
161
162 *)
163         echo "U-boot building script for Tizen Amlogic boards"
164         echo "Usage: $0 target"
165         echo "where target is one of: c4 n2 vim3 vim3l all"
166         exit
167         ;;
168 esac
169
170 check_ccache
171 clean_output
172
173 for i in $BOARDS
174 do
175         set_names $i
176         build_uboot
177         generate_param
178         build_amlogic
179 done
180
181 if [ "$1" = "all" ]
182 then
183         set_names "all"
184         cd output
185         tar cvf ${OUTPUT_TAR} u-boot-+([a-z0-9]).bin boot.scr.uimg params*.bin *.bmp.gz
186         cd ..
187 fi
188 build_format