[PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc

STALE4560d

7 messages, 5 authors, 2014-03-27 · open the first message on its own page

[PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc

From: <hidden>
Date: 2014-03-25 23:34:39

From: Dinh Nguyen <redacted>

Hi,

These 3 patches are based on Arnd's patch to fix the allmodconfig for the
dwmac-socfpga implementation. I just broke the patch out into drivers,
dts, and dts documentation.

The original patch is here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html

Arnd mentioned that he was thinking about just removing the dwmac-socfpga
and send out the new verion to the netdev tree, but I haven't seen it. So
just in case this solution might work, here are the patches.

These patches are based on arm-soc/for-next.

Thanks,

Dinh Nguyen (3):
  net: stmmac: improve binding and fix build
  dts: socfpga: Fix ethernet entries for the stmmac
  dts: documentation: Update documentation for the stmmac ethernet
    controller

 .../devicetree/bindings/net/socfpga-dwmac.txt      |   38 ++++------
 Documentation/devicetree/bindings/net/stmmac.txt   |    6 ++
 arch/arm/boot/dts/socfpga.dtsi                     |   51 +++++---------
 arch/arm/boot/dts/socfpga_arria5_socdk.dts         |    5 +-
 arch/arm/boot/dts/socfpga_cyclone5_socdk.dts       |    5 +-
 arch/arm/boot/dts/socfpga_cyclone5_sockit.dts      |    5 +-
 arch/arm/boot/dts/socfpga_vt.dts                   |    5 +-
 drivers/net/ethernet/stmicro/stmmac/Kconfig        |   10 +++
 drivers/net/ethernet/stmicro/stmmac/Makefile       |    2 +-
 .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c    |   73 +++-----------------
 drivers/net/ethernet/stmicro/stmmac/stmmac.h       |    1 +
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |    3 +
 12 files changed, 67 insertions(+), 137 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac

From: <hidden>
Date: 2014-03-25 23:34:41

From: Dinh Nguyen <redacted>

* Replaced the parent/child DT nodes with a combined node
* Renamed the device node from 'ethernet0' to 'ethernet'
  as the standard name.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dinh Nguyen <redacted>
---
 arch/arm/boot/dts/socfpga.dtsi                |   51 +++++++++----------------
 arch/arm/boot/dts/socfpga_arria5_socdk.dts    |    5 +--
 arch/arm/boot/dts/socfpga_cyclone5_socdk.dts  |    5 +--
 arch/arm/boot/dts/socfpga_cyclone5_sockit.dts |    5 +--
 arch/arm/boot/dts/socfpga_vt.dts              |    5 +--
 5 files changed, 22 insertions(+), 49 deletions(-)
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 404553c..953801c 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -450,43 +450,28 @@
 				};
 			};
 
-		ethernet0: ethernet0 {
-			#address-cells = <1>;
-			#size-cells = <1>;
-			compatible = "altr,socfpga-stmmac";
-			altr,sysmgr-syscon = <&sysmgr 0x60>;
+		gmac0: ethernet@ff700000 {
+			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
 			status = "disabled";
-			ranges;
-
-			gmac0: gmac0@ff700000 {
-				compatible = "snps,dwmac-3.70a", "snps,dwmac";
-				reg = <0xff700000 0x2000>;
-				interrupts = <0 115 4>;
-				interrupt-names = "macirq";
-				mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-				clocks = <&emac0_clk>;
-				clock-names = "stmmaceth";
-			};
+			altr,sysmgr-syscon = <&sysmgr 0x60>;
+			reg = <0xff700000 0x2000>;
+			interrupts = <0 115 4>;
+			interrupt-names = "macirq";
+			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+			clocks = <&emac0_clk>;
+			clock-names = "stmmaceth";
 		};
 
-		ethernet1: ethernet1 {
-			#address-cells = <1>;
-			#size-cells = <1>;
-			compatible = "altr,socfpga-stmmac";
-			altr,sysmgr-syscon = <&sysmgr 0x60>;
+		gmac1: ethernet@ff702000 {
+			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
 			status = "disabled";
-			ranges;
-
-			gmac1: gmac1@ff702000 {
-				device_type = "network";
-				compatible = "snps,dwmac-3.70a", "snps,dwmac";
-				reg = <0xff702000 0x2000>;
-				interrupts = <0 120 4>;
-				interrupt-names = "macirq";
-				mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-				clocks = <&emac1_clk>;
-				clock-names = "stmmaceth";
-			};
+			altr,sysmgr-syscon = <&sysmgr 0x60>;
+			reg = <0xff702000 0x2000>;
+			interrupts = <0 120 4>;
+			interrupt-names = "macirq";
+			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+			clocks = <&emac1_clk>;
+			clock-names = "stmmaceth";
 		};
 
 		L2: l2-cache@fffef000 {
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index 2d6b38b..a87ee1c 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -46,11 +46,8 @@
 	};
 };
 
-&ethernet1 {
-	status = "okay";
-};
-
 &gmac1 {
+	status = "okay";
 	phy-mode = "rgmii";
 
 	rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 26c63a0..ae16d97 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -39,11 +39,8 @@
 	};
 };
 
-&ethernet1 {
-	status = "okay";
-};
-
 &gmac1 {
+	status = "okay";
 	phy-mode = "rgmii";
 
 	rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index 469bb5c..b79e2a2 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -39,11 +39,8 @@
 	};
 };
 
-&ethernet1 {
-	status = "okay";
-};
-
 &gmac1 {
+	status = "okay";
 	phy-mode = "rgmii";
 
 	rxd0-skew-ps = <0>;
diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
index 91f6ccf..87d6f75 100644
--- a/arch/arm/boot/dts/socfpga_vt.dts
+++ b/arch/arm/boot/dts/socfpga_vt.dts
@@ -87,10 +87,7 @@
 	};
 };
 
-&ethernet0 {
-        status = "okay";
-};
-
 &gmac0 {
+	status = "okay";
 	phy-mode = "gmii";
 };
-- 
1.7.9.5

[PATCH 3/3] dts: documentation: Update documentation for the stmmac ethernet controller

From: <hidden>
Date: 2014-03-25 23:34:42

From: Dinh Nguyen <redacted>

* Add optional clocks and clock-names property into the base stmmac document.
* Update socfpga-dwmac.txt with new compatible string and example binding.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dinh Nguyen <redacted>
---
 .../devicetree/bindings/net/socfpga-dwmac.txt      |   38 ++++++++------------
 Documentation/devicetree/bindings/net/stmmac.txt   |    6 ++++
 2 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
index d53d376..1ef6db7 100644
--- a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
+++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
@@ -1,35 +1,27 @@
 Altera SOCFPGA SoC DWMAC controller
 
-The device node has following properties.
+This is a variant of the dwmac/stmmac driver an inherits all descriptions
+present in Documentation/devicetree/bindings/net/stmmac.txt.
+
+The device node has additional properties:
 
 Required properties:
- - compatible	: Should contain "altr,socfpga-stmmac"
+ - compatible	: Should contain "altr,socfpga-stmmac" along with
+		  "snps,dwmac" and any applicable more detailed
+		  designware version numbers documented in stmmac.txt
  - altr,sysmgr-syscon : Should be the phandle to the system manager node that
    encompasses the glue register, and the register offset.
 
-Sub-nodes:
-The dwmac core should be added as subnode to SOCFPGA dwmac glue.
-- dwmac :	The binding details of dwmac can be found in
-  Documentation/devicetree/bindings/net/stmmac.txt
-
 Example:
 
-ethernet0: ethernet0 {
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	compatible = "altr,socfpga-stmmac";
+gmac0: ethernet@ff700000 {
+	compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
 	altr,sysmgr-syscon = <&sysmgr 0x60>;
 	status = "disabled";
-	ranges;
-
-	gmac0: gmac0@ff700000 {
-		compatible = "snps,dwmac-3.70a", "snps,dwmac";
-		reg = <0xff700000 0x2000>;
-		interrupts = <0 115 4>;
-		interrupt-names = "macirq";
-		mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-		clocks = <&emac0_clk>;
-		clock-names = "stmmaceth";
-	};
+	reg = <0xff700000 0x2000>;
+	interrupts = <0 115 4>;
+	interrupt-names = "macirq";
+	mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+	clocks = <&emac0_clk>;
+	clocks-names = "stmmaceth";
 };
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 9d92d42..9a0c1b7 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -34,6 +34,10 @@ Optional properties:
 	reset phandle is given
 - max-frame-size:	Maximum Transfer Unit (IEEE defined MTU), rather
 			than the maximum frame size.
+- clocks: If present, the first clock should be the GMAC main clock,
+  further clocks may be specified in derived bindings.
+- clocks-names: One name for each entry in the clocks property, the
+  first one should be "stmmaceth".
 
 Examples:
 
@@ -46,4 +50,6 @@ Examples:
 		mac-address = [000000000000]; /* Filled in by U-Boot */
 		max-frame-size = <3800>;
 		phy-mode = "gmii";
+		clocks = <&clock>;
+		clock-names = "stmmaceth">;
 	};
-- 
1.7.9.5

Re: [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc

From: Arnd Bergmann <arnd@arndb.de>
Date: 2014-03-26 21:54:40

On Wednesday 26 March 2014, dinguyen@altera.com wrote:
From: Dinh Nguyen <redacted>

Hi,

These 3 patches are based on Arnd's patch to fix the allmodconfig for the
dwmac-socfpga implementation. I just broke the patch out into drivers,
dts, and dts documentation.

The original patch is here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html

Arnd mentioned that he was thinking about just removing the dwmac-socfpga
and send out the new verion to the netdev tree, but I haven't seen it. So
just in case this solution might work, here are the patches.

These patches are based on arm-soc/for-next.
Hi Dinh,

Thanks for putting these patches together. The problem I see with these
is that we have multiple conflicts between my changes and the other
patches that went into the netdev tree.

Originally, the idea was that David Miller gave his Ack to have
the patches merged through arm-soc, but I think that was a mistake,
and they should have been treated like the other patches for
the same driver, i.e. put the driver and binding changes into
netdev, and the dt changes into arm-soc.

If I apply your patches on top of the next/drivers branch, we get
conflicts for a handful of files, and get Linus to resolve them.
I tried applying my patch on Sunday, but backed it out because 
of this.

My preferred solution at this point would be to revert the driver
addition in the arm-soc tree and have David put the new version
in, but I don't know if he still takes patches like that for 3.15.

	Arnd

Re: [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac

From: Gerhard Sittig <hidden>
Date: 2014-03-26 22:12:25

On Tue, 2014-03-25 at 18:34 -0500, dinguyen@altera.com wrote:
-			#size-cells = <1>;
-			compatible = "altr,socfpga-stmmac";
-			altr,sysmgr-syscon = <&sysmgr 0x60>;
+		gmac0: ethernet@ff700000 {
+			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
 			status = "disabled";
-			ranges;
-
-			gmac0: gmac0@ff700000 {
-				compatible = "snps,dwmac-3.70a", "snps,dwmac";
-				reg = <0xff700000 0x2000>;
-				interrupts = <0 115 4>;
-				interrupt-names = "macirq";
-				mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-				clocks = <&emac0_clk>;
-				clock-names = "stmmaceth";
-			};
+			altr,sysmgr-syscon = <&sysmgr 0x60>;
+			reg = <0xff700000 0x2000>;
+			interrupts = <0 115 4>;
+			interrupt-names = "macirq";
+			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+			clocks = <&emac0_clk>;
+			clock-names = "stmmaceth";
 		};
not strictly related to this patch, but noticed in bypassing:

is the 'clocks' spec correct?  ISTR that 'emac0_clk' is the PLL
output, while the gated clock for the EMAC IP block is named
'emac_0_clk' (note the extra underscore)


virtually yours
Gerhard Sittig
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office@denx.de

Re: [PATCH 0/3] Fix stmmac-socfpga allmodconfig breakage in arm-soc

From: Dinh Nguyen <hidden>
Date: 2014-03-27 00:05:13


On 03/26/2014 04:54 PM, Arnd Bergmann wrote:
On Wednesday 26 March 2014, dinguyen@altera.com wrote:
quoted
From: Dinh Nguyen <redacted>

Hi,

These 3 patches are based on Arnd's patch to fix the allmodconfig for the
dwmac-socfpga implementation. I just broke the patch out into drivers,
dts, and dts documentation.

The original patch is here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-March/241518.html

Arnd mentioned that he was thinking about just removing the dwmac-socfpga
and send out the new verion to the netdev tree, but I haven't seen it. So
just in case this solution might work, here are the patches.

These patches are based on arm-soc/for-next.
Hi Dinh,

Thanks for putting these patches together. The problem I see with these
is that we have multiple conflicts between my changes and the other
patches that went into the netdev tree.

Originally, the idea was that David Miller gave his Ack to have
the patches merged through arm-soc, but I think that was a mistake,
and they should have been treated like the other patches for
the same driver, i.e. put the driver and binding changes into
netdev, and the dt changes into arm-soc.

If I apply your patches on top of the next/drivers branch, we get
conflicts for a handful of files, and get Linus to resolve them.
I tried applying my patch on Sunday, but backed it out because
of this.

My preferred solution at this point would be to revert the driver
addition in the arm-soc tree and have David put the new version
in, but I don't know if he still takes patches like that for 3.15.
That's fine. Do you mind if I send out a fresh patch based on the netdev 
tree? If there is still for 3.15, otherwise, going for 3.16 is fine.

Dinh
	Arnd

Re: [PATCH 2/3] dts: socfpga: Fix ethernet entries for the stmmac

From: Dinh Nguyen <hidden>
Date: 2014-03-27 00:05:41


On 03/26/2014 05:12 PM, Gerhard Sittig wrote:
On Tue, 2014-03-25 at 18:34 -0500, dinguyen@altera.com wrote:
quoted
-			#size-cells = <1>;
-			compatible = "altr,socfpga-stmmac";
-			altr,sysmgr-syscon = <&sysmgr 0x60>;
+		gmac0: ethernet@ff700000 {
+			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
  			status = "disabled";
-			ranges;
-
-			gmac0: gmac0@ff700000 {
-				compatible = "snps,dwmac-3.70a", "snps,dwmac";
-				reg = <0xff700000 0x2000>;
-				interrupts = <0 115 4>;
-				interrupt-names = "macirq";
-				mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-				clocks = <&emac0_clk>;
-				clock-names = "stmmaceth";
-			};
+			altr,sysmgr-syscon = <&sysmgr 0x60>;
+			reg = <0xff700000 0x2000>;
+			interrupts = <0 115 4>;
+			interrupt-names = "macirq";
+			mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+			clocks = <&emac0_clk>;
+			clock-names = "stmmaceth";
  		};
not strictly related to this patch, but noticed in bypassing:

is the 'clocks' spec correct?  ISTR that 'emac0_clk' is the PLL
output, while the gated clock for the EMAC IP block is named
'emac_0_clk' (note the extra underscore)
Yes, you're right. Thanks for catching that.

Dinh
virtually yours
Gerhard Sittig
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help