xref: /linux/drivers/crypto/caam/Kconfig (revision c056d910f08029662080a01b4ce2110e2c9a27b6)
18e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM
28e8ec596SKim Phillips	tristate "Freescale CAAM-Multicore driver backend"
39e217795SHoria Geantă	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
4*c056d910SHoria Geantă	select SOC_BUS
58e8ec596SKim Phillips	help
68e8ec596SKim Phillips	  Enables the driver module for Freescale's Cryptographic Accelerator
78e8ec596SKim Phillips	  and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
8313ea293SRuchika Gupta	  This module creates job ring devices, and configures h/w
98e8ec596SKim Phillips	  to operate as a DPAA component automatically, depending
108e8ec596SKim Phillips	  on h/w feature availability.
118e8ec596SKim Phillips
128e8ec596SKim Phillips	  To compile this driver as a module, choose M here: the module
138e8ec596SKim Phillips	  will be called caam.
148e8ec596SKim Phillips
15313ea293SRuchika Guptaconfig CRYPTO_DEV_FSL_CAAM_JR
16313ea293SRuchika Gupta	tristate "Freescale CAAM Job Ring driver backend"
17313ea293SRuchika Gupta	depends on CRYPTO_DEV_FSL_CAAM
18313ea293SRuchika Gupta	default y
19313ea293SRuchika Gupta	help
20313ea293SRuchika Gupta	  Enables the driver module for Job Rings which are part of
21313ea293SRuchika Gupta	  Freescale's Cryptographic Accelerator
22313ea293SRuchika Gupta	  and Assurance Module (CAAM). This module adds a job ring operation
23313ea293SRuchika Gupta	  interface.
24313ea293SRuchika Gupta
25313ea293SRuchika Gupta	  To compile this driver as a module, choose M here: the module
26313ea293SRuchika Gupta	  will be called caam_jr.
27313ea293SRuchika Gupta
288e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM_RINGSIZE
298e8ec596SKim Phillips	int "Job Ring size"
30313ea293SRuchika Gupta	depends on CRYPTO_DEV_FSL_CAAM_JR
318e8ec596SKim Phillips	range 2 9
328e8ec596SKim Phillips	default "9"
338e8ec596SKim Phillips	help
348e8ec596SKim Phillips	  Select size of Job Rings as a power of 2, within the
358e8ec596SKim Phillips	  range 2-9 (ring size 4-512).
368e8ec596SKim Phillips	  Examples:
378e8ec596SKim Phillips		2 => 4
388e8ec596SKim Phillips		3 => 8
398e8ec596SKim Phillips		4 => 16
408e8ec596SKim Phillips		5 => 32
418e8ec596SKim Phillips		6 => 64
428e8ec596SKim Phillips		7 => 128
438e8ec596SKim Phillips		8 => 256
448e8ec596SKim Phillips		9 => 512
458e8ec596SKim Phillips
468e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM_INTC
478e8ec596SKim Phillips	bool "Job Ring interrupt coalescing"
48313ea293SRuchika Gupta	depends on CRYPTO_DEV_FSL_CAAM_JR
498e8ec596SKim Phillips	help
508e8ec596SKim Phillips	  Enable the Job Ring's interrupt coalescing feature.
518e8ec596SKim Phillips
521a076689SKim Phillips	  Note: the driver already provides adequate
531a076689SKim Phillips	  interrupt coalescing in software.
541a076689SKim Phillips
558e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
568e8ec596SKim Phillips	int "Job Ring interrupt coalescing count threshold"
578e8ec596SKim Phillips	depends on CRYPTO_DEV_FSL_CAAM_INTC
588e8ec596SKim Phillips	range 1 255
598e8ec596SKim Phillips	default 255
608e8ec596SKim Phillips	help
618e8ec596SKim Phillips	  Select number of descriptor completions to queue before
628e8ec596SKim Phillips	  raising an interrupt, in the range 1-255. Note that a selection
638e8ec596SKim Phillips	  of 1 functionally defeats the coalescing feature, and a selection
648e8ec596SKim Phillips	  equal or greater than the job ring size will force timeouts.
658e8ec596SKim Phillips
668e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
678e8ec596SKim Phillips	int "Job Ring interrupt coalescing timer threshold"
688e8ec596SKim Phillips	depends on CRYPTO_DEV_FSL_CAAM_INTC
698e8ec596SKim Phillips	range 1 65535
708e8ec596SKim Phillips	default 2048
718e8ec596SKim Phillips	help
728e8ec596SKim Phillips	  Select number of bus clocks/64 to timeout in the case that one or
738e8ec596SKim Phillips	  more descriptor completions are queued without reaching the count
748e8ec596SKim Phillips	  threshold. Range is 1-65535.
758e8ec596SKim Phillips
768e8ec596SKim Phillipsconfig CRYPTO_DEV_FSL_CAAM_CRYPTO_API
778e8ec596SKim Phillips	tristate "Register algorithm implementations with the Crypto API"
78746f0690SHoria Geantă	depends on CRYPTO_DEV_FSL_CAAM_JR
798e8ec596SKim Phillips	default y
80596103cfSHerbert Xu	select CRYPTO_AEAD
818e8ec596SKim Phillips	select CRYPTO_AUTHENC
82596103cfSHerbert Xu	select CRYPTO_BLKCIPHER
838e8ec596SKim Phillips	help
848e8ec596SKim Phillips	  Selecting this will offload crypto for users of the
858e8ec596SKim Phillips	  scatterlist crypto API (such as the linux native IPSec
868e8ec596SKim Phillips	  stack) to the SEC4 via job ring.
878e8ec596SKim Phillips
888e8ec596SKim Phillips	  To compile this as a module, choose M here: the module
898e8ec596SKim Phillips	  will be called caamalg.
90045e3678SYuan Kang
91b189817cSHoria Geantăconfig CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI
92b189817cSHoria Geantă	tristate "Queue Interface as Crypto API backend"
93b189817cSHoria Geantă	depends on CRYPTO_DEV_FSL_CAAM_JR && FSL_DPAA && NET
94b189817cSHoria Geantă	default y
95b189817cSHoria Geantă	select CRYPTO_AUTHENC
96b189817cSHoria Geantă	select CRYPTO_BLKCIPHER
97b189817cSHoria Geantă	help
98b189817cSHoria Geantă	  Selecting this will use CAAM Queue Interface (QI) for sending
99b189817cSHoria Geantă	  & receiving crypto jobs to/from CAAM. This gives better performance
100b189817cSHoria Geantă	  than job ring interface when the number of cores are more than the
101b189817cSHoria Geantă	  number of job rings assigned to the kernel. The number of portals
102b189817cSHoria Geantă	  assigned to the kernel should also be more than the number of
103b189817cSHoria Geantă	  job rings.
104b189817cSHoria Geantă
105b189817cSHoria Geantă	  To compile this as a module, choose M here: the module
106b189817cSHoria Geantă	  will be called caamalg_qi.
107b189817cSHoria Geantă
108045e3678SYuan Kangconfig CRYPTO_DEV_FSL_CAAM_AHASH_API
109045e3678SYuan Kang	tristate "Register hash algorithm implementations with Crypto API"
110746f0690SHoria Geantă	depends on CRYPTO_DEV_FSL_CAAM_JR
111045e3678SYuan Kang	default y
112ae8488a5SPaul Bolle	select CRYPTO_HASH
113045e3678SYuan Kang	help
114045e3678SYuan Kang	  Selecting this will offload ahash for users of the
115045e3678SYuan Kang	  scatterlist crypto API to the SEC4 via job ring.
116045e3678SYuan Kang
117045e3678SYuan Kang	  To compile this as a module, choose M here: the module
118045e3678SYuan Kang	  will be called caamhash.
119e24f7c9eSYuan Kang
1208c419778STudor Ambarusconfig CRYPTO_DEV_FSL_CAAM_PKC_API
1218c419778STudor Ambarus        tristate "Register public key cryptography implementations with Crypto API"
122746f0690SHoria Geantă        depends on CRYPTO_DEV_FSL_CAAM_JR
1238c419778STudor Ambarus        default y
1248c419778STudor Ambarus        select CRYPTO_RSA
1258c419778STudor Ambarus        help
1268c419778STudor Ambarus          Selecting this will allow SEC Public key support for RSA.
1278c419778STudor Ambarus          Supported cryptographic primitives: encryption, decryption,
1288c419778STudor Ambarus          signature and verification.
1298c419778STudor Ambarus          To compile this as a module, choose M here: the module
1308c419778STudor Ambarus          will be called caam_pkc.
1318c419778STudor Ambarus
132e24f7c9eSYuan Kangconfig CRYPTO_DEV_FSL_CAAM_RNG_API
133e24f7c9eSYuan Kang	tristate "Register caam device for hwrng API"
134746f0690SHoria Geantă	depends on CRYPTO_DEV_FSL_CAAM_JR
135e24f7c9eSYuan Kang	default y
136e24f7c9eSYuan Kang	select CRYPTO_RNG
137e24f7c9eSYuan Kang	select HW_RANDOM
138e24f7c9eSYuan Kang	help
139e24f7c9eSYuan Kang	  Selecting this will register the SEC4 hardware rng to
140e24f7c9eSYuan Kang	  the hw_random API for suppying the kernel entropy pool.
141e24f7c9eSYuan Kang
142e24f7c9eSYuan Kang	  To compile this as a module, choose M here: the module
143e24f7c9eSYuan Kang	  will be called caamrng.
144d4d8edf8SAlex Porosanu
145d4d8edf8SAlex Porosanuconfig CRYPTO_DEV_FSL_CAAM_DEBUG
146d4d8edf8SAlex Porosanu	bool "Enable debug output in CAAM driver"
147d4d8edf8SAlex Porosanu	depends on CRYPTO_DEV_FSL_CAAM
148d4d8edf8SAlex Porosanu	help
149d4d8edf8SAlex Porosanu	  Selecting this will enable printing of various debug
150d4d8edf8SAlex Porosanu	  information in the CAAM driver.
1518cea7b66SHoria Geantă
1528cea7b66SHoria Geantăconfig CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
153b189817cSHoria Geantă	def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \
154b189817cSHoria Geantă		      CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI)
155