arm-trusted-firmware-mediatek: bring back package

* use binary provided by MediaTek to work-around 'bromimage' issue
 * refactor Makefile
 * add mt7622 1c variants (using binaries provided by MTK)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: maurerr <mariusd84@gmail.com>
This commit is contained in:
Daniel Golle 2021-02-10 02:47:53 +00:00 committed by maurerr
parent b9c68b6cad
commit c29fb6d3f8

View File

@ -1,6 +1,6 @@
# #
# Copyright (C) 2017 Hauke Mehrtens # Copyright (C) 2017 Hauke Mehrtens
# Copyright (C) 2020 Daniel Golle # Copyright (C) 2021 Daniel Golle
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -19,9 +19,22 @@ PKG_MIRROR_HASH:=b211b2f9143d4debc7ad8dc959cb606888af20af790855dd66c87e451b6a1bc
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org> PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE+=proprietary
PKG_LICENSE_FILES:=LICENCE.mediatek
BLOBS_TARBALL:=tfa-mtk-files-for-2020-11-09.tgz
BROMIMAGE_EXEC:=bromimage-x64
include $(INCLUDE_DIR)/trusted-firmware-a.mk include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Download/tfa-files
URL:=https://codeload.github.com/openwrt/arm-trusted-firmware-mediatek-files/tar.gz/for-2020-11-09?
URL_FILE:=$(BLOBS_TARBALL)
FILE:=$(BLOBS_TARBALL)
HASH:=689b097e4531d3eeca0c477675ab3dc3cace6ba4ed8a339116a9ede6537839d7
endef
define Download/mt7622-header-emmc define Download/mt7622-header-emmc
URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0 URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0
URL_FILE:=header_emmc.bin URL_FILE:=header_emmc.bin
@ -36,74 +49,112 @@ define Download/mt7622-header-sdmmc
HASH:=242908c04e25289d25ba9fab61a1930425af173051c43d275d1ac9877d6accb1 HASH:=242908c04e25289d25ba9fab61a1930425af173051c43d275d1ac9877d6accb1
endef endef
define Package/arm-trusted-firmware-mt7622/Default define Trusted-Firmware-A/Default
SECTION:=boot BUILD_TARGET:=mediatek
CATEGORY:=Boot Loaders BUILD_SUBTARGET:=mt7622
TITLE:=ARM Trusted Firmware for MT7622 PLAT:=mt7622
DEPENDS:=@TARGET_mediatek_mt7622 @BROKEN TFA_IMAGE:=bl2.img bl31.bin
# wait until bromimage gets replace by static build BOOT_DEVICE:=
# libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by tools/mediatek/bromimage/bromimage) DDR_BLOB:=
endef endef
define Package/arm-trusted-firmware-mt7622-nor define Trusted-Firmware-A/mt7622-nor-1ddr
$(call Package/arm-trusted-firmware-mt7622/Default) NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
VARIANT:=nor BOOT_DEVICE:=nor
DDR_BLOB:=1
endef endef
define Package/arm-trusted-firmware-mt7622-snand define Trusted-Firmware-A/mt7622-nor-2ddr
$(call Package/arm-trusted-firmware-mt7622/Default) NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
VARIANT:=snand BOOT_DEVICE:=nor
DDR_BLOB:=2
endef endef
define Package/arm-trusted-firmware-mt7622-emmc define Trusted-Firmware-A/mt7622-snand-1ddr
$(call Package/arm-trusted-firmware-mt7622/Default) NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
VARIANT:=emmc BOOT_DEVICE:=snand
DDR_BLOB:=1
endef endef
define Package/arm-trusted-firmware-mt7622-sdmmc define Trusted-Firmware-A/mt7622-snand-2ddr
$(call Package/arm-trusted-firmware-mt7622/Default) NAME:=MediaTek MT7622 (SPI-SNAND, 2x DDR3)
VARIANT:=sdmmc BOOT_DEVICE:=snand
DDR_BLOB:=2
endef endef
MAKE_VARS = \ define Trusted-Firmware-A/mt7622-emmc-1ddr
CROSS_COMPILE="$(TARGET_CROSS)" NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
BOOT_DEVICE:=emmc
DDR_BLOB:=1
endef
MAKE_FLAGS += \ define Trusted-Firmware-A/mt7622-emmc-2ddr
PLAT=mt7622 \ NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
BOOT_DEVICE=$(BUILD_VARIANT) \ BOOT_DEVICE:=emmc
all DDR_BLOB:=2
endef
define Trusted-Firmware-A/mt7622-sdmmc-1ddr
NAME:=MediaTek MT7622 (SDcard, 1x DDR3)
BOOT_DEVICE:=sdmmc
DDR_BLOB:=1
endef
define Trusted-Firmware-A/mt7622-sdmmc-2ddr
NAME:=MediaTek MT7622 (SDcard, 2x DDR3)
BOOT_DEVICE:=sdmmc
DDR_BLOB:=2
endef
TFA_TARGETS:= \
mt7622-nor-1ddr \
mt7622-nor-2ddr \
mt7622-snand-1ddr \
mt7622-snand-2ddr \
mt7622-emmc-1ddr \
mt7622-emmc-2ddr \
mt7622-sdmmc-1ddr \
mt7622-sdmmc-2ddr
TFA_MAKE_FLAGS += BOOT_DEVICE=$(BOOT_DEVICE) all
define Build/Prepare define Build/Prepare
$(call Build/Prepare/Default) $(call Build/Prepare/Default)
ifeq ($(BUILD_VARIANT),emmc) ifeq ($(BOOT_DEVICE),emmc)
$(eval $(call Download,mt7622-header-emmc)) $(eval $(call Download,mt7622-header-emmc))
endif endif
ifeq ($(BUILD_VARIANT),sdmmc) ifeq ($(BOOT_DEVICE),sdmmc)
$(eval $(call Download,mt7622-header-sdmmc)) $(eval $(call Download,mt7622-header-sdmmc))
endif endif
$(eval $(call Download,tfa-files))
# replace 'bromimage' tool by static version
$(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
-O "*/$(BROMIMAGE_EXEC)" > $(PKG_BUILD_DIR)/tools/mediatek/bromimage/bromimage
$(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
-C $(PKG_BUILD_DIR) \
--strip-components=1 */LICENCE.mediatek
endef endef
define Build/InstallDev define Build/Configure
$(call Build/Configure/Default)
# replace DRAM calib blobs if needed (variant '2' is shipped upstream)
ifeq ($(DDR_BLOB),1)
$(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \
-C $(PKG_BUILD_DIR)/plat/mediatek/mt7622/drivers/dram/release \
--strip-components=1 */*.o
endif
endef
define Package/trusted-firmware-a/install
$(INSTALL_DIR) $(STAGING_DIR_IMAGE) $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.bin $(STAGING_DIR_IMAGE)/mt7622-bl2-$(BUILD_VARIANT).bin $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
$(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/mt7622-bl2-$(BUILD_VARIANT).img $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
# bl31.bin turns out to be identical for all build variants ifeq ($(BOOT_DEVICE),emmc)
$(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/mt7622-bl31.bin $(INSTALL_DATA) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE)/
ifeq ($(BUILD_VARIANT),emmc)
$(CP) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE)
endif endif
ifeq ($(BUILD_VARIANT),sdmmc) ifeq ($(BOOT_DEVICE),sdmmc)
$(CP) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE) $(INSTALL_DATA) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE)/
endif endif
endef endef
define Package/arm-trusted-firmware-mt7622-nor/install $(eval $(call BuildPackage/Trusted-Firmware-A))
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))