xref: /optee_os/core/drivers/crypto/se050/crypto.mk (revision 784d32ef2978f5ea9af9e40376dae02eb3f28b8c)
1ifeq ($(CFG_NXP_SE05X),y)
2# Enable the crypto driver
3$(call force,CFG_CRYPTO_DRIVER,y)
4CFG_CRYPTO_DRIVER_DEBUG ?= 0
5
6# SE050 initialization
7# Enables the SCP03 key rotation
8CFG_CORE_SE05X_SCP03_PROVISION ?= n
9# Displays the SE050 device information on the console at boot (i.e. OEFID)
10CFG_CORE_SE05X_DISPLAY_INFO ?= y
11# Enables the SCP03 before the REE: notice that if SCP03_PROVISION is enabled,
12# it will also attempt to rotate the keys
13CFG_CORE_SE05X_SCP03_EARLY ?= y
14# Deletes all persistent storage from the SE050 at boot
15CFG_CORE_SE05X_INIT_NVM ?= n
16# Selects the default SCP03 keys based on the configured OEFID
17CFG_CORE_SE05X_OEFID ?= 0
18
19# I2C bus baudrate (depends on SoC)
20CFG_CORE_SE05X_BAUDRATE ?= 3400000
21# I2C bus [0..2] (depends on board)
22CFG_CORE_SE05X_I2C_BUS ?= 2
23
24# Extra stacks required to support the Plug and Trust external library
25ifeq ($(shell test $(CFG_STACK_THREAD_EXTRA) -lt 8192; echo $$?), 0)
26$(error Error: SE050 requires CFG_STACK_THREAD_EXTRA at least 8192)
27endif
28ifeq ($(shell test $(CFG_STACK_TMP_EXTRA) -lt 8192; echo $$?), 0)
29$(error Error: SE050 requires CFG_STACK_TMP_EXTRA at least 8192)
30endif
31
32# SE05X Unique Key Identifier
33CFG_NXP_SE05X_HUK_DRV ?= y
34
35# Random Number Generator
36CFG_NXP_SE05X_RNG_DRV ?= y
37ifeq ($(CFG_NXP_SE05X_RNG_DRV),y)
38$(call force,CFG_WITH_SOFTWARE_PRNG,n)
39endif
40
41se050-one-enabled = $(call cfg-one-enabled, \
42                        $(foreach v,$(1), CFG_NXP_SE05X_$(v)_DRV))
43# Asymmetric ciphers
44CFG_NXP_SE05X_RSA_DRV ?= y
45$(call force, CFG_NXP_SE05X_ACIPHER_DRV, $(call se050-one-enabled, RSA))
46
47# Asymmetric driver
48ifeq ($(CFG_NXP_SE05X_ACIPHER_DRV),y)
49$(call force, CFG_CRYPTO_DRV_ACIPHER,y,Mandated by CFG_NXP_SE05X_ACIPHER_DRV)
50endif
51
52# Asymmetric ciphers configuration
53# - RSA
54ifeq ($(CFG_NXP_SE05X_RSA_DRV),y)
55$(call force,CFG_CRYPTO_DRV_RSA,y)
56CFG_CRYPTO_RSASSA_NA1 ?= y
57_CFG_CORE_LTC_RSA = n
58endif
59
60# Symmetric ciphers
61CFG_NXP_SE05X_CTR_DRV ?= y
62$(call force, CFG_NXP_SE05X_CIPHER_DRV, $(call se050-one-enabled, CTR))
63
64# Symmetric driver
65ifeq ($(CFG_NXP_SE05X_CIPHER_DRV),y)
66$(call force, CFG_CRYPTO_DRV_CIPHER,y,Mandated by CFG_NXP_SE05X_CIPHER_DRV)
67endif
68
69# Plug and Trust NXP SE050X OP-TEE enabled static library
70ldflags-external += $(CFG_NXP_SE05X_PLUG_AND_TRUST_LIB)
71endif  # CFG_NXP_SE05X
72