All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame
@ 2018-10-22 22:22 thor.thayer
  2018-10-22 22:22 ` [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames thor.thayer
  2018-10-23  3:23 ` [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: thor.thayer @ 2018-10-22 22:22 UTC (permalink / raw)
  To: peppe.cavallaro, alexandre.torgue, joabreu, davem, dinguyen,
	robh+dt, mark.rutland
  Cc: devicetree, netdev, linux-kernel, Thor Thayer

From: Thor Thayer <thor.thayer@linux.intel.com>

Properly specify the RX and TX FIFO size which is important
for Jumbo frames.
Update the max-frame-size to support Jumbo frames.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
---
v2 Shorten title. No change to DTS.
---
 arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi      | 6 ++++++
 arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
index d033da401c26..8a2641c742ae 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -137,6 +137,8 @@
 			reset-names = "stmmaceth", "stmmaceth-ocp";
 			clocks = <&clkmgr STRATIX10_EMAC0_CLK>;
 			clock-names = "stmmaceth";
+			tx-fifo-depth = <16384>;
+			rx-fifo-depth = <16384>;
 			status = "disabled";
 		};
 
@@ -150,6 +152,8 @@
 			reset-names = "stmmaceth", "stmmaceth-ocp";
 			clocks = <&clkmgr STRATIX10_EMAC1_CLK>;
 			clock-names = "stmmaceth";
+			tx-fifo-depth = <16384>;
+			rx-fifo-depth = <16384>;
 			status = "disabled";
 		};
 
@@ -163,6 +167,8 @@
 			reset-names = "stmmaceth", "stmmaceth-ocp";
 			clocks = <&clkmgr STRATIX10_EMAC2_CLK>;
 			clock-names = "stmmaceth";
+			tx-fifo-depth = <16384>;
+			rx-fifo-depth = <16384>;
 			status = "disabled";
 		};
 
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
index 6edc4fa9fd42..7c661753bfaf 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -76,7 +76,7 @@
 	phy-mode = "rgmii";
 	phy-handle = <&phy0>;
 
-	max-frame-size = <3800>;
+	max-frame-size = <9000>;
 
 	mdio0 {
 		#address-cells = <1>;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames
  2018-10-22 22:22 [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame thor.thayer
@ 2018-10-22 22:22 ` thor.thayer
  2018-10-23  3:23   ` David Miller
  2018-10-23  3:23 ` [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: thor.thayer @ 2018-10-22 22:22 UTC (permalink / raw)
  To: peppe.cavallaro, alexandre.torgue, joabreu, davem, dinguyen,
	robh+dt, mark.rutland
  Cc: devicetree, netdev, linux-kernel, Thor Thayer

From: Thor Thayer <thor.thayer@linux.intel.com>

Ping with Jumbo packet does not reply and get a watchdog timeout

[   46.059616] ------------[ cut here ]------------
[   46.064268] NETDEV WATCHDOG: eth0 (socfpga-dwmac): transmit queue 0 timed out
[   46.071471] WARNING: CPU: 1 PID: 0 at net/sched/sch_generic.c:461 dev_watchdog+0x2cc/0x2d8
[   46.079708] Modules linked in:
[   46.082761] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.18.0-00115-gc262be665854-dirty #264
[   46.091082] Hardware name: SoCFPGA Stratix 10 SoCDK (DT)
[   46.096377] pstate: 20000005 (nzCv daif -PAN -UAO)
[   46.101152] pc : dev_watchdog+0x2cc/0x2d8
[   46.105149] lr : dev_watchdog+0x2cc/0x2d8
[   46.109144] sp : ffff00000800bd80
[   46.112447] x29: ffff00000800bd80 x28: ffff80007a9b4940
[   46.117744] x27: 00000000ffffffff x26: ffff80007aa183b0
[   46.123040] x25: 0000000000000001 x24: 0000000000000140
[   46.128336] x23: ffff80007aa1839c x22: ffff80007aa17fb0
[   46.133632] x21: ffff80007aa18000 x20: ffff0000091a7000
[   46.138927] x19: 0000000000000000 x18: ffffffffffffffff
[   46.144223] x17: 0000000000000000 x16: 0000000000000000
[   46.149519] x15: ffff0000091a96c8 x14: 07740775076f0720
[   46.154814] x13: 07640765076d0769 x12: 0774072007300720
[   46.160110] x11: 0765077507650775 x10: 0771072007740769
[   46.165406] x9 : 076d0773076e0761 x8 : 077207740720073a
[   46.170702] x7 : 072907630761076d x6 : ffff80007ff9a0c0
[   46.175997] x5 : ffff80007ff9a0c0 x4 : 0000000000000002
[   46.181293] x3 : 0000000000000000 x2 : ffff0000091ac180
[   46.186589] x1 : e6a742ebe628e800 x0 : 0000000000000000
[   46.191885] Call trace:
[   46.194326]  dev_watchdog+0x2cc/0x2d8
[   46.197980]  call_timer_fn+0x20/0x78
[   46.201544]  expire_timers+0xa4/0xb0
[   46.205108]  run_timer_softirq+0xe4/0x198
[   46.209107]  __do_softirq+0x114/0x210
[   46.212760]  irq_exit+0xd0/0xd8
[   46.215895]  __handle_domain_irq+0x60/0xb0
[   46.219977]  gic_handle_irq+0x58/0xa8
[   46.223628]  el1_irq+0xb0/0x128
[   46.226761]  arch_cpu_idle+0x10/0x18
[   46.230326]  do_idle+0x1d4/0x288
[   46.233544]  cpu_startup_entry+0x24/0x28
[   46.237457]  secondary_start_kernel+0x17c/0x1c0
[   46.241971] ---[ end trace 57048cd1372cd828 ]---

Inspection of queue showed Jumbo packets were not sent out.
The ring Jumbo packet function needs to set the OWN bit so
the packet is sent.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
---
v2  Add fix for jumbo frames > 8K (same OWN bit)
---
 drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/ring_mode.c b/drivers/net/ethernet/stmicro/stmmac/ring_mode.c
index a7ffc73fffe8..abc3f85270cd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/ring_mode.c
+++ b/drivers/net/ethernet/stmicro/stmmac/ring_mode.c
@@ -59,7 +59,7 @@ static int jumbo_frm(void *p, struct sk_buff *skb, int csum)
 
 		desc->des3 = cpu_to_le32(des2 + BUF_SIZE_4KiB);
 		stmmac_prepare_tx_desc(priv, desc, 1, bmax, csum,
-				STMMAC_RING_MODE, 0, false, skb->len);
+				STMMAC_RING_MODE, 1, false, skb->len);
 		tx_q->tx_skbuff[entry] = NULL;
 		entry = STMMAC_GET_ENTRY(entry, DMA_TX_SIZE);
 
@@ -91,7 +91,7 @@ static int jumbo_frm(void *p, struct sk_buff *skb, int csum)
 		tx_q->tx_skbuff_dma[entry].is_jumbo = true;
 		desc->des3 = cpu_to_le32(des2 + BUF_SIZE_4KiB);
 		stmmac_prepare_tx_desc(priv, desc, 1, nopaged_len, csum,
-				STMMAC_RING_MODE, 0, true, skb->len);
+				STMMAC_RING_MODE, 1, true, skb->len);
 	}
 
 	tx_q->cur_tx = entry;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame
  2018-10-22 22:22 [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame thor.thayer
  2018-10-22 22:22 ` [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames thor.thayer
@ 2018-10-23  3:23 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2018-10-23  3:23 UTC (permalink / raw)
  To: thor.thayer
  Cc: peppe.cavallaro, alexandre.torgue, joabreu, dinguyen, robh+dt,
	mark.rutland, devicetree, netdev, linux-kernel

From: thor.thayer@linux.intel.com
Date: Mon, 22 Oct 2018 17:22:25 -0500

> From: Thor Thayer <thor.thayer@linux.intel.com>
> 
> Properly specify the RX and TX FIFO size which is important
> for Jumbo frames.
> Update the max-frame-size to support Jumbo frames.
> 
> Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
> ---
> v2 Shorten title. No change to DTS.

Applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames
  2018-10-22 22:22 ` [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames thor.thayer
@ 2018-10-23  3:23   ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2018-10-23  3:23 UTC (permalink / raw)
  To: thor.thayer
  Cc: peppe.cavallaro, alexandre.torgue, joabreu, dinguyen, robh+dt,
	mark.rutland, devicetree, netdev, linux-kernel

From: thor.thayer@linux.intel.com
Date: Mon, 22 Oct 2018 17:22:26 -0500

> From: Thor Thayer <thor.thayer@linux.intel.com>
> 
> Ping with Jumbo packet does not reply and get a watchdog timeout
 ...
> Inspection of queue showed Jumbo packets were not sent out.
> The ring Jumbo packet function needs to set the OWN bit so
> the packet is sent.
> 
> Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
> ---
> v2  Add fix for jumbo frames > 8K (same OWN bit)

Applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-23  3:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-22 22:22 [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame thor.thayer
2018-10-22 22:22 ` [PATCHv2 2/2] net: stmmac: Set OWN bit for jumbo frames thor.thayer
2018-10-23  3:23   ` David Miller
2018-10-23  3:23 ` [PATCHv2 1/2] arm64: dts: stratix10: Support Ethernet Jumbo frame David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.