summaryrefslogtreecommitdiffstats
path: root/ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch')
-rw-r--r--ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch101
1 files changed, 101 insertions, 0 deletions
diff --git a/ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch b/ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch
new file mode 100644
index 000000000..cff3d3339
--- /dev/null
+++ b/ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch
@@ -0,0 +1,101 @@
+From patchwork Wed Jan 27 15:08:19 2016
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [1/2] ARM: mvebu: change order of ethernet DT nodes on Armada 38x
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+X-Patchwork-Id: 8134751
+Message-Id: <1453907300-28283-2-git-send-email-thomas.petazzoni@free-electrons.com>
+To: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
+ Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
+ Gregory Clement <gregory.clement@free-electrons.com>
+Cc: Nadav Haklai <nadavh@marvell.com>, Lior Amsalem <alior@marvell.com>,
+ Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
+ linux-arm-kernel@lists.infradead.org
+Date: Wed, 27 Jan 2016 16:08:19 +0100
+
+On Armada 38x, the available network interfaces are:
+
+ - port 0, at 0x70000
+ - port 1, at 0x30000
+ - port 2, at 0x34000
+
+Due to the rule saying that DT nodes should be ordered by register
+addresses, the network interfaces are probed in this order:
+
+ - port 1, at 0x30000, which gets named eth0
+ - port 2, at 0x34000, which gets named eth1
+ - port 0, at 0x70000, which gets named eth2
+
+(if all three ports are enabled at the board level)
+
+Unfortunately, the network subsystem doesn't provide any way to rename
+network interfaces from the kernel (it can only be done from
+userspace). So, the default naming of the network interfaces is very
+confusing as it doesn't match the datasheet, nor the naming of the
+interfaces in the bootloader, nor the naming of the interfaces on
+labels printed on the board.
+
+For example, on the Armada 388 GP, the board has two ports, labelled
+GE0 and GE1. One has to know that GE0 is eth1 and GE1 is eth0, which
+isn't really obvious.
+
+In order to solve this, this patch proposes to exceptionaly violate
+the rule of "order DT nodes by register address", and put the 0x70000
+node before the 0x30000 node, so that network interfaces get named in
+a more natural way.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+arch/arm/boot/dts/armada-38x.dtsi | 30 +++++++++++++++++++++---------
+ 1 file changed, 21 insertions(+), 9 deletions(-)
+
+diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
+index e8b7f67..b50784d 100644
+--- a/arch/arm/boot/dts/armada-38x.dtsi
++++ b/arch/arm/boot/dts/armada-38x.dtsi
+@@ -429,6 +429,27 @@
+ reg = <0x22000 0x1000>;
+ };
+
++ /*
++ * As a special exception to the "order by
++ * register address" rule, the eth0 node is
++ * placed here to ensure that it gets
++ * registered as the first interface, since
++ * the network subsystem doesn't allow naming
++ * interfaces using DT aliases. Without this,
++ * the ordering of interfaces is different
++ * from the one used in U-Boot and the
++ * labeling of interfaces on the boards, which
++ * is very confusing for users.
++ */
++ eth0: ethernet@70000 {
++ compatible = "marvell,armada-370-neta";
++ reg = <0x70000 0x4000>;
++ interrupts-extended = <&mpic 8>;
++ clocks = <&gateclk 4>;
++ tx-csum-limit = <9800>;
++ status = "disabled";
++ };
++
+ eth1: ethernet@30000 {
+ compatible = "marvell,armada-370-neta";
+ reg = <0x30000 0x4000>;
+@@ -493,15 +514,6 @@
+ };
+ };
+
+- eth0: ethernet@70000 {
+- compatible = "marvell,armada-370-neta";
+- reg = <0x70000 0x4000>;
+- interrupts-extended = <&mpic 8>;
+- clocks = <&gateclk 4>;
+- tx-csum-limit = <9800>;
+- status = "disabled";
+- };
+-
+ mdio: mdio@72004 {
+ #address-cells = <1>;
+ #size-cells = <0>;