Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 1 | FVP_VIRTFS_ENABLE ?= y |
| 2 | FVP_VIRTFS_AUTOMOUNT ?= y |
| 3 | MEASURED_BOOT ?= y |
| 4 | MEASURED_BOOT_FTPM ?= n |
| 5 | TS_SMM_GATEWAY ?= y |
Gabor Ambrus | 557af27 | 2023-08-16 12:59:55 +0200 | [diff] [blame] | 6 | TS_LOGGING_SP ?= y |
| 7 | TS_LOGGING_SP_LOG ?= "trusted-services-logs.txt" |
Imre Kis | cef118b | 2023-01-11 18:01:46 +0100 | [diff] [blame] | 8 | TS_UEFI_TESTS ?= n |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 9 | TS_FW_UPDATE ?= n |
Gabor Toth | a95b581 | 2023-11-09 19:10:36 +0100 | [diff] [blame] | 10 | TS_UEFI_AUTH_VAR ?= y |
Gabor Toth | ab31978 | 2023-12-14 08:52:28 +0100 | [diff] [blame] | 11 | TS_UEFI_INTERNAL_CRYPTO ?= n |
Balint Dobszay | a59865b | 2022-09-13 16:47:27 +0200 | [diff] [blame] | 12 | # Supported values: embedded, fip |
| 13 | SP_PACKAGING_METHOD ?= embedded |
Imre Kis | cef118b | 2023-01-11 18:01:46 +0100 | [diff] [blame] | 14 | SPMC_TESTS ?= n |
Sudeep Holla | 68f7beb | 2024-05-23 17:21:55 +0100 | [diff] [blame] | 15 | SPMC_AT_EL ?= 1 |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 16 | |
Gabor Toth | a95b581 | 2023-11-09 19:10:36 +0100 | [diff] [blame] | 17 | ifneq ($(TS_UEFI_AUTH_VAR)-$(TS_SMM_GATEWAY),y-y) |
| 18 | SP_SMM_GATEWAY_EXTRA_FLAGS += -DUEFI_AUTH_VAR=OFF |
| 19 | TS_APP_UEFI_TEST_EXTRA_FLAGS += -DUEFI_AUTH_VAR=OFF |
| 20 | endif |
| 21 | |
Gabor Toth | ab31978 | 2023-12-14 08:52:28 +0100 | [diff] [blame] | 22 | ifeq ($(TS_UEFI_INTERNAL_CRYPTO),y) |
| 23 | SP_SMM_GATEWAY_EXTRA_FLAGS += -DUEFI_INTERNAL_CRYPTO=ON |
| 24 | endif |
| 25 | |
Balint Dobszay | 6c7dfb2 | 2023-03-16 14:48:33 +0100 | [diff] [blame] | 26 | # Enable the "HArdware Volatile Entropy Gathering and Expansion" daemon to |
| 27 | # overcome low-entropy conditions in the FVP |
| 28 | BR2_PACKAGE_HAVEGED ?= y |
Balint Dobszay | 2e792b3 | 2023-06-05 18:07:32 +0200 | [diff] [blame] | 29 | |
| 30 | # Disable packages not used by this configuration |
| 31 | BR2_PACKAGE_HOST_E2FSPROGS ?= n |
| 32 | BR2_PACKAGE_KEYUTILS ?= n |
| 33 | BR2_PACKAGE_MMC_UTILS ?= n |
| 34 | BR2_PACKAGE_OPENSC ?= n |
| 35 | BR2_PACKAGE_OPTEE_EXAMPLES_EXT ?= n |
| 36 | BR2_PACKAGE_STRACE ?= n |
| 37 | |
| 38 | # Building xtest is not necessary if we don't want to run the SPMC tests |
| 39 | ifneq ($(SPMC_TESTS),y) |
| 40 | BR2_PACKAGE_OPTEE_TEST_EXT ?= n |
| 41 | BR2_PACKAGE_LIBOPENSSL ?= n |
| 42 | BR2_PACKAGE_OPENSSL ?= n |
| 43 | endif |
| 44 | |
Imre Kis | 874a2dd | 2023-01-09 17:01:22 +0100 | [diff] [blame] | 45 | # TS SP configurations |
| 46 | DEFAULT_SP_CONFIG ?= default-opteesp |
| 47 | SP_BLOCK_STORAGE_CONFIG ?= $(DEFAULT_SP_CONFIG) |
| 48 | SP_PSA_ITS_CONFIG ?= $(DEFAULT_SP_CONFIG) |
| 49 | SP_PSA_PS_CONFIG ?= $(DEFAULT_SP_CONFIG) |
| 50 | SP_PSA_CRYPTO_CONFIG ?= $(DEFAULT_SP_CONFIG) |
| 51 | SP_PSA_ATTESTATION_CONFIG ?= $(DEFAULT_SP_CONFIG) |
| 52 | SP_SMM_GATEWAY_CONFIG ?= $(DEFAULT_SP_CONFIG) |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 53 | SP_FWU_CONFIG ?= $(DEFAULT_SP_CONFIG) |
Gabor Ambrus | 557af27 | 2023-08-16 12:59:55 +0200 | [diff] [blame] | 54 | SP_LOGGING_CONFIG ?= $(DEFAULT_SP_CONFIG) |
Imre Kis | 874a2dd | 2023-01-09 17:01:22 +0100 | [diff] [blame] | 55 | |
Balint Dobszay | 3730e01 | 2023-06-02 11:40:41 +0200 | [diff] [blame] | 56 | LINUX_DEFCONFIG_COMMON_FILES ?= $(CURDIR)/kconfigs/fvp_trusted-services.conf |
| 57 | |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 58 | include fvp.mk |
| 59 | include trusted-services.mk |
| 60 | |
Imre Kis | efd2ece | 2023-04-05 13:35:28 +0200 | [diff] [blame] | 61 | # The macros used in bl2_sp_list.dts and spmc_manifest.dts has to be passed to |
| 62 | # TF-A because it handles the preprocessing of these files. |
| 63 | define add-dtc-define |
| 64 | DTC_CPPFLAGS+=-D$1=$(subst y,1,$(subst n,0,$($1))) |
| 65 | endef |
| 66 | |
| 67 | ifeq ($(SP_PACKAGING_METHOD),fip) |
| 68 | $(eval $(call add-dtc-define,SPMC_TESTS)) |
| 69 | $(eval $(call add-dtc-define,TS_SMM_GATEWAY)) |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 70 | $(eval $(call add-dtc-define,TS_FW_UPDATE)) |
Gabor Ambrus | 557af27 | 2023-08-16 12:59:55 +0200 | [diff] [blame] | 71 | $(eval $(call add-dtc-define,TS_LOGGING_SP)) |
Imre Kis | efd2ece | 2023-04-05 13:35:28 +0200 | [diff] [blame] | 72 | |
| 73 | TF_A_EXPORTS += DTC_CPPFLAGS="$(DTC_CPPFLAGS)" |
| 74 | endif |
| 75 | |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 76 | OPTEE_OS_COMMON_EXTRA_FLAGS += \ |
| 77 | CFG_SECURE_PARTITION=y \ |
| 78 | CFG_CORE_SEL1_SPMC=y \ |
| 79 | CFG_CORE_HEAP_SIZE=131072 \ |
| 80 | CFG_DT=y \ |
| 81 | CFG_MAP_EXT_DT_SECURE=y |
| 82 | |
Jelle Sels | 3a937c5 | 2023-02-01 09:25:52 +0100 | [diff] [blame] | 83 | |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 84 | # The boot order of the SPs is determined by the order of calls here. This is |
| 85 | # due to the SPMC not (yet) supporting the boot order field of the SP manifest. |
Imre Kis | 0dbd3df | 2023-04-05 13:31:22 +0200 | [diff] [blame] | 86 | ifeq ($(SPMC_TESTS),n) |
Gabor Ambrus | 557af27 | 2023-08-16 12:59:55 +0200 | [diff] [blame] | 87 | # LOGGING SP |
| 88 | ifeq ($(TS_LOGGING_SP),y) |
| 89 | $(eval $(call build-sp,logging,config/$(SP_LOGGING_CONFIG),da9dffbd-d590-40ed-975f-19c65a3d52d3,$(SP_LOGGING_EXTRA_FLAGS))) |
| 90 | endif |
Imre Kis | 0dbd3df | 2023-04-05 13:31:22 +0200 | [diff] [blame] | 91 | # PSA SPs |
Imre Kis | 874a2dd | 2023-01-09 17:01:22 +0100 | [diff] [blame] | 92 | $(eval $(call build-sp,block-storage,config/$(SP_BLOCK_STORAGE_CONFIG),63646e80-eb52-462f-ac4f-8cdf3987519c,$(SP_BLOCK_STORAGE_EXTRA_FLAGS))) |
| 93 | $(eval $(call build-sp,internal-trusted-storage,config/$(SP_PSA_ITS_CONFIG),dc1eef48-b17a-4ccf-ac8b-dfcff7711b14,$(SP_PSA_ITS_EXTRA_FLAGS))) |
| 94 | $(eval $(call build-sp,protected-storage,config/$(SP_PSA_PS_CONFIG),751bf801-3dde-4768-a514-0f10aeed1790,$(SP_PSA_PS_EXTRA_FLAGS))) |
| 95 | $(eval $(call build-sp,crypto,config/$(SP_PSA_CRYPTO_CONFIG),d9df52d5-16a2-4bb2-9aa4-d26d3b84e8c0,$(SP_PSA_CRYPTO_EXTRA_FLAGS))) |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 96 | ifeq ($(MEASURED_BOOT),y) |
Imre Kis | 874a2dd | 2023-01-09 17:01:22 +0100 | [diff] [blame] | 97 | $(eval $(call build-sp,attestation,config/$(SP_PSA_ATTESTATION_CONFIG),a1baf155-8876-4695-8f7c-54955e8db974,$(SP_PSA_ATTESTATION_EXTRA_FLAGS))) |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 98 | endif |
| 99 | ifeq ($(TS_SMM_GATEWAY),y) |
Imre Kis | 874a2dd | 2023-01-09 17:01:22 +0100 | [diff] [blame] | 100 | $(eval $(call build-sp,smm-gateway,config/$(SP_SMM_GATEWAY_CONFIG),ed32d533-99e6-4209-9cc0-2d72cdd998a7,$(SP_SMM_GATEWAY_EXTRA_FLAGS))) |
Balint Dobszay | 1bf41f5 | 2022-05-30 12:56:38 +0200 | [diff] [blame] | 101 | endif |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 102 | ifeq ($(TS_FW_UPDATE),y) |
| 103 | $(eval $(call build-sp,fwu,config/$(SP_FWU_CONFIG),6823a838-1b06-470e-9774-0cce8bfb53fd,$(SP_FWU_EXTRA_FLAGS))) |
| 104 | endif |
Imre Kis | 0dbd3df | 2023-04-05 13:31:22 +0200 | [diff] [blame] | 105 | else |
| 106 | # SPMC test SPs |
| 107 | OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_SPMC_TESTS=y |
| 108 | $(eval $(call build-sp,spm-test1,opteesp,5c9edbc3-7b3a-4367-9f83-7c191ae86a37,$(SP_SPMC_TEST_EXTRA_FLAGS))) |
| 109 | $(eval $(call build-sp,spm-test2,opteesp,7817164c-c40c-4d1a-867a-9bb2278cf41a,$(SP_SPMC_TEST_EXTRA_FLAGS))) |
| 110 | $(eval $(call build-sp,spm-test3,opteesp,23eb0100-e32a-4497-9052-2f11e584afa6,$(SP_SPMC_TEST_EXTRA_FLAGS))) |
| 111 | $(eval $(call build-sp,spm-test4,opteesp,423762ed-7772-406f-99d8-0c27da0abbf8,$(SP_SPMC_TEST_EXTRA_FLAGS))) |
| 112 | endif |
Balint Dobszay | c0b8fdf | 2022-06-02 14:41:54 +0200 | [diff] [blame] | 113 | |
Imre Kis | 0dbd3df | 2023-04-05 13:31:22 +0200 | [diff] [blame] | 114 | # Linux user space applications |
| 115 | ifeq ($(SPMC_TESTS),n) |
Gabor Toth | 22d7063 | 2023-11-09 19:05:17 +0100 | [diff] [blame] | 116 | $(eval $(call build-ts-app,libts,$(TS_APP_LIBTS_EXTRA_FLAGS))) |
| 117 | $(eval $(call build-ts-app,ts-service-test,$(TS_APP_TS_SERVICE_TEST_EXTRA_FLAGS))) |
| 118 | $(eval $(call build-ts-app,psa-api-test/internal_trusted_storage,$(TS_APP_PSA_ITS_EXTRA_FLAGS))) |
| 119 | $(eval $(call build-ts-app,psa-api-test/protected_storage,$(TS_APP_PSA_PS_EXTRA_FLAGS))) |
| 120 | $(eval $(call build-ts-app,psa-api-test/crypto,$(TS_APP_PSA_CRYPTO_EXTRA_FLAGS))) |
Balint Dobszay | c0b8fdf | 2022-06-02 14:41:54 +0200 | [diff] [blame] | 121 | ifeq ($(MEASURED_BOOT),y) |
Gabor Toth | 22d7063 | 2023-11-09 19:05:17 +0100 | [diff] [blame] | 122 | $(eval $(call build-ts-app,psa-api-test/initial_attestation,$(TS_APP_PSA_IAT_EXTRA_FLAGS))) |
Balint Dobszay | c0b8fdf | 2022-06-02 14:41:54 +0200 | [diff] [blame] | 123 | endif |
| 124 | ifeq ($(TS_UEFI_TESTS),y) |
Gabor Toth | 22d7063 | 2023-11-09 19:05:17 +0100 | [diff] [blame] | 125 | $(eval $(call build-ts-app,uefi-test,$(TS_APP_UEFI_TEST_EXTRA_FLAGS))) |
Imre Kis | cad793f | 2023-09-08 15:53:31 +0200 | [diff] [blame] | 126 | |
| 127 | # uefi-test uses MM Communicate via the arm-ffa-user driver and the message |
| 128 | # payload is forwarded in a carveout memory area. Adding reserved-memory node to |
| 129 | # the device tree to prevent Linux from using the carveout area for other |
| 130 | # purposes. |
| 131 | |
| 132 | ORIGINAL_DTB := $(FVP_LINUX_DTB) |
| 133 | CARVEOUT_ENTRY = $(ROOT)/build/fvp/mm_communicate_carveout.dtsi |
| 134 | FVP_LINUX_DTB = $(ROOT)/out/fvp_with_mm_carveout.dtb |
| 135 | |
| 136 | $(FVP_LINUX_DTB): $(CARVEOUT_ENTRY) | linux |
| 137 | { dtc -Idtb -Odts $(ORIGINAL_DTB); cat $(CARVEOUT_ENTRY); } | dtc -Idts -Odtb -o $(FVP_LINUX_DTB) |
| 138 | |
| 139 | boot-img: $(FVP_LINUX_DTB) |
| 140 | |
| 141 | .PHONY: carveout-dtb-clean |
| 142 | carveout-dtb-clean: |
| 143 | rm -f $(FVP_LINUX_DTB) |
| 144 | |
| 145 | boot-img-clean: carveout-dtb-clean |
Balint Dobszay | c0b8fdf | 2022-06-02 14:41:54 +0200 | [diff] [blame] | 146 | endif |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 147 | |
| 148 | ifeq ($(TS_FW_UPDATE),y) |
| 149 | |
| 150 | # TODO: the fwu-tool is currently not needed. |
Gabor Toth | 22d7063 | 2023-11-09 19:05:17 +0100 | [diff] [blame] | 151 | $(eval $(call build-ts-host-app,fwu-tool,$(TS_HOST_UEFI_TEST_EXTRA_FLAGS))) |
Gyorgy Szing | 08d6974 | 2023-04-05 07:30:08 +0000 | [diff] [blame] | 152 | |
| 153 | ffa-fwu-sp: ts-host-fwu-tool |
| 154 | |
| 155 | # Copy the disk image used by FWU to the build directory to allow the FVP binary to find it. |
| 156 | $(BINARIES_PATH)/secure-flash.img: |
| 157 | mkdir -p $(BINARIES_PATH) |
| 158 | cp $(ROOT)/trusted-services/components/media/disk/disk_images/multi_location_fw.img $(BINARIES_PATH)/secure-flash.img |
| 159 | |
| 160 | # Add a shortcut to help manually doing the copy. |
| 161 | ffa-fwu-fash-img: $(BINARIES_PATH)/secure-flash.img |
| 162 | |
| 163 | ffa-fwu-sp: $(BINARIES_PATH)/secure-flash.img |
| 164 | |
| 165 | endif |
| 166 | |
| 167 | ffa-fwu-fash-img-clean: |
| 168 | rm -f $(BINARIES_PATH)/secure-flash.img |
| 169 | |
| 170 | clean: ffa-fwu-fash-img-clean |
| 171 | |
Balint Dobszay | 58b2bf9 | 2024-07-10 12:51:17 +0200 | [diff] [blame^] | 172 | clean: ts-host-all-clean ffa-test-all-clean ffa-sp-all-clean linux-arm-ffa-user-clean |
Gyorgy Szing | 9715e9d | 2023-04-05 11:04:12 +0000 | [diff] [blame] | 173 | |
Jelle Sels | bb5a536 | 2022-07-18 17:07:05 +0200 | [diff] [blame] | 174 | endif |