c16a91efdc8061305165bb283cc42f13d463d7b3
[platform/kernel/u-boot.git] / packaging / u-boot-amlogic.spec
1 %define TARGET_VIM3 khadas-vim3
2 %define TARGET_VIM3L khadas-vim3l
3 %define TARGET_ODROID_N2 odroid-n2
4 %define TARGET_ODROID_C4 odroid-c4
5
6 Name: u-boot-amlogic
7 Version: 2020.10
8 Release: 0
9 Summary: Das U-Boot - Tizen bootloader
10 Group: System/Kernel
11 License: GPL-2.0+
12 ExclusiveArch: aarch64
13 URL: https://source.denx.de/u-boot/u-boot.git
14 Source0: u-boot-%{version}.tar.bz2
15 Source1001: u_boot_amlogic.manifest
16
17 BuildRequires: gcc >= 6.0
18 BuildRequires: flex
19 BuildRequires: bison
20
21 %description
22 u-boot - Tizen bootloader for Embedded boards based on ARM processor
23
24 %package -n u-boot-amlogic-common
25 Summary: U-boot Amlogic Common Files
26 Group: System/Kernel
27 License: GPL-2.0+
28
29 %description -n u-boot-amlogic-common
30 u-boot-amlogic-common - Tizen Amlogic Boot Script, Tizen Logo Image, and common files
31
32 %package -n u-boot-c4
33 Summary: Das U-Boot - Tizen bootloader
34 Group: System/Kernel
35 License: GPL-2.0+
36 Requires: u-boot-amlogic-common
37
38 %description -n u-boot-c4
39 u-boot-c4 - Tizen bootloader for Embedded boards based on ARM processor
40
41 %package -n u-boot-n2
42 Summary: Das U-Boot - Tizen bootloader
43 Group: System/Kernel
44 License: GPL-2.0+
45 Requires: u-boot-amlogic-common
46
47 %description -n u-boot-n2
48 u-boot-n2 - Tizen bootloader for Embedded boards based on ARM processor
49
50 %package -n u-boot-vim3
51 Summary: Das U-Boot - Tizen bootloader
52 Group: System/Kernel
53 License: GPL-2.0+
54 Requires: u-boot-amlogic-common
55
56 %description -n u-boot-vim3
57 u-boot-vim3 - Tizen bootloader for Embedded boards based on ARM processor
58
59 %package -n u-boot-vim3l
60 Summary: Das U-Boot - Tizen bootloader
61 Group: System/Kernel
62 License: GPL-2.0+
63 Requires: u-boot-amlogic-common
64
65 %description -n u-boot-vim3l
66 u-boot-vim3l - Tizen bootloader for Embedded boards based on ARM processor
67
68 %define TARGETS %{TARGET_VIM3} %{TARGET_VIM3L} %{TARGET_ODROID_N2} %{TARGET_ODROID_C4}
69
70 %prep
71 %setup -q -n u-boot-%{version}
72
73 %build
74 %{?asan:/usr/bin/gcc-unforce-options}
75 cp %{SOURCE1001} .
76
77 for i in %{TARGETS}; do
78         target=$i
79         case $target in
80         odroid-n2)
81                 FIP=fip/n2
82                 ENCRYPT=fip/aml_encrypt_g12b
83                 OUTPUT_BIN=u-boot-n2.bin
84                 PARAMS=params-n2.bin
85         ;;
86         odroid-c4)
87                 FIP=fip/c4
88                 ENCRYPT=fip/aml_encrypt_g12a
89                 OUTPUT_BIN=u-boot-c4.bin
90                 PARAMS=params-c4.bin
91         ;;
92         khadas-vim3)
93                 FIP=fip/kvim3
94                 ENCRYPT=fip/aml_encrypt_g12b
95                 OUTPUT_BIN=u-boot-vim3.bin
96                 PARAMS=params-vim3.bin
97         ;;
98         khadas-vim3l)
99                 FIP=fip/kvim3l
100                 ENCRYPT=fip/aml_encrypt_g12a
101                 OUTPUT_BIN=u-boot-vim3l.bin
102                 PARAMS=params-vim3l.bin
103         ;;
104         esac
105         # Make directory
106         mkdir -p %{_builddir}/${target}
107
108         ## 1. Build ##
109         # 1-0. Clean
110         make mrproper
111
112         # 1-1. Build dtc
113         make HOSTCC="gcc $RPM_OPT_FLAGS" -C tools/dtc
114
115         # 1-2. Set configuration
116         make ${target}_defconfig
117
118         # 1-3. Build tools
119         make %{?_smp_mflags} HOSTCC="gcc $RPM_OPT_FLAGS" HOSTSTRIP=/bin/true tools
120
121         make HOSTCC="gcc $RPM_OPT_FLAGS" envtools
122
123         # 1-4. Build u-boot
124         export PATH="$PATH:tools:tools/dtc/"
125         make %{?_smp_mflags} EXTRAVERSION=`echo %{vcs} | sed 's/.*u-boot.*#\(.\{9\}\).*/-g\1-TIZEN.org/'`
126
127         # 1-5. Encryption
128         chmod +x ${ENCRYPT}
129         ${ENCRYPT} --bl3sig --input u-boot.bin --compress lz4 \
130                                         --output ${FIP}/bl33.bin.enc \
131                                         --level v3 --type bl33 --compress lz4
132         ${ENCRYPT} --bootmk \
133                 --output %{_builddir}/${target}/${OUTPUT_BIN} \
134                 --bl2 ${FIP}/bl2.n.bin.sig \
135                 --bl30 ${FIP}/bl30_new.bin.enc \
136                 --bl31 ${FIP}/bl31.img.enc \
137                 --bl33 ${FIP}/bl33.bin.enc \
138                 --ddrfw1 ${FIP}/ddr4_1d.fw \
139                 --ddrfw2 ${FIP}/ddr4_2d.fw \
140                 --ddrfw3 ${FIP}/ddr3_1d.fw \
141                 --ddrfw4 ${FIP}/piei.fw \
142                 --ddrfw5 ${FIP}/lpddr4_1d.fw \
143                 --ddrfw6 ${FIP}/lpddr4_2d.fw \
144                 --ddrfw7 ${FIP}/diag_lpddr4.fw \
145                 --ddrfw8 ${FIP}/aml_ddr.fw \
146                 --level v3
147
148         # 1-6. Generate params.bin
149         cp `find ./env -name "built-in.o"` copy_env_common.o
150         objcopy -O binary --only-section=.rodata.default_environment `find . -name "copy_env_common.o"`
151         tr '\0' '\n' < copy_env_common.o > default_envs.txt
152         mkenvimage -s 16384 -o ${PARAMS} default_envs.txt
153         rm copy_env_common.o default_envs.txt
154 done
155
156 # 1-7. Build Boot script
157 mkimage -A arm64 -T script -C none -n "Tizen Amlogic u-boot helper" -d ./tizen/bootscript/tizen-boot-amlogic-64b.scr ./boot.scr.uimg
158
159 %install
160 rm -rf %{buildroot}
161
162 # 2. u-boot installation
163
164 mkdir -p %{buildroot}/boot
165 mkdir -p %{buildroot}/var/tmp/u-boot-amlogic
166 install -d %{buildroot}/var/tmp/u-boot-amlogic
167
168 for i in %{TARGETS}; do
169         target=$i
170         case $target in
171         odroid-n2)
172                 OUTPUT_BIN=u-boot-n2.bin
173                 PARAMS=params-n2.bin
174         ;;
175         odroid-c4)
176                 OUTPUT_BIN=u-boot-c4.bin
177                 PARAMS=params-c4.bin
178         ;;
179         khadas-vim3)
180                 OUTPUT_BIN=u-boot-vim3.bin
181                 PARAMS=params-vim3.bin
182         ;;
183         khadas-vim3l)
184                 OUTPUT_BIN=u-boot-vim3l.bin
185                 PARAMS=params-vim3l.bin
186         ;;
187         esac
188
189         install -m 755 %{_builddir}/$target/$OUTPUT_BIN %{buildroot}/var/tmp/u-boot-amlogic
190         install -m 755 $PARAMS %{buildroot}/boot
191 done
192
193 install -m 755 boot.scr.uimg %{buildroot}/boot
194 install -m 755 images/tizen_logo.bmp.gz %{buildroot}/boot
195
196 %clean
197 rm -rf %{_builddir}
198
199 %files -n u-boot-amlogic-common
200 %manifest u_boot_amlogic.manifest
201 %defattr(-,root,root,-)
202 /boot/boot.scr.uimg
203 /boot/tizen_logo.bmp.gz
204
205 %files -n u-boot-c4
206 %manifest u_boot_amlogic.manifest
207 %defattr(-,root,root,-)
208 /var/tmp/u-boot-amlogic/u-boot-c4.bin
209 /boot/params-c4.bin
210
211 %files -n u-boot-n2
212 %manifest u_boot_amlogic.manifest
213 %defattr(-,root,root,-)
214 /var/tmp/u-boot-amlogic/u-boot-n2.bin
215 /boot/params-n2.bin
216
217 %files -n u-boot-vim3
218 %manifest u_boot_amlogic.manifest
219 %defattr(-,root,root,-)
220 /var/tmp/u-boot-amlogic/u-boot-vim3.bin
221 /boot/params-vim3.bin
222
223 %files -n u-boot-vim3l
224 %manifest u_boot_amlogic.manifest
225 %defattr(-,root,root,-)
226 /var/tmp/u-boot-amlogic/u-boot-vim3l.bin
227 /boot/params-vim3l.bin