mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* eth frame error on imx6ul
@ 2024-08-05 13:48 Stefano Manni
  2024-08-05 13:54 ` Ahmad Fatoum
  0 siblings, 1 reply; 5+ messages in thread
From: Stefano Manni @ 2024-08-05 13:48 UTC (permalink / raw)
  To: barebox

Hello,

on a target based on imx6ul I see lots of errors like this when
connected to the company LAN:

WARNING: eth0: error frame: 0x87ed5190 0x00000886

where 0x00000886 means "frame length violation" (FEC_RBD_LG).

It seems to be an HW issue BUT on another target based on imx6x with
exactly the same HW block for ethernet I never see this error.

Have you ever faced something like this?

Thanks,
Stefano




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

* Re: eth frame error on imx6ul
  2024-08-05 13:48 eth frame error on imx6ul Stefano Manni
@ 2024-08-05 13:54 ` Ahmad Fatoum
  2024-08-05 14:38   ` Stefano Manni
  0 siblings, 1 reply; 5+ messages in thread
From: Ahmad Fatoum @ 2024-08-05 13:54 UTC (permalink / raw)
  To: Stefano Manni, barebox

Hello Stefano,

On 05.08.24 15:48, Stefano Manni wrote:
> Hello,
> 
> on a target based on imx6ul I see lots of errors like this when
> connected to the company LAN:
> 
> WARNING: eth0: error frame: 0x87ed5190 0x00000886
> 
> where 0x00000886 means "frame length violation" (FEC_RBD_LG).
> 
> It seems to be an HW issue BUT on another target based on imx6x with
> exactly the same HW block for ethernet I never see this error.
> 
> Have you ever faced something like this?

Do you have TFTP or something running while seeing these errors,
or when do they pop up?

Cheers,
Ahmad

> 
> Thanks,
> Stefano
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




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

* Re: eth frame error on imx6ul
  2024-08-05 13:54 ` Ahmad Fatoum
@ 2024-08-05 14:38   ` Stefano Manni
  2024-08-05 16:57     ` Ahmad Fatoum
  0 siblings, 1 reply; 5+ messages in thread
From: Stefano Manni @ 2024-08-05 14:38 UTC (permalink / raw)
  To: Ahmad Fatoum, barebox

Hello Ahmad

On Mon, 2024-08-05 at 15:54 +0200, Ahmad Fatoum wrote:
> 
> Do you have TFTP or something running while seeing these errors,
> or when do they pop up?

They pop up unconditionally just after ifup. If I run tcpdump on the
same LAN I see a lot of multicast/broadcast frames and probably the
error comes out on the reception of them. Also because I figured out
from fec_imx.h that 0x00000886 means:

#define FEC_RBD_LAST		0x0800	/**< Receive BD status: Buffer
is last in frame (useless here!) */
#define FEC_RBD_BC		0x0080	/**< Receive BD status: The
received frame is broadcast frame */
#define FEC_RBD_CR		0x0004	/**< Receive BD status: CRC
error */
#define FEC_RBD_OV		0x0002	/**< Receive BD status: Receive
FIFO overrun */

Best,
Stefano




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

* Re: eth frame error on imx6ul
  2024-08-05 14:38   ` Stefano Manni
@ 2024-08-05 16:57     ` Ahmad Fatoum
  2024-08-06  7:59       ` Stefano Manni
  0 siblings, 1 reply; 5+ messages in thread
From: Ahmad Fatoum @ 2024-08-05 16:57 UTC (permalink / raw)
  To: Stefano Manni, barebox

On 05.08.24 16:38, Stefano Manni wrote:
> Hello Ahmad
> 
> On Mon, 2024-08-05 at 15:54 +0200, Ahmad Fatoum wrote:
>>
>> Do you have TFTP or something running while seeing these errors,
>> or when do they pop up?
> 
> They pop up unconditionally just after ifup. If I run tcpdump on the
> same LAN I see a lot of multicast/broadcast frames and probably the
> error comes out on the reception of them. Also because I figured out
> from fec_imx.h that 0x00000886 means:
> 
> #define FEC_RBD_LAST		0x0800	/**< Receive BD status: Buffer
> is last in frame (useless here!) */
> #define FEC_RBD_BC		0x0080	/**< Receive BD status: The
> received frame is broadcast frame */
> #define FEC_RBD_CR		0x0004	/**< Receive BD status: CRC
> error */
> #define FEC_RBD_OV		0x0002	/**< Receive BD status: Receive
> FIFO overrun */

You can enable CONFIG_CMD_ETHLOG to capture the frames and see if
the frame that triggers the error looks odd in some way.

Cheers,
Ahmad


> 
> Best,
> Stefano
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




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

* Re: eth frame error on imx6ul
  2024-08-05 16:57     ` Ahmad Fatoum
@ 2024-08-06  7:59       ` Stefano Manni
  0 siblings, 0 replies; 5+ messages in thread
From: Stefano Manni @ 2024-08-06  7:59 UTC (permalink / raw)
  To: Ahmad Fatoum, barebox

Hello Ahmad,

On Mon, 2024-08-05 at 18:57 +0200, Ahmad Fatoum wrote:
> You can enable CONFIG_CMD_ETHLOG to capture the frames and see if
> the frame that triggers the error looks odd in some way.
> 

unfortunately ethlog cannot be used because fec_recv() -> net_receive()
-> rx_monitor() is not called when the frame is invalid.

So I've patched in some way fec_recv() to print out the frame in case
of error:

diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 75a6596282..d2fb617631 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -579,6 +579,10 @@ static int fec_recv(struct eth_device *dev)
        if (bd_status & FEC_RBD_ERR) {
                dev_warn(&dev->dev, "error frame: 0x%p 0x%08x\n",
                         rbd, bd_status);
+
+               dev_print_hex_dump(&dev->dev, KERN_DEBUG, "",
+                          DUMP_PREFIX_OFFSET, 16, 1, rbd-
>data_pointer, rbd->data_length, true);
+
        } else if (bd_status & FEC_RBD_LAST) {
                const uint16_t data_length = readw(&rbd->data_length);

And these are some of the frames I see:

WARNING: eth0: error frame: 0x87ed50e8 0x00000886
eth0: 00000000: ff ff ff ff ff ff 00 50 56 ad 1c 33 08 06 00 01
eth0: 00000010: 08 00 06 04 00 01 00 50 56 ad 1c 33 c0 a8 d8 d0
eth0: 00000020: 00 00 00 00 00 00 c0 a8 d7 de 00 00 00 00 00 00
eth0: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ec 3f      
WARNING: eth0: error frame: 0x87ed5190 0x00000886
eth0: 00000000: ff ff ff ff ff ff 00 50 56 ad f3 d9 08 06 00 01
eth0: 00000010: 08 00 06 04 00 01 00 50 56 ad f3 d9 c0 a8 d5 42
eth0: 00000020: 00 00 00 00 00 00                              
WARNING: eth0: error frame: 0x87ed5198 0x00000886
eth0: 00000000: ff ff ff ff ff ff 00 1e 2a c1 b4 8c 08 00 45 00
eth0: 00000010: 00 4e 94 ec 00 00 80 11 4a 99 c0 a8 d9 c8 c0 a8
eth0: 00000020: ff ff 00 89 00 89 00 3a 1b 08 d2 c3 01 10 00 01
eth0: 00000030: 00 00 00 00 00 00 20 46 44 45 4c 46 4a 46      


Focusing on the first two, they are ARP but look odd, they should be 60
byte long.

Any idea?

Best,
Stefano





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

end of thread, other threads:[~2024-08-06  8:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-05 13:48 eth frame error on imx6ul Stefano Manni
2024-08-05 13:54 ` Ahmad Fatoum
2024-08-05 14:38   ` Stefano Manni
2024-08-05 16:57     ` Ahmad Fatoum
2024-08-06  7:59       ` Stefano Manni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox