Skip to contentSkip to conversation

ARM: dts: imx7s: Pass the 'fsl,sec-era' property

PATCH New Fabio Estevam 2 participants 5 messages Apr 24, 2018 – May 7, 2018

Subsystems (2)
lore
Share & tools
lore

Fabio Estevam

author reviewer
#0 lore raw

PATCH 1/1 ARM: dts: imx7s: Pass the 'fsl,sec-era' property

From: Fabio Estevam <[email protected]>

Currently the following error is seen from the CAAM driver:

caam 30900000.caam: device ID = 0x0a16030000000000 (Era -524)

Pass the 'fsl,sec-era' property to properly describe the era information.

This error happens because the 'fsl,sec-era' is not passed via device tree.

The era information is used in various places inside drivers/crypto/caam, so pass the correct version via device tree.

Fixes 0eeabcad7da5 ("ARM: dts: imx7s: add CAAM device node")

---
I have sent a patch for 4.18 that allows retrieving the era information from the CAAM registers in run-time:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/crypto/caam/ctrl.c?h=next-20180424&id=654f2b937b389295581bcb4aa26011a63db7bc8f

This will only be applied in 4.18 though.

In order to avoid i.MX7 report the incorrect era version in 4.17, let's pass this property.

 arch/arm/boot/dts/imx7s.dtsi | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/imx7s.dtsi +1 -0
index a6fe324..b416d2b 100644
@@ -884,6 +884,7 @@
 
 			crypto: caam at 30900000 {
 				compatible = "fsl,sec-v4.0";
+				fsl,sec-era = <8>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				reg = <0x30900000 0x40000>;
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 ARM: dts: imx7s: Pass the 'fsl,sec-era' property

Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

Currently the following error is seen from the CAAM driver:

caam 30900000.caam: device ID = 0x0a16030000000000 (Era -524)

Quoted 8 lines

Pass the 'fsl,sec-era' property to properly describe the era information.

This error happens because the 'fsl,sec-era' is not passed via device tree.

The era information is used in various places inside drivers/crypto/caam, so pass the correct version via device tree.

The property is documented as optional in the bindings. Missing the property shouldn't cause any fatal error, I guess.

Shawn

Quoted 31 lines
Fixes 0eeabcad7da5 ("ARM: dts: imx7s: add CAAM device node")

---
I have sent a patch for 4.18 that allows retrieving the era information from the CAAM registers in run-time:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/crypto/caam/ctrl.c?h=next-20180424&id=654f2b937b389295581bcb4aa26011a63db7bc8f

This will only be applied in 4.18 though.

In order to avoid i.MX7 report the incorrect era version in 4.17, let's pass this property.

 arch/arm/boot/dts/imx7s.dtsi | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/imx7s.dtsi +1 -0
index a6fe324..b416d2b 100644
@@ -884,6 +884,7 @@
 
 			crypto: caam at 30900000 {
 				compatible = "fsl,sec-v4.0";
+				fsl,sec-era = <8>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				reg = <0x30900000 0x40000>;
Signature · 1 line
2.7.4
author reviewer
#2 lore raw

PATCH 1/1 ARM: dts: imx7s: Pass the 'fsl,sec-era' property

Hi Shawn,

Quoted 2 lines · Shawn Guo

The property is documented as optional in the bindings. Missing the property shouldn't cause any fatal error, I guess.

The CAAM drivers uses the era information in many places:

drivers/crypto/caam/caamalg.c:  if (ctrlpriv->era >= 6) {
drivers/crypto/caam/caamalg.c:  if (ctrlpriv->era < 3)
drivers/crypto/caam/caamalg.c:  if (priv->era >= 6 && uses_dkp)
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {
drivers/crypto/caam/caamalg_desc.c:     /* Class 2 operation */
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {
drivers/crypto/caam/caamalg_desc.c:     /* Class 2 operation */
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {

If the era information is not provided the value of -524 (-ENOTSUPP) will be used, so all the above logic will not operate correctly.

I have sent a patch that allows the era information to be retrieved via CAAM registers:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/crypto/caam/ctrl.c?h=next-20180424&id=654f2b937b389295581bcb4aa26011a63db7bc8f

but this will only land in 4.18.

In order to avoid i.MX7 to report the incorrect era information in 4.17 I suggest that this patch should be applied for 4.17-rc.

Also, the other i.mx SoCs pass the fsl,sec-era in their dts.

Thanks

#3 lore raw

PATCH 1/1 ARM: dts: imx7s: Pass the 'fsl,sec-era' property

Quoted 21 lines · Fabio Estevam

Hi Shawn,

Quoted 2 lines · Shawn Guo

The property is documented as optional in the bindings. Missing the property shouldn't cause any fatal error, I guess.

The CAAM drivers uses the era information in many places:

drivers/crypto/caam/caamalg.c:  if (ctrlpriv->era >= 6) {
drivers/crypto/caam/caamalg.c:  if (ctrlpriv->era < 3)
drivers/crypto/caam/caamalg.c:  if (priv->era >= 6 && uses_dkp)
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {
drivers/crypto/caam/caamalg_desc.c:     /* Class 2 operation */
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {
drivers/crypto/caam/caamalg_desc.c:     /* Class 2 operation */
drivers/crypto/caam/caamalg_desc.c:     if (era < 6) {

If the era information is not provided the value of -524 (-ENOTSUPP) will be used, so all the above logic will not operate correctly.

Quoted 8 lines

I have sent a patch that allows the era information to be retrieved via CAAM registers:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/crypto/caam/ctrl.c?h=next-20180424&id=654f2b937b389295581bcb4aa26011a63db7bc8f

but this will only land in 4.18.

In order to avoid i.MX7 to report the incorrect era information in 4.17 I suggest that this patch should be applied for 4.17-rc.

I applied it for 4.17, but still questioning whether it's reasonable to have the property documented as optional in bindings, if missing the property results in a non-functional driver.

Shawn

author reviewer
#4 lore raw

PATCH 1/1 ARM: dts: imx7s: Pass the 'fsl,sec-era' property

Quoted 3 lines · Shawn Guo

I applied it for 4.17, but still questioning whether it's reasonable to have the property documented as optional in bindings, if missing the property results in a non-functional driver.

Thanks Shawn. Yes, after my CAAM patch gets applied it will be a proper optional property.