Skip to contentSkip to conversation

dt-bindings: socfpga: Add the Agilex7 series SoC's

PATCH In review Dinh Nguyen 2 participants 8 messages Apr 13 – Apr 17 Device tree bindings

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 dt-bindings: socfpga: Add the Agilex7 series SoC's

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
 Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +10 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
               - intel,socfpga-agilex5-socdk-nand
           - const: intel,socfpga-agilex5
 
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex
+
       - description: SoCFPGA VT
         items:
           - const: altr,socfpga-vt
Signature · 1 line
2.42.0.411.g813d9a9188
#1 lore raw

PATCH 2/2 arm64: dts: Add SoCFPGA Agilex7M devkit

The Agilex7-M SoCDK is largely compatible with the Agilex SoCDK. Reuse the existing Agilex device tree while disabling the QSPI controller, which is not present on Agilex7-M.

---
 arch/arm64/boot/dts/intel/Makefile                |  1 +
 .../boot/dts/intel/socfpga_agilex7m_socdk.dts     | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
 create mode 100644 arch/arm64/boot/dts/intel/socfpga_agilex7m_socdk.dts
arch/arm64/boot/dts/intel/Makefile +1 -0
index 33fcc55d0cb9..088a03b89c99 100644
@@ -8,5 +8,6 @@ dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_agilex_n6000.dtb \
 				socfpga_agilex5_socdk_013b.dtb \
 				socfpga_agilex5_socdk_modular.dtb \
 				socfpga_agilex5_socdk_nand.dtb \
+				socfpga_agilex7m_socdk.dtb \
 				socfpga_n5x_socdk.dtb
 dtb-$(CONFIG_ARCH_KEEMBAY) += keembay-evm.dtb
arch/arm64/boot/dts/intel/socfpga_agilex7m_socdk.dts new file +15 -0
new file mode 100644
index 000000000000..164556e0a785
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (c) 2023 Intel Corporation
+
+#include "socfpga_agilex_socdk.dts"
+
+/ {
+	model = "Intel SoCFPGA Agilex7-M SoCDK";
+	compatible = "intel,socfpga-agilex7m-socdk",
+		     "intel,socfpga-agilex7m",
+		     "intel,socfpga-agilex";
+};
+
+&qspi {
+	status = "disabled";
+};
Signature · 1 line
2.42.0.411.g813d9a9188
#2 lore raw
In reply to Dinh Nguyen
Quoted 2 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

SoCs?

Quoted 2 lines

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports

Please run scripts/checkpatch.pl on the patches and fix reported warnings. After that, run also 'scripts/checkpatch.pl --strict' on the patches and (probably) fix more warnings. Some warnings can be ignored, especially from --strict run, but the code here looks like it needs a fix. Feel free to get in touch if the warning is not clear.

Quoted 16 lines

PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
 Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 121

Quoted 7 lines
Documentation/devicetree/bindings/arm/altera.yaml +4 -0
@@ -115,6 +115,16 @@ properties:
               - intel,socfpga-agilex5-socdk-nand
           - const: intel,socfpga-agilex5
 
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk

Why does "7m-socdk" go with "7i" and "7m"? If these are SoCs, then board using soc 7m cannot use 7i or 7f fallback.

Or board is not using 7m SoC, but then the name is misleading.

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 5 lines
Documentation/devicetree/bindings/arm/altera.yaml +5 -0
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

Best regards,
Krzysztof

#3 lore raw
In reply to Dinh Nguyen
Quoted 22 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
 Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
               - intel,socfpga-agilex5-socdk-nand
           - const: intel,socfpga-agilex5

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 10 lines
Documentation/devicetree/bindings/arm/altera.yaml +9 -0
 
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

And separate question - why previous soc "agilex" is used as fallback? Even more confusing.

Best regards,
Krzysztof

#4 lore raw
Quoted 24 lines · Krzysztof Kozlowski
Quoted 23 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
  Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
  1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
                - intel,socfpga-agilex5-socdk-nand
            - const: intel,socfpga-agilex5
 
Quoted 13 lines

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 9 lines
Documentation/devicetree/bindings/arm/altera.yaml +9 -0
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

And separate question - why previous soc "agilex" is used as fallback? Even more confusing.

You're right. Sorry for the confusion. The Agilex7M, I, F devices are basically "agilex" devices with some few additions (PCIE, DDR5). Maybe I should place the Agilex7M/I/F devices into the "agilex" boards area?

Thanks,
Dinh

#5 lore raw
Quoted 41 lines · Dinh Nguyen
Quoted 24 lines · Krzysztof Kozlowski
Quoted 23 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
  Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
  1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
                - intel,socfpga-agilex5-socdk-nand
            - const: intel,socfpga-agilex5
 
Quoted 13 lines

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 9 lines
Documentation/devicetree/bindings/arm/altera.yaml +9 -0
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

And separate question - why previous soc "agilex" is used as fallback? Even more confusing.

Quoted 3 lines

You're right. Sorry for the confusion. The Agilex7M, I, F devices are basically "agilex" devices with some few additions (PCIE, DDR5). Maybe I should place the Agilex7M/I/F devices into the "agilex" boards area?

Compatibles should be specific and not based on families, thus what is "intel,socfpga-agilex"? SoC, right?

Then "intel,socfpga-agilex7f" is a new SoC, no?

Best regards,
Krzysztof

#6 lore raw
Quoted 42 lines · Krzysztof Kozlowski
Quoted 41 lines · Dinh Nguyen
Quoted 37 lines · Krzysztof Kozlowski
Quoted 22 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
   Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
   1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
                 - intel,socfpga-agilex5-socdk-nand
             - const: intel,socfpga-agilex5

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 10 lines
Documentation/devicetree/bindings/arm/altera.yaml +9 -0
 
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

And separate question - why previous soc "agilex" is used as fallback? Even more confusing.

Quoted 9 lines
Quoted 3 lines

You're right. Sorry for the confusion. The Agilex7M, I, F devices are basically "agilex" devices with some few additions (PCIE, DDR5). Maybe I should place the Agilex7M/I/F devices into the "agilex" boards area?

Compatibles should be specific and not based on families, thus what is "intel,socfpga-agilex"? SoC, right?

Then "intel,socfpgaa-agilex7f" is a new SoC, no?

The Agilex7 is re-branded name for the original Agilex soc,
"intel, socfga-agilex". From a software perspective, they are the same device. I looked over the commits to see how I could handle a rebranding, but couldn't come up with a conclusion.

I could create a new SoC like you've suggested:

+ - description: Agilex7m boards
+ items:
+ - enum:
+ - altr,socfpga-agilex7m-socdk
+ - const: altr,socfpga-agilex7m
+ - const: altr,socfpga-agilex7

Or I can use the original "intel,socfpga-agilex"?

+ - description: Agilex7m boards
+ items:
+ - enum:
+ - altr,socfpga-agilex7m-socdk
+ - const: altr,socfpga-agilex7m
+ - const: altr,socfpga-agilex

If I create a new "altr,socfpga-agilex7" binding, then I would have to add the new binding to a few drivers. But if I use the original "intel,socfpga-agilex", then no drivers will need to be updated.

Thanks,
Dinh

#7 lore raw
Quoted 52 lines · Dinh Nguyen
Quoted 49 lines · Krzysztof Kozlowski
Quoted 41 lines · Dinh Nguyen
Quoted 24 lines · Krzysztof Kozlowski
Quoted 23 lines · Dinh Nguyen

The Agilex7 is a series of devices from Altera that are derived from the Agilex family.

The Agilex7F device supports PCIE 4.0 and DDR4. The Agilex7I device supports PCIE 5.0 and DDR4, while the Agilex7M device supports DDR4, DDR5, LPDDR5 and PCIE 5.0.

All other peripherals from these devices are the same as the Agilex device.

---
   Documentation/devicetree/bindings/arm/altera.yaml | 10 ++++++++++
   1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/altera.yaml +0 -0
index 206686f3eebc..5ee09f8d4698 100644
@@ -115,6 +115,16 @@ properties:
                 - intel,socfpga-agilex5-socdk-nand
             - const: intel,socfpga-agilex5
 
Quoted 13 lines

Documentation/devicetree/bindings/arm/altera.yaml properties: · line 126

Quoted 9 lines
Documentation/devicetree/bindings/arm/altera.yaml +9 -0
+      - description: Agilex7 series F, I and M boards
+        items:
+          - enum:
+              - intel,socfpga-agilex7m-socdk
+          - enum:
+              - intel,socfpga-agilex7f
+              - intel,socfpga-agilex7i
+              - intel,socfpga-agilex7m
+          - const: intel,socfpga-agilex

And separate question - why previous soc "agilex" is used as fallback? Even more confusing.

Quoted 3 lines

You're right. Sorry for the confusion. The Agilex7M, I, F devices are basically "agilex" devices with some few additions (PCIE, DDR5). Maybe I should place the Agilex7M/I/F devices into the "agilex" boards area?

Compatibles should be specific and not based on families, thus what is "intel,socfpga-agilex"? SoC, right?

Quoted 7 lines
Quoted 2 lines

Then "intel,socfpgaa-agilex7f" is a new SoC, no?

The Agilex7 is re-branded name for the original Agilex soc, "intel, socfga-agilex". From a software perspective, they are the same device. I looked over the commits to see how I could handle a rebranding, but couldn't come up with a conclusion.

The family does not matter. What is "socfga-agilex"? One given soc. Not a family.

Review

Quoted 9 lines

I could create a new SoC like you've suggested:

(quoted diff) +6 -0
+      - description: Agilex7m boards
+        items:
+          - enum:
+              - altr,socfpga-agilex7m-socdk
+          - const: altr,socfpga-agilex7m
+          - const: altr,socfpga-agilex7

So what is "altr,socfpga-agilex7"? Why SoC has two compatibles?

Review

Quoted 9 lines

Or I can use the original "intel,socfpga-agilex"?

(quoted diff) +6 -0
+      - description: Agilex7m boards
+        items:
+          - enum:
+              - altr,socfpga-agilex7m-socdk
+          - const: altr,socfpga-agilex7m
+          - const: altr,socfpga-agilex

But why? Why are you using one SoC compatible in other context? It's really no different than all other SoCs.

Quoted 4 lines

If I create a new "altr,socfpga-agilex7" binding, then I would have to add the new binding to a few drivers. But if I use the original "intel,socfpga-agilex", then no drivers will need to be updated.

You anyway MUST have new binding for each device. Please carefully follow writing bindings and DTS 101.

Best regards,
Krzysztof