mbox series

[v2,0/4] Add Support for Marvell OcteonTX Cryptographic

Message ID 1584100028-21279-1-git-send-email-schalla@marvell.com (mailing list archive)
Headers show
Series Add Support for Marvell OcteonTX Cryptographic | expand

Message

Srujana Challa March 13, 2020, 11:47 a.m. UTC
The following series adds support for Marvell Cryptographic Accelerarion
Unit (CPT) on OcteonTX CN83XX SoC.

Changes since v1:
* Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.

Srujana Challa (4):
  drivers: crypto: create common Kconfig and Makefile for Marvell
  drivers: crypto: add support for OCTEON TX CPT engine
  drivers: crypto: add the Virtual Function driver for CPT
  crypto: marvell: enable OcteonTX cpt options for build

 MAINTAINERS                                        |    1 +
 drivers/crypto/Kconfig                             |   15 +-
 drivers/crypto/Makefile                            |    2 +-
 drivers/crypto/marvell/Kconfig                     |   37 +
 drivers/crypto/marvell/Makefile                    |    7 +-
 drivers/crypto/marvell/cesa.c                      |  615 -------
 drivers/crypto/marvell/cesa.h                      |  880 ----------
 drivers/crypto/marvell/cesa/Makefile               |    3 +
 drivers/crypto/marvell/cesa/cesa.c                 |  615 +++++++
 drivers/crypto/marvell/cesa/cesa.h                 |  881 ++++++++++
 drivers/crypto/marvell/cesa/cipher.c               |  801 +++++++++
 drivers/crypto/marvell/cesa/hash.c                 | 1448 ++++++++++++++++
 drivers/crypto/marvell/cesa/tdma.c                 |  352 ++++
 drivers/crypto/marvell/cipher.c                    |  798 ---------
 drivers/crypto/marvell/hash.c                      | 1442 ----------------
 drivers/crypto/marvell/octeontx/Makefile           |    6 +
 drivers/crypto/marvell/octeontx/otx_cpt_common.h   |   51 +
 drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h |  824 +++++++++
 drivers/crypto/marvell/octeontx/otx_cptpf.h        |   34 +
 drivers/crypto/marvell/octeontx/otx_cptpf_main.c   |  307 ++++
 drivers/crypto/marvell/octeontx/otx_cptpf_mbox.c   |  253 +++
 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c  | 1686 +++++++++++++++++++
 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h  |  180 ++
 drivers/crypto/marvell/octeontx/otx_cptvf.h        |  104 ++
 drivers/crypto/marvell/octeontx/otx_cptvf_algs.c   | 1744 ++++++++++++++++++++
 drivers/crypto/marvell/octeontx/otx_cptvf_algs.h   |  188 +++
 drivers/crypto/marvell/octeontx/otx_cptvf_main.c   |  985 +++++++++++
 drivers/crypto/marvell/octeontx/otx_cptvf_mbox.c   |  247 +++
 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c |  612 +++++++
 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h |  227 +++
 drivers/crypto/marvell/tdma.c                      |  350 ----
 31 files changed, 11592 insertions(+), 4103 deletions(-)
 create mode 100644 drivers/crypto/marvell/Kconfig
 delete mode 100644 drivers/crypto/marvell/cesa.c
 delete mode 100644 drivers/crypto/marvell/cesa.h
 create mode 100644 drivers/crypto/marvell/cesa/Makefile
 create mode 100644 drivers/crypto/marvell/cesa/cesa.c
 create mode 100644 drivers/crypto/marvell/cesa/cesa.h
 create mode 100644 drivers/crypto/marvell/cesa/cipher.c
 create mode 100644 drivers/crypto/marvell/cesa/hash.c
 create mode 100644 drivers/crypto/marvell/cesa/tdma.c
 delete mode 100644 drivers/crypto/marvell/cipher.c
 delete mode 100644 drivers/crypto/marvell/hash.c
 create mode 100644 drivers/crypto/marvell/octeontx/Makefile
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cpt_common.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_main.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_mbox.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_algs.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_algs.h
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_main.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_mbox.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c
 create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h
 delete mode 100644 drivers/crypto/marvell/tdma.c

Comments

Herbert Xu March 20, 2020, 3:51 a.m. UTC | #1
On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> The following series adds support for Marvell Cryptographic Accelerarion
> Unit (CPT) on OcteonTX CN83XX SoC.
> 
> Changes since v1:
> * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> 
> Srujana Challa (4):
>   drivers: crypto: create common Kconfig and Makefile for Marvell
>   drivers: crypto: add support for OCTEON TX CPT engine
>   drivers: crypto: add the Virtual Function driver for CPT
>   crypto: marvell: enable OcteonTX cpt options for build
> 
>  MAINTAINERS                                        |    1 +
>  drivers/crypto/Kconfig                             |   15 +-
>  drivers/crypto/Makefile                            |    2 +-
>  drivers/crypto/marvell/Kconfig                     |   37 +
>  drivers/crypto/marvell/Makefile                    |    7 +-
>  drivers/crypto/marvell/cesa.c                      |  615 -------
>  drivers/crypto/marvell/cesa.h                      |  880 ----------
>  drivers/crypto/marvell/cesa/Makefile               |    3 +
>  drivers/crypto/marvell/cesa/cesa.c                 |  615 +++++++
>  drivers/crypto/marvell/cesa/cesa.h                 |  881 ++++++++++
>  drivers/crypto/marvell/cesa/cipher.c               |  801 +++++++++
>  drivers/crypto/marvell/cesa/hash.c                 | 1448 ++++++++++++++++
>  drivers/crypto/marvell/cesa/tdma.c                 |  352 ++++
>  drivers/crypto/marvell/cipher.c                    |  798 ---------
>  drivers/crypto/marvell/hash.c                      | 1442 ----------------
>  drivers/crypto/marvell/octeontx/Makefile           |    6 +
>  drivers/crypto/marvell/octeontx/otx_cpt_common.h   |   51 +
>  drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h |  824 +++++++++
>  drivers/crypto/marvell/octeontx/otx_cptpf.h        |   34 +
>  drivers/crypto/marvell/octeontx/otx_cptpf_main.c   |  307 ++++
>  drivers/crypto/marvell/octeontx/otx_cptpf_mbox.c   |  253 +++
>  drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c  | 1686 +++++++++++++++++++
>  drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h  |  180 ++
>  drivers/crypto/marvell/octeontx/otx_cptvf.h        |  104 ++
>  drivers/crypto/marvell/octeontx/otx_cptvf_algs.c   | 1744 ++++++++++++++++++++
>  drivers/crypto/marvell/octeontx/otx_cptvf_algs.h   |  188 +++
>  drivers/crypto/marvell/octeontx/otx_cptvf_main.c   |  985 +++++++++++
>  drivers/crypto/marvell/octeontx/otx_cptvf_mbox.c   |  247 +++
>  drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c |  612 +++++++
>  drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h |  227 +++
>  drivers/crypto/marvell/tdma.c                      |  350 ----
>  31 files changed, 11592 insertions(+), 4103 deletions(-)
>  create mode 100644 drivers/crypto/marvell/Kconfig
>  delete mode 100644 drivers/crypto/marvell/cesa.c
>  delete mode 100644 drivers/crypto/marvell/cesa.h
>  create mode 100644 drivers/crypto/marvell/cesa/Makefile
>  create mode 100644 drivers/crypto/marvell/cesa/cesa.c
>  create mode 100644 drivers/crypto/marvell/cesa/cesa.h
>  create mode 100644 drivers/crypto/marvell/cesa/cipher.c
>  create mode 100644 drivers/crypto/marvell/cesa/hash.c
>  create mode 100644 drivers/crypto/marvell/cesa/tdma.c
>  delete mode 100644 drivers/crypto/marvell/cipher.c
>  delete mode 100644 drivers/crypto/marvell/hash.c
>  create mode 100644 drivers/crypto/marvell/octeontx/Makefile
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cpt_common.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_main.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_mbox.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_algs.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_algs.h
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_main.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_mbox.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c
>  create mode 100644 drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h
>  delete mode 100644 drivers/crypto/marvell/tdma.c

All applied.  Thanks.
Eric Biggers March 20, 2020, 5:31 a.m. UTC | #2
On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> The following series adds support for Marvell Cryptographic Accelerarion
> Unit (CPT) on OcteonTX CN83XX SoC.
> 
> Changes since v1:
> * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> 
> Srujana Challa (4):
>   drivers: crypto: create common Kconfig and Makefile for Marvell
>   drivers: crypto: add support for OCTEON TX CPT engine
>   drivers: crypto: add the Virtual Function driver for CPT
>   crypto: marvell: enable OcteonTX cpt options for build

There's no mention of testing.  Did you try CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?

- Eric
Srujana Challa March 20, 2020, 10:47 a.m. UTC | #3
> On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> > The following series adds support for Marvell Cryptographic Accelerarion
> > Unit (CPT) on OcteonTX CN83XX SoC.
> >
> > Changes since v1:
> > * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> >
> > Srujana Challa (4):
> >   drivers: crypto: create common Kconfig and Makefile for Marvell
> >   drivers: crypto: add support for OCTEON TX CPT engine
> >   drivers: crypto: add the Virtual Function driver for CPT
> >   crypto: marvell: enable OcteonTX cpt options for build
> 
> There's no mention of testing.  Did you try
> CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?
> 
Yes, the crypto self-tests are passed.
> - Eric
Ard Biesheuvel March 21, 2020, 12:31 p.m. UTC | #4
On Fri, 20 Mar 2020 at 06:47, Srujana Challa <schalla@marvell.com> wrote:
>
> > On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> > > The following series adds support for Marvell Cryptographic Accelerarion
> > > Unit (CPT) on OcteonTX CN83XX SoC.
> > >
> > > Changes since v1:
> > > * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> > >
> > > Srujana Challa (4):
> > >   drivers: crypto: create common Kconfig and Makefile for Marvell
> > >   drivers: crypto: add support for OCTEON TX CPT engine
> > >   drivers: crypto: add the Virtual Function driver for CPT
> > >   crypto: marvell: enable OcteonTX cpt options for build
> >
> > There's no mention of testing.  Did you try
> > CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?
> >
> Yes, the crypto self-tests are passed.

*which* selftests are passed? Please confirm that they all passed with
that kconfig option set
Srujana Challa March 23, 2020, 3:20 a.m. UTC | #5
> On Fri, 20 Mar 2020 at 06:47, Srujana Challa <schalla@marvell.com> wrote:
> >
> > > On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> > > > The following series adds support for Marvell Cryptographic Accelerarion
> > > > Unit (CPT) on OcteonTX CN83XX SoC.
> > > >
> > > > Changes since v1:
> > > > * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> > > >
> > > > Srujana Challa (4):
> > > >   drivers: crypto: create common Kconfig and Makefile for Marvell
> > > >   drivers: crypto: add support for OCTEON TX CPT engine
> > > >   drivers: crypto: add the Virtual Function driver for CPT
> > > >   crypto: marvell: enable OcteonTX cpt options for build
> > >
> > > There's no mention of testing.  Did you try
> > > CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?
> > >
> > Yes, the crypto self-tests are passed.
> 
> *which* selftests are passed? Please confirm that they all passed with
> that kconfig option set
Apologies. I have overlooked the config option, I thought it was CONFIG_CRYPTO_MANAGER_DISABLE_TESTS, all crypto self-tests are passed with this option disabled. I have started verifying with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y, I am getting few errors for unsupported input lengths, will submit the patch with fixes.
Srujana Challa April 13, 2020, 1:21 p.m. UTC | #6
> Subject: RE: [EXT] Re: [PATCH v2 0/4] Add Support for Marvell OcteonTX
> Cryptographic
> 
> > On Fri, 20 Mar 2020 at 06:47, Srujana Challa <schalla@marvell.com> wrote:
> > >
> > > > On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> > > > > The following series adds support for Marvell Cryptographic Accelerarion
> > > > > Unit (CPT) on OcteonTX CN83XX SoC.
> > > > >
> > > > > Changes since v1:
> > > > > * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> > > > >
> > > > > Srujana Challa (4):
> > > > >   drivers: crypto: create common Kconfig and Makefile for Marvell
> > > > >   drivers: crypto: add support for OCTEON TX CPT engine
> > > > >   drivers: crypto: add the Virtual Function driver for CPT
> > > > >   crypto: marvell: enable OcteonTX cpt options for build
> > > >
> > > > There's no mention of testing.  Did you try
> > > > CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?
> > > >
> > > Yes, the crypto self-tests are passed.
> >
> > *which* selftests are passed? Please confirm that they all passed with
> > that kconfig option set
> Apologies. I have overlooked the config option, I thought it was
> CONFIG_CRYPTO_MANAGER_DISABLE_TESTS, all crypto self-tests are passed
> with this option disabled. I have started verifying with
> CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y, I am getting few errors for
> unsupported input lengths, will submit the patch with fixes.

We confirmed that the failures are with unsupported lengths on our hardware, for some lengths we can resolve the issue by having validation checks in the driver but for some unsupported cases "testmgr.c" is excepting always success, I am still unsure how to fix/prevent these kind of failures. Can anyone please kindly help me out how to proceed on this issue.
Thanks for your help.
Ard Biesheuvel April 13, 2020, 1:47 p.m. UTC | #7
On Mon, 13 Apr 2020 at 15:21, Srujana Challa <schalla@marvell.com> wrote:
>
> > Subject: RE: [EXT] Re: [PATCH v2 0/4] Add Support for Marvell OcteonTX
> > Cryptographic
> >
> > > On Fri, 20 Mar 2020 at 06:47, Srujana Challa <schalla@marvell.com> wrote:
> > > >
> > > > > On Fri, Mar 13, 2020 at 05:17:04PM +0530, Srujana Challa wrote:
> > > > > > The following series adds support for Marvell Cryptographic Accelerarion
> > > > > > Unit (CPT) on OcteonTX CN83XX SoC.
> > > > > >
> > > > > > Changes since v1:
> > > > > > * Replaced CRYPTO_BLKCIPHER with CRYPTO_SKCIPHER in Kconfig.
> > > > > >
> > > > > > Srujana Challa (4):
> > > > > >   drivers: crypto: create common Kconfig and Makefile for Marvell
> > > > > >   drivers: crypto: add support for OCTEON TX CPT engine
> > > > > >   drivers: crypto: add the Virtual Function driver for CPT
> > > > > >   crypto: marvell: enable OcteonTX cpt options for build
> > > > >
> > > > > There's no mention of testing.  Did you try
> > > > > CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y?
> > > > >
> > > > Yes, the crypto self-tests are passed.
> > >
> > > *which* selftests are passed? Please confirm that they all passed with
> > > that kconfig option set
> > Apologies. I have overlooked the config option, I thought it was
> > CONFIG_CRYPTO_MANAGER_DISABLE_TESTS, all crypto self-tests are passed
> > with this option disabled. I have started verifying with
> > CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y, I am getting few errors for
> > unsupported input lengths, will submit the patch with fixes.
>
> We confirmed that the failures are with unsupported lengths on our hardware, for some lengths we can resolve the issue by having validation checks in the driver but for some unsupported cases "testmgr.c" is excepting always success, I am still unsure how to fix/prevent these kind of failures. Can anyone please kindly help me out how to proceed on this issue.
> Thanks for your help.

You need to allocate fallbacks for the modes that your driver cannot
support. There are plenty of examples of that in the kernel tree.