1# 2# Define the cryptographic algorithm to be built 3# 4 5# 6# CAAM Debug: define 3x32 bits value (same bit used to debug a module) 7# CFG_DBG_CAAM_TRACE Module print trace 8# CFG_DBG_CAAM_DESC Module descriptor dump 9# CFG_DBG_CAAM_BUF Module buffer dump 10# 11# DBG_HAL BIT32(0) // HAL trace 12# DBG_CTRL BIT32(1) // Controller trace 13# DBG_MEM BIT32(2) // Memory utility trace 14# DBG_SGT BIT32(3) // Scatter Gather trace 15# DBG_PWR BIT32(4) // Power trace 16# DBG_JR BIT32(5) // Job Ring trace 17# DBG_RNG BIT32(6) // RNG trace 18# DBG_HASH BIT32(7) // Hash trace 19# DBG_RSA BIT32(8) // RSA trace 20# DBG_CIPHER BIT32(9) // Cipher trace 21# DBG_DMAOBJ BIT32(11) // DMA Object Trace 22CFG_DBG_CAAM_TRACE ?= BIT32(1) 23CFG_DBG_CAAM_DESC ?= 0x0 24CFG_DBG_CAAM_BUF ?= 0x0 25 26CFG_CAAM_64BIT ?= y 27 28# Number of entries by which SGT entries must be allocated 29# On layerscape, SGT entries are loaded by burst of 4 30$(call force, CFG_CAAM_SGT_ALIGN,4) 31 32# Enable the BLOB module used for the hardware unique key 33CFG_NXP_CAAM_BLOB_DRV ?= y 34 35$(call force, CFG_CAAM_SIZE_ALIGN,1) 36 37# 38# CAAM Job Ring configuration 39# - Normal boot settings 40# - HAB support boot settings 41# 42$(call force,CFG_JR_BLOCK_SIZE,0x10000) 43$(call force,CFG_JR_INDEX,2) # Default JR index used 44 45ifneq (,$(filter $(PLATFORM_FLAVOR),ls1012afrwy)) 46$(call force,CFG_CAAM_BIG_ENDIAN,y) 47$(call force,CFG_JR_INT,105) 48else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1012ardb)) 49$(call force,CFG_CAAM_BIG_ENDIAN,y) 50$(call force,CFG_JR_INT,105) 51else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1021atwr)) 52$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 53$(call force,CFG_JR_INT,137) 54else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1021aqds)) 55$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 56$(call force,CFG_JR_INT,137) 57else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1043ardb)) 58$(call force,CFG_CAAM_BIG_ENDIAN,y) 59$(call force,CFG_JR_INT,105) 60else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1046ardb)) 61$(call force,CFG_CAAM_BIG_ENDIAN,y) 62$(call force,CFG_JR_INT,137) 63else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1088ardb)) 64$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 65$(call force,CFG_JR_INT,175) 66$(call force,CFG_NXP_CAAM_SGT_V2,y) 67else ifneq (,$(filter $(PLATFORM_FLAVOR),ls2088ardb)) 68$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 69$(call force,CFG_JR_INT,175) 70$(call force,CFG_NXP_CAAM_SGT_V2,y) 71else ifneq (,$(filter $(PLATFORM_FLAVOR),ls1028ardb)) 72$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 73$(call force,CFG_JR_INT,175) 74$(call force,CFG_NXP_CAAM_SGT_V2,y) 75else ifneq (,$(filter $(PLATFORM_FLAVOR),lx2160aqds)) 76$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 77$(call force,CFG_JR_INT, 174) 78$(call force,CFG_NB_JOBS_QUEUE, 80) # Default JR index used 79$(call force,CFG_NXP_CAAM_SGT_V2,y) 80else ifneq (,$(filter $(PLATFORM_FLAVOR),lx2160ardb)) 81$(call force,CFG_CAAM_LITTLE_ENDIAN,y) 82$(call force,CFG_JR_INT, 174) 83$(call force,CFG_NB_JOBS_QUEUE, 80) # Default JR index used 84$(call force,CFG_NXP_CAAM_SGT_V2,y) 85endif 86 87# Version of the SGT implementation to use 88ifneq ($(CFG_NXP_CAAM_SGT_V2),y) 89$(call force,CFG_NXP_CAAM_SGT_V1,y) 90endif 91 92# 93# Configuration of the Crypto Driver 94# 95ifeq ($(CFG_CRYPTO_DRIVER),y) 96 97$(call force, CFG_NXP_CAAM_RUNTIME_JR, y) 98 99# 100# Definition of all HW accelerations for all LS 101# 102$(call force, CFG_NXP_CAAM_RNG_DRV, y) 103$(call force, CFG_WITH_SOFTWARE_PRNG,n) 104 105# Force to 'y' the CFG_NXP_CAAM_xxx_DRV to enable the CAAM HW driver 106# and enable the associated CFG_CRYPTO_DRV_xxx Crypto driver 107# API 108# 109# Example: Enable CFG_CRYPTO_DRV_HASH and CFG_NXP_CAAM_HASH_DRV 110# $(eval $(call cryphw-enable-drv-hw, HASH)) 111define cryphw-enable-drv-hw 112_var := $(strip $(1)) 113$$(call force, CFG_NXP_CAAM_$$(_var)_DRV, y) 114$$(call force, CFG_CRYPTO_DRV_$$(_var), y) 115endef 116 117# Return 'y' if at least one of the variable 118# CFG_CRYPTO_xxx_HW is 'y' 119cryphw-one-enabled = $(call cfg-one-enabled, \ 120 $(foreach v,$(1), CFG_NXP_CAAM_$(v)_DRV)) 121 122# Definition of the HW and Cryto Driver Algorithm supported by all LS 123$(eval $(call cryphw-enable-drv-hw, HASH)) 124$(eval $(call cryphw-enable-drv-hw, CIPHER)) 125$(call force, CFG_NXP_CAAM_HMAC_DRV,y) 126$(call force, CFG_NXP_CAAM_CMAC_DRV,y) 127$(eval $(call cryphw-enable-drv-hw, RSA)) 128$(eval $(call cryphw-enable-drv-hw, ECC)) 129$(eval $(call cryphw-enable-drv-hw, DH)) 130$(eval $(call cryphw-enable-drv-hw, DSA)) 131 132# Define the RSA Private Key Format used by the CAAM 133# Format #1: (n, d) 134# Format #2: (p, q, d) 135# Format #3: (p, q, dp, dq, qp) 136CFG_NXP_CAAM_RSA_KEY_FORMAT ?= 3 137 138$(call force, CFG_NXP_CAAM_ACIPHER_DRV, $(call cryphw-one-enabled, RSA ECC DH DSA)) 139$(call force, CFG_CRYPTO_DRV_MAC, $(call cryphw-one-enabled, HMAC CMAC)) 140 141# 142# Enable Cryptographic Driver interface 143# 144CFG_CRYPTO_DRV_ACIPHER ?= $(CFG_NXP_CAAM_ACIPHER_DRV) 145 146endif 147