1# SPDX-License-Identifier: GPL-2.0 2config CRYPTO_DEV_FSL_CAAM_COMMON 3 tristate 4 5config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 6 tristate 7 8config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 9 tristate 10 11config 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. 22 23 To compile this driver as a module, choose M here: the module 24 will be called caam. 25 26if CRYPTO_DEV_FSL_CAAM 27 28config 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. 33 34menuconfig 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. 42 43 To compile this driver as a module, choose M here: the module 44 will be called caam_jr. 45 46if CRYPTO_DEV_FSL_CAAM_JR 47 48config 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 64 65config CRYPTO_DEV_FSL_CAAM_INTC 66 bool "Job Ring interrupt coalescing" 67 help 68 Enable the Job Ring's interrupt coalescing feature. 69 70 Note: the driver already provides adequate 71 interrupt coalescing in software. 72 73config 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. 83 84config 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. 93 94config 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_BLKCIPHER 101 select CRYPTO_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. 106 107config 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_BLKCIPHER 114 help 115 Selecting this will use CAAM Queue Interface (QI) for sending 116 & receiving crypto jobs to/from CAAM. This gives better performance 117 than job ring interface when the number of cores are more than the 118 number of job rings assigned to the kernel. The number of portals 119 assigned to the kernel should also be more than the number of 120 job rings. 121 122config CRYPTO_DEV_FSL_CAAM_AHASH_API 123 bool "Register hash algorithm implementations with Crypto API" 124 default y 125 select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 126 select CRYPTO_HASH 127 help 128 Selecting this will offload ahash for users of the 129 scatterlist crypto API to the SEC4 via job ring. 130 131config CRYPTO_DEV_FSL_CAAM_PKC_API 132 bool "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 140config CRYPTO_DEV_FSL_CAAM_RNG_API 141 bool "Register caam device for hwrng API" 142 default y 143 select CRYPTO_RNG 144 select HW_RANDOM 145 help 146 Selecting this will register the SEC4 hardware rng to 147 the hw_random API for suppying the kernel entropy pool. 148 149endif # CRYPTO_DEV_FSL_CAAM_JR 150 151endif # CRYPTO_DEV_FSL_CAAM 152 153config CRYPTO_DEV_FSL_DPAA2_CAAM 154 tristate "QorIQ DPAA2 CAAM (DPSECI) driver" 155 depends on FSL_MC_DPIO 156 depends on NETDEVICES 157 select CRYPTO_DEV_FSL_CAAM_COMMON 158 select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 159 select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 160 select CRYPTO_BLKCIPHER 161 select CRYPTO_AUTHENC 162 select CRYPTO_AEAD 163 select CRYPTO_HASH 164 help 165 CAAM driver for QorIQ Data Path Acceleration Architecture 2. 166 It handles DPSECI DPAA2 objects that sit on the Management Complex 167 (MC) fsl-mc bus. 168 169 To compile this as a module, choose M here: the module 170 will be called dpaa2_caam. 171