On 3/10/2016 5:47 PM, Dinh Nguyen wrote:
On Thu, Mar 10, 2016 at 3:13 AM, Giuseppe CAVALLARO
<peppe.cavallaro@xxxxxx> wrote:
On 3/9/2016 5:31 PM, Dinh Nguyen wrote:
On Wed, Mar 9, 2016 at 8:53 AM, Giuseppe CAVALLARO
<peppe.cavallaro@xxxxxx> wrote:
Hi Tomeu, Dinh, Andreas
I need a sum and help from you to go ahead on the
tx timeout.
The "stmmac: MDIO fixes" seems to be the candidate to
fix the phy connection and I will send the V2 asap (Andreas' comment).
So, supposing the probe is ok and phy is connected,
I need your input ...
Tomeu: after revering the 0e80bdc9a72d (stmmac: first frame
prep at the end of xmit routine) the network is
not stable and there is a timeout after a while.
The box has 3.50 with normal desc settings.
Dinh: the network is ok, I wonder if you can share a boot
log just to understand if the normal or enhanced
descriptors are used.
Here it is:
...
[ 0.850523] stmmac - user ID: 0x10, Synopsys ID: 0x37
[ 0.855570] Ring mode enabled
[ 0.858611] DMA HW capability register supported
[ 0.863128] Enhanced/Alternate descriptors
[ 0.867482] Enabled extended descriptors
[ 0.871482] RX Checksum Offload Engine supported (type 2)
[ 0.876948] TX Checksum insertion supported
[ 0.881204] Enable RX Mitigation via HW Watchdog Timer
[ 0.886863] socfpga-dwmac ff702000.ethernet eth0: No MDIO subnode found
[ 0.899090] libphy: stmmac: probed
[ 0.902484] eth0: PHY ID 00221611 at 4 IRQ POLL (stmmac-0:04) active
Thx Dinh, so you are using the Enhanced/Alternate descriptors
I am debugging on my side on a setup with normal descriptors, I let you
know
Doesn't the printout "Enhanced/Alternate descriptors" mean that I'm using
Enhanced/Alternate descriptors?
yes this means that you have the Databook 3.70a and, from the HW
capability register, the driver will use the Enhanced/Alternate
descriptors. This is the same HW I am using on my side where the
stmmac is working fine.
In the case where it is failing on net-next, although on Databook 3.50a,
the HW capability register says that there is no enhanced descriptors
and the driver uses the normal ones.
Tomeu, I kindly ask you to try the patch attached. I found a bug on Tx
path for normal descriptors. Please let me know if this help.
Also let me know if we actually need to revert the 0e80bdc9a72d.
I am trying to find some HW where test the normal descriptors to
speed-up the tests on my side directly.
Let me know and thx in advance.
Regards,
Peppe
Dinh
>From ed3e38befc5500e05f46e1d52ea20a0b8d3829f3 Mon Sep 17 00:00:00 2001
From: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>
Date: Thu, 10 Mar 2016 14:57:48 +0100
Subject: [PATCH (linux-sti-4.1)] stmmac: fix tx prepare for normal desc
This patch fixes a bug inside when use the normal descriptors.
While preparing the tx descriptor the frame size was not
properly set.
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>
---
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
index e13228f..432b3f1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
@@ -197,13 +197,15 @@ static void ndesc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len,
bool csum_flag, int mode, bool tx_own,
bool ls)
{
- unsigned int tdes1 = p->des1;
+ unsigned int tdes1;
if (mode == STMMAC_CHAIN_MODE)
norm_set_tx_desc_len_on_chain(p, len);
else
norm_set_tx_desc_len_on_ring(p, len);
+ tdes1 = p->des1;
+
if (is_fs)
tdes1 |= TDES1_FIRST_SEGMENT;
else
--
1.7.4.4