The drivers/crypto/caam/ directory is entered during build only
for building modules when CONFIG_CRYPTO_DEV_FSL_CAAM=m, but
CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is defined as a
'bool' symbol, meaning that caamalg_desc.c is always compiled
into built-in code, or not at all, leading to a link failure:
ERROR: "cnstr_shdsc_xts_ablkcipher_decap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_xts_ablkcipher_encap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_aead_givencap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_aead_decap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_aead_encap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_aead_null_decap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_aead_null_encap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_rfc4106_decap" [drivers/crypto/caam/caamalg.ko] undefined!
ERROR: "cnstr_shdsc_rfc4106_encap" [drivers/crypto/caam/caamalg.ko] undefined!
...
Making caamalg_desc itself a loadable module fixes this configuration
by ensuring the driver gets built. Aside from making the symbol
'tristate', I'm adding appropriate module metadata here.
Fixes: 8cea7b66b8 ("crypto: caam - refactor encryption descriptors generation")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
		
	
			
		
			
				
	
	
		
			140 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
config CRYPTO_DEV_FSL_CAAM
 | 
						|
	tristate "Freescale CAAM-Multicore driver backend"
 | 
						|
	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
 | 
						|
	help
 | 
						|
	  Enables the driver module for Freescale's Cryptographic Accelerator
 | 
						|
	  and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
 | 
						|
	  This module creates job ring devices, and configures h/w
 | 
						|
	  to operate as a DPAA component automatically, depending
 | 
						|
	  on h/w feature availability.
 | 
						|
 | 
						|
	  To compile this driver as a module, choose M here: the module
 | 
						|
	  will be called caam.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	tristate "Freescale CAAM Job Ring driver backend"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM
 | 
						|
	default y
 | 
						|
	help
 | 
						|
	  Enables the driver module for Job Rings which are part of
 | 
						|
	  Freescale's Cryptographic Accelerator
 | 
						|
	  and Assurance Module (CAAM). This module adds a job ring operation
 | 
						|
	  interface.
 | 
						|
 | 
						|
	  To compile this driver as a module, choose M here: the module
 | 
						|
	  will be called caam_jr.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_RINGSIZE
 | 
						|
	int "Job Ring size"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	range 2 9
 | 
						|
	default "9"
 | 
						|
	help
 | 
						|
	  Select size of Job Rings as a power of 2, within the
 | 
						|
	  range 2-9 (ring size 4-512).
 | 
						|
	  Examples:
 | 
						|
		2 => 4
 | 
						|
		3 => 8
 | 
						|
		4 => 16
 | 
						|
		5 => 32
 | 
						|
		6 => 64
 | 
						|
		7 => 128
 | 
						|
		8 => 256
 | 
						|
		9 => 512
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_INTC
 | 
						|
	bool "Job Ring interrupt coalescing"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	help
 | 
						|
	  Enable the Job Ring's interrupt coalescing feature.
 | 
						|
 | 
						|
	  Note: the driver already provides adequate
 | 
						|
	  interrupt coalescing in software.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
 | 
						|
	int "Job Ring interrupt coalescing count threshold"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_INTC
 | 
						|
	range 1 255
 | 
						|
	default 255
 | 
						|
	help
 | 
						|
	  Select number of descriptor completions to queue before
 | 
						|
	  raising an interrupt, in the range 1-255. Note that a selection
 | 
						|
	  of 1 functionally defeats the coalescing feature, and a selection
 | 
						|
	  equal or greater than the job ring size will force timeouts.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
 | 
						|
	int "Job Ring interrupt coalescing timer threshold"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_INTC
 | 
						|
	range 1 65535
 | 
						|
	default 2048
 | 
						|
	help
 | 
						|
	  Select number of bus clocks/64 to timeout in the case that one or
 | 
						|
	  more descriptor completions are queued without reaching the count
 | 
						|
	  threshold. Range is 1-65535.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API
 | 
						|
	tristate "Register algorithm implementations with the Crypto API"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	default y
 | 
						|
	select CRYPTO_AEAD
 | 
						|
	select CRYPTO_AUTHENC
 | 
						|
	select CRYPTO_BLKCIPHER
 | 
						|
	help
 | 
						|
	  Selecting this will offload crypto for users of the
 | 
						|
	  scatterlist crypto API (such as the linux native IPSec
 | 
						|
	  stack) to the SEC4 via job ring.
 | 
						|
 | 
						|
	  To compile this as a module, choose M here: the module
 | 
						|
	  will be called caamalg.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_AHASH_API
 | 
						|
	tristate "Register hash algorithm implementations with Crypto API"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	default y
 | 
						|
	select CRYPTO_HASH
 | 
						|
	help
 | 
						|
	  Selecting this will offload ahash for users of the
 | 
						|
	  scatterlist crypto API to the SEC4 via job ring.
 | 
						|
 | 
						|
	  To compile this as a module, choose M here: the module
 | 
						|
	  will be called caamhash.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_PKC_API
 | 
						|
        tristate "Register public key cryptography implementations with Crypto API"
 | 
						|
        depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
        default y
 | 
						|
        select CRYPTO_RSA
 | 
						|
        help
 | 
						|
          Selecting this will allow SEC Public key support for RSA.
 | 
						|
          Supported cryptographic primitives: encryption, decryption,
 | 
						|
          signature and verification.
 | 
						|
          To compile this as a module, choose M here: the module
 | 
						|
          will be called caam_pkc.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_RNG_API
 | 
						|
	tristate "Register caam device for hwrng API"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM_JR
 | 
						|
	default y
 | 
						|
	select CRYPTO_RNG
 | 
						|
	select HW_RANDOM
 | 
						|
	help
 | 
						|
	  Selecting this will register the SEC4 hardware rng to
 | 
						|
	  the hw_random API for suppying the kernel entropy pool.
 | 
						|
 | 
						|
	  To compile this as a module, choose M here: the module
 | 
						|
	  will be called caamrng.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_IMX
 | 
						|
	def_bool SOC_IMX6 || SOC_IMX7D
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_DEBUG
 | 
						|
	bool "Enable debug output in CAAM driver"
 | 
						|
	depends on CRYPTO_DEV_FSL_CAAM
 | 
						|
	help
 | 
						|
	  Selecting this will enable printing of various debug
 | 
						|
	  information in the CAAM driver.
 | 
						|
 | 
						|
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
 | 
						|
	def_tristate CRYPTO_DEV_FSL_CAAM_CRYPTO_API
 |