xref: /openbmc/linux/drivers/crypto/caam/Kconfig (revision 82003e04)
1config CRYPTO_DEV_FSL_CAAM
2	tristate "Freescale CAAM-Multicore driver backend"
3	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
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_PKC_API
103        tristate "Register public key cryptography implementations with Crypto API"
104        depends on CRYPTO_DEV_FSL_CAAM && CRYPTO_DEV_FSL_CAAM_JR
105        default y
106        select CRYPTO_RSA
107        help
108          Selecting this will allow SEC Public key support for RSA.
109          Supported cryptographic primitives: encryption, decryption,
110          signature and verification.
111          To compile this as a module, choose M here: the module
112          will be called caam_pkc.
113
114config CRYPTO_DEV_FSL_CAAM_RNG_API
115	tristate "Register caam device for hwrng API"
116	depends on CRYPTO_DEV_FSL_CAAM && CRYPTO_DEV_FSL_CAAM_JR
117	default y
118	select CRYPTO_RNG
119	select HW_RANDOM
120	help
121	  Selecting this will register the SEC4 hardware rng to
122	  the hw_random API for suppying the kernel entropy pool.
123
124	  To compile this as a module, choose M here: the module
125	  will be called caamrng.
126
127config CRYPTO_DEV_FSL_CAAM_IMX
128	def_bool SOC_IMX6 || SOC_IMX7D
129	depends on CRYPTO_DEV_FSL_CAAM
130
131config CRYPTO_DEV_FSL_CAAM_DEBUG
132	bool "Enable debug output in CAAM driver"
133	depends on CRYPTO_DEV_FSL_CAAM
134	help
135	  Selecting this will enable printing of various debug
136	  information in the CAAM driver.
137