xref: /optee_os/core/sub.mk (revision 3227a4c6ab32a31685c3f7b826fd5b0264f49ce0)
1e86a7b92SJerome Forissiersubdirs-y += crypto
2e86a7b92SJerome Forissiersubdirs-y += drivers
3b0104773SPascal Brandsubdirs-y += kernel
4ee546289SJens Wiklandersubdirs-y += mm
5e86a7b92SJerome Forissiersubdirs-y += pta
6b0104773SPascal Brandsubdirs-y += tee
7*3227a4c6SJens Wiklandersubdirs-$(CFG_TEE_CORE_EMBED_INTERNAL_TESTS) += tests
8fca1e9e4SJens Wiklander
9064663e8SJens Wiklanderifeq ($(CFG_WITH_USER_TA),y)
10fca1e9e4SJens Wiklandergensrcs-y += ta_pub_key
11fca1e9e4SJens Wiklanderproduce-ta_pub_key = ta_pub_key.c
123ecd96bbSVesa Jääskeläinendepends-ta_pub_key = $(TA_PUBLIC_KEY) scripts/pem_to_pub_c.py
13b4faf480SDick Olssonrecipe-ta_pub_key = $(PYTHON3) scripts/pem_to_pub_c.py --prefix ta_pub_key \
143ecd96bbSVesa Jääskeläinen		--key $(TA_PUBLIC_KEY) --out $(sub-dir-out)/ta_pub_key.c
15b8c97753SJens Wiklander
16b8c97753SJens Wiklandergensrcs-y += ldelf
17b8c97753SJens Wiklanderproduce-ldelf = ldelf_hex.c
18b8c97753SJens Wiklanderdepends-ldelf = scripts/gen_ldelf_hex.py $(out-dir)/ldelf/ldelf.elf
19b4faf480SDick Olssonrecipe-ldelf = $(PYTHON3) scripts/gen_ldelf_hex.py --input $(out-dir)/ldelf/ldelf.elf \
20b8c97753SJens Wiklander			--output $(sub-dir-out)/ldelf_hex.c
21ee664c19SJerome Forissierendif
22d0c63614SJerome Forissier
23d0c63614SJerome Forissierifeq ($(CFG_WITH_USER_TA)-$(CFG_EARLY_TA),y-y)
24c082c54dSEtienne Carriereifeq ($(CFG_EARLY_TA_COMPRESS),y)
25c082c54dSEtienne Carriereearly-ta-compress = --compress
26c082c54dSEtienne Carriereendif
27d0c63614SJerome Forissierdefine process_early_ta
28d0c63614SJerome Forissierearly-ta-$1-uuid := $(firstword $(subst ., ,$(notdir $1)))
29d0c63614SJerome Forissiergensrcs-y += early-ta-$1
30d0c63614SJerome Forissierproduce-early-ta-$1 = early_ta_$$(early-ta-$1-uuid).c
31dea46be3SJelle Selsdepends-early-ta-$1 = $1 scripts/ts_bin_to_c.py
32c082c54dSEtienne Carriererecipe-early-ta-$1 = $(PYTHON3) scripts/ts_bin_to_c.py $(early-ta-compress) \
33c082c54dSEtienne Carriere		--ta $1 --out $(sub-dir-out)/early_ta_$$(early-ta-$1-uuid).c
34d0c63614SJerome Forissierendef
35d0c63614SJerome Forissier$(foreach f, $(EARLY_TA_PATHS), $(eval $(call process_early_ta,$(f))))
363638ea32SJens Wiklander$(foreach f, $(CFG_IN_TREE_EARLY_TAS), $(eval $(call \
373638ea32SJens Wiklander	process_early_ta,$(out-dir)/ta/$(f).stripped.elf)))
38d0c63614SJerome Forissierendif
39c95b9511SEtienne Carriere
40dea46be3SJelle Selsdefine process_secure_partition
41dea46be3SJelle Selssp-$1-uuid := $(firstword $(subst ., ,$(notdir $1)))
42dea46be3SJelle Selsgensrcs-y += sp-$1
43dea46be3SJelle Selsproduce-sp-$1 = sp_$$(sp-$1-uuid).c
44dea46be3SJelle Selsdepends-sp-$1 = $1 scripts/ts_bin_to_c.py
45e23cd783SJelle Selsdtb-$1-path = $(dir $1)
46e23cd783SJelle Selsdtb-$1 = $$(dtb-$1-path)../manifest/$$(sp-$1-uuid).dtb
47dea46be3SJelle Selsrecipe-sp-$1 = $(PYTHON3) scripts/ts_bin_to_c.py --compress --sp $1 \
48e23cd783SJelle Sels		--out $(sub-dir-out)/sp_$$(sp-$1-uuid).c \
49e23cd783SJelle Sels		--manifest $$(dtb-$1)
50dea46be3SJelle Selsendef
51dea46be3SJelle Sels$(foreach f, $(SP_PATHS), $(eval $(call process_secure_partition,$(f))))
52dea46be3SJelle Sels
53c95b9511SEtienne Carriereifeq ($(CFG_EMBED_DTB),y)
54c95b9511SEtienne Carrierecore-embed-fdt-dts = $(arch-dir)/dts/$(CFG_EMBED_DTB_SOURCE_FILE)
55c95b9511SEtienne Carrierecore-embed-fdt-dtb = $(out-dir)/$(arch-dir)/dts/$(CFG_EMBED_DTB_SOURCE_FILE:.dts=.dtb)
56c95b9511SEtienne Carrierecore-embed-fdt-c = $(out-dir)/$(arch-dir)/dts/$(CFG_EMBED_DTB_SOURCE_FILE:.dts=.c)
57c95b9511SEtienne Carrieregensrcs-y += embedded_secure_dtb
58c95b9511SEtienne Carriereproduce-embedded_secure_dtb = arch/$(ARCH)/dts/$(CFG_EMBED_DTB_SOURCE_FILE:.dts=.c)
599f762003SEtienne Carrieredepends-embedded_secure_dtb = $(core-embed-fdt-dtb) scripts/bin_to_c.py
60b4faf480SDick Olssonrecipe-embedded_secure_dtb = $(PYTHON3) scripts/bin_to_c.py \
61c95b9511SEtienne Carriere				--bin $(core-embed-fdt-dtb) \
62c95b9511SEtienne Carriere				--vname embedded_secure_dtb \
63c95b9511SEtienne Carriere				--out $(core-embed-fdt-c)
64c95b9511SEtienne Carriere$(eval $(call gen-dtb-file,$(core-embed-fdt-dts),$(core-embed-fdt-dtb)))
65c95b9511SEtienne Carriereendif
66a2087649SJerome Forissier
67a2087649SJerome Forissierifeq ($(CFG_SHOW_CONF_ON_BOOT),y)
68a2087649SJerome Forissierconf-mk-xz-base64 := $(sub-dir-out)/conf.mk.xz.base64
69a2087649SJerome Forissiercleanfiles += $(conf-mk-xz-base64)
70a2087649SJerome Forissier
71a2087649SJerome Forissier$(conf-mk-xz-base64): $(conf-mk-file)
72a2087649SJerome Forissier	@$(cmd-echo-silent) '  GEN     $@'
73a2087649SJerome Forissier	$(q)tail +3 $< | xz | base64 -w 100 >$@
74a2087649SJerome Forissier
75a2087649SJerome Forissiergensrcs-y += conf_str
76a2087649SJerome Forissierproduce-conf_str = conf.mk.xz.base64.c
77a2087649SJerome Forissierdepends-conf_str = $(conf-mk-xz-base64)
78b4faf480SDick Olssonrecipe-conf_str = $(PYTHON3) scripts/bin_to_c.py --text --bin $(conf-mk-xz-base64) \
79a2087649SJerome Forissier			--out $(sub-dir-out)/conf.mk.xz.base64.c \
80a2087649SJerome Forissier			--vname conf_str
81a2087649SJerome Forissierendif
8242471ecfSJens Wiklander
8342471ecfSJens Wiklanderifneq ($(CFG_STMM_PATH),)
8442471ecfSJens Wiklandergensrcs-y += stmm
8542471ecfSJens Wiklanderproduce-stmm = stmm_hex.c
8642471ecfSJens Wiklanderdepends-stmm = scripts/gen_stmm_hex.py $(CFG_STMM_PATH)
8742471ecfSJens Wiklanderrecipe-stmm = scripts/gen_stmm_hex.py --input $(CFG_STMM_PATH) \
8842471ecfSJens Wiklander			--output $(sub-dir-out)/stmm_hex.c
8942471ecfSJens Wiklandercleanfiles += $(sub-dir-out)/stmm_hex.c
9042471ecfSJens Wiklanderendif
91