xref: /openbmc/linux/drivers/crypto/caam/Kconfig (revision 160b8e75)
1config CRYPTO_DEV_FSL_CAAM
2	tristate "Freescale CAAM-Multicore driver backend"
3	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
4	select SOC_BUS
5	help
6	  Enables the driver module for Freescale's Cryptographic Accelerator
7	  and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
8	  This module creates job ring devices, and configures h/w
9	  to operate as a DPAA component automatically, depending
10	  on h/w feature availability.
11
12	  To compile this driver as a module, choose M here: the module
13	  will be called caam.
14
15config CRYPTO_DEV_FSL_CAAM_JR
16	tristate "Freescale CAAM Job Ring driver backend"
17	depends on CRYPTO_DEV_FSL_CAAM
18	default y
19	help
20	  Enables the driver module for Job Rings which are part of
21	  Freescale's Cryptographic Accelerator
22	  and Assurance Module (CAAM). This module adds a job ring operation
23	  interface.
24
25	  To compile this driver as a module, choose M here: the module
26	  will be called caam_jr.
27
28config CRYPTO_DEV_FSL_CAAM_RINGSIZE
29	int "Job Ring size"
30	depends on CRYPTO_DEV_FSL_CAAM_JR
31	range 2 9
32	default "9"
33	help
34	  Select size of Job Rings as a power of 2, within the
35	  range 2-9 (ring size 4-512).
36	  Examples:
37		2 => 4
38		3 => 8
39		4 => 16
40		5 => 32
41		6 => 64
42		7 => 128
43		8 => 256
44		9 => 512
45
46config CRYPTO_DEV_FSL_CAAM_INTC
47	bool "Job Ring interrupt coalescing"
48	depends on CRYPTO_DEV_FSL_CAAM_JR
49	help
50	  Enable the Job Ring's interrupt coalescing feature.
51
52	  Note: the driver already provides adequate
53	  interrupt coalescing in software.
54
55config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
56	int "Job Ring interrupt coalescing count threshold"
57	depends on CRYPTO_DEV_FSL_CAAM_INTC
58	range 1 255
59	default 255
60	help
61	  Select number of descriptor completions to queue before
62	  raising an interrupt, in the range 1-255. Note that a selection
63	  of 1 functionally defeats the coalescing feature, and a selection
64	  equal or greater than the job ring size will force timeouts.
65
66config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
67	int "Job Ring interrupt coalescing timer threshold"
68	depends on CRYPTO_DEV_FSL_CAAM_INTC
69	range 1 65535
70	default 2048
71	help
72	  Select number of bus clocks/64 to timeout in the case that one or
73	  more descriptor completions are queued without reaching the count
74	  threshold. Range is 1-65535.
75
76config CRYPTO_DEV_FSL_CAAM_CRYPTO_API
77	tristate "Register algorithm implementations with the Crypto API"
78	depends on CRYPTO_DEV_FSL_CAAM_JR
79	default y
80	select CRYPTO_AEAD
81	select CRYPTO_AUTHENC
82	select CRYPTO_BLKCIPHER
83	help
84	  Selecting this will offload crypto for users of the
85	  scatterlist crypto API (such as the linux native IPSec
86	  stack) to the SEC4 via job ring.
87
88	  To compile this as a module, choose M here: the module
89	  will be called caamalg.
90
91config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI
92	tristate "Queue Interface as Crypto API backend"
93	depends on CRYPTO_DEV_FSL_CAAM_JR && FSL_DPAA && NET
94	default y
95	select CRYPTO_AUTHENC
96	select CRYPTO_BLKCIPHER
97	help
98	  Selecting this will use CAAM Queue Interface (QI) for sending
99	  & receiving crypto jobs to/from CAAM. This gives better performance
100	  than job ring interface when the number of cores are more than the
101	  number of job rings assigned to the kernel. The number of portals
102	  assigned to the kernel should also be more than the number of
103	  job rings.
104
105	  To compile this as a module, choose M here: the module
106	  will be called caamalg_qi.
107
108config CRYPTO_DEV_FSL_CAAM_AHASH_API
109	tristate "Register hash algorithm implementations with Crypto API"
110	depends on CRYPTO_DEV_FSL_CAAM_JR
111	default y
112	select CRYPTO_HASH
113	help
114	  Selecting this will offload ahash for users of the
115	  scatterlist crypto API to the SEC4 via job ring.
116
117	  To compile this as a module, choose M here: the module
118	  will be called caamhash.
119
120config CRYPTO_DEV_FSL_CAAM_PKC_API
121        tristate "Register public key cryptography implementations with Crypto API"
122        depends on CRYPTO_DEV_FSL_CAAM_JR
123        default y
124        select CRYPTO_RSA
125        help
126          Selecting this will allow SEC Public key support for RSA.
127          Supported cryptographic primitives: encryption, decryption,
128          signature and verification.
129          To compile this as a module, choose M here: the module
130          will be called caam_pkc.
131
132config CRYPTO_DEV_FSL_CAAM_RNG_API
133	tristate "Register caam device for hwrng API"
134	depends on CRYPTO_DEV_FSL_CAAM_JR
135	default y
136	select CRYPTO_RNG
137	select HW_RANDOM
138	help
139	  Selecting this will register the SEC4 hardware rng to
140	  the hw_random API for suppying the kernel entropy pool.
141
142	  To compile this as a module, choose M here: the module
143	  will be called caamrng.
144
145config CRYPTO_DEV_FSL_CAAM_DEBUG
146	bool "Enable debug output in CAAM driver"
147	depends on CRYPTO_DEV_FSL_CAAM
148	help
149	  Selecting this will enable printing of various debug
150	  information in the CAAM driver.
151
152config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
153	def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \
154		      CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI)
155