Skip to content

crypto: atmel-aes: global rework of the driver

Cyrille Pitchen linux-arm-kernel linux-crypto lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest24 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/24crypto: atmel-aes: add new versiondrivers/crypto/atmel-aes.c+5 -00 replies
2/24crypto: atmel-aes: constify value argument of atmel_aes_write_n()drivers/crypto/atmel-aes.c+1 -10 replies
3/24crypto: atmel-aes: change algorithm prioritiesdrivers/crypto/atmel-aes.c+11 -90 replies
4/24crypto: atmel-aes: fix unregistration order of crypto algorithmsdrivers/crypto/atmel-aes.c+3 -20 replies
5/24crypto: atmel-aes: remove unused header includesdrivers/crypto/atmel-aes.c+0 -30 replies
6/24crypto: atmel-aes: propagate error from atmel_aes_hw_version_init()drivers/crypto/atmel-aes.c+11 -50 replies
7/24crypto: atmel-aes: change atmel_aes_write_ctrl() signaturedrivers/crypto/atmel-aes.c+10 -140 replies
8/24crypto: atmel-aes: make crypto request queue management more genericdrivers/crypto/atmel-aes.c+49 -260 replies
9/24crypto: atmel-aes: remove useless write in the Control Registerdrivers/crypto/atmel-aes.c+1 -20 replies
10/24crypto: atmel-aes: simplify the configuration of the AES IPdrivers/crypto/atmel-aes.c+93 -1230 replies
11/24crypto: atmel-aes: rework crypto request completiondrivers/crypto/atmel-aes.c+47 -270 replies
12/24crypto: atmel-aes: remove unused 'err' member of struct atmel_aes_devdrivers/crypto/atmel-aes.c+0 -50 replies
13/24crypto: atmel-aes: reduce latency of DMA completiondrivers/crypto/atmel-aes.c+2 -20 replies
14/24crypto: atmel-aes: remove useless AES_FLAGS_DMA flagdrivers/crypto/atmel-aes.c+15 -220 replies
15/24crypto: atmel-aes: fix atmel_aes_remove()drivers/crypto/atmel-aes.c+1 -00 replies
16/24crypto: atmel-aes: improve performances of data transferdrivers/crypto/atmel-aes.c+386 -3780 replies
17/24crypto: atmel-aes: use SIZE_IN_WORDS() helper macrodrivers/crypto/atmel-aes.c+2 -20 replies
18/24crypto: atmel-aes: fix typo and indentationdrivers/crypto/atmel-aes.c+25 -310 replies
19/24crypto: atmel-aes: create sections to regroup functions by usagedrivers/crypto/atmel-aes.c+108 -1020 replies
20/24crypto: atmel-aes: fix atmel-ctr-aes driver for RFC 3686drivers/crypto/atmel-aes.c+1 -10 replies
21/24crypto: atmel-aes: fix the counter overflow in CTR modedrivers/crypto/atmel-aes.c+115 -20 replies
22/24crypto: atmel-aes: change the DMA thresholddrivers/crypto/atmel-aes.c+1 -10 replies
23/24crypto: atmel-aes: add support to GCM modedrivers/crypto/Kconfig drivers/crypto/atmel-aes-regs.h drivers/crypto/atmel-aes.c+462 -20 replies
24/24crypto: atmel-aes: add debug facilities to monitor register accesses.drivers/crypto/atmel-aes.c+114 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/24] crypto: atmel-aes: global rework of the driver

Hi all,

this series of patches is a global rework of the Atmel driver. Some patches improve the performances whereas others fix some bugs like the counter overflow in CTR mode.

It also updates some part of the code to make them more generic. For instance the crypto request queue management supports both async block cipher and AEAD requests, which allows us to add support the the GCM mode. The support of the GCM mode is only available on sama5d4 and later.

This series is based on linux-next and was tested on sama5d2, sama5d3 and sama5d4 boards. The driver implementation was validated using the tcrypt module running modes:
- 10: ecb(aes), cbc(aes), ctr(aes), rfc3686(ctr(aes))
- 35: gcm(aes)

tcrypt speed test was run with modes:
- 211: rfc4106(gcm(aes)), gcm(aes)
- 500: ecb(aes), cbc(aes), ctr(aes), cfb(aes), ofc(aes), rfc3686(ctr(aes))

Finally iperf was run for at least 5 mins over an IPSEC/L2TP tunnel using the rfc4106(gcm(aes)) cipher suite.

Changelog:

v1: initial version

Cyrille Pitchen (23):
crypto: atmel-aes: constify value argument of atmel_aes_write_n()
crypto: atmel-aes: change algorithm priorities
crypto: atmel-aes: fix unregistration order of crypto algorithms
crypto: atmel-aes: remove unused header includes
crypto: atmel-aes: propagate error from atmel_aes_hw_version_init()
crypto: atmel-aes: change atmel_aes_write_ctrl() signature
crypto: atmel-aes: make crypto request queue management more generic
crypto: atmel-aes: remove useless write in the Control Register
crypto: atmel-aes: simplify the configuration of the AES IP
crypto: atmel-aes: rework crypto request completion
crypto: atmel-aes: remove unused 'err' member of struct atmel_aes_dev
crypto: atmel-aes: reduce latency of DMA completion
crypto: atmel-aes: remove useless AES_FLAGS_DMA flag
crypto: atmel-aes: fix atmel_aes_remove()
crypto: atmel-aes: improve performances of data transfer
crypto: atmel-aes: use SIZE_IN_WORDS() helper macro
crypto: atmel-aes: fix typo and indentation
crypto: atmel-aes: create sections to regroup functions by usage
crypto: atmel-aes: fix atmel-ctr-aes driver for RFC 3686
crypto: atmel-aes: fix the counter overflow in CTR mode
crypto: atmel-aes: change the DMA threshold
crypto: atmel-aes: add support to GCM mode
crypto: atmel-aes: add debug facilities to monitor register accesses.

Leilei Zhao (1):
crypto: atmel-aes: add new version

 drivers/crypto/Kconfig          |    1 +
 drivers/crypto/atmel-aes-regs.h |   10 +
 drivers/crypto/atmel-aes.c      | 1843 +++++++++++++++++++++++++++------------
 3 files changed, 1278 insertions(+), 576 deletions(-)
Signature · 1 line
1.8.2.2