Skip to contentSkip to conversation

arm64: Add support for Airoha EN7581 Soc

PATCH Superseded Lorenzo Bianconi 2 participants 10 messages Mar 7, 2024

Subsystems (4)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover arm64: Add support for Airoha EN7581 Soc

Introduce basic support for Airoha EN7581 Soc and EN7581 Evaluation Board.

Changes since v2:
- fix cpu-map definition
- add more cache info
- add missing soc node
- remove unnecessary definitions

Changes since v1:
- add missing en7581 entry in airoha binding
- fix checkpatch errors

Daniel Danzberger (3):
arm64: dts: Add Airoha EN7581 SoC and EN7581 Evaluation Board
arm64: add Airoha EN7581 platform
arm64: defconfig: enable Airoha platform

Lorenzo Bianconi (1):
dt-bindings: arm64: dts: airoha: Add en7581 entry

 .../devicetree/bindings/arm/airoha.yaml       |   4 +
 arch/arm64/Kconfig.platforms                  |  13 ++
 arch/arm64/boot/dts/Makefile                  |   1 +
 arch/arm64/boot/dts/airoha/Makefile           |   2 +
 arch/arm64/boot/dts/airoha/en7581-evb.dts     |  26 +++
 arch/arm64/boot/dts/airoha/en7581.dtsi        | 154 ++++++++++++++++++
 arch/arm64/configs/defconfig                  |   1 +
 7 files changed, 201 insertions(+)
 create mode 100644 arch/arm64/boot/dts/airoha/Makefile
 create mode 100644 arch/arm64/boot/dts/airoha/en7581-evb.dts
 create mode 100644 arch/arm64/boot/dts/airoha/en7581.dtsi
Signature · 1 line
2.44.0
#1 lore raw

PATCH v3 1/4 dt-bindings: arm64: dts: airoha: Add en7581 entry

Introduce Airoha EN7581 entry in Airoha dts binding.

---
 Documentation/devicetree/bindings/arm/airoha.yaml | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/arm/airoha.yaml +4 -0
index 3292c669ee11..7c38c08dbf3f 100644
@@ -22,6 +22,10 @@ properties:
           - enum:
               - airoha,en7523-evb
           - const: airoha,en7523
+      - items:
+          - enum:
+              - airoha,en7581-evb
+          - const: airoha,en7581
 
 additionalProperties: true
 
Signature · 1 line
2.44.0
#3 lore raw

PATCH v3 2/4 arm64: dts: Add Airoha EN7581 SoC and EN7581 Evaluation Board

In reply to Lorenzo Bianconi

From: Daniel Danzberger <[email protected]>

Introduce the Airoha EN7581 SoC's dtsi and the Airoha EN7581 Evaluation Board's dts file, as well as the required Makefiles.

---
 arch/arm64/boot/dts/Makefile              |   1 +
 arch/arm64/boot/dts/airoha/Makefile       |   2 +
 arch/arm64/boot/dts/airoha/en7581-evb.dts |  26 ++++
 arch/arm64/boot/dts/airoha/en7581.dtsi    | 154 ++++++++++++++++++++++
 4 files changed, 183 insertions(+)
 create mode 100644 arch/arm64/boot/dts/airoha/Makefile
 create mode 100644 arch/arm64/boot/dts/airoha/en7581-evb.dts
 create mode 100644 arch/arm64/boot/dts/airoha/en7581.dtsi
arch/arm64/boot/dts/Makefile +1 -0
index 30dd6347a929..21cd3a87f385 100644
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 subdir-y += actions
+subdir-y += airoha
 subdir-y += allwinner
 subdir-y += altera
 subdir-y += amazon
arch/arm64/boot/dts/airoha/Makefile new file +2 -0
new file mode 100644
index 000000000000..ebea112ce1d7
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only
+dtb-$(CONFIG_ARCH_AIROHA) += en7581-evb.dtb
arch/arm64/boot/dts/airoha/en7581-evb.dts new file +26 -0
new file mode 100644
index 000000000000..cf58e43dd5b2
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+/* Bootloader installs ATF here */
+/memreserve/ 0x80000000 0x200000;
+
+#include "en7581.dtsi"
+
+/ {
+	model = "Airoha EN7581 Evaluation Board";
+	compatible = "airoha,en7581-evb", "airoha,en7581";
+
+	aliases {
+		serial0 = &uart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+		linux,usable-memory-range = <0x0 0x80200000 0x0 0x1fe00000>;
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x0 0x80000000 0x2 0x00000000>;
+	};
+};
arch/arm64/boot/dts/airoha/en7581.dtsi new file +154 -0

154 lines not on this page · raw message

Signature · 1 line
2.44.0
#5 lore raw

PATCH v3 3/4 arm64: add Airoha EN7581 platform

In reply to Lorenzo Bianconi

From: Daniel Danzberger <[email protected]>

Introduce the Kconfig entry for the Airoha EN7581 multicore architecture available in the Airoha EN7581 evaluation board.

---
 arch/arm64/Kconfig.platforms | 13 +++++++++++++
 1 file changed, 13 insertions(+)
arch/arm64/Kconfig.platforms +13 -0
index 24335565bad5..bbe61e233034 100644
@@ -8,6 +8,19 @@ config ARCH_ACTIONS
 	help
 	  This enables support for the Actions Semiconductor S900 SoC family.
 
+config ARCH_AIROHA
+	bool "Airoha SoC Support"
+	select ARM_AMBA
+	select ARM_GIC
+	select ARM_GIC_V3
+	select ARM_PSCI
+	select HAVE_ARM_ARCH_TIMER
+	select COMMON_CLK
+	help
+	  This enables support for Airoha EN7581 multicore architecture
+	  available on the following SoCs:
+	   - Airoha EN7581 Evaluation Board
+
 config ARCH_SUNXI
 	bool "Allwinner sunxi 64-bit SoC Family"
 	select ARCH_HAS_RESET_CONTROLLER
Signature · 1 line
2.44.0
#9 lore raw

PATCH v3 4/4 arm64: defconfig: enable Airoha platform

In reply to Lorenzo Bianconi

From: Daniel Danzberger <[email protected]>

Enables the ARCH_AIROHA config by default.

---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm64/configs/defconfig +1 -0
index e6cf3e5d63c3..aa44791a47e6 100644
@@ -34,6 +34,7 @@ CONFIG_KEXEC=y
 CONFIG_KEXEC_FILE=y
 CONFIG_CRASH_DUMP=y
 CONFIG_ARCH_ACTIONS=y
+CONFIG_ARCH_AIROHA=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_ARCH_ALPINE=y
 CONFIG_ARCH_APPLE=y
Signature · 1 line
2.44.0
maintainer Reviewed-by on v3 2/4
#4 lore raw

Re: [PATCH v3 2/4] arm64: dts: Add Airoha EN7581 SoC and EN7581 Evaluation Board

In reply to Lorenzo Bianconi

Il 07/03/24 01:11, Lorenzo Bianconi ha scritto:

Quoted 103 lines

From: Daniel Danzberger <[email protected]>

Introduce the Airoha EN7581 SoC's dtsi and the Airoha EN7581 Evaluation Board's dts file, as well as the required Makefiles.

---
  arch/arm64/boot/dts/Makefile              |   1 +
  arch/arm64/boot/dts/airoha/Makefile       |   2 +
  arch/arm64/boot/dts/airoha/en7581-evb.dts |  26 ++++
  arch/arm64/boot/dts/airoha/en7581.dtsi    | 154 ++++++++++++++++++++++
  4 files changed, 183 insertions(+)

create mode 100644 arch/arm64/boot/dts/airoha/Makefile create mode 100644 arch/arm64/boot/dts/airoha/en7581-evb.dts create mode 100644 arch/arm64/boot/dts/airoha/en7581.dtsi

arch/arm64/boot/dts/Makefile +1 -0
index 30dd6347a929..21cd3a87f385 100644
@@ -1,5 +1,6 @@
  # SPDX-License-Identifier: GPL-2.0
  subdir-y += actions
+subdir-y += airoha
  subdir-y += allwinner
  subdir-y += altera
  subdir-y += amazon
arch/arm64/boot/dts/airoha/Makefile new file +2 -0
new file mode 100644
index 000000000000..ebea112ce1d7
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only
+dtb-$(CONFIG_ARCH_AIROHA) += en7581-evb.dtb
arch/arm64/boot/dts/airoha/en7581-evb.dts new file +26 -0
new file mode 100644
index 000000000000..cf58e43dd5b2
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+/* Bootloader installs ATF here */
+/memreserve/ 0x80000000 0x200000;
+
+#include "en7581.dtsi"
+
+/ {
+	model = "Airoha EN7581 Evaluation Board";
+	compatible = "airoha,en7581-evb", "airoha,en7581";
+
+	aliases {
+		serial0 = &uart1;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+		linux,usable-memory-range = <0x0 0x80200000 0x0 0x1fe00000>;
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x0 0x80000000 0x2 0x00000000>;
+	};
+};
arch/arm64/boot/dts/airoha/en7581.dtsi new file +28 -0
new file mode 100644
index 000000000000..732080cf6f2b
@@ -0,0 +1,154 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		npu-binary@84000000 {
+			no-map;
+			reg = <0x0 0x84000000 0x0 0xA00000>;
+		};
+
+		npu-flag@84B0000 {
+			no-map;
+			reg = <0x0 0x84B00000 0x0 0x100000>;
+		};
+
+		npu-pkt@85000000 {
+			no-map;
+			reg = <0x0 0x85000000 0x0 0x1A00000>;

arch/arm64/boot/dts/airoha/en7581.dtsi line 38

Quoted 10 lines
arch/arm64/boot/dts/airoha/en7581.dtsi new file +10 -0
+		};
+
+		npu-phyaddr@86B00000 {
+			no-map;
+			reg = <0x0 0x86B00000 0x0 0x100000>;
+		};
+
+		npu-rxdesc@86D00000 {
+			no-map;
+			reg = <0x0 0x86D00000 0x0 0x100000>;

Lower case hex please. Here and everywhere else.

Otherwise,

Cheers,
Angelo

#6 lore raw

Re: [PATCH v3 3/4] arm64: add Airoha EN7581 platform

In reply to Lorenzo Bianconi

Il 07/03/24 01:11, Lorenzo Bianconi ha scritto:

Quoted 16 lines

From: Daniel Danzberger <[email protected]>

Introduce the Kconfig entry for the Airoha EN7581 multicore architecture available in the Airoha EN7581 evaluation board.

---
  arch/arm64/Kconfig.platforms | 13 +++++++++++++
  1 file changed, 13 insertions(+)
arch/arm64/Kconfig.platforms +0 -0
index 24335565bad5..bbe61e233034 100644

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 13

Quoted 6 lines
arch/arm64/Kconfig.platforms +3 -0
@@ -8,6 +8,19 @@ config ARCH_ACTIONS
  	help
  	  This enables support for the Actions Semiconductor S900 SoC family.
 
+config ARCH_AIROHA
+	bool "Airoha SoC Support"
+	select ARM_AMBA

ARM_AMBA is selected by ARM64 already, you don't need that one here.

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 15

Quoted 2 lines
arch/arm64/Kconfig.platforms +2 -0
+	select ARM_GIC
+	select ARM_GIC_V3

ARM_GIC and ARM_GIC_v3 are also selected by ARM64

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 16

Quoted 1 line
arch/arm64/Kconfig.platforms +1 -0
+	select ARM_PSCI

ARM64 selects ARM_PSCI_FW (which should select ARM_PSCI, please verify)

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 18

Quoted 2 lines
arch/arm64/Kconfig.platforms +2 -0
+	select HAVE_ARM_ARCH_TIMER
+	select COMMON_CLK

ARM64 selects COMMON_CLK already.

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 22

Quoted 4 lines
arch/arm64/Kconfig.platforms +4 -0
+	help
+	  This enables support for Airoha EN7581 multicore architecture
+	  available on the following SoCs:
+	   - Airoha EN7581 Evaluation Board

You're not going to add one ARCH entry for each MTK Airoha platform, are you?

(if you are, that's wrong)

....so the help text must be refactored; you could say something like "This enables support for the ARM64 based Airoha SoCs"

...also, I'm undecided whether MTK should be mentioned or not, here, as those SoCs are (...at least the 7581 seems to be) really based on MediaTek router chips, in many instances, sharing the same IPs.

Cheers,
Angelo

#7 lore raw

Re: [PATCH v3 3/4] arm64: add Airoha EN7581 platform

Quoted 12 lines

Il 07/03/24 01:11, Lorenzo Bianconi ha scritto:

Quoted 11 lines

From: Daniel Danzberger <[email protected]>

Introduce the Kconfig entry for the Airoha EN7581 multicore architecture available in the Airoha EN7581 evaluation board.

---
  arch/arm64/Kconfig.platforms | 13 +++++++++++++
  1 file changed, 13 insertions(+)
Quoted 12 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 12

Quoted 10 lines
arch/arm64/Kconfig.platforms +3 -0
index 24335565bad5..bbe61e233034 100644
@@ -8,6 +8,19 @@ config ARCH_ACTIONS
  	help
  	  This enables support for the Actions Semiconductor S900 SoC family.
+config ARCH_AIROHA
+	bool "Airoha SoC Support"
+	select ARM_AMBA

ARM_AMBA is selected by ARM64 already, you don't need that one here.

ack, I will fix it in v4.

Quoted 5 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 15

Quoted 3 lines
arch/arm64/Kconfig.platforms +2 -0
+	select ARM_GIC
+	select ARM_GIC_V3

ARM_GIC and ARM_GIC_v3 are also selected by ARM64

ack, I will fix it in v4.

Quoted 4 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 16

Quoted 2 lines
arch/arm64/Kconfig.platforms +1 -0
+	select ARM_PSCI

ARM64 selects ARM_PSCI_FW (which should select ARM_PSCI, please verify)

ARM64 selects ARM_PSCI_FW but ARM_PSCI_FW does not seem to select ARM_PSCI. Am I missing something?

Quoted 5 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 18

Quoted 3 lines
arch/arm64/Kconfig.platforms +2 -0
+	select HAVE_ARM_ARCH_TIMER
+	select COMMON_CLK

ARM64 selects COMMON_CLK already.

ack, I will fix it in v4.

Quoted 8 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 22

Quoted 5 lines
arch/arm64/Kconfig.platforms +4 -0
+	help
+	  This enables support for Airoha EN7581 multicore architecture
+	  available on the following SoCs:
+	   - Airoha EN7581 Evaluation Board

You're not going to add one ARCH entry for each MTK Airoha platform, are you?

Quoted 4 lines

(if you are, that's wrong)

....so the help text must be refactored; you could say something like "This enables support for the ARM64 based Airoha SoCs"

ack, I will fix it in v4.

Quoted 4 lines

...also, I'm undecided whether MTK should be mentioned or not, here, as those SoCs are (...at least the 7581 seems to be) really based on MediaTek router chips, in many instances, sharing the same IPs.

Right, EN7581 is similar to mtk router but I do not know if this will be always true (maybe?? :))

Regards,
Lorenzo

Quoted 5 lines

Cheers,
Angelo

#8 lore raw

Re: [PATCH v3 3/4] arm64: add Airoha EN7581 platform

Il 07/03/24 13:14, Lorenzo Bianconi ha scritto:

Quoted 36 lines
Quoted 12 lines

Il 07/03/24 01:11, Lorenzo Bianconi ha scritto:

Quoted 11 lines

From: Daniel Danzberger <[email protected]>

Introduce the Kconfig entry for the Airoha EN7581 multicore architecture available in the Airoha EN7581 evaluation board.

---
   arch/arm64/Kconfig.platforms | 13 +++++++++++++
   1 file changed, 13 insertions(+)
Quoted 12 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 12

Quoted 10 lines
arch/arm64/Kconfig.platforms +3 -0
index 24335565bad5..bbe61e233034 100644
@@ -8,6 +8,19 @@ config ARCH_ACTIONS
   	help
   	  This enables support for the Actions Semiconductor S900 SoC family.
+config ARCH_AIROHA
+	bool "Airoha SoC Support"
+	select ARM_AMBA

ARM_AMBA is selected by ARM64 already, you don't need that one here.

ack, I will fix it in v4.

Quoted 5 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 15

Quoted 3 lines
arch/arm64/Kconfig.platforms +2 -0
+	select ARM_GIC
+	select ARM_GIC_V3

ARM_GIC and ARM_GIC_v3 are also selected by ARM64

ack, I will fix it in v4.

Quoted 1 line
Quoted 7 lines
Quoted 3 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 16

Quoted 1 line
arch/arm64/Kconfig.platforms +1 -0
+	select ARM_PSCI

ARM64 selects ARM_PSCI_FW (which should select ARM_PSCI, please verify)

ARM64 selects ARM_PSCI_FW but ARM_PSCI_FW does not seem to select ARM_PSCI. Am I missing something?

I asked you to verify because I didn't (and was making assumptions) - if it's not getting selected, keep the select here. I have no problem with that.

Quoted 24 lines
Quoted 5 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 18

Quoted 3 lines
arch/arm64/Kconfig.platforms +2 -0
+	select HAVE_ARM_ARCH_TIMER
+	select COMMON_CLK

ARM64 selects COMMON_CLK already.

ack, I will fix it in v4.

Quoted 8 lines

arch/arm64/Kconfig.platforms config ARCH_ACTIONS · line 22

Quoted 5 lines
arch/arm64/Kconfig.platforms +4 -0
+	help
+	  This enables support for Airoha EN7581 multicore architecture
+	  available on the following SoCs:
+	   - Airoha EN7581 Evaluation Board

You're not going to add one ARCH entry for each MTK Airoha platform, are you?

Quoted 4 lines

(if you are, that's wrong)

....so the help text must be refactored; you could say something like "This enables support for the ARM64 based Airoha SoCs"

ack, I will fix it in v4.

Quoted 1 line
Quoted 7 lines
Quoted 3 lines

...also, I'm undecided whether MTK should be mentioned or not, here, as those SoCs are (...at least the 7581 seems to be) really based on MediaTek router chips, in many instances, sharing the same IPs.

Right, EN7581 is similar to mtk router but I do not know if this will be always true (maybe?? :))

I hoped you did know more... but even if logic says that it will be true for most probably a long time (since Airoha *is* [a subsidiary of] MediaTek), perhaps it's not a good idea to mention MTK?

I'm not sure either. Of course, mentioning MTK would for the sole purpose of making sure that whoever tries to port new Airoha SoCs has a pointer (as in: look at MTK SoCs, you can reuse stuff from there, don't lose time with reinventing the wheel), but at the same time if Airoha starts being different, that'd do the exact opposite of my intention...

Uhm.

Any advice from anyone else?

...otherwise just avoid the mention.

Cheers,
Angelo