| # SPDX-License-Identifier: GPL-2.0 |
| config CRYPTO_DEV_FSL_CAAM_COMMON |
| 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 |
| 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. |
| |
| config CRYPTO_DEV_FSL_CAAM_JR |
| tristate "Freescale CAAM Job Ring driver backend" |
| 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 |
| tristate "Register algorithm implementations with the Crypto API" |
| default y |
| select CRYPTO_AEAD |
| select CRYPTO_AUTHENC |
| select CRYPTO_BLKCIPHER |
| 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. |
| |
| To compile this as a module, choose M here: the module |
| will be called caamalg. |
| |
| config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI |
| tristate "Queue Interface as Crypto API backend" |
| depends on FSL_DPAA && NET |
| default y |
| select CRYPTO_AUTHENC |
| select CRYPTO_BLKCIPHER |
| 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. |
| |
| To compile this as a module, choose M here: the module |
| will be called caamalg_qi. |
| |
| config CRYPTO_DEV_FSL_CAAM_AHASH_API |
| tristate "Register hash algorithm implementations with Crypto API" |
| default y |
| select CRYPTO_HASH |
| help |
| Selecting this will offload ahash for users of the |
| scatterlist crypto API to the SEC4 via job ring. |
| |
| To compile this as a module, choose M here: the module |
| will be called caamhash. |
| |
| config CRYPTO_DEV_FSL_CAAM_PKC_API |
| tristate "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. |
| To compile this as a module, choose M here: the module |
| will be called caam_pkc. |
| |
| config CRYPTO_DEV_FSL_CAAM_RNG_API |
| tristate "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 suppying the kernel entropy pool. |
| |
| To compile this as a module, choose M here: the module |
| will be called caamrng. |
| |
| 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_BLKCIPHER |
| select CRYPTO_AUTHENC |
| select CRYPTO_AEAD |
| select CRYPTO_HASH |
| 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. |
| |
| config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC |
| def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \ |
| CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI || \ |
| CRYPTO_DEV_FSL_DPAA2_CAAM) |
| |
| config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC |
| def_tristate (CRYPTO_DEV_FSL_CAAM_AHASH_API || \ |
| CRYPTO_DEV_FSL_DPAA2_CAAM) |