Skip to contentSkip to conversation

arm64: dts: qcom: sm8450: add Inline Crypto Engine registers and clock

PATCH Applied Eric Biggers 3 participants 3 messages Aug 26, 2022 – Aug 29, 2022

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm64: dts: qcom: sm8450: add Inline Crypto Engine registers and clock

From: Eric Biggers <[email protected]>

Add the registers and clock for the Inline Crypto Engine (ICE) to the device tree node for the UFS host controller on sm8450. This makes ufs_qcom support inline encryption when CONFIG_SCSI_UFS_CRYPTO=y.

The address and size of the register range, and the minimum and maximum frequency of the ICE core clock, all match the values used downstream.

I've validated this on an SM8450 HDK using the 'encrypt' group of xfstests on ext4 with MOUNT_OPTIONS="-o inlinecrypt".

---
 arch/arm64/boot/dts/qcom/sm8450.dtsi | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
arch/arm64/boot/dts/qcom/sm8450.dtsi +9 -4
index 4978c5ba5dd085..517b3a1fbe7c04 100644
@@ -3069,7 +3069,9 @@ system-cache-controller@19200000 {
 		ufs_mem_hc: ufshc@1d84000 {
 			compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
 				     "jedec,ufs-2.0";
-			reg = <0 0x01d84000 0 0x3000>;
+			reg = <0 0x01d84000 0 0x3000>,
+			      <0 0x01d88000 0 0x8000>;
+			reg-names = "std", "ice";
 			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&ufs_mem_phy_lanes>;
 			phy-names = "ufsphy";
@@ -3093,7 +3095,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				"ref_clk",
 				"tx_lane0_sync_clk",
 				"rx_lane0_sync_clk",
-				"rx_lane1_sync_clk";
+				"rx_lane1_sync_clk",
+				"ice_core_clk";
 			clocks =
 				<&gcc GCC_UFS_PHY_AXI_CLK>,
 				<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
@@ -3102,7 +3105,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				<&rpmhcc RPMH_CXO_CLK>,
 				<&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
 				<&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
-				<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+				<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
+				<&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
 			freq-table-hz =
 				<75000000 300000000>,
 				<0 0>,
@@ -3111,7 +3115,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				<75000000 300000000>,
 				<0 0>,
 				<0 0>,
-				<0 0>;
+				<0 0>,
+				<75000000 300000000>;
 			status = "disabled";
 		};
 

base-commit: 1c23f9e627a7b412978b4e852793c5e3c3efc555

Signature · 1 line
2.37.2
Reviewed-by on v1 1/1
#1 lore raw
Quoted 6 lines · Eric Biggers

From: Eric Biggers <[email protected]>

Add the registers and clock for the Inline Crypto Engine (ICE) to the device tree node for the UFS host controller on sm8450. This makes ufs_qcom support inline encryption when CONFIG_SCSI_UFS_CRYPTO=y.

Quoted 8 lines

The address and size of the register range, and the minimum and maximum frequency of the ICE core clock, all match the values used downstream.

I've validated this on an SM8450 HDK using the 'encrypt' group of xfstests on ext4 with MOUNT_OPTIONS="-o inlinecrypt".

---

dt-bindings needs an update to allow the second reg.

For this patch, however:

Konrad

Quoted 50 lines
 arch/arm64/boot/dts/qcom/sm8450.dtsi | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
arch/arm64/boot/dts/qcom/sm8450.dtsi +9 -4
index 4978c5ba5dd085..517b3a1fbe7c04 100644
@@ -3069,7 +3069,9 @@ system-cache-controller@19200000 {
 		ufs_mem_hc: ufshc@1d84000 {
 			compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
 				     "jedec,ufs-2.0";
-			reg = <0 0x01d84000 0 0x3000>;
+			reg = <0 0x01d84000 0 0x3000>,
+			      <0 0x01d88000 0 0x8000>;
+			reg-names = "std", "ice";
 			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&ufs_mem_phy_lanes>;
 			phy-names = "ufsphy";
@@ -3093,7 +3095,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				"ref_clk",
 				"tx_lane0_sync_clk",
 				"rx_lane0_sync_clk",
-				"rx_lane1_sync_clk";
+				"rx_lane1_sync_clk",
+				"ice_core_clk";
 			clocks =
 				<&gcc GCC_UFS_PHY_AXI_CLK>,
 				<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
@@ -3102,7 +3105,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				<&rpmhcc RPMH_CXO_CLK>,
 				<&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
 				<&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
-				<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+				<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
+				<&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
 			freq-table-hz =
 				<75000000 300000000>,
 				<0 0>,
@@ -3111,7 +3115,8 @@ ufs_mem_hc: ufshc@1d84000 {
 				<75000000 300000000>,
 				<0 0>,
 				<0 0>,
-				<0 0>;
+				<0 0>,
+				<75000000 300000000>;
 			status = "disabled";
 		};
 

base-commit: 1c23f9e627a7b412978b4e852793c5e3c3efc555

maintainer Applied
#2 lore raw
In reply to Eric Biggers
Quoted 10 lines · Eric Biggers

From: Eric Biggers <[email protected]>

Add the registers and clock for the Inline Crypto Engine (ICE) to the device tree node for the UFS host controller on sm8450. This makes ufs_qcom support inline encryption when CONFIG_SCSI_UFS_CRYPTO=y.

The address and size of the register range, and the minimum and maximum frequency of the ICE core clock, all match the values used downstream.

[...]

Applied, thanks!

[1/1] arm64: dts: qcom: sm8450: add Inline Crypto Engine registers and clock

      commit: 276ee34a40c1440544f609b54b23b99ead8f2205

Best regards,

Signature · 1 line
Bjorn Andersson <[email protected]>