mbox series

[v4,0/5] crypto: Add Keem Bay OCS HCU driver

Message ID 20201216114639.3451399-1-daniele.alessandrelli@linux.intel.com
Headers show
Series crypto: Add Keem Bay OCS HCU driver | expand

Message

Daniele Alessandrelli Dec. 16, 2020, 11:46 a.m. UTC
The Intel Keem Bay SoC has an Offload Crypto Subsystem (OCS) featuring a
Hashing Control Unit (HCU) for accelerating hashing operations.

This driver adds support for such hardware thus enabling hardware-accelerated
hashing on the Keem Bay SoC for the following algorithms:
- sha224 and hmac(sha224)
- sha256 and hmac(sha256)
- sha384 and hmac(sha384)
- sha512 and hmac(sha512)
- sm3    and hmac(sm3)

The driver is passing crypto manager self-tests, including the extra tests
(CRYPTO_MANAGER_EXTRA_TESTS=y).

v3 -> v4:
- Addressed comments from Mark Gross.
- Added Reviewed-by-tag from Rob Herring to DT binding patch.
- Driver reworked to better separate the code interacting with the hardware
  from the code implementing the crypto ahash API.
- Main patch split into 3 different patches to simplify review (patch series is
  now composed of 5 patches)

v2 -> v3:
- Fixed more issues with dt-bindings (removed useless descriptions for reg,
  interrupts, and clocks)

v1 -> v2:
- Fixed issues with dt-bindings

Daniele Alessandrelli (3):
  crypto: keembay-ocs-hcu - Add HMAC support
  crypto: keembay-ocs-hcu - Add optional support for sha224
  MAINTAINERS: Add maintainers for Keem Bay OCS HCU driver

Declan Murphy (2):
  dt-bindings: crypto: Add Keem Bay OCS HCU bindings
  crypto: keembay - Add Keem Bay OCS HCU driver

 .../crypto/intel,keembay-ocs-hcu.yaml         |   46 +
 MAINTAINERS                                   |   11 +
 drivers/crypto/keembay/Kconfig                |   29 +
 drivers/crypto/keembay/Makefile               |    3 +
 drivers/crypto/keembay/keembay-ocs-hcu-core.c | 1264 +++++++++++++++++
 drivers/crypto/keembay/ocs-hcu.c              |  840 +++++++++++
 drivers/crypto/keembay/ocs-hcu.h              |  106 ++
 7 files changed, 2299 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/crypto/intel,keembay-ocs-hcu.yaml
 create mode 100644 drivers/crypto/keembay/keembay-ocs-hcu-core.c
 create mode 100644 drivers/crypto/keembay/ocs-hcu.c
 create mode 100644 drivers/crypto/keembay/ocs-hcu.h


base-commit: 7bba37a1591369e2e506d599b8f5d7d0516b2dbc

Comments

Herbert Xu Jan. 2, 2021, 10:07 p.m. UTC | #1
On Wed, Dec 16, 2020 at 11:46:34AM +0000, Daniele Alessandrelli wrote:
> The Intel Keem Bay SoC has an Offload Crypto Subsystem (OCS) featuring a
> Hashing Control Unit (HCU) for accelerating hashing operations.
> 
> This driver adds support for such hardware thus enabling hardware-accelerated
> hashing on the Keem Bay SoC for the following algorithms:
> - sha224 and hmac(sha224)
> - sha256 and hmac(sha256)
> - sha384 and hmac(sha384)
> - sha512 and hmac(sha512)
> - sm3    and hmac(sm3)
> 
> The driver is passing crypto manager self-tests, including the extra tests
> (CRYPTO_MANAGER_EXTRA_TESTS=y).
> 
> v3 -> v4:
> - Addressed comments from Mark Gross.
> - Added Reviewed-by-tag from Rob Herring to DT binding patch.
> - Driver reworked to better separate the code interacting with the hardware
>   from the code implementing the crypto ahash API.
> - Main patch split into 3 different patches to simplify review (patch series is
>   now composed of 5 patches)
> 
> v2 -> v3:
> - Fixed more issues with dt-bindings (removed useless descriptions for reg,
>   interrupts, and clocks)
> 
> v1 -> v2:
> - Fixed issues with dt-bindings
> 
> Daniele Alessandrelli (3):
>   crypto: keembay-ocs-hcu - Add HMAC support
>   crypto: keembay-ocs-hcu - Add optional support for sha224
>   MAINTAINERS: Add maintainers for Keem Bay OCS HCU driver
> 
> Declan Murphy (2):
>   dt-bindings: crypto: Add Keem Bay OCS HCU bindings
>   crypto: keembay - Add Keem Bay OCS HCU driver
> 
>  .../crypto/intel,keembay-ocs-hcu.yaml         |   46 +
>  MAINTAINERS                                   |   11 +
>  drivers/crypto/keembay/Kconfig                |   29 +
>  drivers/crypto/keembay/Makefile               |    3 +
>  drivers/crypto/keembay/keembay-ocs-hcu-core.c | 1264 +++++++++++++++++
>  drivers/crypto/keembay/ocs-hcu.c              |  840 +++++++++++
>  drivers/crypto/keembay/ocs-hcu.h              |  106 ++
>  7 files changed, 2299 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/crypto/intel,keembay-ocs-hcu.yaml
>  create mode 100644 drivers/crypto/keembay/keembay-ocs-hcu-core.c
>  create mode 100644 drivers/crypto/keembay/ocs-hcu.c
>  create mode 100644 drivers/crypto/keembay/ocs-hcu.h

All applied.  Thanks.
Alessandrelli, Daniele Jan. 4, 2021, 11:59 a.m. UTC | #2
On Sun, 2021-01-03 at 09:07 +1100, Herbert Xu wrote:
> On Wed, Dec 16, 2020 at 11:46:34AM +0000, Daniele Alessandrelli

> wrote:

> > The Intel Keem Bay SoC has an Offload Crypto Subsystem (OCS)

> > featuring a

> > Hashing Control Unit (HCU) for accelerating hashing operations.

> > 

> > This driver adds support for such hardware thus enabling hardware-

> > accelerated

> > hashing on the Keem Bay SoC for the following algorithms:

> > - sha224 and hmac(sha224)

> > - sha256 and hmac(sha256)

> > - sha384 and hmac(sha384)

> > - sha512 and hmac(sha512)

> > - sm3    and hmac(sm3)

> > 

> > The driver is passing crypto manager self-tests, including the

> > extra tests

> > (CRYPTO_MANAGER_EXTRA_TESTS=y).

> > 

> > v3 -> v4:

> > - Addressed comments from Mark Gross.

> > - Added Reviewed-by-tag from Rob Herring to DT binding patch.

> > - Driver reworked to better separate the code interacting with the

> > hardware

> >   from the code implementing the crypto ahash API.

> > - Main patch split into 3 different patches to simplify review

> > (patch series is

> >   now composed of 5 patches)

> > 

> > v2 -> v3:

> > - Fixed more issues with dt-bindings (removed useless descriptions

> > for reg,

> >   interrupts, and clocks)

> > 

> > v1 -> v2:

> > - Fixed issues with dt-bindings

> > 

> > Daniele Alessandrelli (3):

> >   crypto: keembay-ocs-hcu - Add HMAC support

> >   crypto: keembay-ocs-hcu - Add optional support for sha224

> >   MAINTAINERS: Add maintainers for Keem Bay OCS HCU driver

> > 

> > Declan Murphy (2):

> >   dt-bindings: crypto: Add Keem Bay OCS HCU bindings

> >   crypto: keembay - Add Keem Bay OCS HCU driver

> > 

> >  .../crypto/intel,keembay-ocs-hcu.yaml         |   46 +

> >  MAINTAINERS                                   |   11 +

> >  drivers/crypto/keembay/Kconfig                |   29 +

> >  drivers/crypto/keembay/Makefile               |    3 +

> >  drivers/crypto/keembay/keembay-ocs-hcu-core.c | 1264

> > +++++++++++++++++

> >  drivers/crypto/keembay/ocs-hcu.c              |  840 +++++++++++

> >  drivers/crypto/keembay/ocs-hcu.h              |  106 ++

> >  7 files changed, 2299 insertions(+)

> >  create mode 100644

> > Documentation/devicetree/bindings/crypto/intel,keembay-ocs-hcu.yaml

> >  create mode 100644 drivers/crypto/keembay/keembay-ocs-hcu-core.c

> >  create mode 100644 drivers/crypto/keembay/ocs-hcu.c

> >  create mode 100644 drivers/crypto/keembay/ocs-hcu.h

> 

> All applied.  Thanks.


Thanks Herbert.

Just a note, this patch series was sent before the following two issues
about the Keem Bay AES driver were reported:
1. https://lore.kernel.org/linux-crypto/20201216131459.1320396-1-geert+renesas@glider.be/
2. https://lore.kernel.org/lkml/202012171333.gl6vcgRp-lkp@intel.com/

I think that this patch set has the same issues, but, due to the
Christmas / New Year holidays, I wasn't able to double check that and
send an updated series. 

I will now look into it and send a new patch to fix the issues soon (if
confirmed).

Regards,
Daniele