mbox series

[v3,0/4] crypto: stm32 - reuse for Ux500

Message ID 20221203091518.3235950-1-linus.walleij@linaro.org (mailing list archive)
Headers show
Series crypto: stm32 - reuse for Ux500 | expand

Message

Linus Walleij Dec. 3, 2022, 9:15 a.m. UTC
Experimenting by taking some small portions of the Ux500
CRYP driver and adding to the STM32 driver, it turns out
we can support both platforms with the more modern STM32
driver.

ChanegLog v2->v3:
- Fix a kerneldoc warning.
- Collect ACKs.
ChangeLog v1->v2:
- Minor changes to the base patches, see per-patch
  ChangeLog.

Upsides:

- We delete ~2400 lines of code and 8 files with intact
  crypto support for Ux500 and not properly maintained
  and supported.

- The STM32 driver is more modern and compact thanks to
  using things like the crypto engine.

Caveats:

- The STM32 driver does not support DMA. On the U8500
  this only works with AES (DES support is broken with
  DMA). If this is desired to be kept I can migrate
  it to the STM32 driver as well.

I have looked at doing the same for the Ux500 hash, which
is related but I am reluctant about this one, because
the Ux500 hardware has no interrupt and only supports
polling. I have a series of modernizations for that
driver that I have worked on and will think about how
to move forward.


Linus Walleij (4):
  dt-bindings: crypto: Let STM32 define Ux500 CRYP
  crypto: stm32 - enable drivers to be used on Ux500
  crypto: stm32/cryp - enable for use with Ux500
  crypto: ux500/cryp - delete driver

 .../bindings/crypto/st,stm32-cryp.yaml        |   19 +
 drivers/crypto/Makefile                       |    2 +-
 drivers/crypto/stm32/Kconfig                  |    4 +-
 drivers/crypto/stm32/stm32-cryp.c             |  413 ++++-
 drivers/crypto/ux500/Kconfig                  |   10 -
 drivers/crypto/ux500/Makefile                 |    1 -
 drivers/crypto/ux500/cryp/Makefile            |   10 -
 drivers/crypto/ux500/cryp/cryp.c              |  394 ----
 drivers/crypto/ux500/cryp/cryp.h              |  315 ----
 drivers/crypto/ux500/cryp/cryp_core.c         | 1600 -----------------
 drivers/crypto/ux500/cryp/cryp_irq.c          |   45 -
 drivers/crypto/ux500/cryp/cryp_irq.h          |   31 -
 drivers/crypto/ux500/cryp/cryp_irqp.h         |  125 --
 drivers/crypto/ux500/cryp/cryp_p.h            |  122 --
 14 files changed, 344 insertions(+), 2747 deletions(-)
 delete mode 100644 drivers/crypto/ux500/cryp/Makefile
 delete mode 100644 drivers/crypto/ux500/cryp/cryp.c
 delete mode 100644 drivers/crypto/ux500/cryp/cryp.h
 delete mode 100644 drivers/crypto/ux500/cryp/cryp_core.c
 delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.c
 delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.h
 delete mode 100644 drivers/crypto/ux500/cryp/cryp_irqp.h
 delete mode 100644 drivers/crypto/ux500/cryp/cryp_p.h

Comments

Herbert Xu Dec. 9, 2022, 11:08 a.m. UTC | #1
On Sat, Dec 03, 2022 at 10:15:14AM +0100, Linus Walleij wrote:
> Experimenting by taking some small portions of the Ux500
> CRYP driver and adding to the STM32 driver, it turns out
> we can support both platforms with the more modern STM32
> driver.
> 
> ChanegLog v2->v3:
> - Fix a kerneldoc warning.
> - Collect ACKs.
> ChangeLog v1->v2:
> - Minor changes to the base patches, see per-patch
>   ChangeLog.
> 
> Upsides:
> 
> - We delete ~2400 lines of code and 8 files with intact
>   crypto support for Ux500 and not properly maintained
>   and supported.
> 
> - The STM32 driver is more modern and compact thanks to
>   using things like the crypto engine.
> 
> Caveats:
> 
> - The STM32 driver does not support DMA. On the U8500
>   this only works with AES (DES support is broken with
>   DMA). If this is desired to be kept I can migrate
>   it to the STM32 driver as well.
> 
> I have looked at doing the same for the Ux500 hash, which
> is related but I am reluctant about this one, because
> the Ux500 hardware has no interrupt and only supports
> polling. I have a series of modernizations for that
> driver that I have worked on and will think about how
> to move forward.
> 
> 
> Linus Walleij (4):
>   dt-bindings: crypto: Let STM32 define Ux500 CRYP
>   crypto: stm32 - enable drivers to be used on Ux500
>   crypto: stm32/cryp - enable for use with Ux500
>   crypto: ux500/cryp - delete driver
> 
>  .../bindings/crypto/st,stm32-cryp.yaml        |   19 +
>  drivers/crypto/Makefile                       |    2 +-
>  drivers/crypto/stm32/Kconfig                  |    4 +-
>  drivers/crypto/stm32/stm32-cryp.c             |  413 ++++-
>  drivers/crypto/ux500/Kconfig                  |   10 -
>  drivers/crypto/ux500/Makefile                 |    1 -
>  drivers/crypto/ux500/cryp/Makefile            |   10 -
>  drivers/crypto/ux500/cryp/cryp.c              |  394 ----
>  drivers/crypto/ux500/cryp/cryp.h              |  315 ----
>  drivers/crypto/ux500/cryp/cryp_core.c         | 1600 -----------------
>  drivers/crypto/ux500/cryp/cryp_irq.c          |   45 -
>  drivers/crypto/ux500/cryp/cryp_irq.h          |   31 -
>  drivers/crypto/ux500/cryp/cryp_irqp.h         |  125 --
>  drivers/crypto/ux500/cryp/cryp_p.h            |  122 --
>  14 files changed, 344 insertions(+), 2747 deletions(-)
>  delete mode 100644 drivers/crypto/ux500/cryp/Makefile
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp.c
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp.h
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp_core.c
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.c
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.h
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp_irqp.h
>  delete mode 100644 drivers/crypto/ux500/cryp/cryp_p.h
> 
> -- 
> 2.38.1

All applied.  Thanks.