Enable ICE for UFS on Hamoa IoT EVK
Subsystems (5)
v2 cover Enable ICE for UFS on Hamoa IoT EVK
This series enables the Inline Crypto Engine (ICE) hardware for UFS storage on the Qualcomm X1E80100 (Hamoa IoT EVK) platform.
The ICE hardware provides AES-256-XTS inline encryption/decryption for UFS storage, offloading cryptographic operations from the CPU. The hardware version on this platform is ICE v4.0.1 with HWKM v2 support.
Validation:
- Probe successfully
- Standard key work well
Patch 1 adds the new compatible string to the DT binding documentation. Patch 2 adds the ICE device node to the Hamoa DTSI.
Note: The allOf conditional block enforcement for power-domains and clock-names is handled by the prerequisite series.
---
Changes in v2:
- Improve commit messages for both patches.
- Link to v1: https://lore.kernel.org/r/[email protected]
---
Wenjia Zhang (2):
dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
arm64: dts: qcom: hamoa: Add ICE node for UFS inline encryption
.../bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + arch/arm64/boot/dts/qcom/hamoa.dtsi | 13 +++++++++++++ 2 files changed, 14 insertions(+)
---
base-commit: 49362394dad7df66c274c867a271394c10ca2bb8
change-id: 20260714-devtool-5093900ac51a
prerequisite-change-id: 20260701-b4-shikra_crypto_changse-f2d6d5bf04b5:v4
prerequisite-patch-id: d5bc84db11dfa16371755109d32bafa6325a7706
prerequisite-patch-id: f653bca04deb0f4fe7d51b3064644c8e6b0d9c99
prerequisite-patch-id: 615f80abf57c155bbc190c1a70fe615a783755cf
prerequisite-patch-id: 59d8102674ce98be1a0e9b4d7939ffd8a7289ab1
prerequisite-patch-id: 691ec3b8a386d2c5b991a4311236f7f06adfc5b1
prerequisite-patch-id: 5b949e801e9bf4b5593a1f7cb8f02709eb3e869a
Best regards,
Signature · 1 line
Wenjia Zhang <[email protected]>
PATCH v2 1/2 dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
--- Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +1 -0
@@ -25,6 +25,7 @@ properties: - qcom,sm8550-inline-crypto-engine - qcom,sm8650-inline-crypto-engine - qcom,sm8750-inline-crypto-engine + - qcom,x1e80100-inline-crypto-engine - const: qcom,inline-crypto-engine reg:
Signature · 1 line
2.43.0
[email protected]
AI reviewRe: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Incomplete schema validation due to omission of `qcom,x1e80100-inline-crypto-engine` in the…
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete schema validation due to omission of qcom,x1e80100-inline-crypto-engine in the strict hardware constraints conditional block. --
--- Patch [1]: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support --- commit c7cd6f7e1716e4206c0cabbb6a305f96fda3ae96
Author: Wenjia Zhang <[email protected]>
dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml properties: · line 28
Quoted 9 lines
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +1
-0@@ -25,6 +25,7 @@ properties: - qcom,sm8550-inline-crypto-engine - qcom,sm8650-inline-crypto-engine - qcom,sm8750-inline-crypto-engine + - qcom,x1e80100-inline-crypto-engine
[Severity: Medium]
Should the new qcom,x1e80100-inline-crypto-engine string also be added to the allOf:if conditional block further down in this file?
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml:
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,eliza-inline-crypto-engine
- qcom,milos-inline-crypto-engine
If x1e80100 hardware shares the strict clock and power-domain requirements, omitting it here introduces a regression in schema validation.
The dt_binding_check would silently pass device tree nodes missing a power-domains reference or a second clock.
This could result in a synchronous external abort at runtime when the driver attempts to read the ICE version register without the power domain enabled.
Quoted 3 lines
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +0
-0- const: qcom,inline-crypto-engine reg:
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Re: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
In reply to Wenjia ZhangQuoted 13 lines · Wenjia Zhang
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
Signed-off-by Wenjia Zhang <[email protected]>--- Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +0
-0
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml properties: · line 28
Quoted 4 lines
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +1
-0@@ -25,6 +25,7 @@ properties: - qcom,sm8550-inline-crypto-engine - qcom,sm8650-inline-crypto-engine - qcom,sm8750-inline-crypto-engine + - qcom,x1e80100-inline-crypto-engine
Regards,
Harshal
Quoted 4 lines
Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml +0
-0- const: qcom,inline-crypto-engine reg:
Re: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
In reply to Wenjia ZhangQuoted 8 lines · Wenjia Zhang
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
Signed-off-by Wenjia Zhang <[email protected]>--- Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + 1 file changed, 1 insertion(+)
This is incomplete, although maybe you based this on Kuldeep's work but nothing explains that here nor in the cover letter.
Best regards,
Krzysztof
Re: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Quoted 9 lines · Krzysztof Kozlowski
Quoted 8 lines · Wenjia Zhang
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
Signed-off-by Wenjia Zhang <[email protected]>--- Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + 1 file changed, 1 insertion(+)
Quoted 5 lines
This is incomplete, although maybe you based this on Kuldeep's work but nothing explains that here nor in the cover letter.
Best regards,
Krzysztof
I added the prerequisites and note information in the cover letter. Here is the linkage of the prerequisite [PATCH v4 1/6] dt-bindings: crypto: <https://lore.kernel.org/lkml/20260714-b4-shikra_crypto_changse-v4-1-06a4ea97c209@oss.qualcomm.com/>
qcom,inline-crypto-engine: Fix legacy/new SoC strictness split - Kuldeep Singh <https://lore.kernel.org/lkml/20260714-b4-shikra_crypto_changse-v4-1-06a4ea97c209@oss.qualcomm.com/>
Best regards,
Wenjia Zhang
Re: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Quoted 11 lines · Wenjia Zhang
Quoted 9 lines · Krzysztof Kozlowski
Quoted 8 lines · Wenjia Zhang
Document the compatible string for inline crypto engine found on the Qualcomm X1E80100 SoC, used by the Hamoa IoT EVK board.
Signed-off-by Wenjia Zhang <[email protected]>--- Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml | 1 + 1 file changed, 1 insertion(+)
Quoted 7 lines
Quoted 5 lines
This is incomplete, although maybe you based this on Kuldeep's work but nothing explains that here nor in the cover letter.
Best regards,
KrzysztofI added the prerequisites and note information in the cover letter. Here
That does not count as it is pointless.
Which maintainer should include these prerequisities? Both? Then patch is NAKed as DTS cannot depend on driver patches.
Best regards,
Krzysztof
Re: [PATCH v2 1/2] dt-bindings: crypto: qcom,inline-crypto-engine: Add x1e80100 support
Quoted 6 lines
Quoted 1 line
I added the prerequisites and note information in the cover letter. Here
That does not count as it is pointless.
Which maintainer should include these prerequisities? Both? Then patch is NAKed as DTS cannot depend on driver patches.
Hi Krzysztof,
Seems Wenjia rebased his hamoa effort on top of my work[1] and as per latest update, Herbert has applied the dependent binding change to his tree[2] and should be part of linux-next soon.
Please note, only [1] is prerequisite and not the entire series there.
With this, the dependency will be resolved and rebasing to latest linux-next(with [2] as part of it) should make this series as standalone. Will let Wenjia drop v3.
[1]
https://lore.kernel.org/lkml/20260714-b4-shikra_crypto_changse-v4-1-06a4ea97c209@oss.qualcomm.com/
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git/commit/?id=3360fa7604259a0341a9bdbb0a8cb0fd7f3109de
Signature · 2 lines
Regards Kuldeep
PATCH v2 2/2 arm64: dts: qcom: hamoa: Add ICE node for UFS inline encryption
In reply to Wenjia ZhangAdd the Inline Crypto Engine (ICE) device node to describe the hardware-accelerated inline encryption for UFS storage on the Hamoa IoT EVK board (Qualcomm X1E80100 SoC).
--- arch/arm64/boot/dts/qcom/hamoa.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+)
arch/arm64/boot/dts/qcom/hamoa.dtsi +13 -0
@@ -4176,6 +4176,8 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, phys = <&ufs_mem_phy>; phy-names = "ufsphy"; + qcom,ice = <&ice>; + #reset-cells = <1>; status = "disabled";
@@ -4221,6 +4223,17 @@ opp-300000000 { }; }; + ice: crypto@1d88000 { + compatible = "qcom,x1e80100-inline-crypto-engine", + "qcom,inline-crypto-engine"; + reg = <0x0 0x01d88000 0x0 0x18000>; + clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>, + <&gcc GCC_UFS_PHY_AHB_CLK>; + clock-names = "core", + "iface"; + power-domains = <&gcc GCC_UFS_PHY_GDSC>; + }; + cryptobam: dma-controller@1dc4000 { compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0"; reg = <0x0 0x01dc4000 0x0 0x28000>;
Signature · 1 line
2.43.0
Re: [PATCH v2 2/2] arm64: dts: qcom: hamoa: Add ICE node for UFS inline encryption
Quoted 9 lines · Wenjia Zhang
Add the Inline Crypto Engine (ICE) device node to describe the hardware-accelerated inline encryption for UFS storage on the Hamoa IoT EVK board (Qualcomm X1E80100 SoC).
Signed-off-by Wenjia Zhang <[email protected]>--- arch/arm64/boot/dts/qcom/hamoa.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+)
Regards,
Harshal
Re: [PATCH v2 2/2] arm64: dts: qcom: hamoa: Add ICE node for UFS inline encryption
In reply to Wenjia ZhangQuoted 5 lines · Wenjia Zhang
Add the Inline Crypto Engine (ICE) device node to describe the hardware-accelerated inline encryption for UFS storage on the Hamoa IoT EVK board (Qualcomm X1E80100 SoC).
Signed-off-by Wenjia Zhang <[email protected]>