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