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