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