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