Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-07-25 Thread Gregory CLEMENT
Hi Boris,

[...]


 In this version I dropped the DT changes, but you'll find them in my
 cesa-v7 branch [1]. In this branch you'll find everything you need to
 test on all Marvell platforms (including the old ones).
 I'll post a series updating all the DTs once this driver has been merged.

Now that the driver has been merged do you plan submitting the DT support
soon?


Thanks,

Gregory


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-24 Thread Paul Gortmaker
[Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA] On 
22/06/2015 (Mon 15:59) Herbert Xu wrote:

 On Mon, Jun 22, 2015 at 09:23:36AM +0200, Boris Brezillon wrote:
  Hi Herbert,
  
  On Sun, 21 Jun 2015 16:27:17 +0800
  Herbert Xu herb...@gondor.apana.org.au wrote:
  
   On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:

Indeed. Here is a patch fixing that.
   
   I think you should just kill COMPILE_TEST instead of adding ARM.
  
  The following patch is killing the COMPILE_TEST dependency.
 
 Patch applied.

Just a heads up, this driver is still killing a couple of linux-next
builds today and for the past few days.

drivers/crypto/mv_cesa.c:1037:2: error: implicit declaration of function
'of_get_named_gen_pool' [-Werror=implicit-function-declaration]

http://kisskb.ellerman.id.au/kisskb/buildresult/12448851/
http://kisskb.ellerman.id.au/kisskb/buildresult/12448776/

Missing dependency on CONFIG_OF_blah presumably.

Paul.
--

 -- 
 Email: Herbert Xu herb...@gondor.apana.org.au
 Home Page: http://gondor.apana.org.au/~herbert/
 PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-24 Thread Javier Martinez Canillas
Hello Paul,

On Thu, Jun 25, 2015 at 2:00 AM, Paul Gortmaker
paul.gortma...@windriver.com wrote:
 [Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA] On 
 22/06/2015 (Mon 15:59) Herbert Xu wrote:

 On Mon, Jun 22, 2015 at 09:23:36AM +0200, Boris Brezillon wrote:
  Hi Herbert,
 
  On Sun, 21 Jun 2015 16:27:17 +0800
  Herbert Xu herb...@gondor.apana.org.au wrote:
 
   On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:
   
Indeed. Here is a patch fixing that.
  
   I think you should just kill COMPILE_TEST instead of adding ARM.
 
  The following patch is killing the COMPILE_TEST dependency.

 Patch applied.

 Just a heads up, this driver is still killing a couple of linux-next
 builds today and for the past few days.

 drivers/crypto/mv_cesa.c:1037:2: error: implicit declaration of function
 'of_get_named_gen_pool' [-Werror=implicit-function-declaration]

 http://kisskb.ellerman.id.au/kisskb/buildresult/12448851/
 http://kisskb.ellerman.id.au/kisskb/buildresult/12448776/

 Missing dependency on CONFIG_OF_blah presumably.


I haven't looked at the series but linux/genalloc.h has a stub
of_get_named_gen_pool() function if CONFIG_OF is not enabled [0].

So it seems that the problem is rather that the header is not being
included in some file.

 Paul.
 --


Best regards,
Javier

[0]: http://lxr.free-electrons.com/source/include/linux/genalloc.h#L131
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-22 Thread Boris Brezillon
Hi Herbert,

On Sun, 21 Jun 2015 16:27:17 +0800
Herbert Xu herb...@gondor.apana.org.au wrote:

 On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:
  
  Indeed. Here is a patch fixing that.
 
 I think you should just kill COMPILE_TEST instead of adding ARM.

The following patch is killing the COMPILE_TEST dependency.

-- 8 --

From 772232fe4f5e597e45701dd9c3ab68c4a065342f Mon Sep 17 00:00:00 2001
From: Boris Brezillon boris.brezil...@free-electrons.com
Date: Mon, 22 Jun 2015 09:22:14 +0200
Subject: [PATCH] crypto: marvell/CESA: remove COMPILE_TEST dependency

The CESA driver calls phys_to_virt() which is not available on all
architectures.
Remove the depency on COMPILE_TEST to prevent building this driver on
non ARM architectures.

Signed-off-by: Boris Brezillon boris.brezil...@free-electrons.com
Reported-by: Paul Gortmaker paul.gortma...@windriver.com
Suggested-by: Herbert Xu herb...@gondor.apana.org.au
---
 drivers/crypto/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index cdca762..f965d0c 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -176,7 +176,7 @@ config CRYPTO_DEV_MV_CESA
 
 config CRYPTO_DEV_MARVELL_CESA
tristate New Marvell's Cryptographic Engine driver
-   depends on (PLAT_ORION || ARCH_MVEBU || COMPILE_TEST)  HAS_DMA  
HAS_IOMEM
+   depends on PLAT_ORION || ARCH_MVEBU
select CRYPTO_AES
select CRYPTO_DES
select CRYPTO_BLKCIPHER
-- 
1.9.1
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-22 Thread Herbert Xu
On Mon, Jun 22, 2015 at 09:23:36AM +0200, Boris Brezillon wrote:
 Hi Herbert,
 
 On Sun, 21 Jun 2015 16:27:17 +0800
 Herbert Xu herb...@gondor.apana.org.au wrote:
 
  On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:
   
   Indeed. Here is a patch fixing that.
  
  I think you should just kill COMPILE_TEST instead of adding ARM.
 
 The following patch is killing the COMPILE_TEST dependency.

Patch applied.
-- 
Email: Herbert Xu herb...@gondor.apana.org.au
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-21 Thread Boris Brezillon
Hi Herbert,

On Sun, 21 Jun 2015 16:27:17 +0800
Herbert Xu herb...@gondor.apana.org.au wrote:

 On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:
  
  Indeed. Here is a patch fixing that.
 
 I think you should just kill COMPILE_TEST instead of adding ARM.

Okay, I guess I should also kill the HAS_DMA and HAS_IOMEM since
PLAT_ORION and ARCH_MVEBU are guaranteed to have those options selected.


-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-21 Thread Boris Brezillon
Hi Paul,

On Sat, 20 Jun 2015 20:14:08 -0400
Paul Gortmaker paul.gortma...@windriver.com wrote:

 On Sat, Jun 20, 2015 at 4:32 PM, Paul Gortmaker
 paul.gortma...@windriver.com wrote:
  On Fri, Jun 19, 2015 at 10:24 AM, Herbert Xu
  herb...@gondor.apana.org.au wrote:
  On Thu, Jun 18, 2015 at 03:46:16PM +0200, Boris Brezillon wrote:
  Hello,
 
  This patch series adds a new driver supporting Marvell's CESA IP.
  This driver addresses some limitations of the existing one.
  From a performance and CPU load point of view the most important
  limitation in the existing driver is the lack of DMA support, thus
  preventing us from chaining crypto operations.
 
  All applied to cryptodev.  Thanks a lot!
 
  It seems this breaks linux-next allmodconfig on i386:
 
 Similar breakage for s390 and sparc it seems:
 
 drivers/crypto/marvell/cesa.c:353:2: error: implicit declaration of
 function 'phys_to_dma' [-Werror=implicit-function-declaration]
 
 http://kisskb.ellerman.id.au/kisskb/buildresult/12445415/
 http://kisskb.ellerman.id.au/kisskb/buildresult/12445345/
 
 If the CESA IP is only available on a single arch then
 adding an arch dependency might be the easiest fix,
 since phys_to_dma seems sparsely implemented.

Indeed. Here is a patch fixing that.

Thanks,

Boris

--- 8 ---

From 891d4e5f185c39cd34b5859a1a63850ef997514d Mon Sep 17 00:00:00 2001
From: Boris Brezillon boris.brezil...@free-electrons.com
Date: Sun, 21 Jun 2015 10:17:54 +0200
Subject: [PATCH] crypto: marvell/CESA: enforce dependency on ARM

The CESA driver calls phys_to_virt() which is not available on all
architectures.
Enforce the dependency on ARM so that other architectures won't compile
the driver even if COMPILE_TEST is set.

Signed-off-by: Boris Brezillon boris.brezil...@free-electrons.com
Reported-by: Paul Gortmaker paul.gortma...@windriver.com
Suggested-by: Paul Gortmaker paul.gortma...@windriver.com
---
 drivers/crypto/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index cdca762..b374d5d 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -176,7 +176,7 @@ config CRYPTO_DEV_MV_CESA
 
 config CRYPTO_DEV_MARVELL_CESA
tristate New Marvell's Cryptographic Engine driver
-   depends on (PLAT_ORION || ARCH_MVEBU || COMPILE_TEST)  HAS_DMA  
HAS_IOMEM
+   depends on (PLAT_ORION || ARCH_MVEBU || COMPILE_TEST)  HAS_DMA  
HAS_IOMEM  ARM
select CRYPTO_AES
select CRYPTO_DES
select CRYPTO_BLKCIPHER
-- 
1.9.1



-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-21 Thread Herbert Xu
On Sun, Jun 21, 2015 at 10:24:18AM +0200, Boris Brezillon wrote:
 
 Indeed. Here is a patch fixing that.

I think you should just kill COMPILE_TEST instead of adding ARM.

Cheers,
-- 
Email: Herbert Xu herb...@gondor.apana.org.au
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-20 Thread Paul Gortmaker
On Fri, Jun 19, 2015 at 10:24 AM, Herbert Xu
herb...@gondor.apana.org.au wrote:
 On Thu, Jun 18, 2015 at 03:46:16PM +0200, Boris Brezillon wrote:
 Hello,

 This patch series adds a new driver supporting Marvell's CESA IP.
 This driver addresses some limitations of the existing one.
 From a performance and CPU load point of view the most important
 limitation in the existing driver is the lack of DMA support, thus
 preventing us from chaining crypto operations.

 All applied to cryptodev.  Thanks a lot!

It seems this breaks linux-next allmodconfig on i386:

http://kisskb.ellerman.id.au/kisskb/buildresult/12445342/

ERROR: phys_to_dma [drivers/crypto/marvell/marvell-cesa.ko] undefined!
make[2]: *** [__modpost] Error 1

Paul.
--
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-20 Thread Paul Gortmaker
On Sat, Jun 20, 2015 at 4:32 PM, Paul Gortmaker
paul.gortma...@windriver.com wrote:
 On Fri, Jun 19, 2015 at 10:24 AM, Herbert Xu
 herb...@gondor.apana.org.au wrote:
 On Thu, Jun 18, 2015 at 03:46:16PM +0200, Boris Brezillon wrote:
 Hello,

 This patch series adds a new driver supporting Marvell's CESA IP.
 This driver addresses some limitations of the existing one.
 From a performance and CPU load point of view the most important
 limitation in the existing driver is the lack of DMA support, thus
 preventing us from chaining crypto operations.

 All applied to cryptodev.  Thanks a lot!

 It seems this breaks linux-next allmodconfig on i386:

Similar breakage for s390 and sparc it seems:

drivers/crypto/marvell/cesa.c:353:2: error: implicit declaration of
function 'phys_to_dma' [-Werror=implicit-function-declaration]

http://kisskb.ellerman.id.au/kisskb/buildresult/12445415/
http://kisskb.ellerman.id.au/kisskb/buildresult/12445345/

If the CESA IP is only available on a single arch then
adding an arch dependency might be the easiest fix,
since phys_to_dma seems sparsely implemented.

Paul.
--


 http://kisskb.ellerman.id.au/kisskb/buildresult/12445342/

 ERROR: phys_to_dma [drivers/crypto/marvell/marvell-cesa.ko] undefined!
 make[2]: *** [__modpost] Error 1

 Paul.
 --
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


Re: [PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-19 Thread Herbert Xu
On Thu, Jun 18, 2015 at 03:46:16PM +0200, Boris Brezillon wrote:
 Hello,
 
 This patch series adds a new driver supporting Marvell's CESA IP.
 This driver addresses some limitations of the existing one.
 From a performance and CPU load point of view the most important
 limitation in the existing driver is the lack of DMA support, thus
 preventing us from chaining crypto operations.

All applied to cryptodev.  Thanks a lot!
-- 
Email: Herbert Xu herb...@gondor.apana.org.au
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line unsubscribe linux-crypto in


[PATCH v7 00/14] crypto: add a new driver for Marvell's CESA

2015-06-18 Thread Boris Brezillon
Hello,

This patch series adds a new driver supporting Marvell's CESA IP.
This driver addresses some limitations of the existing one.
From a performance and CPU load point of view the most important
limitation in the existing driver is the lack of DMA support, thus
preventing us from chaining crypto operations.

I know we usually try to adapt existing drivers instead of replacing them
by new ones, but after trying to refactor the mv_cesa driver I realized it
would take longer than writing an new one from scratch.

Here are the main features brought by this new driver:
- support for armada SoCs (up to 38x) while keeping support for older ones
  (Orion and Kirkwood). Note that old DT bindings (those used on Orion and
  Kirkwood platforms) are supported, or IOTW, old DTs are compatible with
  this new driver.
- DMA mode to offload the CPU in case of intensive crypto usage
- new algorithms: SHA256, DES and 3DES

I'd like to thank Arnaud, who has carefully reviewed several iterations of
this driver, helped me improved my implementation, provided support for
several crypto algorithms, provided support for armada-370 and tested
the driver on different platforms, hence the SoB and dual MODULE_AUTHOR
in the driver code.

In this version I dropped the DT changes, but you'll find them in my
cesa-v7 branch [1]. In this branch you'll find everything you need to
test on all Marvell platforms (including the old ones).
I'll post a series updating all the DTs once this driver has been merged.

Best Regards,

Boris

[1]https://github.com/bbrezillon/linux-marvell/tree/cesa-v7

Changes since v6:
- do not store dma_map_sg() return value
- use sg_dma_len() and sg_dma_address()
- test for req-src != req-dst to choose the dma mapping method

Changes since v5:
- fix the dma_map_sg return code check (again)
- fix select entries in the Kconfig option

Changes since v4:
- fix the dma_map_sg return code check
- add import/export functions to all HMAC algos
- update the passed IV when handling cipher requests
- properly handle requests in the crypto queue backlog
- use sg_nents_for_len

Changes since v3:
- add import functions for hash algorithms
- patch mv_cesa driver to support the new DT bindings
- few fixes in the documentation
- replace mv_mbus_dram_info() call by mv_mbus_dram_info_nooverlap()
- remove DT updates from the series

Changes since v2:
- fixes in the cipher code (-dst_nents was assigned the -src_nents
  value and CBC state was overwritten by the IV after each chunk
  operation)
- spit the code as suggested by Sebastian

Changes since v1:
- (suggested by Jason) kept the existing CESA driver and added a mechanism
  to prevent the new driver from probing devices handled my the existing
  one (Orion and Kirkwood platforms)
- (reported by Paul) addressed a few Kconfig and module definition issues
- (suggested by Andrew) added DT changes to the series

Arnaud Ebalard (4):
  crypto: marvell/CESA: add Triple-DES support
  crypto: marvell/CESA: add MD5 support
  crypto: marvell/CESA: add SHA256 support
  crypto: marvell/CESA: add support for Kirkwood and Dove SoCs

Boris Brezillon (10):
  crypto: mv_cesa: document the clocks property
  crypto: mv_cesa: use gen_pool to reserve the SRAM memory region
  crypto: mv_cesa: explicitly define kirkwood and dove compatible
strings
  crypto: add a new driver for Marvell's CESA
  crypto: marvell/CESA: add TDMA support
  crypto: marvell/CESA: add DES support
  crypto: marvell/CESA: add support for all armada SoCs
  crypto: marvell/CESA: add allhwsupport module parameter
  crypto: marvell/CESA: add support for Orion SoCs
  crypto: marvell/CESA: add DT bindings documentation

 .../devicetree/bindings/crypto/marvell-cesa.txt|   45 +
 .../devicetree/bindings/crypto/mv_cesa.txt |   31 +-
 drivers/crypto/Kconfig |   17 +
 drivers/crypto/Makefile|1 +
 drivers/crypto/marvell/Makefile|2 +
 drivers/crypto/marvell/cesa.c  |  548 
 drivers/crypto/marvell/cesa.h  |  791 +++
 drivers/crypto/marvell/cipher.c|  797 +++
 drivers/crypto/marvell/hash.c  | 1441 
 drivers/crypto/marvell/tdma.c  |  224 +++
 drivers/crypto/mv_cesa.c   |   60 +-
 11 files changed, 3933 insertions(+), 24 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/crypto/marvell-cesa.txt
 create mode 100644 drivers/crypto/marvell/Makefile
 create mode 100644 drivers/crypto/marvell/cesa.c
 create mode 100644 drivers/crypto/marvell/cesa.h
 create mode 100644 drivers/crypto/marvell/cipher.c
 create mode 100644 drivers/crypto/marvell/hash.c
 create mode 100644 drivers/crypto/marvell/tdma.c

-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-crypto in
the body of a message to majord...@vger.kernel.org
More majordomo info at