Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1566750 > unrolled thread

[PATCH v3 0/3] Add Broadcom SPU Crypto Driver

Started byRob Rice <rob.rice@broadcom.com>
First post2017-01-25 17:50 +0100
Last post2017-02-02 16:20 +0100
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/3] Add Broadcom SPU Crypto Driver Rob Rice <rob.rice@broadcom.com> - 2017-01-25 17:50 +0100
    Re: [PATCH v3 0/3] Add Broadcom SPU Crypto Driver Florian Fainelli <f.fainelli@gmail.com> - 2017-01-31 00:40 +0100
    Re: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver Herbert Xu <herbert@gondor.apana.org.au> - 2017-02-02 15:10 +0100
      Re: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver Rob Rice <rob.rice@broadcom.com> - 2017-02-02 16:20 +0100

#1566750 — [PATCH v3 0/3] Add Broadcom SPU Crypto Driver

FromRob Rice <rob.rice@broadcom.com>
Date2017-01-25 17:50 +0100
Subject[PATCH v3 0/3] Add Broadcom SPU Crypto Driver
Message-ID<t3yVH-4ad-7@gated-at.bofh.it>
Changes in v3:
- rebase to 4.10-rc3 in cryptodev-2.6 tree
- in bindings doc, list all valid compatibility strings
- rename DT nodes "crypto" rather than "spu-crypto"
- include a separate DT node for each SPU hardware block. Previously,
 there was a single SPU node listing a register range for each
 hw block.
- select hash algos in Kconfig. Driver HMAC implementation uses hash
 sw algos for inner and outer hashes.
- Fix crash for AES CCM decrypt when AAD and data are both empty

Change in v2:
- select CRYPTO_DES in Kconfig

The Broadcom SPU crypto driver provides access to SPU hardware
for symmetric crypto offload. The driver supports ablkcipher,
ahash, and aead operations. The driver supports several
Broadcom SoCs with different revisions of the SPU hardware.
The driver supports SPU-M and SPU2 hardware revisions, and
a couple versions of each hw revision, each version with minor
differences.

Rob Rice (3):
  crypto: brcm: DT documentation for Broadcom SPU hardware
  crypto: brcm: Add Broadcom SPU driver
  arm64: dts: ns2: Add Broadcom SPU driver DT entry.

 .../devicetree/bindings/crypto/brcm,spu-crypto.txt |   22 +
 arch/arm64/boot/dts/broadcom/ns2.dtsi              |   24 +
 drivers/crypto/Kconfig                             |   15 +
 drivers/crypto/Makefile                            |    2 +
 drivers/crypto/bcm/Makefile                        |   15 +
 drivers/crypto/bcm/cipher.c                        | 4955 ++++++++++++++++++++
 drivers/crypto/bcm/cipher.h                        |  475 ++
 drivers/crypto/bcm/spu.c                           | 1252 +++++
 drivers/crypto/bcm/spu.h                           |  288 ++
 drivers/crypto/bcm/spu2.c                          | 1402 ++++++
 drivers/crypto/bcm/spu2.h                          |  228 +
 drivers/crypto/bcm/spum.h                          |  174 +
 drivers/crypto/bcm/util.c                          |  581 +++
 drivers/crypto/bcm/util.h                          |  116 +
 14 files changed, 9549 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/crypto/brcm,spu-crypto.txt
 create mode 100644 drivers/crypto/bcm/Makefile
 create mode 100644 drivers/crypto/bcm/cipher.c
 create mode 100644 drivers/crypto/bcm/cipher.h
 create mode 100644 drivers/crypto/bcm/spu.c
 create mode 100644 drivers/crypto/bcm/spu.h
 create mode 100644 drivers/crypto/bcm/spu2.c
 create mode 100644 drivers/crypto/bcm/spu2.h
 create mode 100644 drivers/crypto/bcm/spum.h
 create mode 100644 drivers/crypto/bcm/util.c
 create mode 100644 drivers/crypto/bcm/util.h

-- 
2.1.0

[toc] | [next] | [standalone]


#1570184

FromFlorian Fainelli <f.fainelli@gmail.com>
Date2017-01-31 00:40 +0100
Message-ID<t5tId-1Kd-11@gated-at.bofh.it>
In reply to#1566750
On 01/25/2017 08:44 AM, Rob Rice wrote:
> Changes in v3:
> - rebase to 4.10-rc3 in cryptodev-2.6 tree
> - in bindings doc, list all valid compatibility strings
> - rename DT nodes "crypto" rather than "spu-crypto"
> - include a separate DT node for each SPU hardware block. Previously,
>  there was a single SPU node listing a register range for each
>  hw block.
> - select hash algos in Kconfig. Driver HMAC implementation uses hash
>  sw algos for inner and outer hashes.
> - Fix crash for AES CCM decrypt when AAD and data are both empty
> 
> Change in v2:
> - select CRYPTO_DES in Kconfig
> 
> The Broadcom SPU crypto driver provides access to SPU hardware
> for symmetric crypto offload. The driver supports ablkcipher,
> ahash, and aead operations. The driver supports several
> Broadcom SoCs with different revisions of the SPU hardware.
> The driver supports SPU-M and SPU2 hardware revisions, and
> a couple versions of each hw revision, each version with minor
> differences.

Herbert, can you take patches 1-2, and I will take patch 3 through my
arm64-soc git pull requests? Thanks!!

> 
> Rob Rice (3):
>   crypto: brcm: DT documentation for Broadcom SPU hardware
>   crypto: brcm: Add Broadcom SPU driver
>   arm64: dts: ns2: Add Broadcom SPU driver DT entry.
> 
>  .../devicetree/bindings/crypto/brcm,spu-crypto.txt |   22 +
>  arch/arm64/boot/dts/broadcom/ns2.dtsi              |   24 +
>  drivers/crypto/Kconfig                             |   15 +
>  drivers/crypto/Makefile                            |    2 +
>  drivers/crypto/bcm/Makefile                        |   15 +
>  drivers/crypto/bcm/cipher.c                        | 4955 ++++++++++++++++++++
>  drivers/crypto/bcm/cipher.h                        |  475 ++
>  drivers/crypto/bcm/spu.c                           | 1252 +++++
>  drivers/crypto/bcm/spu.h                           |  288 ++
>  drivers/crypto/bcm/spu2.c                          | 1402 ++++++
>  drivers/crypto/bcm/spu2.h                          |  228 +
>  drivers/crypto/bcm/spum.h                          |  174 +
>  drivers/crypto/bcm/util.c                          |  581 +++
>  drivers/crypto/bcm/util.h                          |  116 +
>  14 files changed, 9549 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/crypto/brcm,spu-crypto.txt
>  create mode 100644 drivers/crypto/bcm/Makefile
>  create mode 100644 drivers/crypto/bcm/cipher.c
>  create mode 100644 drivers/crypto/bcm/cipher.h
>  create mode 100644 drivers/crypto/bcm/spu.c
>  create mode 100644 drivers/crypto/bcm/spu.h
>  create mode 100644 drivers/crypto/bcm/spu2.c
>  create mode 100644 drivers/crypto/bcm/spu2.h
>  create mode 100644 drivers/crypto/bcm/spum.h
>  create mode 100644 drivers/crypto/bcm/util.c
>  create mode 100644 drivers/crypto/bcm/util.h
> 


-- 
Florian

[toc] | [prev] | [next] | [standalone]


#1572379 — Re: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver

FromHerbert Xu <herbert@gondor.apana.org.au>
Date2017-02-02 15:10 +0100
SubjectRe: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver
Message-ID<t6qff-54C-7@gated-at.bofh.it>
In reply to#1566750
On Wed, Jan 25, 2017 at 11:44:48AM -0500, Rob Rice wrote:
>
> +static int ahash_export(struct ahash_request *req, void *out)
> +{
> +	const struct iproc_reqctx_s *rctx = ahash_request_ctx(req);
> +
> +	memcpy(out, rctx, offsetof(struct iproc_reqctx_s, msg_buf));
> +	return 0;
> +}

The reqctx data structure seems to contain a lot of info unrelated
to the hash state.  Can't we get away with just copying the hash
state (incr_hash) itself?

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

[toc] | [prev] | [next] | [standalone]


#1572458 — Re: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver

FromRob Rice <rob.rice@broadcom.com>
Date2017-02-02 16:20 +0100
SubjectRe: [PATCH v3 2/3] crypto: brcm: Add Broadcom SPU driver
Message-ID<t6rl0-5HE-25@gated-at.bofh.it>
In reply to#1572379
Herbert,


> On Feb 2, 2017, at 9:05 AM, Herbert Xu <herbert@gondor.apana.org.au> wrote:
> 
> On Wed, Jan 25, 2017 at 11:44:48AM -0500, Rob Rice wrote:
>> 
>> +static int ahash_export(struct ahash_request *req, void *out)
>> +{
>> +	const struct iproc_reqctx_s *rctx = ahash_request_ctx(req);
>> +
>> +	memcpy(out, rctx, offsetof(struct iproc_reqctx_s, msg_buf));
>> +	return 0;
>> +}
> 
> The reqctx data structure seems to contain a lot of info unrelated
> to the hash state.  Can't we get away with just copying the hash
> state (incr_hash) itself?

Yes, I see your point. I’ll whittle the export state down to just what’s needed for the hash.

> 
> Cheers,
> -- 
> Email: Herbert Xu <herbert@gondor.apana.org.au>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web