2018-10-10 14:26:48 +03:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
config CRYPTO_DEV_FSL_CAAM_COMMON
|
|
|
|
tristate
|
|
|
|
|
2011-03-13 11:54:26 +03:00
|
|
|
config CRYPTO_DEV_FSL_CAAM
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
tristate "Freescale CAAM-Multicore platform driver backend"
|
2016-05-19 18:11:33 +03:00
|
|
|
depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
|
2017-09-01 17:12:59 +03:00
|
|
|
select SOC_BUS
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
select CRYPTO_DEV_FSL_CAAM_COMMON
|
2011-03-13 11:54:26 +03:00
|
|
|
help
|
|
|
|
Enables the driver module for Freescale's Cryptographic Accelerator
|
|
|
|
and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
|
2013-10-25 10:31:01 +04:00
|
|
|
This module creates job ring devices, and configures h/w
|
2011-03-13 11:54:26 +03:00
|
|
|
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.
|
|
|
|
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
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.
|
|
|
|
|
2013-10-25 10:31:01 +04:00
|
|
|
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.
|
|
|
|
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
if CRYPTO_DEV_FSL_CAAM_JR
|
|
|
|
|
2011-03-13 11:54:26 +03:00
|
|
|
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.
|
|
|
|
|
2012-06-23 04:48:53 +04:00
|
|
|
Note: the driver already provides adequate
|
|
|
|
interrupt coalescing in software.
|
|
|
|
|
2011-03-13 11:54:26 +03:00
|
|
|
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
|
2015-06-17 09:58:24 +03:00
|
|
|
select CRYPTO_AEAD
|
2011-03-13 11:54:26 +03:00
|
|
|
select CRYPTO_AUTHENC
|
2015-06-17 09:58:24 +03:00
|
|
|
select CRYPTO_BLKCIPHER
|
2011-03-13 11:54:26 +03:00
|
|
|
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.
|
2012-06-23 04:48:47 +04:00
|
|
|
|
crypto: caam/qi - add ablkcipher and authenc algorithms
Add support to submit ablkcipher and authenc algorithms
via the QI backend:
-ablkcipher:
cbc({aes,des,des3_ede})
ctr(aes), rfc3686(ctr(aes))
xts(aes)
-authenc:
authenc(hmac(md5),cbc({aes,des,des3_ede}))
authenc(hmac(sha*),cbc({aes,des,des3_ede}))
caam/qi being a new driver, let's wait some time to settle down without
interfering with existing caam/jr driver.
Accordingly, for now all caam/qi algorithms (caamalg_qi module) are
marked to be of lower priority than caam/jr ones (caamalg module).
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Alex Porosanu <alexandru.porosanu@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2017-03-17 13:06:02 +03:00
|
|
|
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI
|
|
|
|
tristate "Queue Interface as Crypto API backend"
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
depends on FSL_DPAA && NET
|
crypto: caam/qi - add ablkcipher and authenc algorithms
Add support to submit ablkcipher and authenc algorithms
via the QI backend:
-ablkcipher:
cbc({aes,des,des3_ede})
ctr(aes), rfc3686(ctr(aes))
xts(aes)
-authenc:
authenc(hmac(md5),cbc({aes,des,des3_ede}))
authenc(hmac(sha*),cbc({aes,des,des3_ede}))
caam/qi being a new driver, let's wait some time to settle down without
interfering with existing caam/jr driver.
Accordingly, for now all caam/qi algorithms (caamalg_qi module) are
marked to be of lower priority than caam/jr ones (caamalg module).
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Alex Porosanu <alexandru.porosanu@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2017-03-17 13:06:02 +03:00
|
|
|
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.
|
|
|
|
|
2012-06-23 04:48:47 +04:00
|
|
|
config CRYPTO_DEV_FSL_CAAM_AHASH_API
|
|
|
|
tristate "Register hash algorithm implementations with Crypto API"
|
|
|
|
default y
|
2013-03-05 17:33:16 +04:00
|
|
|
select CRYPTO_HASH
|
2012-06-23 04:48:47 +04:00
|
|
|
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.
|
2012-06-23 04:48:50 +04:00
|
|
|
|
2016-07-04 13:12:08 +03:00
|
|
|
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.
|
|
|
|
|
2012-06-23 04:48:50 +04:00
|
|
|
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.
|
2013-08-14 19:56:46 +04:00
|
|
|
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
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
|
2018-09-26 16:00:34 +03:00
|
|
|
depends on NETDEVICES
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
select CRYPTO_DEV_FSL_CAAM_COMMON
|
2018-09-12 11:59:34 +03:00
|
|
|
select CRYPTO_BLKCIPHER
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
select CRYPTO_AUTHENC
|
|
|
|
select CRYPTO_AEAD
|
2018-09-12 11:59:36 +03:00
|
|
|
select CRYPTO_HASH
|
2013-08-14 19:56:46 +04:00
|
|
|
help
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
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.
|
2016-11-22 16:44:09 +03:00
|
|
|
|
|
|
|
config CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC
|
crypto: caam/qi - add ablkcipher and authenc algorithms
Add support to submit ablkcipher and authenc algorithms
via the QI backend:
-ablkcipher:
cbc({aes,des,des3_ede})
ctr(aes), rfc3686(ctr(aes))
xts(aes)
-authenc:
authenc(hmac(md5),cbc({aes,des,des3_ede}))
authenc(hmac(sha*),cbc({aes,des,des3_ede}))
caam/qi being a new driver, let's wait some time to settle down without
interfering with existing caam/jr driver.
Accordingly, for now all caam/qi algorithms (caamalg_qi module) are
marked to be of lower priority than caam/jr ones (caamalg module).
Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Signed-off-by: Alex Porosanu <alexandru.porosanu@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2017-03-17 13:06:02 +03:00
|
|
|
def_tristate (CRYPTO_DEV_FSL_CAAM_CRYPTO_API || \
|
crypto: caam/qi2 - add DPAA2-CAAM driver
Add CAAM driver that works using the DPSECI backend, i.e. manages
DPSECI DPAA2 objects sitting on the Management Complex (MC) fsl-mc bus.
Data transfers (crypto requests) are sent/received to/from CAAM crypto
engine via Queue Interface (v2), this being similar to existing caam/qi.
OTOH, configuration/setup (obtaining virtual queue IDs, authorization
etc.) is done by sending commands to the MC f/w.
Note that the CAAM accelerator included in DPAA2 platforms still has
Job Rings. However, the driver being added does not handle access
via this backend. Kconfig & Makefile are updated such that DPAA2-CAAM
(a.k.a. "caam/qi2") driver does not depend on caam/jr or caam/qi
backends - which rely on platform bus support (ctrl.c).
Support for the following aead and authenc algorithms is also added
in this patch:
-aead:
gcm(aes)
rfc4106(gcm(aes))
rfc4543(gcm(aes))
-authenc:
authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede}))
echainiv(authenc(hmac({md5,sha*}),cbc({aes,des,des3_ede})))
authenc(hmac({md5,sha*}),rfc3686(ctr(aes))
seqiv(authenc(hmac({md5,sha*}),rfc3686(ctr(aes)))
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-12 11:59:33 +03:00
|
|
|
CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI || \
|
|
|
|
CRYPTO_DEV_FSL_DPAA2_CAAM)
|
2018-09-12 11:59:35 +03:00
|
|
|
|
|
|
|
config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
|
2018-09-12 11:59:36 +03:00
|
|
|
def_tristate (CRYPTO_DEV_FSL_CAAM_AHASH_API || \
|
|
|
|
CRYPTO_DEV_FSL_DPAA2_CAAM)
|