Skip to contentSkip to conversation

ARM: dts: NSP: Add support for Cisco Meraki NSP devices

PATCH In review Matthew Hagan 2 participants 5 messages Jun 2, 2020

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

cover ARM: dts: NSP: Add support for Cisco Meraki NSP devices

This patch set adds support for the Meraki MX64(W) and MX65(W) security devices. There are four devices in total, all using the same basic hardware.

The MX64 series has five ethernet ports connected to the BCM SRAB. The MX65 series has two ports conected to the SRAB, and two QCA8337 switches connected by SGMII to SRAB ports 4 and 5, each providing five additional ports.

The W variants of these devices have two BCM43520s on the PCIe bus. On the non-wireless variants PCIe is inactive, hence separate dts files.

1/3 contains common bindings for both Meraki devices. 2/3 contains MX64 specific bindings.
3/3 contains MX65 specific bindings.

Note that Chris Packham's "[PATCH 2/2] ARM: dts: NSP: avoid unnecessary probe deferrals" is also necessary.

Thanks,
Matthew

Matthew Hagan (3):
ARM: dts: NSP: Add common bindings for Meraki MX64/65
ARM: dts: NSP: Add support for Cisco Meraki MX64(W)
ARM: dts: NSP: Add support for Cisco Meraki MX65(W)

 arch/arm/boot/dts/bcm958625-mx64.dts         |  15 +
 arch/arm/boot/dts/bcm958625-mx64w.dts        |  23 ++
 arch/arm/boot/dts/bcm958625-mx64x.dtsi       | 136 ++++++++
 arch/arm/boot/dts/bcm958625-mx65.dts         |  15 +
 arch/arm/boot/dts/bcm958625-mx65w.dts        |  23 ++
 arch/arm/boot/dts/bcm958625-mx65x.dtsi       | 321 +++++++++++++++++++
 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi | 172 ++++++++++
 7 files changed, 705 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64x.dtsi
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65x.dtsi
 create mode 100644 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi
Signature · 1 line
2.25.4
#1 lore raw

PATCH 1/3 ARM: dts: NSP: Add common bindings for Meraki MX64/65

---
 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi | 172 +++++++++++++++++++
 1 file changed, 172 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi
arch/arm/boot/dts/bcm958625-mx6x-common.dtsi new file +172 -0
new file mode 100644
index 000000000000..1e253dd0941a
@@ -0,0 +1,172 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Common Bindings for Cisco Meraki MX64 (Kingpin) and MX65 (Alamo) devices.
+ *
+ * Copyright (C) 2020 Matthew Hagan <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "bcm-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x60000000 0x80000000>;
+	};
+
+	pwm-leds {
+		compatible = "pwm-leds";
+
+		red {
+			label = "pwm:led:red";
+			pwms = <&pwm 1 50000>;
+		};
+
+		green {
+			label = "pwm:led:green";
+			pwms = <&pwm 2 50000>;
+		};
+
+		blue {
+			label = "pwm:led:blue";
+			pwms = <&pwm 3 50000>;
+		};
+	};
+};
+
+&L2 {
+        arm,io-coherent;
+        prefetch-data = <1>;
+        prefetch-instr = <1>;
+};
+
+&uart0 {
+	clock-frequency = <62500000>;
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+	eeprom: at24@50 {
+		compatible = "atmel,24c64";
+		pagesize = <32>;
+		reg = <0x50>;
+	};
+};
+
+&amac2 {
+	status = "okay";
+};
+
+&nand {
+	nandcs@0 {
+		compatible = "brcm,nandcs";
+		reg = <0>;
+		nand-on-flash-bbt;
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		nand-ecc-strength = <24>;
+		nand-ecc-step-size = <1024>;
+
+		brcm,nand-oob-sector-size = <27>;
+
+		partition@0 {
+			label = "U-boot";
+			reg = <0x00 0x80000>;
+			read-only;
+		};
+
+		partition@80000 {
+			label = "Shmoo";
+			reg = <0x80000 0x80000>;
+			read-only;
+		};
+
+		partition@100000 {
+			label = "bootkernel1";
+			reg = <0x100000 0x300000>;
+		};
+
+		partition@400000 {
+			label = "senao_nvram";
+			reg = <0x400000 0x100000>;
+		};
+
+		partition@500000 {
+			label = "bootkernel2";
+			reg = <0x500000 0x300000>;
+		};
+
+		partition@800000 {
+			label = "ubi";
+			reg = <0x800000 0x3f700000>;
+		};
+	};
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&pwm {
+	status = "okay";
+	#pwm-cells = <2>;
+	chan0 {
+		channel = <1>;
+		active_low = <1>;
+		};
+	chan1 {
+		channel = <2>;
+		active_low = <1>;
+	};
+	chan2 {
+		channel = <3>;
+		active_low = <1>;
+	};
+};
+
+&ccbtimer1 {
+	status = "disabled";
+};
+
+&pinctrl {
+	pinctrl-names = "default";
+	pinctrl-0 = <&nand_sel>, <&gpiobs>, <&pwmc>;
+
+	nand_sel: nand_sel {
+		function = "nand";
+		groups = "nand_grp";
+	};
+
+	gpiobs: gpiobs {
+		function = "gpio_b";
+		groups = "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp",
+			 "gpio_b_3_grp";
+	};
+
+	pwmc: pwmc {
+		function = "pwm";
+		groups = "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp";
+	};
+
+	i2c_sel: i2c {
+		function = "i2c";
+		groups = "i2c_grp";
+	};
+};
+
+&sata_phy {
+	status = "disabled";
+};
Signature · 1 line
2.25.4
#2 lore raw

PATCH 2/3 ARM: dts: NSP: Add support for Cisco Meraki MX64(W)

In reply to Matthew Hagan

Hardware Info
-------------

Processor - Broadcom BCM58625 dual-core @ 1.2 GHz
DDR3 RAM - 2GB (4x SK Hynix H5TC4G83CFR)
Flash - 1GB (Micron MT29F8G08ABACA)
Switch - Broadcom BCM58625
Wireless(MX64W) - Broadcom BCM43520KMLG (2x)
Ports - 5 Ports
Serial Port - 115200 8n1
USB - 1x 2.0

Tested with Kernel 5.4. PCIe is inactive on the non-wireless MX64.

---
 arch/arm/boot/dts/bcm958625-mx64.dts   |  15 +++
 arch/arm/boot/dts/bcm958625-mx64w.dts  |  23 +++++
 arch/arm/boot/dts/bcm958625-mx64x.dtsi | 136 +++++++++++++++++++++++++
 3 files changed, 174 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64x.dtsi
arch/arm/boot/dts/bcm958625-mx64.dts new file +15 -0
new file mode 100644
index 000000000000..ec1017b8bf68
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindings for Cisco Meraki MX64.
+ *
+ * Copyright (C) 2020 Matthew Hagan <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "bcm958625-mx64x.dtsi"
+
+/ {
+	model = "Cisco Meraki MX64";
+	compatible = "meraki,mx64", "brcm,bcm58625", "brcm,nsp";
+};
arch/arm/boot/dts/bcm958625-mx64w.dts new file +23 -0
new file mode 100644
index 000000000000..a3fbf0fed218
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindings for Cisco Meraki MX64W.
+ *
+ * Copyright (C) 2020 Matthew Hagan <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "bcm958625-mx64x.dtsi"
+
+/ {
+	model = "Cisco Meraki MX64W";
+	compatible = "meraki,mx64w", "brcm,bcm58625", "brcm,nsp";
+};
+
+&pcie0 {
+        status = "okay";
+};
+
+&pcie1 {
+        status = "okay";
+};
arch/arm/boot/dts/bcm958625-mx64x.dtsi new file +136 -0

136 lines not on this page · raw message

Signature · 1 line
2.25.4
#3 lore raw

PATCH 3/3 ARM: dts: NSP: Add support for Cisco Meraki MX65(W)

In reply to Matthew Hagan

Hardware Info
-------------

Processor - Broadcom BCM58625 dual-core @ 1.2 GHz
DDR3 RAM - 2GB (4x SK Hynix H5TC4G83CFR)
Flash - 1GB (Micron MT29F8G08ABACA)
Switches - Broadcom BCM58625, 2x Qualcomm Atheros QCA8337
Ports - 12 Ports
Wireless(MX65W) - Broadcom BCM43520KMLG (2X)
Serial Port - 115200 8n1
USB - 1x 2.0

Tested with Kernel 5.4. PCIe is inactive on non-wireless MX65.

Note: The QCA8337 switches are connected to ports 4 and 5 of the BCM58625 SRAB, which need be set to SGMII mode.

---
 arch/arm/boot/dts/bcm958625-mx65.dts   |  15 ++
 arch/arm/boot/dts/bcm958625-mx65w.dts  |  23 ++
 arch/arm/boot/dts/bcm958625-mx65x.dtsi | 321 +++++++++++++++++++++++++
 3 files changed, 359 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65x.dtsi
arch/arm/boot/dts/bcm958625-mx65.dts new file +15 -0
new file mode 100644
index 000000000000..af161d268824
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindings for Cisco Meraki MX65.
+ *
+ * Copyright (C) 2020 Matthew Hagan <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "bcm958625-mx65x.dtsi"
+
+/ {
+	model = "Cisco Meraki MX65";
+	compatible = "meraki,mx65", "brcm,bcm58625", "brcm,nsp";
+};
arch/arm/boot/dts/bcm958625-mx65w.dts new file +23 -0
new file mode 100644
index 000000000000..67933ca7b598
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindings for Cisco Meraki MX65W.
+ *
+ * Copyright (C) 2020 Matthew Hagan <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "bcm958625-mx65x.dtsi"
+
+/ {
+	model = "Cisco Meraki MX65W";
+	compatible = "meraki,mx65w", "brcm,bcm58625", "brcm,nsp";
+};
+
+&pcie0 {
+        status = "okay";
+};
+
+&pcie1 {
+        status = "okay";
+};
arch/arm/boot/dts/bcm958625-mx65x.dtsi new file +321 -0

321 lines not on this page · raw message

Signature · 1 line
2.25.4
#4 lore raw
In reply to Matthew Hagan

Hi Matthew,

Quoted 7 lines · Matthew Hagan

This patch set adds support for the Meraki MX64(W) and MX65(W) security devices. There are four devices in total, all using the same basic hardware.

The MX64 series has five ethernet ports connected to the BCM SRAB. The MX65 series has two ports conected to the SRAB, and two QCA8337 switches connected by SGMII to SRAB ports 4 and 5, each providing five additional ports.

Quoted 6 lines

The W variants of these devices have two BCM43520s on the PCIe bus. On the non-wireless variants PCIe is inactive, hence separate dts files.

1/3 contains common bindings for both Meraki devices. 2/3 contains MX64 specific bindings.
3/3 contains MX65 specific bindings.

Glad to see those patches being submitted upstream to support those devices, don't we need a change to arch/arm/boot/dts/Makefile to add those DTS files to be built when ARCH_BCM_NSP is enabled?

Quoted 3 lines

Note that Chris Packham's "[PATCH 2/2] ARM: dts: NSP: avoid unnecessary probe deferrals" is also necessary.

Humm, I am not sure this patch is really the way to go, but I have to look at it again.

Quoted 25 lines

Thanks,
Matthew

Matthew Hagan (3):
ARM: dts: NSP: Add common bindings for Meraki MX64/65
ARM: dts: NSP: Add support for Cisco Meraki MX64(W)
ARM: dts: NSP: Add support for Cisco Meraki MX65(W)

 arch/arm/boot/dts/bcm958625-mx64.dts         |  15 +
 arch/arm/boot/dts/bcm958625-mx64w.dts        |  23 ++
 arch/arm/boot/dts/bcm958625-mx64x.dtsi       | 136 ++++++++
 arch/arm/boot/dts/bcm958625-mx65.dts         |  15 +
 arch/arm/boot/dts/bcm958625-mx65w.dts        |  23 ++
 arch/arm/boot/dts/bcm958625-mx65x.dtsi       | 321 +++++++++++++++++++
 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi | 172 ++++++++++
 7 files changed, 705 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx64x.dtsi
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65w.dts
 create mode 100644 arch/arm/boot/dts/bcm958625-mx65x.dtsi
 create mode 100644 arch/arm/boot/dts/bcm958625-mx6x-common.dtsi
Signature · 1 line
Florian