xref: /openbmc/linux/drivers/crypto/caam/Kconfig (revision e6c81cce)
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	default n
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 && CRYPTO_DEV_FSL_CAAM_JR
79	default y
80	select CRYPTO_ALGAPI
81	select CRYPTO_AUTHENC
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	default n
119	help
120	  Selecting this will enable printing of various debug
121	  information in the CAAM driver.
122