arm-trusted-firmware-mediatek: bring back package
[openwrt/openwrt.git] / package / boot / arm-trusted-firmware-mediatek / Makefile
1 #
2 # Copyright (C) 2017 Hauke Mehrtens
3 # Copyright (C) 2021 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:=$(AUTORELEASE)
13
14 PKG_SOURCE_PROTO:=git
15 PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
16 PKG_SOURCE_DATE:=2020-11-09
17 PKG_SOURCE_VERSION:=03017334ccd8c0fac12e7db36749b95b9a7d745f
18 PKG_MIRROR_HASH:=b211b2f9143d4debc7ad8dc959cb606888af20af790855dd66c87e451b6a1bc7
19
20 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
21
22 PKG_LICENSE+=proprietary
23 PKG_LICENSE_FILES:=LICENCE.mediatek
24
25 BLOBS_TARBALL:=tfa-mtk-files-for-2020-11-09.tgz
26 BROMIMAGE_EXEC:=bromimage-x64
27
28 include $(INCLUDE_DIR)/trusted-firmware-a.mk
29 include $(INCLUDE_DIR)/package.mk
30
31 define Download/tfa-files
32 URL:=https://codeload.github.com/openwrt/arm-trusted-firmware-mediatek-files/tar.gz/for-2020-11-09?
33 URL_FILE:=$(BLOBS_TARBALL)
34 FILE:=$(BLOBS_TARBALL)
35 HASH:=689b097e4531d3eeca0c477675ab3dc3cace6ba4ed8a339116a9ede6537839d7
36 endef
37
38 define Download/mt7622-header-emmc
39 URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0
40 URL_FILE:=header_emmc.bin
41 FILE:=mt7622-header_emmc.bin
42 HASH:=0a09c55d90c5fc375c59468a4331555f77cbc3e1dd107ca83b5b8c9625f38d8c
43 endef
44
45 define Download/mt7622-header-sdmmc
46 URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0
47 URL_FILE:=header_sdmmc.bin
48 FILE:=mt7622-header_sdmmc.bin
49 HASH:=242908c04e25289d25ba9fab61a1930425af173051c43d275d1ac9877d6accb1
50 endef
51
52 define Trusted-Firmware-A/Default
53 BUILD_TARGET:=mediatek
54 BUILD_SUBTARGET:=mt7622
55 PLAT:=mt7622
56 TFA_IMAGE:=bl2.img bl31.bin
57 BOOT_DEVICE:=
58 DDR_BLOB:=
59 endef
60
61 define Trusted-Firmware-A/mt7622-nor-1ddr
62 NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
63 BOOT_DEVICE:=nor
64 DDR_BLOB:=1
65 endef
66
67 define Trusted-Firmware-A/mt7622-nor-2ddr
68 NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
69 BOOT_DEVICE:=nor
70 DDR_BLOB:=2
71 endef
72
73 define Trusted-Firmware-A/mt7622-snand-1ddr
74 NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
75 BOOT_DEVICE:=snand
76 DDR_BLOB:=1
77 endef
78
79 define Trusted-Firmware-A/mt7622-snand-2ddr
80 NAME:=MediaTek MT7622 (SPI-SNAND, 2x DDR3)
81 BOOT_DEVICE:=snand
82 DDR_BLOB:=2
83 endef
84
85 define Trusted-Firmware-A/mt7622-emmc-1ddr
86 NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
87 BOOT_DEVICE:=emmc
88 DDR_BLOB:=1
89 endef
90
91 define Trusted-Firmware-A/mt7622-emmc-2ddr
92 NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
93 BOOT_DEVICE:=emmc
94 DDR_BLOB:=2
95 endef
96
97 define Trusted-Firmware-A/mt7622-sdmmc-1ddr
98 NAME:=MediaTek MT7622 (SDcard, 1x DDR3)
99 BOOT_DEVICE:=sdmmc
100 DDR_BLOB:=1
101 endef
102
103 define Trusted-Firmware-A/mt7622-sdmmc-2ddr
104 NAME:=MediaTek MT7622 (SDcard, 2x DDR3)
105 BOOT_DEVICE:=sdmmc
106 DDR_BLOB:=2
107 endef
108
109 TFA_TARGETS:= \
110 mt7622-nor-1ddr \
111 mt7622-nor-2ddr \
112 mt7622-snand-1ddr \
113 mt7622-snand-2ddr \
114 mt7622-emmc-1ddr \
115 mt7622-emmc-2ddr \
116 mt7622-sdmmc-1ddr \
117 mt7622-sdmmc-2ddr
118
119 TFA_MAKE_FLAGS += BOOT_DEVICE=$(BOOT_DEVICE) all
120
121 define Build/Prepare
122 $(call Build/Prepare/Default)
123 ifeq ($(BOOT_DEVICE),emmc)
124 $(eval $(call Download,mt7622-header-emmc))
125 endif
126 ifeq ($(BOOT_DEVICE),sdmmc)
127 $(eval $(call Download,mt7622-header-sdmmc))
128 endif
129 $(eval $(call Download,tfa-files))
130 # replace 'bromimage' tool by static version
131 $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
132 -O "*/$(BROMIMAGE_EXEC)" > $(PKG_BUILD_DIR)/tools/mediatek/bromimage/bromimage
133 $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
134 -C $(PKG_BUILD_DIR) \
135 --strip-components=1 */LICENCE.mediatek
136 endef
137
138 define Build/Configure
139 $(call Build/Configure/Default)
140 # replace DRAM calib blobs if needed (variant '2' is shipped upstream)
141 ifeq ($(DDR_BLOB),1)
142 $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
143 -C $(PKG_BUILD_DIR)/plat/mediatek/mt7622/drivers/dram/release \
144 --strip-components=1 */*.o
145 endif
146 endef
147
148 define Package/trusted-firmware-a/install
149 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
150 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
151 $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
152 ifeq ($(BOOT_DEVICE),emmc)
153 $(INSTALL_DATA) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE)/
154 endif
155 ifeq ($(BOOT_DEVICE),sdmmc)
156 $(INSTALL_DATA) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE)/
157 endif
158 endef
159
160 $(eval $(call BuildPackage/Trusted-Firmware-A))