7bfc8fd64bfa18e1620771e6fccee7bc51c20810
[openwrt/openwrt.git] / package / boot / uboot-mediatek / Makefile
1 include $(TOPDIR)/rules.mk
2 include $(INCLUDE_DIR)/kernel.mk
3
4 PKG_VERSION:=2022.07
5 PKG_HASH:=92b08eb49c24da14c1adbf70a71ae8f37cc53eeb4230e859ad8b6733d13dcf5e
6 PKG_BUILD_DEPENDS:=arm-trusted-firmware-tools/host
7
8 include $(INCLUDE_DIR)/u-boot.mk
9 include $(INCLUDE_DIR)/package.mk
10 include $(INCLUDE_DIR)/host-build.mk
11
12 MT7621_LOWLEVEL_PRELOADER_URL:=https://raw.githubusercontent.com/mtk-openwrt/mt7621-lowlevel-preloader/a03b07c60bf1ba4add9b671d32caa102fe948180/
13
14 define Download/mt7621-stage-sram
15 FILE:=mt7621_stage_sram.bin
16 URL:=$(MT7621_LOWLEVEL_PRELOADER_URL)
17 HASH:=1dda68aa089f0ff262e01539b990dea478952e9fb68bcc0a8cd6f76f0135c62e
18 endef
19
20 define Download/mt7621-stage-sram-noprint
21 FILE:=mt7621_stage_sram_noprint.bin
22 URL:=$(MT7621_LOWLEVEL_PRELOADER_URL)
23 HASH:=8ee419275144fc298e9444d413d98e965a55d283152a74ea6a1f8de79eb516b6
24 endef
25
26 ifdef CONFIG_TARGET_ramips_mt7621
27 ifdef CONFIG_DEBUG
28 $(eval $(call Download,mt7621-stage-sram))
29 else
30 $(eval $(call Download,mt7621-stage-sram-noprint))
31 endif
32 endif
33
34 define U-Boot/Default
35 BUILD_TARGET:=mediatek
36 UBOOT_IMAGE:=u-boot-mtk.bin
37 endef
38
39 define U-Boot/mt7620_rfb
40 NAME:=MT7620 Reference Board
41 UBOOT_CONFIG:=mt7620_rfb
42 BUILD_DEVICES:=ralink_mt7620a-evb
43 BUILD_TARGET:=ramips
44 BUILD_SUBTARGET:=mt7620
45 UBOOT_IMAGE:=u-boot-with-spl.bin
46 endef
47
48 define U-Boot/mt7620_mt7530_rfb
49 NAME:=MT7620+MT7530 Reference Board
50 UBOOT_CONFIG:=mt7620_mt7530_rfb
51 BUILD_DEVICES:=ralink_mt7620a-mt7530-evb
52 BUILD_TARGET:=ramips
53 BUILD_SUBTARGET:=mt7620
54 UBOOT_IMAGE:=u-boot-with-spl.bin
55 endef
56
57 define U-Boot/mt7621_rfb
58 NAME:=MT7621 Reference Board
59 UBOOT_CONFIG:=mt7621_rfb
60 BUILD_DEVICES:=mediatek_mt7621-eval-board
61 BUILD_TARGET:=ramips
62 BUILD_SUBTARGET:=mt7621
63 UBOOT_IMAGE:=u-boot-mt7621.bin
64 endef
65
66 define U-Boot/mt7621_nand_rfb
67 NAME:=MT7621 Reference Board (NAND)
68 UBOOT_CONFIG:=mt7621_nand_rfb
69 BUILD_DEVICES:=mediatek_mt7621-eval-board
70 BUILD_TARGET:=ramips
71 BUILD_SUBTARGET:=mt7621
72 UBOOT_IMAGE:=u-boot-mt7621.bin
73 endef
74
75 define U-Boot/mt7622_rfb1
76 NAME:=MT7622 Reference Board 1
77 UBOOT_CONFIG:=mt7622_rfb
78 BUILD_DEVICES:=mediatek_mt7622-rfb1 mediatek_mt7622-rfb1-ubi
79 BUILD_SUBTARGET:=mt7622
80 endef
81
82 define U-Boot/mt7622_linksys_e8450
83 NAME:=Linksys E8450
84 UBOOT_CONFIG:=mt7622_linksys_e8450
85 BUILD_DEVICES:=linksys_e8450-ubi
86 BUILD_SUBTARGET:=mt7622
87 UBOOT_IMAGE:=u-boot.fip
88 BL2_BOOTDEV:=snand
89 BL2_DDRBLOB:=1
90 DEPENDS:=+trusted-firmware-a-mt7622-snand-1ddr
91 endef
92
93 define U-Boot/mt7622_bananapi_bpi-r64-emmc
94 NAME:=BananaPi R64 (eMMC)
95 UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-emmc
96 BUILD_DEVICES:=bananapi_bpi-r64
97 BUILD_SUBTARGET:=mt7622
98 UBOOT_IMAGE:=u-boot.fip
99 BL2_BOOTDEV:=emmc
100 BL2_DDRBLOB:=2
101 DEPENDS:=+trusted-firmware-a-mt7622-emmc-2ddr
102 endef
103
104 define U-Boot/mt7622_bananapi_bpi-r64-sdmmc
105 NAME:=BananaPi R64 (SDMMC)
106 UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-sdmmc
107 BUILD_DEVICES:=bananapi_bpi-r64
108 BUILD_SUBTARGET:=mt7622
109 UBOOT_IMAGE:=u-boot.fip
110 BL2_BOOTDEV:=sdmmc
111 BL2_DDRBLOB:=2
112 DEPENDS:=+trusted-firmware-a-mt7622-sdmmc-2ddr
113 endef
114
115 define U-Boot/mt7622_bananapi_bpi-r64-snand
116 NAME:=BananaPi R64 (SNAND)
117 UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-snand
118 BUILD_DEVICES:=bananapi_bpi-r64
119 BUILD_SUBTARGET:=mt7622
120 UBOOT_IMAGE:=u-boot.fip
121 BL2_BOOTDEV:=snand
122 BL2_DDRBLOB:=2
123 DEPENDS:=+trusted-firmware-a-mt7622-snand-2ddr
124 endef
125
126 define U-Boot/mt7622_ubnt_unifi-6-lr
127 NAME:=Ubiquiti UniFi 6 LR
128 UBOOT_CONFIG:=mt7622_ubnt_unifi-6-lr
129 BUILD_DEVICES:=ubnt_unifi-6-lr-v1-ubootmod ubnt_unifi-6-lr-v2-ubootmod
130 BUILD_SUBTARGET:=mt7622
131 UBOOT_IMAGE:=u-boot.fip
132 BL2_BOOTDEV:=nor
133 BL2_DDRBLOB:=2
134 DEPENDS:=+trusted-firmware-a-mt7622-nor-2ddr
135 FIP_COMPRESS:=1
136 endef
137
138 define U-Boot/mt7623a_unielec_u7623
139 NAME:=UniElec U7623 (mt7623)
140 BUILD_DEVICES:=unielec_u7623-02
141 BUILD_SUBTARGET:=mt7623
142 UBOOT_CONFIG:=mt7623a_unielec_u7623_02
143 endef
144
145 define U-Boot/mt7623n_bpir2
146 NAME:=Banana Pi R2 (mt7623)
147 BUILD_DEVICES:=bananapi_bpi-r2
148 BUILD_SUBTARGET:=mt7623
149 UBOOT_IMAGE:=u-boot.bin
150 UBOOT_CONFIG:=mt7623n_bpir2
151 endef
152
153 define U-Boot/mt7628_rfb
154 NAME:=MT7628 Reference Board
155 BUILD_DEVICES:=mediatek_mt7628an-eval-board
156 BUILD_TARGET:=ramips
157 BUILD_SUBTARGET:=mt76x8
158 UBOOT_CONFIG:=mt7628_rfb
159 UBOOT_IMAGE:=u-boot-with-spl.bin
160 endef
161
162 define U-Boot/ravpower_rp-wd009
163 NAME:=RAVPower RP-WD009
164 BUILD_TARGET:=ramips
165 BUILD_DEVICES:=ravpower_rp-wd009
166 BUILD_SUBTARGET:=mt76x8
167 UBOOT_CONFIG:=ravpower-rp-wd009-ram
168 UBOOT_IMAGE:=u-boot.bin
169 endef
170
171 define U-Boot/mt7629_rfb
172 NAME:=MT7629 Reference Board
173 BUILD_SUBTARGET:=mt7629
174 BUILD_DEVICES:=mediatek_mt7629-rfb
175 UBOOT_CONFIG:=mt7629_rfb
176 endef
177
178 define U-Boot/mt7986_rfb
179 NAME:=MT7986 Reference Board
180 BUILD_SUBTARGET:=filogic
181 BUILD_DEVICES:=mediatek_mt7986-rfb
182 UBOOT_CONFIG:=mt7986_rfb
183 UBOOT_IMAGE:=u-boot.fip
184 BL2_BOOTDEV:=sdmmc
185 BL2_SOC:=mt7986
186 BL2_DDRTYPE:=ddr4
187 DEPENDS:=+trusted-firmware-a-mt7986-sdmmc-ddr4
188 endef
189
190 define U-Boot/mt7986_bananapi_bpi-r3-emmc
191 NAME:=BananaPi BPi-R3
192 BUILD_SUBTARGET:=filogic
193 BUILD_DEVICES:=bananapi_bpi-r3
194 UBOOT_CONFIG:=mt7986a_bpi-r3-emmc
195 UBOOT_IMAGE:=u-boot.fip
196 BL2_BOOTDEV:=emmc
197 BL2_SOC:=mt7986
198 BL2_DDRTYPE:=ddr4
199 DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4
200 endef
201
202 define U-Boot/mt7986_bananapi_bpi-r3-sdmmc
203 NAME:=BananaPi BPi-R3
204 BUILD_SUBTARGET:=filogic
205 BUILD_DEVICES:=bananapi_bpi-r3
206 UBOOT_CONFIG:=mt7986a_bpi-r3-sd
207 UBOOT_IMAGE:=u-boot.fip
208 BL2_BOOTDEV:=sdmmc
209 BL2_SOC:=mt7986
210 BL2_DDRTYPE:=ddr4
211 DEPENDS:=+trusted-firmware-a-mt7986-sdmmc-ddr4
212 endef
213
214 define U-Boot/mt7986_bananapi_bpi-r3-snand
215 NAME:=BananaPi BPi-R3
216 BUILD_SUBTARGET:=filogic
217 BUILD_DEVICES:=bananapi_bpi-r3
218 UBOOT_CONFIG:=mt7986a_bpi-r3-snand
219 UBOOT_IMAGE:=u-boot.fip
220 BL2_BOOTDEV:=spim-nand
221 BL2_SOC:=mt7986
222 BL2_DDRTYPE:=ddr4
223 DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ddr4
224 endef
225
226 define U-Boot/mt7986_bananapi_bpi-r3-nor
227 NAME:=BananaPi BPi-R3
228 BUILD_SUBTARGET:=filogic
229 BUILD_DEVICES:=bananapi_bpi-r3
230 UBOOT_CONFIG:=mt7986a_bpi-r3-nor
231 UBOOT_IMAGE:=u-boot.fip
232 BL2_BOOTDEV:=nor
233 BL2_SOC:=mt7986
234 BL2_DDRTYPE:=ddr4
235 DEPENDS:=+trusted-firmware-a-mt7986-nor-ddr4
236 FIP_COMPRESS:=1
237 endef
238
239 UBOOT_TARGETS := \
240 mt7620_mt7530_rfb \
241 mt7620_rfb \
242 mt7621_nand_rfb \
243 mt7621_rfb \
244 mt7622_bananapi_bpi-r64-emmc \
245 mt7622_bananapi_bpi-r64-sdmmc \
246 mt7622_bananapi_bpi-r64-snand \
247 mt7622_linksys_e8450 \
248 mt7622_rfb1 \
249 mt7622_ubnt_unifi-6-lr \
250 mt7623n_bpir2 \
251 mt7623a_unielec_u7623 \
252 mt7628_rfb \
253 ravpower_rp-wd009 \
254 mt7629_rfb \
255 mt7986_bananapi_bpi-r3-emmc \
256 mt7986_bananapi_bpi-r3-sdmmc \
257 mt7986_bananapi_bpi-r3-snand \
258 mt7986_bananapi_bpi-r3-nor \
259 mt7986_rfb
260
261 ifdef CONFIG_TARGET_mediatek
262 UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE:.fip=.bin)
263 endif
264
265 define Build/fip-image
266 $(if $(FIP_COMPRESS),\
267 xz -f -e -k -9 -C crc32 $(STAGING_DIR_IMAGE)/$(if $(BL2_SOC),$(BL2_SOC),$(BUILD_SUBTARGET))-$(BL2_BOOTDEV)-$(if $(BL2_DDRTYPE),$(BL2_DDRTYPE)-)$(if $(BL2_DDRBLOB),$(BL2_DDRBLOB)ddr-)bl31.bin ;\
268 xz -f -e -k -9 -C crc32 $(PKG_BUILD_DIR)/u-boot.bin \
269 )
270 $(STAGING_DIR_HOST)/bin/fiptool create \
271 --soc-fw $(STAGING_DIR_IMAGE)/$(if $(BL2_SOC),$(BL2_SOC),$(BUILD_SUBTARGET))-$(BL2_BOOTDEV)-$(if $(BL2_DDRTYPE),$(BL2_DDRTYPE)-)$(if $(BL2_DDRBLOB),$(BL2_DDRBLOB)ddr-)bl31.bin$(if $(FIP_COMPRESS),.xz) \
272 --nt-fw $(PKG_BUILD_DIR)/u-boot.bin$(if $(FIP_COMPRESS),.xz) \
273 $(PKG_BUILD_DIR)/u-boot.fip
274 endef
275
276 ifdef CONFIG_TARGET_ramips_mt7621
277 define Build/Prepare
278 $(call Build/Prepare/Default)
279 ifdef CONFIG_DEBUG
280 $(CP) $(DL_DIR)/mt7621_stage_sram.bin $(PKG_BUILD_DIR)/
281 else
282 $(CP) $(DL_DIR)/mt7621_stage_sram_noprint.bin $(PKG_BUILD_DIR)/mt7621_stage_sram.bin
283 endif
284 endef
285 endif
286
287 define Build/Configure
288 $(call Build/Configure/U-Boot)
289 sed -i 's/CONFIG_TOOLS_LIBCRYPTO=y/# CONFIG_TOOLS_LIBCRYPTO is not set/' $(PKG_BUILD_DIR)/.config
290 endef
291
292 define Build/Compile
293 $(call Build/Compile/U-Boot)
294 ifeq ($(UBOOT_IMAGE),u-boot.fip))
295 $(call Build/fip-image)
296 endif
297 endef
298
299 # don't stage files to bindir, let target/linux/mediatek/image/*.mk do that
300 ifdef CONFIG_TARGET_mediatek
301 define Package/u-boot/install
302 endef
303 endif
304
305 define Build/InstallDev
306 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
307 $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE)
308 endef
309
310 $(eval $(call BuildPackage/U-Boot))