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