mbox series

[v10,00/33] crypto: rockchip: permit to pass self-tests

Message ID 20220927075511.3147847-1-clabbe@baylibre.com (mailing list archive)
Headers show
Series crypto: rockchip: permit to pass self-tests | expand

Message

Corentin LABBE Sept. 27, 2022, 7:54 a.m. UTC
Hello

The rockchip crypto driver is broken and do not pass self-tests.
This serie's goal is to permit to become usable and pass self-tests.

This whole serie is tested on a rk3328-rock64, rk3288-miqi and
rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)

Regards

Changes since v1:
- select CRYPTO_ENGINE
- forgot to free fallbacks TFMs
- fixed kernel test robots warning
- add the PM patch

Changes since v2:
- Added DMA clock back to 3288 since it dont work without it
- fallback needed to select CBC and ECB configs
- Added support for rk3399
- Added more patch (style, read_poll_timeout)

Changes since v3:
- full rewrite of support for RK3399
- splited dt-binding patch in two

Changes since v4:
- Another full rewrite of support for RK3399
- Fixed dt-binding from Krzysztof Kozlowski's comments
- Use readl_poll_timeout() instead of read_poll_timeout()
- Rewrite the fallback SG tests

Changes since v5:
- fixed errors in DT binding patch

Change since v6:
- remove quotes around const values in dt-bindings

Changes since v7:
- added lot of reviewed/tested by
- In patch 14: keep initial reset pulse.

Changes since v8:
- Removed some useless min/maxitems from dt-binding as reported by dt_binding_check

Change since v9:
- removed redundant rst_ from reset-names
- reworked patch #25 commit message

Corentin Labbe (33):
  crypto: rockchip: use dev_err for error message about interrupt
  crypto: rockchip: do not use uninitialized variable
  crypto: rockchip: do not do custom power management
  crypto: rockchip: fix privete/private typo
  crypto: rockchip: do not store mode globally
  crypto: rockchip: add fallback for cipher
  crypto: rockchip: add fallback for ahash
  crypto: rockchip: better handle cipher key
  crypto: rockchip: remove non-aligned handling
  crypto: rockchip: rework by using crypto_engine
  crypto: rockchip: rewrite type
  crypto: rockchip: add debugfs
  crypto: rockchip: introduce PM
  crypto: rockchip: handle reset also in PM
  crypto: rockchip: use clk_bulk to simplify clock management
  crypto: rockchip: add myself as maintainer
  crypto: rockchip: use read_poll_timeout
  crypto: rockchip: fix style issue
  crypto: rockchip: add support for rk3328
  crypto: rockchip: rename ablk functions to cipher
  crypto: rockchip: rework rk_handle_req function
  crypto: rockchip: use a rk_crypto_info variable instead of lot of
    indirection
  crypto: rockchip: use the rk_crypto_info given as parameter
  dt-bindings: crypto: convert rockchip-crypto to YAML
  dt-bindings: crypto: rockchip: add new compatible
  clk: rk3399: use proper crypto0 name
  arm64: dts: rockchip: add rk3328 crypto node
  arm64: dts: rockchip: rk3399: add crypto node
  crypto: rockchip: store crypto_info in request context
  crypto: rockchip: Check for clocks numbers and their frequencies
  crypto: rockchip: rk_ahash_reg_init use crypto_info from parameter
  crypto: rockchip: permit to have more than one reset
  crypto: rockchip: Add support for RK3399

 .../crypto/rockchip,rk3288-crypto.yaml        | 127 ++++
 .../bindings/crypto/rockchip-crypto.txt       |  28 -
 MAINTAINERS                                   |   7 +
 arch/arm64/boot/dts/rockchip/rk3328.dtsi      |  11 +
 arch/arm64/boot/dts/rockchip/rk3399.dtsi      |  20 +
 drivers/crypto/Kconfig                        |  15 +
 drivers/crypto/rockchip/rk3288_crypto.c       | 506 ++++++++--------
 drivers/crypto/rockchip/rk3288_crypto.h       | 107 ++--
 drivers/crypto/rockchip/rk3288_crypto_ahash.c | 267 +++++----
 .../crypto/rockchip/rk3288_crypto_skcipher.c  | 543 ++++++++++--------
 include/dt-bindings/clock/rk3399-cru.h        |   6 +-
 11 files changed, 949 insertions(+), 688 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
 delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt

Comments

Corentin LABBE Oct. 21, 2022, 1:20 p.m. UTC | #1
Le Tue, Sep 27, 2022 at 07:54:38AM +0000, Corentin Labbe a écrit :
> Hello
> 
> The rockchip crypto driver is broken and do not pass self-tests.
> This serie's goal is to permit to become usable and pass self-tests.
> 
> This whole serie is tested on a rk3328-rock64, rk3288-miqi and
> rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)
> 
> Regards
> 

Hello

Gentle ping since it is a month since this serie was sent and no comment was made (except some reviewed-by).
So I think it is ready to be merged, probably thought the crypto tree.

Regards
Heiko Stuebner Oct. 21, 2022, 5:09 p.m. UTC | #2
Am Freitag, 21. Oktober 2022, 15:20:53 CEST schrieb Corentin LABBE:
> Le Tue, Sep 27, 2022 at 07:54:38AM +0000, Corentin Labbe a écrit :
> > Hello
> > 
> > The rockchip crypto driver is broken and do not pass self-tests.
> > This serie's goal is to permit to become usable and pass self-tests.
> > 
> > This whole serie is tested on a rk3328-rock64, rk3288-miqi and
> > rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)
> > 
> > Regards
> > 
> 
> Hello
> 
> Gentle ping since it is a month since this serie was sent and no comment was made (except some reviewed-by).
> So I think it is ready to be merged, probably thought the crypto tree.

ideally everything _except_ patches
 26 +27+28
would go through the crypto tree.

So if possible I'd like to pick up those (clock + arm64-dts patches)
after the crypto people are satisfied with the driver changes.


Thanks
Heiko
Corentin LABBE Oct. 26, 2022, 7:41 a.m. UTC | #3
Le Fri, Oct 21, 2022 at 07:09:53PM +0200, Heiko Stübner a écrit :
> Am Freitag, 21. Oktober 2022, 15:20:53 CEST schrieb Corentin LABBE:
> > Le Tue, Sep 27, 2022 at 07:54:38AM +0000, Corentin Labbe a écrit :
> > > Hello
> > > 
> > > The rockchip crypto driver is broken and do not pass self-tests.
> > > This serie's goal is to permit to become usable and pass self-tests.
> > > 
> > > This whole serie is tested on a rk3328-rock64, rk3288-miqi and
> > > rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)
> > > 
> > > Regards
> > > 
> > 
> > Hello
> > 
> > Gentle ping since it is a month since this serie was sent and no comment was made (except some reviewed-by).
> > So I think it is ready to be merged, probably thought the crypto tree.
> 
> ideally everything _except_ patches
>  26 +27+28
> would go through the crypto tree.
> 
> So if possible I'd like to pick up those (clock + arm64-dts patches)
> after the crypto people are satisfied with the driver changes.
> 

Hello

I agree with this way.

Herbert any thought ?

Regards
Herbert Xu Oct. 26, 2022, 10:05 a.m. UTC | #4
On Wed, Oct 26, 2022 at 09:41:30AM +0200, Corentin LABBE wrote:
>
> Herbert any thought ?

Please let me know exactly which patches you want me to apply.

Thanks,
Heiko Stuebner Oct. 26, 2022, 10:25 a.m. UTC | #5
Hi Herbert,

Am Mittwoch, 26. Oktober 2022, 12:05:41 CEST schrieb Herbert Xu:
> On Wed, Oct 26, 2022 at 09:41:30AM +0200, Corentin LABBE wrote:
> >
> > Herbert any thought ?
> 
> Please let me know exactly which patches you want me to apply.

it would be great if you could apply:
- patches 01 - 25
- patches 29 - 33

They all start with either
	"crypto: rockchip: ..."
or
	"dt-bindings: crypto: ..."

Regards
Heiko
Krzysztof Kozlowski Oct. 28, 2022, 2:06 a.m. UTC | #6
On 26/10/2022 06:25, Heiko Stübner wrote:
> Hi Herbert,
> 
> Am Mittwoch, 26. Oktober 2022, 12:05:41 CEST schrieb Herbert Xu:
>> On Wed, Oct 26, 2022 at 09:41:30AM +0200, Corentin LABBE wrote:
>>>
>>> Herbert any thought ?
>>
>> Please let me know exactly which patches you want me to apply.
> 
> it would be great if you could apply:
> - patches 01 - 25
> - patches 29 - 33
> 
> They all start with either
> 	"crypto: rockchip: ..."
> or
> 	"dt-bindings: crypto: ..."

The series probably should be split in such case (with links to lore),
otherwise it creates impression of some dependencies. Bindings are in
the middle, DTS as well (which is usually sign of ABI break).

The clk change at the end also does not help.

Best regards,
Krzysztof
Herbert Xu Oct. 28, 2022, 5:01 a.m. UTC | #7
On Tue, Sep 27, 2022 at 07:54:38AM +0000, Corentin Labbe wrote:
> Hello
> 
> The rockchip crypto driver is broken and do not pass self-tests.
> This serie's goal is to permit to become usable and pass self-tests.
> 
> This whole serie is tested on a rk3328-rock64, rk3288-miqi and
> rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)
> 
> Regards
> 
> Changes since v1:
> - select CRYPTO_ENGINE
> - forgot to free fallbacks TFMs
> - fixed kernel test robots warning
> - add the PM patch
> 
> Changes since v2:
> - Added DMA clock back to 3288 since it dont work without it
> - fallback needed to select CBC and ECB configs
> - Added support for rk3399
> - Added more patch (style, read_poll_timeout)
> 
> Changes since v3:
> - full rewrite of support for RK3399
> - splited dt-binding patch in two
> 
> Changes since v4:
> - Another full rewrite of support for RK3399
> - Fixed dt-binding from Krzysztof Kozlowski's comments
> - Use readl_poll_timeout() instead of read_poll_timeout()
> - Rewrite the fallback SG tests
> 
> Changes since v5:
> - fixed errors in DT binding patch
> 
> Change since v6:
> - remove quotes around const values in dt-bindings
> 
> Changes since v7:
> - added lot of reviewed/tested by
> - In patch 14: keep initial reset pulse.
> 
> Changes since v8:
> - Removed some useless min/maxitems from dt-binding as reported by dt_binding_check
> 
> Change since v9:
> - removed redundant rst_ from reset-names
> - reworked patch #25 commit message
> 
> Corentin Labbe (33):
>   crypto: rockchip: use dev_err for error message about interrupt
>   crypto: rockchip: do not use uninitialized variable
>   crypto: rockchip: do not do custom power management
>   crypto: rockchip: fix privete/private typo
>   crypto: rockchip: do not store mode globally
>   crypto: rockchip: add fallback for cipher
>   crypto: rockchip: add fallback for ahash
>   crypto: rockchip: better handle cipher key
>   crypto: rockchip: remove non-aligned handling
>   crypto: rockchip: rework by using crypto_engine
>   crypto: rockchip: rewrite type
>   crypto: rockchip: add debugfs
>   crypto: rockchip: introduce PM
>   crypto: rockchip: handle reset also in PM
>   crypto: rockchip: use clk_bulk to simplify clock management
>   crypto: rockchip: add myself as maintainer
>   crypto: rockchip: use read_poll_timeout
>   crypto: rockchip: fix style issue
>   crypto: rockchip: add support for rk3328
>   crypto: rockchip: rename ablk functions to cipher
>   crypto: rockchip: rework rk_handle_req function
>   crypto: rockchip: use a rk_crypto_info variable instead of lot of
>     indirection
>   crypto: rockchip: use the rk_crypto_info given as parameter
>   dt-bindings: crypto: convert rockchip-crypto to YAML
>   dt-bindings: crypto: rockchip: add new compatible
>   clk: rk3399: use proper crypto0 name
>   arm64: dts: rockchip: add rk3328 crypto node
>   arm64: dts: rockchip: rk3399: add crypto node
>   crypto: rockchip: store crypto_info in request context
>   crypto: rockchip: Check for clocks numbers and their frequencies
>   crypto: rockchip: rk_ahash_reg_init use crypto_info from parameter
>   crypto: rockchip: permit to have more than one reset
>   crypto: rockchip: Add support for RK3399
> 
>  .../crypto/rockchip,rk3288-crypto.yaml        | 127 ++++
>  .../bindings/crypto/rockchip-crypto.txt       |  28 -
>  MAINTAINERS                                   |   7 +
>  arch/arm64/boot/dts/rockchip/rk3328.dtsi      |  11 +
>  arch/arm64/boot/dts/rockchip/rk3399.dtsi      |  20 +
>  drivers/crypto/Kconfig                        |  15 +
>  drivers/crypto/rockchip/rk3288_crypto.c       | 506 ++++++++--------
>  drivers/crypto/rockchip/rk3288_crypto.h       | 107 ++--
>  drivers/crypto/rockchip/rk3288_crypto_ahash.c | 267 +++++----
>  .../crypto/rockchip/rk3288_crypto_skcipher.c  | 543 ++++++++++--------
>  include/dt-bindings/clock/rk3399-cru.h        |   6 +-
>  11 files changed, 949 insertions(+), 688 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> 
> -- 
> 2.35.1

Patches 1-25,29-33 applied.  Thanks.
Heiko Stuebner Oct. 29, 2022, 8:12 a.m. UTC | #8
On Tue, 27 Sep 2022 07:54:38 +0000, Corentin Labbe wrote:
> The rockchip crypto driver is broken and do not pass self-tests.
> This serie's goal is to permit to become usable and pass self-tests.
> 
> This whole serie is tested on a rk3328-rock64, rk3288-miqi and
> rk3399-khadas-edge-v with selftests (with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y)
> 
> Regards
> 
> [...]

Applied, thanks!

[26/33] clk: rk3399: use proper crypto0 name
        commit: b136468a0024ea90c1259767c732eed12ce6edba
[27/33] arm64: dts: rockchip: add rk3328 crypto node
        commit: d1152bc533c941f7e267bf53d344cee510ea2808
[28/33] arm64: dts: rockchip: rk3399: add crypto node
        commit: 8c701fa6e38c43dba75282e4d919298a5cfc5b05

Best regards,