# SPDX-License-Identifier: GPL-2.0 
 | 
config CRYPTO_DEV_FSL_CAAM_COMMON 
 | 
    tristate 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 
 | 
    tristate 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 
 | 
    tristate 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM 
 | 
    tristate "Freescale CAAM-Multicore platform driver backend" 
 | 
    depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE 
 | 
    select SOC_BUS 
 | 
    select CRYPTO_DEV_FSL_CAAM_COMMON 
 | 
    imply FSL_MC_BUS 
 | 
    help 
 | 
      Enables the driver module for Freescale's Cryptographic Accelerator 
 | 
      and Assurance Module (CAAM), also known as the SEC version 4 (SEC4). 
 | 
      This module creates job ring devices, and configures h/w 
 | 
      to operate as a DPAA component automatically, depending 
 | 
      on h/w feature availability. 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module 
 | 
      will be called caam. 
 | 
  
 | 
if CRYPTO_DEV_FSL_CAAM 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_DEBUG 
 | 
    bool "Enable debug output in CAAM driver" 
 | 
    help 
 | 
      Selecting this will enable printing of various debug 
 | 
      information in the CAAM driver. 
 | 
  
 | 
menuconfig CRYPTO_DEV_FSL_CAAM_JR 
 | 
    tristate "Freescale CAAM Job Ring driver backend" 
 | 
    select CRYPTO_ENGINE 
 | 
    default y 
 | 
    help 
 | 
      Enables the driver module for Job Rings which are part of 
 | 
      Freescale's Cryptographic Accelerator 
 | 
      and Assurance Module (CAAM). This module adds a job ring operation 
 | 
      interface. 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module 
 | 
      will be called caam_jr. 
 | 
  
 | 
if CRYPTO_DEV_FSL_CAAM_JR 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_RINGSIZE 
 | 
    int "Job Ring size" 
 | 
    range 2 9 
 | 
    default "9" 
 | 
    help 
 | 
      Select size of Job Rings as a power of 2, within the 
 | 
      range 2-9 (ring size 4-512). 
 | 
      Examples: 
 | 
        2 => 4 
 | 
        3 => 8 
 | 
        4 => 16 
 | 
        5 => 32 
 | 
        6 => 64 
 | 
        7 => 128 
 | 
        8 => 256 
 | 
        9 => 512 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_INTC 
 | 
    bool "Job Ring interrupt coalescing" 
 | 
    help 
 | 
      Enable the Job Ring's interrupt coalescing feature. 
 | 
  
 | 
      Note: the driver already provides adequate 
 | 
      interrupt coalescing in software. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD 
 | 
    int "Job Ring interrupt coalescing count threshold" 
 | 
    depends on CRYPTO_DEV_FSL_CAAM_INTC 
 | 
    range 1 255 
 | 
    default 255 
 | 
    help 
 | 
      Select number of descriptor completions to queue before 
 | 
      raising an interrupt, in the range 1-255. Note that a selection 
 | 
      of 1 functionally defeats the coalescing feature, and a selection 
 | 
      equal or greater than the job ring size will force timeouts. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD 
 | 
    int "Job Ring interrupt coalescing timer threshold" 
 | 
    depends on CRYPTO_DEV_FSL_CAAM_INTC 
 | 
    range 1 65535 
 | 
    default 2048 
 | 
    help 
 | 
      Select number of bus clocks/64 to timeout in the case that one or 
 | 
      more descriptor completions are queued without reaching the count 
 | 
      threshold. Range is 1-65535. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API 
 | 
    bool "Register algorithm implementations with the Crypto API" 
 | 
    default y 
 | 
    select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 
 | 
    select CRYPTO_AEAD 
 | 
    select CRYPTO_AUTHENC 
 | 
    select CRYPTO_SKCIPHER 
 | 
    select CRYPTO_LIB_DES 
 | 
    select CRYPTO_XTS 
 | 
    help 
 | 
      Selecting this will offload crypto for users of the 
 | 
      scatterlist crypto API (such as the linux native IPSec 
 | 
      stack) to the SEC4 via job ring. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI 
 | 
    bool "Queue Interface as Crypto API backend" 
 | 
    depends on FSL_DPAA && NET 
 | 
    default y 
 | 
    select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 
 | 
    select CRYPTO_AUTHENC 
 | 
    select CRYPTO_SKCIPHER 
 | 
    select CRYPTO_DES 
 | 
    select CRYPTO_XTS 
 | 
    help 
 | 
      Selecting this will use CAAM Queue Interface (QI) for sending 
 | 
      & receiving crypto jobs to/from CAAM. This gives better performance 
 | 
      than job ring interface when the number of cores are more than the 
 | 
      number of job rings assigned to the kernel. The number of portals 
 | 
      assigned to the kernel should also be more than the number of 
 | 
      job rings. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_AHASH_API 
 | 
    bool "Register hash algorithm implementations with Crypto API" 
 | 
    default y 
 | 
    select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 
 | 
    select CRYPTO_HASH 
 | 
    help 
 | 
      Selecting this will offload ahash for users of the 
 | 
      scatterlist crypto API to the SEC4 via job ring. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_PKC_API 
 | 
    bool "Register public key cryptography implementations with Crypto API" 
 | 
    default y 
 | 
    select CRYPTO_RSA 
 | 
    help 
 | 
      Selecting this will allow SEC Public key support for RSA. 
 | 
      Supported cryptographic primitives: encryption, decryption, 
 | 
      signature and verification. 
 | 
  
 | 
config CRYPTO_DEV_FSL_CAAM_RNG_API 
 | 
    bool "Register caam device for hwrng API" 
 | 
    default y 
 | 
    select CRYPTO_RNG 
 | 
    select HW_RANDOM 
 | 
    help 
 | 
      Selecting this will register the SEC4 hardware rng to 
 | 
      the hw_random API for supplying the kernel entropy pool. 
 | 
  
 | 
endif # CRYPTO_DEV_FSL_CAAM_JR 
 | 
  
 | 
endif # CRYPTO_DEV_FSL_CAAM 
 | 
  
 | 
config CRYPTO_DEV_FSL_DPAA2_CAAM 
 | 
    tristate "QorIQ DPAA2 CAAM (DPSECI) driver" 
 | 
    depends on FSL_MC_DPIO 
 | 
    depends on NETDEVICES 
 | 
    select CRYPTO_DEV_FSL_CAAM_COMMON 
 | 
    select CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC 
 | 
    select CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC 
 | 
    select CRYPTO_SKCIPHER 
 | 
    select CRYPTO_AUTHENC 
 | 
    select CRYPTO_AEAD 
 | 
    select CRYPTO_HASH 
 | 
    select CRYPTO_DES 
 | 
    select CRYPTO_XTS 
 | 
    help 
 | 
      CAAM driver for QorIQ Data Path Acceleration Architecture 2. 
 | 
      It handles DPSECI DPAA2 objects that sit on the Management Complex 
 | 
      (MC) fsl-mc bus. 
 | 
  
 | 
      To compile this as a module, choose M here: the module 
 | 
      will be called dpaa2_caam. 
 |