On 09.04.2015 16:58, Boris Brezillon wrote:
This is an attempt to replace the mv_cesa driver by a new one to address
some limitations of the existing driver.
From a performance and CPU load point of view the most important
limitation 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.
Boris,
if you include a bunch of performance measurements, I guess it will help
you to get an agreement of replacing the driver instead of reworking it.
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)
Unfortunately, the list above is missing Dove SoCs which also have a
CESA engine with TDMA support. I checked the registers _very_ quickly
but it seems that they are compatible with Kirkwood's CESA.
- DMA mode to offload the CPU in case of intensive crypto usage
- new algorithms: SHA256, DES and 3DES
[...]
Boris Brezillon (2):
crypto: add new driver for Marvell CESA
crypto: marvell/CESA: update DT bindings documentation
IMHO, the patch set should be split up in:
- new core driver
- add support for TDMA on platforms that support it
- new cipher algorithms
- removal of old mv_cesa
I'd love to test on Dove, but time still is very limited. I guess the
patches will receive another round anyway, maybe I find some until the
final version.
Sebastian
.../devicetree/bindings/crypto/mv_cesa.txt | 50 +-
drivers/crypto/Kconfig |2 +
drivers/crypto/Makefile|2 +-
drivers/crypto/marvell/Makefile|1 +
drivers/crypto/marvell/cesa.c | 539
drivers/crypto/marvell/cesa.h | 802
drivers/crypto/marvell/cipher.c| 761 +++
drivers/crypto/marvell/hash.c | 1349
drivers/crypto/marvell/tdma.c | 223
drivers/crypto/mv_cesa.c | 1193 -
drivers/crypto/mv_cesa.h | 150 ---
11 files changed, 3716 insertions(+), 1356 deletions(-)
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
delete mode 100644 drivers/crypto/mv_cesa.c
delete mode 100644 drivers/crypto/mv_cesa.h
--
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