259a987e6bf94f31998605e75ba3ebb9d92c6af8
[openwrt/staging/dangole.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 BOOT_DEVICE:=
30 DDR3_FLYBY:=
31 DDR_TYPE:=
32 NAND_TYPE:=
33 BOARD_QFN:=
34 DRAM_USE_COMB:=
35 endef
36
37 define Trusted-Firmware-A/mt7622-nor-1ddr
38 NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
39 BUILD_SUBTARGET:=mt7622
40 PLAT:=mt7622
41 BOOT_DEVICE:=nor
42 endef
43
44 define Trusted-Firmware-A/mt7622-nor-2ddr
45 NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
46 BUILD_SUBTARGET:=mt7622
47 PLAT:=mt7622
48 BOOT_DEVICE:=nor
49 DDR3_FLYBY:=1
50 endef
51
52 define Trusted-Firmware-A/mt7622-snand-1ddr
53 NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
54 BUILD_SUBTARGET:=mt7622
55 PLAT:=mt7622
56 BOOT_DEVICE:=snand
57 endef
58
59 define Trusted-Firmware-A/mt7622-snand-2ddr
60 NAME:=MediaTek MT7622 (SPI-NAND, 2x DDR3)
61 BUILD_SUBTARGET:=mt7622
62 PLAT:=mt7622
63 BOOT_DEVICE:=snand
64 DDR3_FLYBY:=1
65 endef
66
67 define Trusted-Firmware-A/mt7622-emmc-1ddr
68 NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
69 BUILD_SUBTARGET:=mt7622
70 PLAT:=mt7622
71 BOOT_DEVICE:=emmc
72 endef
73
74 define Trusted-Firmware-A/mt7622-emmc-2ddr
75 NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
76 BUILD_SUBTARGET:=mt7622
77 PLAT:=mt7622
78 BOOT_DEVICE:=emmc
79 DDR3_FLYBY:=1
80 endef
81
82 define Trusted-Firmware-A/mt7622-sdmmc-1ddr
83 NAME:=MediaTek MT7622 (SD card, 1x DDR3)
84 BUILD_SUBTARGET:=mt7622
85 PLAT:=mt7622
86 BOOT_DEVICE:=sdmmc
87 endef
88
89 define Trusted-Firmware-A/mt7622-sdmmc-2ddr
90 NAME:=MediaTek MT7622 (SD card, 2x DDR3)
91 BUILD_SUBTARGET:=mt7622
92 PLAT:=mt7622
93 BOOT_DEVICE:=sdmmc
94 DDR3_FLYBY:=1
95 endef
96
97 define Trusted-Firmware-A/mt7981-emmc-ddr4
98 NAME:=MediaTek MT7981 (eMMC, DDR4)
99 BOOT_DEVICE:=emmc
100 BUILD_SUBTARGET:=filogic
101 PLAT:=mt7981
102 DDR_TYPE:=ddr4
103 endef
104
105 define Trusted-Firmware-A/mt7981-spim-nand-ddr4
106 NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR4)
107 BOOT_DEVICE:=spim-nand
108 BUILD_SUBTARGET:=filogic
109 PLAT:=mt7981
110 DDR_TYPE:=ddr4
111 endef
112
113 define Trusted-Firmware-A/mt7981-nor-ddr3
114 NAME:=MediaTek MT7981 (SPI-NOR, DDR3)
115 BOOT_DEVICE:=nor
116 BUILD_SUBTARGET:=filogic
117 PLAT:=mt7981
118 DDR_TYPE:=ddr3
119 endef
120
121 define Trusted-Firmware-A/mt7981-emmc-ddr3
122 NAME:=MediaTek MT7981 (eMMC, DDR3)
123 BOOT_DEVICE:=emmc
124 BUILD_SUBTARGET:=filogic
125 PLAT:=mt7981
126 DDR_TYPE:=ddr3
127 endef
128
129 define Trusted-Firmware-A/mt7981-sdmmc-ddr3
130 NAME:=MediaTek MT7981 (SD card, DDR3)
131 BOOT_DEVICE:=sdmmc
132 BUILD_SUBTARGET:=filogic
133 PLAT:=mt7981
134 DDR_TYPE:=ddr3
135 endef
136
137 define Trusted-Firmware-A/mt7981-snand-ddr3
138 NAME:=MediaTek MT7981 (SPI-NAND via SNFI, DDR3)
139 BOOT_DEVICE:=snand
140 BUILD_SUBTARGET:=filogic
141 PLAT:=mt7981
142 DDR_TYPE:=ddr3
143 endef
144
145 define Trusted-Firmware-A/mt7981-spim-nand-ddr3
146 NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR3)
147 BOOT_DEVICE:=spim-nand
148 BUILD_SUBTARGET:=filogic
149 PLAT:=mt7981
150 DDR_TYPE:=ddr3
151 endef
152
153 define Trusted-Firmware-A/mt7986-nor-ddr4
154 NAME:=MediaTek MT7986 (SPI-NOR, DDR4)
155 BOOT_DEVICE:=nor
156 BUILD_SUBTARGET:=filogic
157 PLAT:=mt7986
158 DDR_TYPE:=ddr4
159 endef
160
161 define Trusted-Firmware-A/mt7986-emmc-ddr4
162 NAME:=MediaTek MT7986 (eMMC, DDR4)
163 BOOT_DEVICE:=emmc
164 BUILD_SUBTARGET:=filogic
165 PLAT:=mt7986
166 DDR_TYPE:=ddr4
167 endef
168
169 define Trusted-Firmware-A/mt7986-sdmmc-ddr4
170 NAME:=MediaTek MT7986 (SD card, DDR4)
171 BOOT_DEVICE:=sdmmc
172 BUILD_SUBTARGET:=filogic
173 PLAT:=mt7986
174 DDR_TYPE:=ddr4
175 endef
176
177 define Trusted-Firmware-A/mt7986-snand-ddr4
178 NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR4)
179 BOOT_DEVICE:=snand
180 BUILD_SUBTARGET:=filogic
181 PLAT:=mt7986
182 DDR_TYPE:=ddr4
183 endef
184
185 define Trusted-Firmware-A/mt7986-spim-nand-ddr4
186 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
187 BOOT_DEVICE:=spim-nand
188 BUILD_SUBTARGET:=filogic
189 PLAT:=mt7986
190 DDR_TYPE:=ddr4
191 NAND_TYPE:=spim:2k+64
192 endef
193
194 define Trusted-Firmware-A/mt7986-spim-nand-4k-ddr4
195 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
196 BOOT_DEVICE:=spim-nand
197 BUILD_SUBTARGET:=filogic
198 PLAT:=mt7986
199 DDR_TYPE:=ddr4
200 NAND_TYPE:=spim:4k+256
201 endef
202
203 define Trusted-Firmware-A/mt7986-nor-ddr3
204 NAME:=MediaTek MT7986 (SPI-NOR, DDR3)
205 BOOT_DEVICE:=nor
206 BUILD_SUBTARGET:=filogic
207 PLAT:=mt7986
208 DDR_TYPE:=ddr3
209 endef
210
211 define Trusted-Firmware-A/mt7986-emmc-ddr3
212 NAME:=MediaTek MT7986 (eMMC, DDR3)
213 BOOT_DEVICE:=emmc
214 BUILD_SUBTARGET:=filogic
215 PLAT:=mt7986
216 DDR_TYPE:=ddr3
217 endef
218
219 define Trusted-Firmware-A/mt7986-sdmmc-ddr3
220 NAME:=MediaTek MT7986 (SD card, DDR3)
221 BOOT_DEVICE:=sdmmc
222 BUILD_SUBTARGET:=filogic
223 PLAT:=mt7986
224 DDR_TYPE:=ddr3
225 endef
226
227 define Trusted-Firmware-A/mt7986-snand-ddr3
228 NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR3)
229 BOOT_DEVICE:=snand
230 BUILD_SUBTARGET:=filogic
231 PLAT:=mt7986
232 DDR_TYPE:=ddr3
233 endef
234
235 define Trusted-Firmware-A/mt7986-spim-nand-ddr3
236 NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR3)
237 BOOT_DEVICE:=spim-nand
238 BUILD_SUBTARGET:=filogic
239 PLAT:=mt7986
240 DDR_TYPE:=ddr3
241 endef
242
243 define Trusted-Firmware-A/mt7988-nor-ddr3
244 NAME:=MediaTek MT7988 (SPI-NOR, DDR3)
245 BOOT_DEVICE:=nor
246 BUILD_SUBTARGET:=filogic
247 PLAT:=mt7988
248 DDR_TYPE:=ddr3
249 endef
250
251 define Trusted-Firmware-A/mt7988-emmc-ddr3
252 NAME:=MediaTek MT7988 (eMMC, DDR3)
253 BOOT_DEVICE:=emmc
254 BUILD_SUBTARGET:=filogic
255 PLAT:=mt7988
256 DDR_TYPE:=ddr3
257 endef
258
259 define Trusted-Firmware-A/mt7988-sdmmc-ddr3
260 NAME:=MediaTek MT7988 (SD card, DDR3)
261 BOOT_DEVICE:=sdmmc
262 BUILD_SUBTARGET:=filogic
263 PLAT:=mt7988
264 DDR_TYPE:=ddr3
265 endef
266
267 define Trusted-Firmware-A/mt7988-snand-ddr3
268 NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR3)
269 BOOT_DEVICE:=snand
270 BUILD_SUBTARGET:=filogic
271 PLAT:=mt7988
272 DDR_TYPE:=ddr3
273 endef
274
275 define Trusted-Firmware-A/mt7988-spim-nand-ddr3
276 NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR3)
277 BOOT_DEVICE:=spim-nand
278 BUILD_SUBTARGET:=filogic
279 PLAT:=mt7988
280 DDR_TYPE:=ddr3
281 endef
282
283 define Trusted-Firmware-A/mt7988-nor-ddr4
284 NAME:=MediaTek MT7988 (SPI-NOR, DDR4)
285 BOOT_DEVICE:=nor
286 BUILD_SUBTARGET:=filogic
287 PLAT:=mt7988
288 DDR_TYPE:=ddr4
289 endef
290
291 define Trusted-Firmware-A/mt7988-emmc-ddr4
292 NAME:=MediaTek MT7988 (eMMC, DDR4)
293 BOOT_DEVICE:=emmc
294 BUILD_SUBTARGET:=filogic
295 PLAT:=mt7988
296 DDR_TYPE:=ddr4
297 endef
298
299 define Trusted-Firmware-A/mt7988-sdmmc-ddr4
300 NAME:=MediaTek MT7988 (SD card, DDR4)
301 BOOT_DEVICE:=sdmmc
302 BUILD_SUBTARGET:=filogic
303 PLAT:=mt7988
304 DDR_TYPE:=ddr4
305 endef
306
307 define Trusted-Firmware-A/mt7988-snand-ddr4
308 NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR4)
309 BOOT_DEVICE:=snand
310 BUILD_SUBTARGET:=filogic
311 PLAT:=mt7988
312 DDR_TYPE:=ddr4
313 endef
314
315 define Trusted-Firmware-A/mt7988-spim-nand-ddr4
316 NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR4)
317 BOOT_DEVICE:=spim-nand
318 BUILD_SUBTARGET:=filogic
319 PLAT:=mt7988
320 DDR_TYPE:=ddr4
321 endef
322
323 define Trusted-Firmware-A/mt7988-nor-comb
324 NAME:=MediaTek MT7988 (SPI-NOR)
325 BOOT_DEVICE:=nor
326 BUILD_SUBTARGET:=filogic
327 PLAT:=mt7988
328 DRAM_USE_COMB:=1
329 endef
330
331 define Trusted-Firmware-A/mt7988-emmc-comb
332 NAME:=MediaTek MT7988 (eMMC)
333 BOOT_DEVICE:=emmc
334 BUILD_SUBTARGET:=filogic
335 PLAT:=mt7988
336 DRAM_USE_COMB:=1
337 endef
338
339 define Trusted-Firmware-A/mt7988-sdmmc-comb
340 NAME:=MediaTek MT7988 (SD card)
341 BOOT_DEVICE:=sdmmc
342 BUILD_SUBTARGET:=filogic
343 PLAT:=mt7988
344 DRAM_USE_COMB:=1
345 endef
346
347 define Trusted-Firmware-A/mt7988-snand-comb
348 NAME:=MediaTek MT7988 (SPI-NAND via SNFI)
349 BOOT_DEVICE:=snand
350 BUILD_SUBTARGET:=filogic
351 PLAT:=mt7988
352 DRAM_USE_COMB:=1
353 endef
354
355 define Trusted-Firmware-A/mt7988-spim-nand-comb
356 NAME:=MediaTek MT7988 (SPI-NAND via SPIM)
357 BOOT_DEVICE:=spim-nand
358 BUILD_SUBTARGET:=filogic
359 PLAT:=mt7988
360 DRAM_USE_COMB:=1
361 endef
362
363 TFA_TARGETS:= \
364 mt7622-nor-1ddr \
365 mt7622-nor-2ddr \
366 mt7622-snand-1ddr \
367 mt7622-snand-2ddr \
368 mt7622-emmc-1ddr \
369 mt7622-emmc-2ddr \
370 mt7622-sdmmc-1ddr \
371 mt7622-sdmmc-2ddr \
372 mt7981-emmc-ddr3 \
373 mt7981-nor-ddr3 \
374 mt7981-sdmmc-ddr3 \
375 mt7981-snand-ddr3 \
376 mt7981-spim-nand-ddr3 \
377 mt7981-emmc-ddr4 \
378 mt7981-spim-nand-ddr4 \
379 mt7986-emmc-ddr3 \
380 mt7986-nor-ddr3 \
381 mt7986-sdmmc-ddr3 \
382 mt7986-snand-ddr3 \
383 mt7986-spim-nand-ddr3 \
384 mt7986-emmc-ddr4 \
385 mt7986-nor-ddr4 \
386 mt7986-sdmmc-ddr4 \
387 mt7986-snand-ddr4 \
388 mt7986-spim-nand-ddr4 \
389 mt7986-spim-nand-4k-ddr4 \
390 mt7988-emmc-ddr3 \
391 mt7988-nor-ddr3 \
392 mt7988-sdmmc-ddr3 \
393 mt7988-snand-ddr3 \
394 mt7988-spim-nand-ddr3 \
395 mt7988-emmc-ddr4 \
396 mt7988-nor-ddr4 \
397 mt7988-sdmmc-ddr4 \
398 mt7988-snand-ddr4 \
399 mt7988-spim-nand-ddr4 \
400 mt7988-emmc-comb \
401 mt7988-nor-comb \
402 mt7988-sdmmc-comb \
403 mt7988-snand-comb \
404 mt7988-spim-nand-comb
405
406 TFA_MAKE_FLAGS += \
407 BOOT_DEVICE=$(BOOT_DEVICE) \
408 USE_MKIMAGE=1 MKIMAGE=$(STAGING_DIR_HOST)/bin/mkimage \
409 $(if $(findstring ddr4,$(DDR_TYPE)),DRAM_USE_DDR4=1) \
410 $(if $(BOARD_QFN),BOARD_QFN=1,BOARD_BGA=1) \
411 $(if $(NAND_TYPE),NAND_TYPE=$(NAND_TYPE)) \
412 HAVE_DRAM_OBJ_FILE=yes \
413 $(if $(DDR3_FLYBY),DDR3_FLYBY=1) \
414 $(if $(DRAM_USE_COMB),DRAM_USE_COMB=1) \
415 all
416
417 define Package/trusted-firmware-a/install
418 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
419 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
420 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
421 endef
422
423 $(eval $(call BuildPackage/Trusted-Firmware-A))