aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2021-02-02 18:04:33 +0000
committerDaniel Golle <daniel@makrotopia.org>2021-02-02 18:13:15 +0000
commita3b55ae510e1af2fa401d0091fccb11af6bed799 (patch)
tree885ca4f0311c02f890e3966596bf56da6ade648a /package/boot
parent740af59b9c7ee879b6936dd03bf37d37a54dda47 (diff)
downloadupstream-a3b55ae510e1af2fa401d0091fccb11af6bed799.tar.gz
upstream-a3b55ae510e1af2fa401d0091fccb11af6bed799.tar.bz2
upstream-a3b55ae510e1af2fa401d0091fccb11af6bed799.zip
arm-trusted-firmware-mediatek: add ATF builds for MT7622
ATF bl2 comes in 4 variants for MT7622 depending on the boot media: * nor * snand * emmc * sdmmc Additional binary headers needed for emmc and sdmmc are downloaded as well and provided along with bl2*.bin and bl31.bin to allow building images including ATF for MT7622. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'package/boot')
-rw-r--r--package/boot/arm-trusted-firmware-mediatek/Makefile111
1 files changed, 111 insertions, 0 deletions
diff --git a/package/boot/arm-trusted-firmware-mediatek/Makefile b/package/boot/arm-trusted-firmware-mediatek/Makefile
new file mode 100644
index 0000000000..c886a4ccc7
--- /dev/null
+++ b/package/boot/arm-trusted-firmware-mediatek/Makefile
@@ -0,0 +1,111 @@
+#
+# Copyright (C) 2017 Hauke Mehrtens
+# Copyright (C) 2020 Daniel Golle
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=arm-trusted-firmware-mediatek
+PKG_RELEASE:=$(AUTORELEASE)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
+PKG_SOURCE_DATE:=2020-11-09
+PKG_SOURCE_VERSION:=03017334ccd8c0fac12e7db36749b95b9a7d745f
+PKG_MIRROR_HASH:=b211b2f9143d4debc7ad8dc959cb606888af20af790855dd66c87e451b6a1bc7
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=docs/license.rst
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Download/mt7622-header-emmc
+ URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0
+ URL_FILE:=header_emmc.bin
+ FILE:=mt7622-header_emmc.bin
+ HASH:=0a09c55d90c5fc375c59468a4331555f77cbc3e1dd107ca83b5b8c9625f38d8c
+endef
+
+define Download/mt7622-header-sdmmc
+ URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0
+ URL_FILE:=header_sdmmc.bin
+ FILE:=mt7622-header_sdmmc.bin
+ HASH:=242908c04e25289d25ba9fab61a1930425af173051c43d275d1ac9877d6accb1
+endef
+
+define Package/arm-trusted-firmware-mt7622/Default
+ SECTION:=boot
+ CATEGORY:=Boot Loaders
+ TITLE:=ARM Trusted Firmware for MT7622
+ DEPENDS:=@TARGET_mediatek_mt7622
+endef
+
+define Package/arm-trusted-firmware-mt7622-nor
+ $(call Package/arm-trusted-firmware-mt7622/Default)
+ VARIANT:=nor
+endef
+
+define Package/arm-trusted-firmware-mt7622-snand
+ $(call Package/arm-trusted-firmware-mt7622/Default)
+ VARIANT:=snand
+endef
+
+define Package/arm-trusted-firmware-mt7622-emmc
+ $(call Package/arm-trusted-firmware-mt7622/Default)
+ VARIANT:=emmc
+endef
+
+define Package/arm-trusted-firmware-mt7622-sdmmc
+ $(call Package/arm-trusted-firmware-mt7622/Default)
+ VARIANT:=sdmmc
+endef
+
+export GCC_HONOUR_COPTS=s
+
+MAKE_VARS = \
+ CROSS_COMPILE="$(TARGET_CROSS)"
+
+MAKE_FLAGS += \
+ PLAT=mt7622 \
+ BOOT_DEVICE=$(BUILD_VARIANT) \
+ all
+
+define Build/Prepare
+ $(call Build/Prepare/Default)
+ifeq ($(BUILD_VARIANT),emmc)
+ $(eval $(call Download,mt7622-header-emmc))
+endif
+ifeq ($(BUILD_VARIANT),sdmmc)
+ $(eval $(call Download,mt7622-header-sdmmc))
+endif
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+ $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.bin $(STAGING_DIR_IMAGE)/bl2-$(BUILD_VARIANT).bin
+ $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/bl2-$(BUILD_VARIANT).img
+# bl31.bin turns out to be identical for all build variants
+ $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/bl31.bin
+ifeq ($(BUILD_VARIANT),emmc)
+ $(CP) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE)/header-emmc.bin
+endif
+ifeq ($(BUILD_VARIANT),sdmmc)
+ $(CP) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE)/header-sdmmc.bin
+endif
+endef
+
+define Package/arm-trusted-firmware-mt7622-nor/install
+endef
+Package/arm-trusted-firmware-mt7622-snand/install = $(Package/arm-trusted-firmware-mt7622-nor/install)
+Package/arm-trusted-firmware-mt7622-emmc/install = $(Package/arm-trusted-firmware-mt7622-nor/install)
+Package/arm-trusted-firmware-mt7622-sdmmc/install = $(Package/arm-trusted-firmware-mt7622-nor/install)
+
+$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-nor))
+$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-snand))
+$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-emmc))
+$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-sdmmc))