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 select CRYPTO_DES 95 help 96 Selecting this will offload crypto for users of the 97 scatterlist crypto API (such as the linux native IPSec 98 stack) to the SEC4 via job ring. 99 100 To compile this as a module, choose M here: the module 101 will be called caamalg. 102 103config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI 104 tristate "Queue Interface as Crypto API backend" 105 depends on FSL_DPAA && NET 106 default y 107 select CRYPTO_AUTHENC 108 select CRYPTO_BLKCIPHER 109 help 110 Selecting this will use CAAM Queue Interface (QI) for sending 111 & receiving crypto jobs to/from CAAM. This gives better performance 112 than job ring interface when the number of cores are more than the 113 number of job rings assigned to the kernel. The number of portals 114 assigned to the kernel should also be more than the number of 115 job rings. 116 117 To compile this as a module, choose M here: the module 118 will be called caamalg_qi. 119 120config CRYPTO_DEV_FSL_CAAM_AHASH_API 121 tristate "Register hash algorithm implementations with Crypto API" 122 default y 123 select CRYPTO_HASH 124 help 125 Selecting this will offload ahash for users of the 126 scatterlist crypto API to the SEC4 via job ring. 127 128 To compile this as a module, choose M here: the module 129 will be called caamhash. 130 131config CRYPTO_DEV_FSL_CAAM_PKC_API 132 tristate "Register public key cryptography implementations with Crypto API" 133 default y 134 select CRYPTO_RSA 135 help 136 Selecting this will allow SEC Public key support for RSA. 137 Supported cryptographic primitives: encryption, decryption, 138 signature and verification. 139 To compile this as a module, choose M here: the module 140 will be called caam_pkc. 141 142config CRYPTO_DEV_FSL_CAAM_RNG_API 143 tristate "Register caam device for hwrng API" 144 default y 145 select CRYPTO_RNG 146 select HW_RANDOM 147 help 148 Selecting this will register the SEC4 hardware rng to 149 the hw_random API for suppying the kernel entropy pool. 150 151 To compile this as a module, choose M here: the module 152 will be called caamrng. 153 154endif # CRYPTO_DEV_FSL_CAAM_JR 155 156endif # CRYPTO_DEV_FSL_CAAM 157 158config CRYPTO_DEV_FSL_DPAA2_CAAM 159 tristate "QorIQ DPAA2 CAAM (DPSECI) driver" 160 depends on FSL_MC_DPIO 161 depends on NETDEVICES 162 select CRYPTO_DEV_FSL_CAAM_COMMON 163 select CRYPTO_BLKCIPHER 164 select CRYPTO_AUTHENC 165 select CRYPTO_AEAD 166 select CRYPTO_HASH 167 help 168 CAAM driver for QorIQ Data Path Acceleration Architecture 2. 169 It handles DPSECI DPAA2 objects that sit on the Management Complex 170 (MC) fsl-mc bus. 171 172 To compile this as a module, choose M here: the module 173 will be called dpaa2_caam. 174 175config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 176 def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \ 177 CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI || \ 178 CRYPTO_DEV_FSL_DPAA2_CAAM) 179 180config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 181 def_tristate (CRYPTO_DEV_FSL_CAAM_AHASH_API || \ 182 CRYPTO_DEV_FSL_DPAA2_CAAM) 183