arm-trusted-firmware-mediatek: use UBI on new NAND targets
[openwrt/staging/jow.git] / package / boot / arm-trusted-firmware-mediatek / Makefile
1 #
2 # Copyright (C) 2017 Hauke Mehrtens
3 # Copyright (C) 2021-2023 Daniel Golle
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=arm-trusted-firmware-mediatek
12 PKG_RELEASE:=1
13
14 PKG_SOURCE_PROTO:=git
15 PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
16 PKG_SOURCE_DATE:=2023-10-13
17 PKG_SOURCE_VERSION:=0ea67d76ae8be127c91caa3fcdf449b1fe533175
18 PKG_MIRROR_HASH:=b102f6ffaa7cd2202161c44cab4d27f426d9d74c311ea9eb4d2f371ea2af4a2e
19
20 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
21
22 include $(INCLUDE_DIR)/kernel.mk
23 include $(INCLUDE_DIR)/trusted-firmware-a.mk
24 include $(INCLUDE_DIR)/package.mk
25
26 define Trusted-Firmware-A/Default
27 BUILD_TARGET:=mediatek
28 TFA_IMAGE:=bl2.img bl31.bin
29 HIDDEN:=y
30 BOOT_DEVICE:=
31 DDR3_FLYBY:=
32 DDR_TYPE:=
33 NAND_TYPE:=
34 BOARD_QFN:=
35 DRAM_USE_COMB:=
36 USE_UBI:=
37 endef
38
39 define Trusted-Firmware-A/mt7622-nor-1ddr
40 NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
41 BUILD_SUBTARGET:=mt7622
42 PLAT:=mt7622
43 BOOT_DEVICE:=nor
44 endef
45
46 define Trusted-Firmware-A/mt7622-nor-2ddr
47 NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
48 BUILD_SUBTARGET:=mt7622
49 PLAT:=mt7622
50 BOOT_DEVICE:=nor
51 DDR3_FLYBY:=1
52 endef
53
54 define Trusted-Firmware-A/mt7622-snand-1ddr
55 NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
56 BUILD_SUBTARGET:=mt7622
57 PLAT:=mt7622
58 BOOT_DEVICE:=snand
59 endef
60
61 define Trusted-Firmware-A/mt7622-snand-2ddr
62 NAME:=MediaTek MT7622 (SPI-NAND, 2x DDR3)
63 BUILD_SUBTARGET:=mt7622
64 PLAT:=mt7622
65 BOOT_DEVICE:=snand
66 DDR3_FLYBY:=1
67 endef
68
69 define Trusted-Firmware-A/mt7622-emmc-1ddr
70 NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
71 BUILD_SUBTARGET:=mt7622
72 PLAT:=mt7622
73 BOOT_DEVICE:=emmc
74 endef
75
76 define Trusted-Firmware-A/mt7622-emmc-2ddr
77 NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
78 BUILD_SUBTARGET:=mt7622
79 PLAT:=mt7622
80 BOOT_DEVICE:=emmc
81 DDR3_FLYBY:=1
82 endef
83
84 define Trusted-Firmware-A/mt7622-sdmmc-1ddr
85 NAME:=MediaTek MT7622 (SD card, 1x DDR3)
86 BUILD_SUBTARGET:=mt7622
87 PLAT:=mt7622
88 BOOT_DEVICE:=sdmmc
89 endef
90
91 define Trusted-Firmware-A/mt7622-sdmmc-2ddr
92 NAME:=MediaTek MT7622 (SD card, 2x DDR3)
93 BUILD_SUBTARGET:=mt7622
94 PLAT:=mt7622
95 BOOT_DEVICE:=sdmmc
96 DDR3_FLYBY:=1
97 endef
98
99 define Trusted-Firmware-A/mt7981-emmc-ddr4
100 NAME:=MediaTek MT7981 (eMMC, DDR4)
101 BOOT_DEVICE:=emmc
102 BUILD_SUBTARGET:=filogic
103 PLAT:=mt7981
104 DDR_TYPE:=ddr4
105 endef
106
107 define Trusted-Firmware-A/mt7981-spim-nand-ddr4
108 NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR4)
109 BOOT_DEVICE:=spim-nand
110 BUILD_SUBTARGET:=filogic
111 PLAT:=mt7981
112 DDR_TYPE:=ddr4
113 endef
114
115 define Trusted-Firmware-A/mt7981-nor-ddr3
116 NAME:=MediaTek MT7981 (SPI-NOR, DDR3)
117 BOOT_DEVICE:=nor
118 BUILD_SUBTARGET:=filogic
119 PLAT:=mt7981
120 DDR_TYPE:=ddr3
121 endef
122
123 define Trusted-Firmware-A/mt7981-emmc-ddr3
124 NAME:=MediaTek MT7981 (eMMC, DDR3)
125 BOOT_DEVICE:=emmc
126 BUILD_SUBTARGET:=filogic
127 PLAT:=mt7981
128 DDR_TYPE:=ddr3
129 endef
130
131 define Trusted-Firmware-A/mt7981-sdmmc-ddr3
132 NAME:=MediaTek MT7981 (SD card, DDR3)
133 BOOT_DEVICE:=sdmmc
134 BUILD_SUBTARGET:=filogic
135 PLAT:=mt7981
136 DDR_TYPE:=ddr3
137 endef
138
139 define Trusted-Firmware-A/mt7981-snand-ddr3
140 NAME:=MediaTek MT7981 (SPI-NAND via SNFI, DDR3)
141 BOOT_DEVICE:=snand
142 BUILD_SUBTARGET:=filogic
143 PLAT:=mt7981
144 DDR_TYPE:=ddr3
145 endef
146
147 define Trusted-Firmware-A/mt7981-spim-nand-ddr3
148 NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR3)
149 BOOT_DEVICE:=spim-nand
150 BUILD_SUBTARGET:=filogic
151 PLAT:=mt7981
152 DDR_TYPE:=ddr3
153 endef
154
155 define Trusted-Firmware-A/mt7986-nor-ddr4
156 NAME:=MediaTek MT7986 (SPI-NOR, DDR4)
157 BOOT_DEVICE:=nor
158 BUILD_SUBTARGET:=filogic
159 PLAT:=mt7986
160 DDR_TYPE:=ddr4
161 endef
162
163 define Trusted-Firmware-A/mt7986-emmc-ddr4
164 NAME:=MediaTek MT7986 (eMMC, DDR4)
165 BOOT_DEVICE:=emmc
166 BUILD_SUBTARGET:=filogic
167 PLAT:=mt7986
168 DDR_TYPE:=ddr4
169 endef
170
171 define Trusted-Firmware-A/mt7986-sdmmc-ddr4
172 NAME:=MediaTek MT7986 (SD card, DDR4)
173 BOOT_DEVICE:=sdmmc
174 BUILD_SUBTARGET:=filogic
175 PLAT:=mt7986
176 DDR_TYPE:=ddr4
177 endef
178
179 define Trusted-Firmware-A/mt7986-snand-ddr4
180 NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR4)
181 BOOT_DEVICE:=snand
182 BUILD_SUBTARGET:=filogic
183 PLAT:=mt7986
184 DDR_TYPE:=ddr4
185 endef
186
187 define Trusted-Firmware-A/mt7986-spim-nand-ddr4
188 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
189 BOOT_DEVICE:=spim-nand
190 BUILD_SUBTARGET:=filogic
191 PLAT:=mt7986
192 DDR_TYPE:=ddr4
193 NAND_TYPE:=spim:2k+64
194 endef
195
196 define Trusted-Firmware-A/mt7986-spim-nand-4k-ddr4
197 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
198 BOOT_DEVICE:=spim-nand
199 BUILD_SUBTARGET:=filogic
200 PLAT:=mt7986
201 DDR_TYPE:=ddr4
202 NAND_TYPE:=spim:4k+256
203 endef
204
205 define Trusted-Firmware-A/mt7986-nor-ddr3
206 NAME:=MediaTek MT7986 (SPI-NOR, DDR3)
207 BOOT_DEVICE:=nor
208 BUILD_SUBTARGET:=filogic
209 PLAT:=mt7986
210 DDR_TYPE:=ddr3
211 endef
212
213 define Trusted-Firmware-A/mt7986-emmc-ddr3
214 NAME:=MediaTek MT7986 (eMMC, DDR3)
215 BOOT_DEVICE:=emmc
216 BUILD_SUBTARGET:=filogic
217 PLAT:=mt7986
218 DDR_TYPE:=ddr3
219 endef
220
221 define Trusted-Firmware-A/mt7986-sdmmc-ddr3
222 NAME:=MediaTek MT7986 (SD card, DDR3)
223 BOOT_DEVICE:=sdmmc
224 BUILD_SUBTARGET:=filogic
225 PLAT:=mt7986
226 DDR_TYPE:=ddr3
227 endef
228
229 define Trusted-Firmware-A/mt7986-snand-ddr3
230 NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR3)
231 BOOT_DEVICE:=snand
232 BUILD_SUBTARGET:=filogic
233 PLAT:=mt7986
234 DDR_TYPE:=ddr3
235 endef
236
237 define Trusted-Firmware-A/mt7986-spim-nand-ddr3
238 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR3)
239 BOOT_DEVICE:=spim-nand
240 BUILD_SUBTARGET:=filogic
241 PLAT:=mt7986
242 DDR_TYPE:=ddr3
243 endef
244
245 define Trusted-Firmware-A/mt7988-nor-ddr3
246 NAME:=MediaTek MT7988 (SPI-NOR, DDR3)
247 BOOT_DEVICE:=nor
248 BUILD_SUBTARGET:=filogic
249 PLAT:=mt7988
250 DDR_TYPE:=ddr3
251 endef
252
253 define Trusted-Firmware-A/mt7988-emmc-ddr3
254 NAME:=MediaTek MT7988 (eMMC, DDR3)
255 BOOT_DEVICE:=emmc
256 BUILD_SUBTARGET:=filogic
257 PLAT:=mt7988
258 DDR_TYPE:=ddr3
259 endef
260
261 define Trusted-Firmware-A/mt7988-sdmmc-ddr3
262 NAME:=MediaTek MT7988 (SD card, DDR3)
263 BOOT_DEVICE:=sdmmc
264 BUILD_SUBTARGET:=filogic
265 PLAT:=mt7988
266 DDR_TYPE:=ddr3
267 endef
268
269 define Trusted-Firmware-A/mt7988-snand-ddr3
270 NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR3)
271 BOOT_DEVICE:=snand
272 BUILD_SUBTARGET:=filogic
273 PLAT:=mt7988
274 DDR_TYPE:=ddr3
275 endef
276
277 define Trusted-Firmware-A/mt7988-spim-nand-ddr3
278 NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR3)
279 BOOT_DEVICE:=spim-nand
280 BUILD_SUBTARGET:=filogic
281 PLAT:=mt7988
282 DDR_TYPE:=ddr3
283 endef
284
285 define Trusted-Firmware-A/mt7988-nor-ddr4
286 NAME:=MediaTek MT7988 (SPI-NOR, DDR4)
287 BOOT_DEVICE:=nor
288 BUILD_SUBTARGET:=filogic
289 PLAT:=mt7988
290 DDR_TYPE:=ddr4
291 endef
292
293 define Trusted-Firmware-A/mt7988-emmc-ddr4
294 NAME:=MediaTek MT7988 (eMMC, DDR4)
295 BOOT_DEVICE:=emmc
296 BUILD_SUBTARGET:=filogic
297 PLAT:=mt7988
298 DDR_TYPE:=ddr4
299 endef
300
301 define Trusted-Firmware-A/mt7988-sdmmc-ddr4
302 NAME:=MediaTek MT7988 (SD card, DDR4)
303 BOOT_DEVICE:=sdmmc
304 BUILD_SUBTARGET:=filogic
305 PLAT:=mt7988
306 DDR_TYPE:=ddr4
307 endef
308
309 define Trusted-Firmware-A/mt7988-snand-ddr4
310 NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR4)
311 BOOT_DEVICE:=snand
312 BUILD_SUBTARGET:=filogic
313 PLAT:=mt7988
314 DDR_TYPE:=ddr4
315 endef
316
317 define Trusted-Firmware-A/mt7988-spim-nand-ddr4
318 NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR4)
319 BOOT_DEVICE:=spim-nand
320 BUILD_SUBTARGET:=filogic
321 PLAT:=mt7988
322 DDR_TYPE:=ddr4
323 endef
324
325 define Trusted-Firmware-A/mt7988-nor-comb
326 NAME:=MediaTek MT7988 (SPI-NOR)
327 BOOT_DEVICE:=nor
328 BUILD_SUBTARGET:=filogic
329 PLAT:=mt7988
330 DRAM_USE_COMB:=1
331 endef
332
333 define Trusted-Firmware-A/mt7988-emmc-comb
334 NAME:=MediaTek MT7988 (eMMC)
335 BOOT_DEVICE:=emmc
336 BUILD_SUBTARGET:=filogic
337 PLAT:=mt7988
338 DRAM_USE_COMB:=1
339 endef
340
341 define Trusted-Firmware-A/mt7988-sdmmc-comb
342 NAME:=MediaTek MT7988 (SD card)
343 BOOT_DEVICE:=sdmmc
344 BUILD_SUBTARGET:=filogic
345 PLAT:=mt7988
346 DRAM_USE_COMB:=1
347 endef
348
349 define Trusted-Firmware-A/mt7988-snand-comb
350 NAME:=MediaTek MT7988 (SPI-NAND via SNFI)
351 BOOT_DEVICE:=snand
352 BUILD_SUBTARGET:=filogic
353 PLAT:=mt7988
354 DRAM_USE_COMB:=1
355 endef
356
357 define Trusted-Firmware-A/mt7988-snand-ubi-comb
358 NAME:=MediaTek MT7988 (SPI-NAND via SNFI, UBI)
359 BOOT_DEVICE:=snand
360 BUILD_SUBTARGET:=filogic
361 PLAT:=mt7988
362 DRAM_USE_COMB:=1
363 USE_UBI:=1
364 endef
365
366 define Trusted-Firmware-A/mt7988-spim-nand-comb
367 NAME:=MediaTek MT7988 (SPI-NAND via SPIM)
368 BOOT_DEVICE:=spim-nand
369 BUILD_SUBTARGET:=filogic
370 PLAT:=mt7988
371 DRAM_USE_COMB:=1
372 endef
373
374 define Trusted-Firmware-A/mt7988-spim-nand-ubi-comb
375 NAME:=MediaTek MT7988 (SPI-NAND via SPIM, UBI)
376 BOOT_DEVICE:=spim-nand
377 BUILD_SUBTARGET:=filogic
378 PLAT:=mt7988
379 DRAM_USE_COMB:=1
380 USE_UBI:=1
381 endef
382
383 TFA_TARGETS:= \
384 mt7622-nor-1ddr \
385 mt7622-nor-2ddr \
386 mt7622-snand-1ddr \
387 mt7622-snand-2ddr \
388 mt7622-emmc-1ddr \
389 mt7622-emmc-2ddr \
390 mt7622-sdmmc-1ddr \
391 mt7622-sdmmc-2ddr \
392 mt7981-emmc-ddr3 \
393 mt7981-nor-ddr3 \
394 mt7981-sdmmc-ddr3 \
395 mt7981-snand-ddr3 \
396 mt7981-spim-nand-ddr3 \
397 mt7981-emmc-ddr4 \
398 mt7981-spim-nand-ddr4 \
399 mt7986-emmc-ddr3 \
400 mt7986-nor-ddr3 \
401 mt7986-sdmmc-ddr3 \
402 mt7986-snand-ddr3 \
403 mt7986-spim-nand-ddr3 \
404 mt7986-emmc-ddr4 \
405 mt7986-nor-ddr4 \
406 mt7986-sdmmc-ddr4 \
407 mt7986-snand-ddr4 \
408 mt7986-spim-nand-ddr4 \
409 mt7986-spim-nand-4k-ddr4 \
410 mt7988-emmc-ddr3 \
411 mt7988-nor-ddr3 \
412 mt7988-sdmmc-ddr3 \
413 mt7988-snand-ddr3 \
414 mt7988-spim-nand-ddr3 \
415 mt7988-emmc-ddr4 \
416 mt7988-nor-ddr4 \
417 mt7988-sdmmc-ddr4 \
418 mt7988-snand-ddr4 \
419 mt7988-spim-nand-ddr4 \
420 mt7988-emmc-comb \
421 mt7988-nor-comb \
422 mt7988-sdmmc-comb \
423 mt7988-snand-comb \
424 mt7988-snand-ubi-comb \
425 mt7988-spim-nand-comb \
426 mt7988-spim-nand-ubi-comb
427
428 TFA_MAKE_FLAGS += \
429 BOOT_DEVICE=$(BOOT_DEVICE) \
430 USE_MKIMAGE=1 MKIMAGE=$(STAGING_DIR_HOST)/bin/mkimage \
431 $(if $(findstring ddr4,$(DDR_TYPE)),DRAM_USE_DDR4=1) \
432 $(if $(BOARD_QFN),BOARD_QFN=1,BOARD_BGA=1) \
433 $(if $(NAND_TYPE),NAND_TYPE=$(NAND_TYPE)) \
434 HAVE_DRAM_OBJ_FILE=yes \
435 $(if $(DDR3_FLYBY),DDR3_FLYBY=1) \
436 $(if $(DRAM_USE_COMB),DRAM_USE_COMB=1) \
437 $(if $(USE_UBI),UBI=1) \
438 all
439
440 define Package/trusted-firmware-a/install
441 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
442 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
443 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
444 endef
445
446 $(eval $(call BuildPackage/Trusted-Firmware-A))