xref: /optee_os/core/arch/arm/plat-stm32mp1/conf.mk (revision 7653887e496156c4bfd9dd9a1478d277f14ef128)
1a3d77d19SEtienne Carriere# 1GB and 512MB DDR targets do not locate secure DDR at the same place.
25c932a03SJohann Neuhauserflavor_dts_file-157A_DHCOR_AVENGER96 = stm32mp157a-dhcor-avenger96.dts
3a3d77d19SEtienne Carriereflavor_dts_file-157A_DK1 = stm32mp157a-dk1.dts
46e9896c0SJohann Neuhauserflavor_dts_file-157C_DHCOM_PDK2 = stm32mp157c-dhcom-pdk2.dts
5a3d77d19SEtienne Carriereflavor_dts_file-157C_DK2 = stm32mp157c-dk2.dts
6a3d77d19SEtienne Carriereflavor_dts_file-157C_ED1 = stm32mp157c-ed1.dts
7a3d77d19SEtienne Carriereflavor_dts_file-157C_EV1 = stm32mp157c-ev1.dts
836f1fd6dSEtienne Carriereflavor_dts_file-157A_DK1_SCMI = stm32mp157a-dk1-scmi.dts
936f1fd6dSEtienne Carriereflavor_dts_file-157C_DK2_SCMI = stm32mp157c-dk2-scmi.dts
1036f1fd6dSEtienne Carriereflavor_dts_file-157C_ED1_SCMI = stm32mp157c-ed1-scmi.dts
11a040ef6eSEtienne Carriereflavor_dts_file-157C_EV1_SCMI = stm32mp157c-ev1-scmi.dts
1212941fdcSEtienne Carriere
130f04fdc9SGatien Chevallierflavor_dts_file-135F_DK = stm32mp135f-dk.dts
140f04fdc9SGatien Chevallier
150f04fdc9SGatien Chevallierflavorlist-cryp-512M = $(flavor_dts_file-157C_DK2) \
1636f1fd6dSEtienne Carriere		       $(flavor_dts_file-157C_DK2_SCMI) \
170f04fdc9SGatien Chevallier		       $(flavor_dts_file-135F_DK)
18a3d77d19SEtienne Carriere
1936f1fd6dSEtienne Carriereflavorlist-no_cryp-512M = $(flavor_dts_file-157A_DK1) \
2036f1fd6dSEtienne Carriere			  $(flavor_dts_file-157A_DK1_SCMI)
21a3d77d19SEtienne Carriere
226e9896c0SJohann Neuhauserflavorlist-cryp-1G = $(flavor_dts_file-157C_DHCOM_PDK2) \
236e9896c0SJohann Neuhauser		     $(flavor_dts_file-157C_ED1) \
2436f1fd6dSEtienne Carriere		     $(flavor_dts_file-157C_EV1) \
2536f1fd6dSEtienne Carriere		     $(flavor_dts_file-157C_ED1_SCMI) \
2636f1fd6dSEtienne Carriere		     $(flavor_dts_file-157C_EV1_SCMI)
27a3d77d19SEtienne Carriere
285c932a03SJohann Neuhauserflavorlist-no_cryp-1G = $(flavor_dts_file-157A_DHCOR_AVENGER96)
295c932a03SJohann Neuhauser
305c932a03SJohann Neuhauserflavorlist-no_cryp = $(flavorlist-no_cryp-512M) \
315c932a03SJohann Neuhauser		  $(flavorlist-no_cryp-1G)
32a3d77d19SEtienne Carriere
33a3d77d19SEtienne Carriereflavorlist-512M = $(flavorlist-cryp-512M) \
34a3d77d19SEtienne Carriere		  $(flavorlist-no_cryp-512M)
35a3d77d19SEtienne Carriere
365c932a03SJohann Neuhauserflavorlist-1G = $(flavorlist-cryp-1G) \
375c932a03SJohann Neuhauser		  $(flavorlist-no_cryp-1G)
38a3d77d19SEtienne Carriere
39b0946e1dSThomas BOURGOINflavorlist-MP15-HUK-DT = $(flavor_dts_file-157A_DK1) \
40b0946e1dSThomas BOURGOIN			 $(flavor_dts_file-157C_DK2) \
41b0946e1dSThomas BOURGOIN			 $(flavor_dts_file-157C_ED1) \
4236f1fd6dSEtienne Carriere			 $(flavor_dts_file-157C_EV1) \
4336f1fd6dSEtienne Carriere			 $(flavor_dts_file-157A_DK1_SCMI) \
4436f1fd6dSEtienne Carriere			 $(flavor_dts_file-157C_DK2_SCMI) \
4536f1fd6dSEtienne Carriere			 $(flavor_dts_file-157C_ED1_SCMI) \
4636f1fd6dSEtienne Carriere			 $(flavor_dts_file-157C_EV1_SCMI)
47b0946e1dSThomas BOURGOIN
485c932a03SJohann Neuhauserflavorlist-MP15 = $(flavor_dts_file-157A_DHCOR_AVENGER96) \
495c932a03SJohann Neuhauser		  $(flavor_dts_file-157A_DK1) \
506e9896c0SJohann Neuhauser		  $(flavor_dts_file-157C_DHCOM_PDK2) \
510f04fdc9SGatien Chevallier		  $(flavor_dts_file-157C_DK2) \
520f04fdc9SGatien Chevallier		  $(flavor_dts_file-157C_ED1) \
5336f1fd6dSEtienne Carriere		  $(flavor_dts_file-157C_EV1) \
5436f1fd6dSEtienne Carriere		  $(flavor_dts_file-157A_DK1_SCMI) \
5536f1fd6dSEtienne Carriere		  $(flavor_dts_file-157C_DK2_SCMI) \
5636f1fd6dSEtienne Carriere		  $(flavor_dts_file-157C_ED1_SCMI) \
5736f1fd6dSEtienne Carriere		  $(flavor_dts_file-157C_EV1_SCMI)
580f04fdc9SGatien Chevallier
590f04fdc9SGatien Chevallierflavorlist-MP13 = $(flavor_dts_file-135F_DK)
600f04fdc9SGatien Chevallier
612462f4e0SGatien Chevallierflavorlist-dh-platforms = $(flavor_dts_file-157A_DHCOR_AVENGER96) \
622462f4e0SGatien Chevallier			  $(flavor_dts_file-157C_DHCOM_PDK2)
632462f4e0SGatien Chevallier
64a3d77d19SEtienne Carriereifneq ($(PLATFORM_FLAVOR),)
65a3d77d19SEtienne Carriereifeq ($(flavor_dts_file-$(PLATFORM_FLAVOR)),)
66a3d77d19SEtienne Carriere$(error Invalid platform flavor $(PLATFORM_FLAVOR))
67a3d77d19SEtienne Carriereendif
68a3d77d19SEtienne CarriereCFG_EMBED_DTB_SOURCE_FILE ?= $(flavor_dts_file-$(PLATFORM_FLAVOR))
69a3d77d19SEtienne Carriereendif
70474ad185SGatien ChevallierCFG_EMBED_DTB_SOURCE_FILE ?= stm32mp157c-dk2.dts
71a3d77d19SEtienne Carriere
72a3d77d19SEtienne Carriereifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-no_cryp)),)
73a3d77d19SEtienne Carriere$(call force,CFG_STM32_CRYP,n)
747f09267eSThomas Bourgoin$(call force,CFG_STM32_SAES,n)
75a3d77d19SEtienne Carriereendif
76a30d4efbSEtienne Carriere
77eb243bceSGatien Chevallierifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-no_rng)),)
78eb243bceSGatien Chevallier$(call force,CFG_HWRNG_PTA,n)
79eb243bceSGatien Chevallier$(call force,CFG_WITH_SOFTWARE_PRNG,y)
80eb243bceSGatien Chevallierendif
81eb243bceSGatien Chevallier
82b0946e1dSThomas BOURGOINifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-MP15-HUK-DT)),)
83b0946e1dSThomas BOURGOINCFG_STM32MP15_HUK ?= y
84b0946e1dSThomas BOURGOINCFG_STM32_HUK_FROM_DT ?= y
85b0946e1dSThomas BOURGOINendif
86b0946e1dSThomas BOURGOIN
870f04fdc9SGatien Chevallierifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-MP13)),)
880f04fdc9SGatien Chevallier$(call force,CFG_STM32MP13,y)
890f04fdc9SGatien Chevallierendif
900f04fdc9SGatien Chevallier
910f04fdc9SGatien Chevallierifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-MP15)),)
920f04fdc9SGatien Chevallier$(call force,CFG_STM32MP15,y)
930f04fdc9SGatien Chevallierendif
940f04fdc9SGatien Chevallier
952462f4e0SGatien Chevallierifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-dh-platforms)),)
962462f4e0SGatien ChevallierCFG_STM32_ALLOW_UNSAFE_PROBE ?= y
972462f4e0SGatien Chevallierendif
982462f4e0SGatien Chevallier
9960f95c91SGatien Chevallier# CFG_STM32MP1x switches are exclusive.
10060f95c91SGatien Chevallier# - CFG_STM32MP15 is enabled for STM32MP15x-* targets (default)
10160f95c91SGatien Chevallier# - CFG_STM32MP13 is enabled for STM32MP13x-* targets
10260f95c91SGatien Chevallierifeq ($(CFG_STM32MP13),y)
10360f95c91SGatien Chevallier$(call force,CFG_STM32MP15,n)
10460f95c91SGatien Chevallierelse
10560f95c91SGatien Chevallier$(call force,CFG_STM32MP15,y)
10660f95c91SGatien Chevallier$(call force,CFG_STM32MP13,n)
10760f95c91SGatien Chevallierendif
10860f95c91SGatien Chevallierifeq ($(call cfg-one-enabled,CFG_STM32MP15 CFG_STM32MP13),n)
10960f95c91SGatien Chevallier$(error One of CFG_STM32MP15 CFG_STM32MP13 must be enabled)
11060f95c91SGatien Chevallierendif
11160f95c91SGatien Chevallierifeq ($(call cfg-all-enabled,CFG_STM32MP15 CFG_STM32MP13),y)
11260f95c91SGatien Chevallier$(error Only one of CFG_STM32MP15 CFG_STM32MP13 must be enabled)
11360f95c91SGatien Chevallierendif
11460f95c91SGatien Chevallier
115a30d4efbSEtienne Carriereinclude core/arch/arm/cpu/cortex-a7.mk
116a30d4efbSEtienne Carriere
117551cc4e3SEtienne Carriere$(call force,CFG_DRIVERS_CLK,y)
118474ad185SGatien Chevallier$(call force,CFG_DRIVERS_CLK_DT,y)
119ca1a94a1SEtienne Carriere$(call force,CFG_DRIVERS_GPIO,y)
1206d6aeba1SEtienne Carriere$(call force,CFG_DRIVERS_PINCTRL,y)
1215457b0f2SEtienne Carriere$(call force,CFG_DRIVERS_REGULATOR,y)
122a30d4efbSEtienne Carriere$(call force,CFG_GIC,y)
123a30d4efbSEtienne Carriere$(call force,CFG_INIT_CNTVOFF,y)
124a30d4efbSEtienne Carriere$(call force,CFG_PSCI_ARM32,y)
125b2c13caaSEtienne Carriere$(call force,CFG_REGULATOR_FIXED,y)
126a30d4efbSEtienne Carriere$(call force,CFG_SECURE_TIME_SOURCE_CNTPCT,y)
127d9c569c9SEtienne Carriere$(call force,CFG_SM_PLATFORM_HANDLER,y)
1281e1e5a4dSGatien Chevallier$(call force,CFG_STM32_SHARED_IO,y)
129a30d4efbSEtienne Carriere
130d727d176SGatien Chevallierifeq ($(CFG_STM32MP13),y)
131397de527SGatien Chevallier$(call force,CFG_BOOT_SECONDARY_REQUEST,n)
13291d8d7b7SEtienne Carriere$(call force,CFG_CORE_ASYNC_NOTIF,y)
13391d8d7b7SEtienne Carriere$(call force,CFG_CORE_ASYNC_NOTIF_GIC_INTID,31)
134d727d176SGatien Chevallier$(call force,CFG_CORE_RESERVED_SHM,n)
135397de527SGatien Chevallier$(call force,CFG_DRIVERS_CLK_FIXED,y)
136bace849dSPascal Paillet$(call force,CFG_SCMI_MSG_PERF_DOMAIN,y)
137397de527SGatien Chevallier$(call force,CFG_SECONDARY_INIT_CNTFRQ,n)
138397de527SGatien Chevallier$(call force,CFG_STM32_GPIO,y)
139312d4476SEtienne Carriere$(call force,CFG_STM32_VREFBUF,y)
140d727d176SGatien Chevallier$(call force,CFG_STM32MP_CLK_CORE,y)
1413ef177b4SGabriel Fernandez$(call force,CFG_STM32MP1_RSTCTRL,y)
142d727d176SGatien Chevallier$(call force,CFG_STM32MP13_CLK,y)
14323f9bd99SEtienne Carriere$(call force,CFG_STM32MP13_REGULATOR_IOD,y)
144397de527SGatien Chevallier$(call force,CFG_TEE_CORE_NB_CORE,1)
145397de527SGatien Chevallier$(call force,CFG_WITH_NSEC_GPIOS,n)
1462555fbceSEtienne CarriereCFG_EXTERNAL_DT ?= n
14754f13dccSPascal PailletCFG_STM32_CPU_OPP ?= y
14854f13dccSPascal PailletCFG_STM32MP_OPP_COUNT ?= 3
14954f13dccSPascal Paillet# Measured latency on STM32MP13 is around 650uS so set 1mS
15054f13dccSPascal PailletCFG_STM32MP_OPP_LATENCY_US ?= 1000
151397de527SGatien ChevallierCFG_WITH_PAGER ?= n
152397de527SGatien Chevallierendif # CFG_STM32MP13
153397de527SGatien Chevallier
154397de527SGatien Chevallierifeq ($(CFG_STM32MP15),y)
155397de527SGatien Chevallier$(call force,CFG_BOOT_SECONDARY_REQUEST,y)
156397de527SGatien Chevallier$(call force,CFG_DRIVERS_CLK_FIXED,n)
157*7653887eSGatien Chevallier$(call force,CFG_HALT_CORES_SGI,15)
158bace849dSPascal Paillet$(call force,CFG_SCMI_MSG_PERF_DOMAIN,n)
159397de527SGatien Chevallier$(call force,CFG_SECONDARY_INIT_CNTFRQ,y)
1601f2e5a0dSThomas Bourgoin$(call force,CFG_STM32_PKA,n)
1617f09267eSThomas Bourgoin$(call force,CFG_STM32_SAES,n)
1623ef177b4SGabriel Fernandez$(call force,CFG_STM32MP1_RSTCTRL,y)
163d727d176SGatien Chevallier$(call force,CFG_STM32MP15_CLK,y)
1648b3ac1f6SEtienne CarriereCFG_CORE_RESERVED_SHM ?= n
165*7653887eSGatien ChevallierCFG_MULTI_CORE_HALTING ?= y
1662555fbceSEtienne CarriereCFG_EXTERNAL_DT ?= y
1678d6c1b18SEtienne CarriereCFG_STM32_BSEC_SIP ?= y
1687294172cSEtienne CarriereCFG_TEE_CORE_NB_CORE ?= 2
169a30d4efbSEtienne CarriereCFG_WITH_PAGER ?= y
170eb243bceSGatien ChevallierCFG_WITH_SOFTWARE_PRNG ?= y
171397de527SGatien Chevallierendif # CFG_STM32MP15
172397de527SGatien Chevallier
173dd884cc2SEtienne Carriereifeq ($(CFG_WITH_PAGER),y)
174dd884cc2SEtienne CarriereCFG_WITH_LPAE ?= n
175dd884cc2SEtienne Carriereendif
176a30d4efbSEtienne CarriereCFG_WITH_LPAE ?= y
177ce2d526aSEtienne CarriereCFG_MMAP_REGIONS ?= 23
178aeda1d5aSEtienne CarriereCFG_DTB_MAX_SIZE ?= (256 * 1024)
179e0522b06SGatien ChevallierCFG_CORE_ASLR ?= n
180a30d4efbSEtienne Carriere
1815a2d2237SArnaud PouliquenCFG_STM32MP_REMOTEPROC ?= n
1825a2d2237SArnaud PouliquenCFG_DRIVERS_REMOTEPROC ?= $(CFG_STM32MP_REMOTEPROC)
183f6c57ea4SArnaud PouliquenCFG_REMOTEPROC_PTA ?= $(CFG_STM32MP_REMOTEPROC)
1844d31d522SArnaud Pouliquenifeq ($(CFG_REMOTEPROC_PTA),y)
1854d31d522SArnaud Pouliquen# Remoteproc early TA for coprocessor firmware management in boot stages
1864d31d522SArnaud PouliquenCFG_IN_TREE_EARLY_TAS += remoteproc/80a4c275-0a47-4905-8285-1486a9771a08
1874d31d522SArnaud Pouliquen# Embed public part of this key in OP-TEE OS
1884d31d522SArnaud PouliquenRPROC_SIGN_KEY ?= keys/default.pem
1894d31d522SArnaud Pouliquenendif
1905a2d2237SArnaud Pouliquen
191dd884cc2SEtienne Carriereifneq ($(CFG_WITH_LPAE),y)
192dd884cc2SEtienne Carriere# Without LPAE, default TEE virtual address range is 1MB, we need at least 2MB.
193dd884cc2SEtienne CarriereCFG_TEE_RAM_VA_SIZE ?= 0x00200000
194dd884cc2SEtienne Carriereendif
195dd884cc2SEtienne Carriere
1969e527ae5SGatien Chevallierifneq ($(filter $(CFG_EMBED_DTB_SOURCE_FILE),$(flavorlist-512M)),)
1979e527ae5SGatien ChevallierCFG_TZDRAM_START ?= 0xde000000
1989e527ae5SGatien ChevallierCFG_DRAM_SIZE    ?= 0x20000000
1999e527ae5SGatien Chevallierendif
2009e527ae5SGatien Chevallier
2019e527ae5SGatien ChevallierCFG_DRAM_BASE    ?= 0xc0000000
2029e527ae5SGatien ChevallierCFG_DRAM_SIZE    ?= 0x40000000
20347801aebSEtienne Carriere
20447801aebSEtienne Carriere# CFG_STM32MP1_SCMI_SHM_BASE and CFG_STM32MP1_SCMI_SHM_SIZE define the
20547801aebSEtienne Carriere# device memory mapped SRAM used for SCMI message transfers.
20647801aebSEtienne Carriere# When CFG_STM32MP1_SCMI_SHM_BASE is set to 0, the platform uses OP-TEE
20747801aebSEtienne Carriere# native shared memory for SCMI communication instead of SRAM.
20889ba3422SEtienne Carriere#
20989ba3422SEtienne Carriere# When CFG_STM32MP1_SCMI_SHM_SYSRAM is enabled, OP-TEE uses the
21089ba3422SEtienne Carriere# last 4KB page of SYSRAM as SCMI shared memory. The switch is default
21189ba3422SEtienne Carriere# disabled.
21289ba3422SEtienne CarriereCFG_STM32MP1_SCMI_SHM_SYSRAM ?= n
21389ba3422SEtienne Carriereifeq ($(CFG_STM32MP1_SCMI_SHM_SYSRAM),y)
21489ba3422SEtienne Carriere$(call force,CFG_STM32MP1_SCMI_SHM_BASE,0x2ffff000)
215932059bfSEtienne CarriereCFG_TZSRAM_SIZE  ?= 0x0003f000
21689ba3422SEtienne Carriereelse
21789ba3422SEtienne CarriereCFG_STM32MP1_SCMI_SHM_BASE ?= 0
21889ba3422SEtienne Carriereendif
21989ba3422SEtienne Carriere$(call force,CFG_STM32MP1_SCMI_SHM_SIZE,0x1000)
22047801aebSEtienne Carriere
2219e527ae5SGatien Chevallierifeq ($(CFG_STM32MP15),y)
2229e527ae5SGatien ChevallierCFG_TZDRAM_START ?= 0xfe000000
223b0ba0031SEtienne Carriereifeq ($(CFG_CORE_RESERVED_SHM),y)
2249e527ae5SGatien ChevallierCFG_TZDRAM_SIZE  ?= 0x01e00000
225b0ba0031SEtienne Carriereelse
226b0ba0031SEtienne CarriereCFG_TZDRAM_SIZE  ?= 0x02000000
227b0ba0031SEtienne Carriereendif
22845d799cdSGatien ChevallierCFG_TZSRAM_START ?= 0x2ffc0000
229932059bfSEtienne CarriereCFG_TZSRAM_SIZE  ?= 0x00040000
230976cbc5cSEtienne Carriereifeq ($(CFG_CORE_RESERVED_SHM),y)
231976cbc5cSEtienne CarriereCFG_SHMEM_START  ?= ($(CFG_TZDRAM_START) + $(CFG_TZDRAM_SIZE))
232976cbc5cSEtienne CarriereCFG_SHMEM_SIZE   ?= ($(CFG_DRAM_BASE) + $(CFG_DRAM_SIZE) - $(CFG_SHMEM_START))
233976cbc5cSEtienne Carriereendif
2349e527ae5SGatien Chevallierelse
2359e527ae5SGatien ChevallierCFG_TZDRAM_SIZE  ?= 0x02000000
2369e527ae5SGatien ChevallierCFG_TZDRAM_START ?= ($(CFG_DRAM_BASE) + $(CFG_DRAM_SIZE) - $(CFG_TZDRAM_SIZE))
2379e527ae5SGatien Chevallierendif #CFG_STM32MP15
2389e527ae5SGatien Chevallier
239e043ba4bSEtienne CarriereCFG_STM32_BSEC ?= y
24095134dacSNicolas ToromanoffCFG_STM32_CRYP ?= y
2411095cc2eSEtienne CarriereCFG_STM32_ETZPC ?= y
24280b012ceSAntonio BorneoCFG_STM32_EXTI ?= y
243fff9beb4SEtienne CarriereCFG_STM32_GPIO ?= y
2440e385ea6SThomas BourgoinCFG_STM32_HASH ?= y
24545a858ebSEtienne CarriereCFG_STM32_I2C ?= y
2465e50a5b2SEtienne CarriereCFG_STM32_IWDG ?= y
2471f2e5a0dSThomas BourgoinCFG_STM32_PKA ?= y
24868aa058fSEtienne CarriereCFG_STM32_RNG ?= y
249569d17b0SEtienne CarriereCFG_STM32_RSTCTRL ?= y
2505eb947b3SGatien ChevallierCFG_STM32_RTC ?= y
2517f09267eSThomas BourgoinCFG_STM32_SAES ?= y
252089ef8eaSEtienne CarriereCFG_STM32_TAMP ?= y
253a30d4efbSEtienne CarriereCFG_STM32_UART ?= y
2549e24480eSEtienne CarriereCFG_STPMIC1 ?= y
25559c253f9SEtienne CarriereCFG_TZC400 ?= y
2569e24480eSEtienne Carriere
257446da993SClément Le Goffic# Default RTC accuracy, higher accuracy means higher power consumption
258446da993SClément Le GofficCFG_STM32_RTC_HIGH_ACCURACY ?= n
259446da993SClément Le Goffic
260967de90cSEtienne CarriereCFG_DRIVERS_I2C ?= $(CFG_STM32_I2C)
261fbf57d28SEtienne CarriereCFG_REGULATOR_GPIO ?= $(CFG_STM32_GPIO)
262967de90cSEtienne Carriere
263eb243bceSGatien ChevallierCFG_WITH_SOFTWARE_PRNG ?= n
264eb243bceSGatien Chevallierifneq ($(CFG_WITH_SOFTWARE_PRNG),y)
265eb243bceSGatien Chevallier$(call force,CFG_STM32_RNG,y,Required by HW RNG when CFG_WITH_SOFTWARE_PRNG=n)
266eb243bceSGatien Chevallierendif
267eb243bceSGatien Chevallier
2689e24480eSEtienne Carriereifeq ($(CFG_STPMIC1),y)
2699e24480eSEtienne Carriere$(call force,CFG_STM32_I2C,y)
2709e24480eSEtienne Carriere$(call force,CFG_STM32_GPIO,y)
2719e24480eSEtienne Carriereendif
272a30d4efbSEtienne Carriere
2737f09267eSThomas Bourgoin# If any crypto driver is enabled, enable the crypto-framework layer
2740e385ea6SThomas Bourgoinifeq ($(call cfg-one-enabled, CFG_STM32_CRYP \
2750e385ea6SThomas Bourgoin	                      CFG_STM32_HASH \
2760e385ea6SThomas Bourgoin	                      CFG_STM32_PKA  \
2770e385ea6SThomas Bourgoin	                      CFG_STM32_SAES),y)
27895134dacSNicolas Toromanoff$(call force,CFG_STM32_CRYPTO_DRIVER,y)
27995134dacSNicolas Toromanoffendif
28095134dacSNicolas Toromanoff
281569d17b0SEtienne CarriereCFG_DRIVERS_RSTCTRL ?= $(CFG_STM32_RSTCTRL)
282569d17b0SEtienne Carriere$(eval $(call cfg-depends-all,CFG_STM32_RSTCTRL,CFG_DRIVERS_RSTCTRL))
283569d17b0SEtienne Carriere
2845e50a5b2SEtienne CarriereCFG_WDT ?= $(CFG_STM32_IWDG)
285e1bfa2fdSEtienne CarriereCFG_WDT_SM_HANDLER ?= $(CFG_WDT)
286e1bfa2fdSEtienne CarriereCFG_WDT_SM_HANDLER_ID ?= 0xbc000000
287d97509bfSEtienne Carriere$(eval $(call cfg-depends-all,CFG_STM32_IWDG,CFG_WDT_SM_HANDLER CFG_WDT))
2885e50a5b2SEtienne Carriere
28959c253f9SEtienne Carriere# Platform specific configuration
29059c253f9SEtienne CarriereCFG_STM32MP_PANIC_ON_TZC_PERM_VIOLATION ?= y
29159c253f9SEtienne Carriere
292986fccc8SEtienne Carriere# Default enable scmi-msg server if SCP-firmware SCMI server is disabled
293986fccc8SEtienne Carriereifneq ($(CFG_SCMI_SCPFW),y)
294986fccc8SEtienne CarriereCFG_SCMI_MSG_DRIVERS ?= y
295986fccc8SEtienne Carriereendif
296986fccc8SEtienne Carriere
297206b29e8SEtienne Carriere# SiP/OEM service for non-secure world
298eab94876SGatien ChevallierCFG_STM32_BSEC_SIP ?= n
299f13fdbefSEtienne CarriereCFG_STM32MP1_SCMI_SIP ?= n
3005c59f97dSEtienne Carriereifeq ($(CFG_STM32MP1_SCMI_SIP),y)
3015c59f97dSEtienne Carriere$(call force,CFG_SCMI_MSG_DRIVERS,y,Mandated by CFG_STM32MP1_SCMI_SIP)
302799c1d1aSEtienne Carriere$(call force,CFG_SCMI_MSG_SMT,y,Mandated by CFG_STM32MP1_SCMI_SIP)
3035c59f97dSEtienne Carriere$(call force,CFG_SCMI_MSG_SMT_FASTCALL_ENTRY,y,Mandated by CFG_STM32MP1_SCMI_SIP)
3045c59f97dSEtienne Carriereendif
3055c59f97dSEtienne Carriere
306dae611eaSGatien Chevallier# Enable BSEC PTA for fuses access management
307dae611eaSGatien ChevallierCFG_STM32_BSEC_PTA ?= y
308dae611eaSGatien Chevallierifeq ($(CFG_STM32_BSEC_PTA),y)
309dae611eaSGatien Chevallier$(call force,CFG_STM32_BSEC,y,Mandated by CFG_BSEC_PTA)
310dae611eaSGatien Chevallierendif
311dae611eaSGatien Chevallier
31254f13dccSPascal Paillet# Default disable CPU OPP support
31354f13dccSPascal PailletCFG_STM32_CPU_OPP ?= n
31454f13dccSPascal Paillet
3150ae917ecSEtienne Carriere# Default enable SCMI PTA support
3160ae917ecSEtienne CarriereCFG_SCMI_PTA ?= y
3170ae917ecSEtienne Carriereifeq ($(CFG_SCMI_PTA),y)
318986fccc8SEtienne Carriereifneq ($(CFG_SCMI_SCPFW),y)
3190ae917ecSEtienne Carriere$(call force,CFG_SCMI_MSG_DRIVERS,y,Mandated by CFG_SCMI_PTA)
32047801aebSEtienne CarriereCFG_SCMI_MSG_SMT_THREAD_ENTRY ?= y
321799c1d1aSEtienne CarriereCFG_SCMI_MSG_SHM_MSG ?= y
322799c1d1aSEtienne CarriereCFG_SCMI_MSG_SMT ?= y
323986fccc8SEtienne Carriereendif # !CFG_SCMI_SCPFW
324986fccc8SEtienne Carriereendif # CFG_SCMI_PTA
325986fccc8SEtienne Carriere
326986fccc8SEtienne CarriereCFG_SCMI_SCPFW ?= n
327986fccc8SEtienne Carriereifeq ($(CFG_SCMI_SCPFW),y)
328bf870398SVincent Guittot$(call force,CFG_SCMI_SCPFW_PRODUCT,stm32mp1)
3290ae917ecSEtienne Carriereendif
3300ae917ecSEtienne Carriere
3315c59f97dSEtienne CarriereCFG_SCMI_MSG_DRIVERS ?= n
3325c59f97dSEtienne Carriereifeq ($(CFG_SCMI_MSG_DRIVERS),y)
3335c59f97dSEtienne Carriere$(call force,CFG_SCMI_MSG_CLOCK,y)
3345c59f97dSEtienne Carriere$(call force,CFG_SCMI_MSG_RESET_DOMAIN,y)
335799c1d1aSEtienne CarriereCFG_SCMI_MSG_SHM_MSG ?= y
336799c1d1aSEtienne CarriereCFG_SCMI_MSG_SMT ?= y
337799c1d1aSEtienne CarriereCFG_SCMI_MSG_SMT_THREAD_ENTRY ?= y
3385c59f97dSEtienne Carriere$(call force,CFG_SCMI_MSG_VOLTAGE_DOMAIN,y)
3395c59f97dSEtienne Carriereendif
340206b29e8SEtienne Carriere
341b41798faSEtienne Carriereifneq ($(CFG_WITH_SOFTWARE_PRNG),y)
342b41798faSEtienne CarriereCFG_HWRNG_PTA ?= y
343b41798faSEtienne Carriereendif
344b41798faSEtienne Carriereifeq ($(CFG_HWRNG_PTA),y)
345b41798faSEtienne Carriere$(call force,CFG_STM32_RNG,y,Mandated by CFG_HWRNG_PTA)
346b41798faSEtienne Carriere$(call force,CFG_WITH_SOFTWARE_PRNG,n,Mandated by CFG_HWRNG_PTA)
347b41798faSEtienne Carriere$(call force,CFG_HWRNG_QUALITY,1024)
348b41798faSEtienne Carriereendif
349b41798faSEtienne Carriere
3503ba6b40bSEtienne Carriere# Provision enough threads to pass xtest
3513ba6b40bSEtienne Carriereifneq (,$(filter y,$(CFG_SCMI_PTA) $(CFG_STM32MP1_SCMI_SIP)))
3523ba6b40bSEtienne Carriereifeq ($(CFG_WITH_PAGER),y)
3533ba6b40bSEtienne CarriereCFG_NUM_THREADS ?= 3
3543ba6b40bSEtienne Carriereelse
3553ba6b40bSEtienne CarriereCFG_NUM_THREADS ?= 10
3563ba6b40bSEtienne Carriereendif
3573ba6b40bSEtienne Carriereendif
3583ba6b40bSEtienne Carriere
359ce2d526aSEtienne Carriere# Default enable some test facitilites
360f1493ff9SEtienne CarriereCFG_ENABLE_EMBEDDED_TESTS ?= y
361a30d4efbSEtienne CarriereCFG_WITH_STATS ?= y
362646fd5c7SEtienne Carriere
363407023caSEtienne Carriere# Default enable software fallback on crypto drivers
364407023caSEtienne CarriereCFG_STM32_SAES_SW_FALLBACK ?= y
365407023caSEtienne Carriere
3664b4b84a8SGatien Chevallier# Enable OTP update with BSEC driver
3674b4b84a8SGatien ChevallierCFG_STM32_BSEC_WRITE ?= y
3688d09211bSGatien Chevallier
36969b010d3SEtienne Carriere# Default disable some support for pager memory size constraint
370cef5035cSEtienne Carriereifeq ($(CFG_WITH_PAGER),y)
37169b010d3SEtienne CarriereCFG_TEE_CORE_DEBUG ?= n
37269b010d3SEtienne CarriereCFG_UNWIND ?= n
37369b010d3SEtienne CarriereCFG_LOCKDEP ?= n
374cef5035cSEtienne CarriereCFG_TA_BGET_TEST ?= n
375cef5035cSEtienne Carriereendif
37669b010d3SEtienne Carriere
377646fd5c7SEtienne Carriere# Non-secure UART and GPIO/pinctrl for the output console
378646fd5c7SEtienne CarriereCFG_WITH_NSEC_GPIOS ?= y
379ce2d526aSEtienne CarriereCFG_WITH_NSEC_UARTS ?= y
380ce2d526aSEtienne Carriere# UART instance used for early console (0 disables early console)
381ce2d526aSEtienne CarriereCFG_STM32_EARLY_CONSOLE_UART ?= 4
382397de527SGatien Chevallier
383a833cb74SEtienne Carriere# CFG_STM32MP15_HUK enables use of a HUK read from BSEC fuses.
384a833cb74SEtienne Carriere# Disable the HUK by default as it requires a product specific configuration.
385a833cb74SEtienne Carriere#
386f82e8501SEtienne Carriere# Configuration must provide OTP indices where HUK is loaded.
387b0946e1dSThomas BOURGOIN# When CFG_STM32_HUK_FROM_DT is enabled, HUK OTP location is found in the DT.
388b0946e1dSThomas BOURGOIN# When CFG_STM32_HUK_FROM_DT is disabled, configuration sets each HUK location.
389f82e8501SEtienne Carriere# Either with CFG_STM32MP15_HUK_OTP_BASE, in which case the 4 words are used,
390f82e8501SEtienne Carriere# Or with CFG_STM32MP15_HUK_BSEC_KEY_0/1/2/3 each locating one BSEC word.
391f82e8501SEtienne Carriere#
392a833cb74SEtienne Carriere# Configuration must provide the HUK generation scheme. The following switches
393a833cb74SEtienne Carriere# are exclusive and at least one must be eable when CFG_STM32MP15_HUK is enable.
394a833cb74SEtienne Carriere# CFG_STM32MP15_HUK_BSEC_KEY makes platform HUK to be the raw fuses content.
395a833cb74SEtienne Carriere# CFG_STM32MP15_HUK_BSEC_DERIVE_UID makes platform HUK to be the HUK fuses
396a833cb74SEtienne Carriere# content derived with the device UID fuses content. See derivation scheme
397a833cb74SEtienne Carriere# in stm32mp15_huk.c implementation.
3987e203c67SJorge Ramirez-OrtizCFG_STM32MP15_HUK ?= n
399b0946e1dSThomas BOURGOINCFG_STM32_HUK_FROM_DT ?= n
4007e203c67SJorge Ramirez-Ortiz
401a833cb74SEtienne Carriereifeq ($(CFG_STM32MP15_HUK),y)
402b0946e1dSThomas BOURGOINifneq ($(CFG_STM32_HUK_FROM_DT),y)
403f82e8501SEtienne Carriereifneq (,$(CFG_STM32MP15_HUK_OTP_BASE))
404f82e8501SEtienne Carriere$(call force,CFG_STM32MP15_HUK_BSEC_KEY_0,CFG_STM32MP15_HUK_OTP_BASE)
405f82e8501SEtienne Carriere$(call force,CFG_STM32MP15_HUK_BSEC_KEY_1,(CFG_STM32MP15_HUK_OTP_BASE + 1))
406f82e8501SEtienne Carriere$(call force,CFG_STM32MP15_HUK_BSEC_KEY_2,(CFG_STM32MP15_HUK_OTP_BASE + 2))
407f82e8501SEtienne Carriere$(call force,CFG_STM32MP15_HUK_BSEC_KEY_3,(CFG_STM32MP15_HUK_OTP_BASE + 3))
408f82e8501SEtienne Carriereendif
409a833cb74SEtienne Carriereifeq (,$(CFG_STM32MP15_HUK_BSEC_KEY_0))
410a833cb74SEtienne Carriere$(error Missing configuration switch CFG_STM32MP15_HUK_BSEC_KEY_0)
411a833cb74SEtienne Carriereendif
412a833cb74SEtienne Carriereifeq (,$(CFG_STM32MP15_HUK_BSEC_KEY_1))
413a833cb74SEtienne Carriere$(error Missing configuration switch CFG_STM32MP15_HUK_BSEC_KEY_1)
414a833cb74SEtienne Carriereendif
415a833cb74SEtienne Carriereifeq (,$(CFG_STM32MP15_HUK_BSEC_KEY_2))
416a833cb74SEtienne Carriere$(error Missing configuration switch CFG_STM32MP15_HUK_BSEC_KEY_2)
417a833cb74SEtienne Carriereendif
418a833cb74SEtienne Carriereifeq (,$(CFG_STM32MP15_HUK_BSEC_KEY_3))
419a833cb74SEtienne Carriere$(error Missing configuration switch CFG_STM32MP15_HUK_BSEC_KEY_3)
420a833cb74SEtienne Carriereendif
421b0946e1dSThomas BOURGOINendif # CFG_STM32_HUK_FROM_DT
422a833cb74SEtienne Carriere
423a833cb74SEtienne CarriereCFG_STM32MP15_HUK_BSEC_KEY ?= y
424a833cb74SEtienne CarriereCFG_STM32MP15_HUK_BSEC_DERIVE_UID ?= n
425a833cb74SEtienne Carriereifneq (y,$(call cfg-one-enabled,CFG_STM32MP15_HUK_BSEC_KEY CFG_STM32MP15_HUK_BSEC_DERIVE_UID))
426a833cb74SEtienne Carriere$(error CFG_STM32MP15_HUK mandates one of CFG_STM32MP15_HUK_BSEC_KEY CFG_STM32MP15_HUK_BSEC_DERIVE_UID)
427a833cb74SEtienne Carriereelse ifeq ($(CFG_STM32MP15_HUK_BSEC_KEY)-$(CFG_STM32MP15_HUK_BSEC_DERIVE_UID),y-y)
428a833cb74SEtienne Carriere$(error CFG_STM32MP15_HUK_BSEC_KEY and CFG_STM32MP15_HUK_BSEC_DERIVE_UID are exclusive)
429a833cb74SEtienne Carriereendif
430a833cb74SEtienne Carriereendif # CFG_STM32MP15_HUK
431a833cb74SEtienne Carriere
4328f29a74fSGatien ChevallierCFG_TEE_CORE_DEBUG ?= y
4338f29a74fSGatien ChevallierCFG_STM32_DEBUG_ACCESS ?= $(CFG_TEE_CORE_DEBUG)
4348f29a74fSGatien Chevallier
435397de527SGatien Chevallier# Sanity on choice config switches
436397de527SGatien Chevallierifeq ($(call cfg-all-enabled,CFG_STM32MP15 CFG_STM32MP13),y)
437397de527SGatien Chevallier$(error CFG_STM32MP13_CLK and CFG_STM32MP15_CLK are exclusive)
438397de527SGatien Chevallierendif
43911529a22SGatien Chevallier
44011529a22SGatien ChevallierCFG_DRIVERS_FIREWALL ?= y
44111529a22SGatien Chevallierifeq ($(CFG_STM32_ETZPC),y)
44211529a22SGatien Chevallier$(call force,CFG_DRIVERS_FIREWALL,y)
44311529a22SGatien Chevallierendif
4442462f4e0SGatien Chevallier
4452462f4e0SGatien Chevallier# Allow probing of unsafe peripherals. Firewall config will not be checked
4462462f4e0SGatien ChevallierCFG_STM32_ALLOW_UNSAFE_PROBE ?= n
44729ee70d6SGatien Chevallier
44829ee70d6SGatien Chevallier# Enable RTC
44929ee70d6SGatien Chevallierifeq ($(CFG_STM32_RTC),y)
45029ee70d6SGatien Chevallier$(call force,CFG_DRIVERS_RTC,y)
4519b745e16SClément Le Goffic$(call force,CFG_RTC_PTA,y)
45229ee70d6SGatien Chevallierendif
453