GNU Linux-libre 4.14.257-gnu1
[releases.git] / drivers / crypto / caam / Kconfig
1 config 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
15 config 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
28 config 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
46 config 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
55 config 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
66 config 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
76 config 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
91 config 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
108 config 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
120 config 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
132 config 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
145 config 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
152 config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
153         def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \
154                       CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI)