Unstable work of 1Gbit ethernet on imx6

cancel
Showing results for 
Search instead for 
Did you mean: 

Unstable work of 1Gbit ethernet on imx6

Jump to solution
870 Views
maximkuk
Contributor III

Hello!

I fased with trouble when copy file to imx6 device by scp in gigabit network. It continously prints in terminal "fec 2188000.ethernet eth0: rcv is not +last" and disappear from network. And it may hapene after some time suddenly.

Transmitting files from imx6 at 1Gbit works fine. In 100Mbit receive and transmit works stable.

imx6d, pop package, phy AR8035, kernel fsl 4.9.88

Labels (3)
0 Kudos
1 Solution
611 Views
maximkuk
Contributor III

Seems it is hardware issue. As woraround I disabled gigabit feature - commented out FEC_QUIRK_HAS_GBIT flag of imx6q-fec in fec_main.c

View solution in original post

0 Kudos
6 Replies
611 Views
trivet71364
Contributor I

We are seeing a similar issue.  Limited bandwidth at 1 Gbe and what looks like network data errors.

Where can the datasheet and programmers reference manual be found for the IMX6 device?

0 Kudos
612 Views
maximkuk
Contributor III

Seems it is hardware issue. As woraround I disabled gigabit feature - commented out FEC_QUIRK_HAS_GBIT flag of imx6q-fec in fec_main.c

View solution in original post

0 Kudos
611 Views
pitel
Contributor I

It seems we have the same issue.
Maxim, could you share what was that in your case? What hardware issue?

0 Kudos
611 Views
maximkuk
Contributor III

Hello!

Sorry, we haven't debug it - just disable 1G feature (100M enaught in our case). 

0 Kudos
611 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello Maxim,

After we changed the buffer defines in the fec driver it works for us. 

 

++++ BF/drivers/net/ethernet/freescale/fec.c

+@@ -178,11 +178,12 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet

+ #define FEC_RX_DISABLED_IMASK (FEC_DEFAULT_IMASK & (~FEC_ENET_RXF))

+

+ /* The FEC stores dest/src/type, data, and checksum for receive packets.

+- */

+-#define PKT_MAXBUF_SIZE1518

++*/

++#define PKT_MAXBUF_SIZE1534
+ #define PKT_MINBUF_SIZE64
+-#define PKT_MAXBLR_SIZE1520

+-

++#define PKT_MAXBLR_SIZE1536

++

+ /*

+  * The 5270/5271/5280/5282/532x RX control register also contains maximum frame

+  * size bits.

This changes are included in 4.14.98.

Regards

0 Kudos
611 Views
maximkuk
Contributor III

Thank you for answer!

In fec_main.c I have this:

/* The FEC stores dest/src/type/vlan, data, and checksum for receive packets.
*
* 2048 byte skbufs are allocated. However, alignment requirements
* varies between FEC variants. Worst case is 64, so round down by 64.
*/
#define PKT_MAXBUF_SIZE (round_down(2048 - 64, 64))
#define PKT_MINBUF_SIZE 64

The same in fec_main.c in 4.14.98 from fec_main.c\freescale\ethernet\net\drivers - linux-imx - i.MX Linux kernel 

I tried to decrease MTU and limit bandwidth with -l option of scp but no luck.

BTW, on sabresd board the same kernel works fine. Are there any hw requirements to receive gigabit properly?

Our device supports PoE. Can it be problem?

0 Kudos