forked from Minki/linux
d075c0c1be
API: - Test in-place en/decryption with two sglists in testmgr. - Fix process vs. softirq race in cryptd. Algorithms: - Add arm64 acceleration for sm4. - Add s390 acceleration for chacha20. Drivers: - Add polarfire soc hwrng support in mpsf. - Add support for TI SoC AM62x in sa2ul. - Add support for ATSHA204 cryptochip in atmel-sha204a. - Add support for PRNG in caam. - Restore support for storage encryption in qat. - Restore support for storage encryption in hisilicon/sec. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEn51F/lCuNhUwmDeSxycdCkmxi6cFAmKQs9cACgkQxycdCkmx i6deOA//bwX9JvxI+SiwEK/1u5GX9VHtCpAa1rMOqhfl8UrBfo0516M/CeUDjW0J t1yoq0JUoIfYrEbSJqxXTnfG6+fJ1WsQtT3jd1/64nrwVk+w6OdMBTt48B9GF0R5 ZjWG7zmjKZcspZqSwib/gxbehJ+IX7dYdUsrlUQq3q64qpQEqxTgqsfyiY3LP24N lng6weLudrFA5Xa8pVCmrCnOH3J7kPGA4iGqTGNV8Qx3ud9CUWSc8BT4VdqU8t2f opaYL3s9oKc+xtS4yrOnfV+Wa/A8K6AuBYeODFtLe41FSpGYgaPslcGqEGwAHNpL 0HjqQdC+4auimGJxyVcef7QVMCpGqIfKqYu7sYXuNROylPjqMNa/DRL64csaDxDn WiheV9RSc1zfchxHC4IjnfwE7nNDVYnYrZ1awyvQ9xvAoh7bldiEe6k/UlWi3L0F nejJRFPXOSZ2GfJjrVNsv5lSWZCNWRBzOehN4D6EMJjEfM/G3/30Q0qwif39QWVj r1gYQWmZuCa9mL7enga1XavebQ6cLXggR4sTxEmV7Sta6AJ+RqNqOnrPecEF5Avr eSYQLxor+jvhaepcKhyDOF4dKGGJIWaEi00GC83yZ8hApVbfWoVh8Nfxmp8TUEzH UUJFvrFLNTBOwRoz3fIT57vaFxksQREZwlcQ77xVAeg8S+BOB4o= =oVRe -----END PGP SIGNATURE----- Merge tag 'v5.19-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto updates from Herbert Xu: "API: - Test in-place en/decryption with two sglists in testmgr - Fix process vs softirq race in cryptd Algorithms: - Add arm64 acceleration for sm4 - Add s390 acceleration for chacha20 Drivers: - Add polarfire soc hwrng support in mpsf - Add support for TI SoC AM62x in sa2ul - Add support for ATSHA204 cryptochip in atmel-sha204a - Add support for PRNG in caam - Restore support for storage encryption in qat - Restore support for storage encryption in hisilicon/sec" * tag 'v5.19-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (116 commits) hwrng: omap3-rom - fix using wrong clk_disable() in omap_rom_rng_runtime_resume() crypto: hisilicon/sec - delete the flag CRYPTO_ALG_ALLOCATES_MEMORY crypto: qat - add support for 401xx devices crypto: qat - re-enable registration of algorithms crypto: qat - honor CRYPTO_TFM_REQ_MAY_SLEEP flag crypto: qat - add param check for DH crypto: qat - add param check for RSA crypto: qat - remove dma_free_coherent() for DH crypto: qat - remove dma_free_coherent() for RSA crypto: qat - fix memory leak in RSA crypto: qat - add backlog mechanism crypto: qat - refactor submission logic crypto: qat - use pre-allocated buffers in datapath crypto: qat - set to zero DH parameters before free crypto: s390 - add crypto library interface for ChaCha20 crypto: talitos - Uniform coding style with defined variable crypto: octeontx2 - simplify the return expression of otx2_cpt_aead_cbc_aes_sha_setkey() crypto: cryptd - Protect per-CPU resource by disabling BH. crypto: sun8i-ce - do not fallback if cryptlen is less than sg length crypto: sun8i-ce - rework debugging ...
189 lines
5.4 KiB
Plaintext
189 lines
5.4 KiB
Plaintext
# 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.
|
|
|
|
config CRYPTO_DEV_FSL_CAAM_PRNG_API
|
|
bool "Register Pseudo random number generation implementation with Crypto API"
|
|
default y
|
|
select CRYPTO_RNG
|
|
help
|
|
Selecting this will register the SEC hardware prng to
|
|
the Crypto API.
|
|
|
|
config CRYPTO_DEV_FSL_CAAM_BLOB_GEN
|
|
bool
|
|
|
|
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.
|