treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / drivers / crypto / caam / Kconfig
blobfac5b2e26610e4d1549d327a99e5fcc9a96ff914
1 # SPDX-License-Identifier: GPL-2.0
2 config CRYPTO_DEV_FSL_CAAM_COMMON
3         tristate
5 config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
6         tristate
8 config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
9         tristate
11 config CRYPTO_DEV_FSL_CAAM
12         tristate "Freescale CAAM-Multicore platform driver backend"
13         depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
14         select SOC_BUS
15         select CRYPTO_DEV_FSL_CAAM_COMMON
16         help
17           Enables the driver module for Freescale's Cryptographic Accelerator
18           and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
19           This module creates job ring devices, and configures h/w
20           to operate as a DPAA component automatically, depending
21           on h/w feature availability.
23           To compile this driver as a module, choose M here: the module
24           will be called caam.
26 if CRYPTO_DEV_FSL_CAAM
28 config CRYPTO_DEV_FSL_CAAM_DEBUG
29         bool "Enable debug output in CAAM driver"
30         help
31           Selecting this will enable printing of various debug
32           information in the CAAM driver.
34 menuconfig CRYPTO_DEV_FSL_CAAM_JR
35         tristate "Freescale CAAM Job Ring driver backend"
36         default y
37         help
38           Enables the driver module for Job Rings which are part of
39           Freescale's Cryptographic Accelerator
40           and Assurance Module (CAAM). This module adds a job ring operation
41           interface.
43           To compile this driver as a module, choose M here: the module
44           will be called caam_jr.
46 if CRYPTO_DEV_FSL_CAAM_JR
48 config CRYPTO_DEV_FSL_CAAM_RINGSIZE
49         int "Job Ring size"
50         range 2 9
51         default "9"
52         help
53           Select size of Job Rings as a power of 2, within the
54           range 2-9 (ring size 4-512).
55           Examples:
56                 2 => 4
57                 3 => 8
58                 4 => 16
59                 5 => 32
60                 6 => 64
61                 7 => 128
62                 8 => 256
63                 9 => 512
65 config CRYPTO_DEV_FSL_CAAM_INTC
66         bool "Job Ring interrupt coalescing"
67         help
68           Enable the Job Ring's interrupt coalescing feature.
70           Note: the driver already provides adequate
71           interrupt coalescing in software.
73 config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD
74         int "Job Ring interrupt coalescing count threshold"
75         depends on CRYPTO_DEV_FSL_CAAM_INTC
76         range 1 255
77         default 255
78         help
79           Select number of descriptor completions to queue before
80           raising an interrupt, in the range 1-255. Note that a selection
81           of 1 functionally defeats the coalescing feature, and a selection
82           equal or greater than the job ring size will force timeouts.
84 config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD
85         int "Job Ring interrupt coalescing timer threshold"
86         depends on CRYPTO_DEV_FSL_CAAM_INTC
87         range 1 65535
88         default 2048
89         help
90           Select number of bus clocks/64 to timeout in the case that one or
91           more descriptor completions are queued without reaching the count
92           threshold. Range is 1-65535.
94 config CRYPTO_DEV_FSL_CAAM_CRYPTO_API
95         bool "Register algorithm implementations with the Crypto API"
96         default y
97         select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
98         select CRYPTO_AEAD
99         select CRYPTO_AUTHENC
100         select CRYPTO_SKCIPHER
101         select CRYPTO_LIB_DES
102         help
103           Selecting this will offload crypto for users of the
104           scatterlist crypto API (such as the linux native IPSec
105           stack) to the SEC4 via job ring.
107 config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI
108         bool "Queue Interface as Crypto API backend"
109         depends on FSL_DPAA && NET
110         default y
111         select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
112         select CRYPTO_AUTHENC
113         select CRYPTO_SKCIPHER
114         select CRYPTO_DES
115         help
116           Selecting this will use CAAM Queue Interface (QI) for sending
117           & receiving crypto jobs to/from CAAM. This gives better performance
118           than job ring interface when the number of cores are more than the
119           number of job rings assigned to the kernel. The number of portals
120           assigned to the kernel should also be more than the number of
121           job rings.
123 config CRYPTO_DEV_FSL_CAAM_AHASH_API
124         bool "Register hash algorithm implementations with Crypto API"
125         default y
126         select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
127         select CRYPTO_HASH
128         help
129           Selecting this will offload ahash for users of the
130           scatterlist crypto API to the SEC4 via job ring.
132 config CRYPTO_DEV_FSL_CAAM_PKC_API
133         bool "Register public key cryptography implementations with Crypto API"
134         default y
135         select CRYPTO_RSA
136         help
137           Selecting this will allow SEC Public key support for RSA.
138           Supported cryptographic primitives: encryption, decryption,
139           signature and verification.
141 config CRYPTO_DEV_FSL_CAAM_RNG_API
142         bool "Register caam device for hwrng API"
143         default y
144         select CRYPTO_RNG
145         select HW_RANDOM
146         help
147           Selecting this will register the SEC4 hardware rng to
148           the hw_random API for suppying the kernel entropy pool.
150 endif # CRYPTO_DEV_FSL_CAAM_JR
152 endif # CRYPTO_DEV_FSL_CAAM
154 config CRYPTO_DEV_FSL_DPAA2_CAAM
155         tristate "QorIQ DPAA2 CAAM (DPSECI) driver"
156         depends on FSL_MC_DPIO
157         depends on NETDEVICES
158         select CRYPTO_DEV_FSL_CAAM_COMMON
159         select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
160         select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
161         select CRYPTO_SKCIPHER
162         select CRYPTO_AUTHENC
163         select CRYPTO_AEAD
164         select CRYPTO_HASH
165         select CRYPTO_DES
166         help
167           CAAM driver for QorIQ Data Path Acceleration Architecture 2.
168           It handles DPSECI DPAA2 objects that sit on the Management Complex
169           (MC) fsl-mc bus.
171           To compile this as a module, choose M here: the module
172           will be called dpaa2_caam.