#
# Copyright (C) 2023 Teltonika
#

include $(TOPDIR)/rules.mk

PKG_NAME:=arm-trusted-firmware-mediatek

PKG_SOURCE_VERSION:=2.0

PKG_ASLR_PIE:=0

PKG_LICENSE:=BSD-3-Clause

include $(INCLUDE_DIR)/trusted-firmware-a.mk
include $(INCLUDE_DIR)/package.mk

RSTRIP_ARGS:=:
RSTRIP:=:
STRIP:=:

define Trusted-Firmware-A/mt7981-tlt
	NAME:=Mediatek MT7981 (SPI-NAND/NOR)
	DEPENDS:=+uboot-mt7981 +libopenssl
	BUILD_SUBTARGET:=mt7981
	PLAT:=mt7981
	TFA_IMAGE:=bl2.img fip.bin
	TFA_PLAT_MAKE_FLAGS:=NAND_TYPE=spim:2k+64
	BOOT_DEVICE:=mixed
endef

define Trusted-Firmware-A/mt7981-emmc-tlt
	NAME:=Mediatek MT7981 (EMMC)
	DEPENDS:=+uboot-mt7981-emmc +libopenssl
	BUILD_SUBTARGET:=mt7981-emmc
	PLAT:=mt7981
	TFA_IMAGE:=bl2.img fip.bin
	BOOT_DEVICE:=mixed
	DDR_TYPE:=ddr4
endef

define Trusted-Firmware-A/mt7986a-tlt
	NAME:=MediaTek MT7986 (SPI-NOR, DDR4)
	DEPENDS:=+uboot-mt7986 +libopenssl
	BOOT_DEVICE:=nor
	BUILD_SUBTARGET:=mt7986a
	PLAT:=mt7986
	TFA_IMAGE:=bl2.img fip.bin
	DDR_TYPE:=ddr4
endef

TFA_TARGETS:= \
	mt7981-tlt \
	mt7981-emmc-tlt \
	mt7986a-tlt

TFA_MAKE_FLAGS += \
	BOOT_DEVICE=$(BOOT_DEVICE) \
	$(TFA_PLAT_MAKE_FLAGS) \
	BL33=$(BIN_DIR)/u-boot_tlt-$(BUILD_SUBTARGET).bin \
	$(if $(findstring ddr4,$(DDR_TYPE)),DRAM_USE_DDR4=1,DDR3_FREQ_2133=1) \
	BOARD_BGA=1 \
	all \
	fip

define Build/Compile/Trusted-Firmware-A
        +$(MAKE) -C $(PKG_BUILD_DIR) \
                CROSS_COMPILE=$(TARGET_CROSS) \
                PLAT=$(PLAT) \
                $(TFA_MAKE_FLAGS)
endef

define Package/trusted-firmware-a/install
	$(INSTALL_DIR) $(BIN_DIR)/atf-$(VARIANT)
	$(CP) $(patsubst %,$(PKG_BUILD_DIR)/build/$(PLAT)/release/%,$(TFA_IMAGE)) $(BIN_DIR)/atf-$(VARIANT)/
endef

$(eval $(call BuildPackage/Trusted-Firmware-A))
