Message ID | 20240607141242.2616580-1-avromanov@salutedevices.com |
---|---|
Headers | show |
Series | Support more Amlogic SoC families in crypto driver | expand |
On Fri, Jun 07, 2024 at 05:12:38PM +0300, Alexey Romanov wrote: > Now crypto module available at G12A/G12B/S4/A1/SM1/AXG. > > 1. Add new compatibles: > - amlogic,g12a-crypto > - amlogic,axg-crypto > - amlogic,a1-crypto > - amlogic,s4-crypto (uses a1-crypto as fallback) > > Difference between this compatibles: > * Different registers offset and the number of setup descriptors. > * GXL doesn't support hashing like the others. > * G12A/B and A1/S4 crypto HW don't support 192 AES key. > * GXL, G12A/B and AXG require a reverse IV key before processing. > > 2. Add power-domains in schema, which is required only for A1. You added it in the prior patch, was that supposed to be done here? Kind of strange for h/w to optionally have a power-domain... It either has one or it doesn't. OTOH, making required is an ABI break. > > Signed-off-by: Alexey Romanov <avromanov@salutedevices.com> > --- > .../bindings/crypto/amlogic,gxl-crypto.yaml | 21 +++++++++++++++++-- > 1 file changed, 19 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml b/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > index aff6f3234dc9..a8344de71b4a 100644 > --- a/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > +++ b/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > @@ -11,8 +11,16 @@ maintainers: > > properties: > compatible: > - items: > - - const: amlogic,gxl-crypto > + oneOf: > + - items: > + - enum: > + - amlogic,s4-crypto > + - const: amlogic,a1-crypto > + - enum: > + - amlogic,gxl-crypto > + - amlogic,axg-crypto > + - amlogic,g12a-crypto > + - amlogic,a1-crypto > > reg: > maxItems: 1 > @@ -37,6 +45,15 @@ required: > - clocks > - clock-names > > +allOf: > + - if: > + properties: > + compatible: > + const: amlogic,a1-crypto > + then: > + required: > + - power-domains > + > additionalProperties: false > > examples: > -- > 2.34.1 >
Hello Rob, On Mon, Jun 10, 2024 at 04:32:19PM -0600, Rob Herring wrote: > On Fri, Jun 07, 2024 at 05:12:38PM +0300, Alexey Romanov wrote: > > Now crypto module available at G12A/G12B/S4/A1/SM1/AXG. > > > > 1. Add new compatibles: > > - amlogic,g12a-crypto > > - amlogic,axg-crypto > > - amlogic,a1-crypto > > - amlogic,s4-crypto (uses a1-crypto as fallback) > > > > Difference between this compatibles: > > * Different registers offset and the number of setup descriptors. > > * GXL doesn't support hashing like the others. > > * G12A/B and A1/S4 crypto HW don't support 192 AES key. > > * GXL, G12A/B and AXG require a reverse IV key before processing. > > > > 2. Add power-domains in schema, which is required only for A1. > > You added it in the prior patch, was that supposed to be done here? Kind > of strange for h/w to optionally have a power-domain... It either has > one or it doesn't. OTOH, making required is an ABI break. This is vendor design. In old SoC's power domain for crypto HW was not configurable, but in A1-series it is configurable. > > > > > Signed-off-by: Alexey Romanov <avromanov@salutedevices.com> > > --- > > .../bindings/crypto/amlogic,gxl-crypto.yaml | 21 +++++++++++++++++-- > > 1 file changed, 19 insertions(+), 2 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml b/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > > index aff6f3234dc9..a8344de71b4a 100644 > > --- a/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > > +++ b/Documentation/devicetree/bindings/crypto/amlogic,gxl-crypto.yaml > > @@ -11,8 +11,16 @@ maintainers: > > > > properties: > > compatible: > > - items: > > - - const: amlogic,gxl-crypto > > + oneOf: > > + - items: > > + - enum: > > + - amlogic,s4-crypto > > + - const: amlogic,a1-crypto > > + - enum: > > + - amlogic,gxl-crypto > > + - amlogic,axg-crypto > > + - amlogic,g12a-crypto > > + - amlogic,a1-crypto > > > > reg: > > maxItems: 1 > > @@ -37,6 +45,15 @@ required: > > - clocks > > - clock-names > > > > +allOf: > > + - if: > > + properties: > > + compatible: > > + const: amlogic,a1-crypto > > + then: > > + required: > > + - power-domains > > + > > additionalProperties: false > > > > examples: > > -- > > 2.34.1 > >
Hi guys, ping. On Fri, Jun 07, 2024 at 05:12:19PM +0300, Alexey Romanov wrote: > Hello! > > This patchset expand the funcionality of the Amlogic > crypto driver by adding support for more SoC families: > AXG, G12A, G12B, SM1, A1, S4. > > Also specify and enable crypto node in device tree > for reference Amlogic devices. > > Tested on GXL, AXG, G12A/B, SM1, A1 and S4 devices via > custom tests [1] and tcrypt module. > > --- > > Changes V1 -> V2 [2]: > > - Rebased over linux-next. > - Adjusted device tree bindings description. > - A1 and S4 dts use their own compatible, which is a G12 fallback. > > Changes V2 -> V3 [3]: > > - Fix errors in dt-bindings and device tree. > - Add new field in platform data, which determines > whether clock controller should be used for crypto IP. > - Place back MODULE_DEVICE_TABLE. > - Correct commit messages. > > Changes V3 -> V4 [4]: > > - Update dt-bindings as per Krzysztof Kozlowski comments. > - Fix bisection: get rid of compiler errors in some patches. > > Changes V4 -> V5 [5]: > > - Tested on GXL board: > 1. Fix panic detected by Corentin Labbe [6]. > 2. Disable hasher backend for GXL: in its current realization > is doesn't work. And there are no examples or docs in the > vendor SDK. > - Fix AES-CTR realization: legacy boards (gxl, g12, axg) requires > inversion of the keyiv at keys setup stage. > - A1 now uses its own compatible string. > - S4 uses A1 compatible as fallback. > - Code fixes based on comments Neil Atrmstrong and Rob Herring. > - Style fixes (set correct indentations) > > Changes V5 -> V6 [7]: > > - Fix DMA sync warning reported by Corentin Labbe [8]. > - Remove CLK input from driver. Remove clk definition > and second interrput line from crypto node inside GXL dtsi. > > Changes V6 -> V7 [9]: > > - Fix dt-schema: power domain now required only for A1. > - Use crypto_skcipher_ctx_dma() helper for cipher instead of > ____cacheline_aligned. > - Add import/export functions for hasher. > - Fix commit message for patch 17, acorrding to discussion [10]. > > Changes V7 -> V8 [11]: > > - Test patchset with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS: fix some bugs > in hasher logic. > - Use crypto crypto_ahash_ctx_dma in hasher code. > - Correct clock definition: clk81 is required for all SoC's. > - Add fixed-clock (clk81) definition for A1/S4. > - Add information (in commit messages) why different compatibles are used. > > Links: > - [1] https://gist.github.com/mRrvz/3fb8943a7487ab7b943ec140706995e7 > - [2] https://lore.kernel.org/all/20240110201216.18016-1-avromanov@salutedevices.com/ > - [3] https://lore.kernel.org/all/20240123165831.970023-1-avromanov@salutedevices.com/ > - [4] https://lore.kernel.org/all/20240205155521.1795552-1-avromanov@salutedevices.com/ > - [5] https://lore.kernel.org/all/20240212135108.549755-1-avromanov@salutedevices.com/ > - [6] https://lore.kernel.org/all/ZcsYaPIUrBSg8iXu@Red/ > - [7] https://lore.kernel.org/all/20240301132936.621238-1-avromanov@salutedevices.com/ > - [8] https://lore.kernel.org/all/Zf1BAlYtiwPOG-Os@Red/ > - [9] https://lore.kernel.org/all/20240326153219.2915080-1-avromanov@salutedevices.com/ > - [10] https://lore.kernel.org/all/20240329-dotted-illusive-9f0593805a05@wendy/ > - [11] https://lore.kernel.org/all/20240411133832.2896463-1-avromanov@salutedevices.com/ > > Alexey Romanov (23): > drivers: crypto: meson: don't hardcode IRQ count > drviers: crypto: meson: add platform data > drivers: crypto: meson: remove clock input > drivers: crypto: meson: add MMIO helpers > drivers: crypto: meson: move get_engine_number() > drivers: crypto: meson: drop status field from meson_flow > drivers: crypto: meson: move algs definition and cipher API to > cipher.c > drivers: crypto: meson: cleanup defines > drivers: crypto: meson: process more than MAXDESCS descriptors > drivers: crypto: meson: avoid kzalloc in engine thread > drivers: crypto: meson: introduce hasher > drivers: crypto: meson: add support for AES-CTR > drivers: crypto: meson: use fallback for 192-bit keys > drivers: crypto: meson: add support for G12-series > drivers: crypto: meson: add support for AXG-series > drivers: crypto: meson: add support for A1-series > dt-bindings: crypto: meson: correct clk and remove second interrupt > line > arch: arm64: dts: meson: gxl: correct crypto node definition > dt-bindings: crypto: meson: support new SoC's > arch: arm64: dts: meson: a1: add crypto node > arch: arm64: dts: meson: s4: add crypto node > arch: arm64: dts: meson: g12: add crypto node > arch: arm64: dts: meson: axg: add crypto node > > .../bindings/crypto/amlogic,gxl-crypto.yaml | 33 +- > arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 15 + > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 8 + > .../boot/dts/amlogic/meson-g12-common.dtsi | 8 + > arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 7 +- > arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 14 + > drivers/crypto/amlogic/Makefile | 2 +- > drivers/crypto/amlogic/amlogic-gxl-cipher.c | 632 ++++++++++++------ > drivers/crypto/amlogic/amlogic-gxl-core.c | 292 ++++---- > drivers/crypto/amlogic/amlogic-gxl-hasher.c | 507 ++++++++++++++ > drivers/crypto/amlogic/amlogic-gxl.h | 118 +++- > 11 files changed, 1277 insertions(+), 359 deletions(-) > create mode 100644 drivers/crypto/amlogic/amlogic-gxl-hasher.c > > -- > 2.34.1 >
On 08/07/2024 12:37, Alexey Romanov wrote: > Hi guys, ping. > Whom do you ping? You received comments, so are you just going to ignore them? NAK Best regards, Krzysztof