xref: /linux/drivers/crypto/caam/Kconfig (revision 93df8a1ed6231727c5db94a80b1a6bd5ee67cec3)
1config CRYPTO_DEV_FSL_CAAM
2	tristate "Freescale CAAM-Multicore driver backend"
3	depends on FSL_SOC
4	help
5	  Enables the driver module for Freescale's Cryptographic Accelerator
6	  and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
7	  This module creates job ring devices, and configures h/w
8	  to operate as a DPAA component automatically, depending
9	  on h/w feature availability.
10
11	  To compile this driver as a module, choose M here: the module
12	  will be called caam.
13
14config CRYPTO_DEV_FSL_CAAM_JR
15	tristate "Freescale CAAM Job Ring driver backend"
16	depends on CRYPTO_DEV_FSL_CAAM
17	default y
18	help
19	  Enables the driver module for Job Rings which are part of
20	  Freescale's Cryptographic Accelerator
21	  and Assurance Module (CAAM). This module adds a job ring operation
22	  interface.
23
24	  To compile this driver as a module, choose M here: the module
25	  will be called caam_jr.
26
27config CRYPTO_DEV_FSL_CAAM_RINGSIZE
28	int "Job Ring size"
29	depends on CRYPTO_DEV_FSL_CAAM_JR
30	range 2 9
31	default "9"
32	help
33	  Select size of Job Rings as a power of 2, within the
34	  range 2-9 (ring size 4-512).
35	  Examples:
36		2 => 4
37		3 => 8
38		4 => 16
39		5 => 32
40		6 => 64
41		7 => 128
42		8 => 256
43		9 => 512
44
45config CRYPTO_DEV_FSL_CAAM_INTC
46	bool "Job Ring interrupt coalescing"
47	depends on CRYPTO_DEV_FSL_CAAM_JR
48	help
49	  Enable the Job Ring's interrupt coalescing feature.
50
51	  Note: the driver already provides adequate
52	  interrupt coalescing in software.
53
54config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
55	int "Job Ring interrupt coalescing count threshold"
56	depends on CRYPTO_DEV_FSL_CAAM_INTC
57	range 1 255
58	default 255
59	help
60	  Select number of descriptor completions to queue before
61	  raising an interrupt, in the range 1-255. Note that a selection
62	  of 1 functionally defeats the coalescing feature, and a selection
63	  equal or greater than the job ring size will force timeouts.
64
65config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
66	int "Job Ring interrupt coalescing timer threshold"
67	depends on CRYPTO_DEV_FSL_CAAM_INTC
68	range 1 65535
69	default 2048
70	help
71	  Select number of bus clocks/64 to timeout in the case that one or
72	  more descriptor completions are queued without reaching the count
73	  threshold. Range is 1-65535.
74
75config CRYPTO_DEV_FSL_CAAM_CRYPTO_API
76	tristate "Register algorithm implementations with the Crypto API"
77	depends on CRYPTO_DEV_FSL_CAAM && CRYPTO_DEV_FSL_CAAM_JR
78	default y
79	select CRYPTO_AEAD
80	select CRYPTO_AUTHENC
81	select CRYPTO_BLKCIPHER
82	help
83	  Selecting this will offload crypto for users of the
84	  scatterlist crypto API (such as the linux native IPSec
85	  stack) to the SEC4 via job ring.
86
87	  To compile this as a module, choose M here: the module
88	  will be called caamalg.
89
90config CRYPTO_DEV_FSL_CAAM_AHASH_API
91	tristate "Register hash algorithm implementations with Crypto API"
92	depends on CRYPTO_DEV_FSL_CAAM && CRYPTO_DEV_FSL_CAAM_JR
93	default y
94	select CRYPTO_HASH
95	help
96	  Selecting this will offload ahash for users of the
97	  scatterlist crypto API to the SEC4 via job ring.
98
99	  To compile this as a module, choose M here: the module
100	  will be called caamhash.
101
102config CRYPTO_DEV_FSL_CAAM_RNG_API
103	tristate "Register caam device for hwrng API"
104	depends on CRYPTO_DEV_FSL_CAAM && CRYPTO_DEV_FSL_CAAM_JR
105	default y
106	select CRYPTO_RNG
107	select HW_RANDOM
108	help
109	  Selecting this will register the SEC4 hardware rng to
110	  the hw_random API for suppying the kernel entropy pool.
111
112	  To compile this as a module, choose M here: the module
113	  will be called caamrng.
114
115config CRYPTO_DEV_FSL_CAAM_DEBUG
116	bool "Enable debug output in CAAM driver"
117	depends on CRYPTO_DEV_FSL_CAAM
118	help
119	  Selecting this will enable printing of various debug
120	  information in the CAAM driver.
121