blob: e469dae9840087f2fe6c237efc1315ccebc0134b [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001PKG_NAME ?= trusted-firmware-a
2PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a
3
4ifndef PKG_SOURCE_PROTO
5PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz
6PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot
7endif
8
9PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
10
11PKG_TARGETS := bin
12PKG_FLAGS:=nonshared
13
14PKG_LICENSE:=BSD-3-Clause
15PKG_LICENSE_FILES:=docs/license.rst
16
17PKG_BUILD_PARALLEL:=1
18
19export GCC_HONOUR_COPTS=s
20
21define Package/trusted-firmware-a/install/default
22 $(CP) $(patsubst %,$(PKG_BUILD_DIR)/build/$(PLAT)/release/%,$(TFA_IMAGE)) $(1)/
23endef
24
25Package/trusted-firmware-a/install = $(Package/trusted-firmware-a/install/default)
26
27define Trusted-Firmware-A/Init
28 BUILD_TARGET:=
29 BUILD_SUBTARGET:=
30 BUILD_DEVICES:=
31 NAME:=
32 DEPENDS:=
33 HIDDEN:=
34 DEFAULT:=
35 PLAT:=
36 VARIANT:=$(1)
37 TFA_IMAGE:=
38endef
39
40TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
41
42define Build/Trusted-Firmware-A/Target
43 $(eval $(call Trusted-Firmware-A/Init,$(1)))
44 $(eval $(call Trusted-Firmware-A/Default,$(1)))
45 $(eval $(call Trusted-Firmware-A/$(1),$(1)))
46
47 define Package/trusted-firmware-a-$(1)
48 SECTION:=boot
49 CATEGORY:=Boot Loaders
50 TITLE:=Trusted-Firmware-A for $(NAME)
51 VARIANT:=$(VARIANT)
52 DEPENDS:=@!IN_SDK $(DEPENDS)
53 HIDDEN:=$(HIDDEN)
54 ifneq ($(BUILD_TARGET),)
55 DEPENDS += @$(TARGET_DEP)
56 ifneq ($(BUILD_DEVICES),)
57 DEFAULT := y if ($(TARGET_DEP)_Default \
58 $(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
59 $(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%,$(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
60 endif
61 endif
62 $(if $(DEFAULT),DEFAULT:=$(DEFAULT))
63 URL:=https://www.trustedfirmware.org/projects/tf-a/
64 endef
65
66 ifndef Package/trusted-firmware-a-$(1)/install
67 define Package/trusted-firmware-a-$(1)/install
68 $$(Package/trusted-firmware-a/install)
69 endef
70 endif
71endef
72
73define Build/Configure/Trusted-Firmware-A
74 $(INSTALL_DIR) $(STAGING_DIR)/usr/include
75endef
76
77DTC=$(wildcard $(LINUX_DIR)/scripts/dtc/dtc)
78
79define Build/Compile/Trusted-Firmware-A
80 +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
81 CROSS_COMPILE=$(TARGET_CROSS) \
82 OPENSSL_DIR=$(STAGING_DIR_HOST) \
83 $(if $(DTC),DTC="$(DTC)") \
84 PLAT=$(PLAT) \
85 BUILD_STRING="OpenWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
86 $(if $(CONFIG_BINUTILS_VERSION_2_37)$(CONFIG_BINUTILS_VERSION_2_38),,LDFLAGS="-no-warn-rwx-segments") \
87 $(TFA_MAKE_FLAGS)
88endef
89
90define BuildPackage/Trusted-Firmware-A/Defaults
91 Build/Configure/Default = $$$$(Build/Configure/Trusted-Firmware-A)
92 Build/Compile/Default = $$$$(Build/Compile/Trusted-Firmware-A)
93endef
94
95define BuildPackage/Trusted-Firmware-A
96 $(eval $(call BuildPackage/Trusted-Firmware-A/Defaults))
97 $(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \
98 $(eval $(call Build/Trusted-Firmware-A/Target,$(type)))
99 )
100 $(eval $(call Build/DefaultTargets))
101 $(foreach type,$(if $(DUMP),$(TFA_TARGETS),$(BUILD_VARIANT)), \
102 $(call BuildPackage,trusted-firmware-a-$(type))
103 )
104endef