We manufactured the prototype of the product which used i.MX6Q (MCIMX6Q5EYM10AC).
It has two GbE ports.
a) One is Built-in MAC and external PHY.
b) Another is GbE-NIC on PCIe.
"a" works correctly.
"b" is rarely Stall, when there is much network load.
However, it does not occur, when link-speed is 10Mbps or 100Mbps.
It occurs, only when link-speed is 1Gbps.
According to the paket analysis by the Network Analyzer, the packet response to the equipment which opposes is lost.
And kernel message is very quiet then.
* Chip used for NIC is intel i210-AT.
As results of investigating many things, there was about three conditions.
1) When using iperf3, read is issued, but a response does not return from opposition equipment (from the kernel side, it seems such).
And CPU is idle.
2) Put data into Transmission QUE, And if data are transmitted, the register flag of i210 will change and the Data will be cleared.
However, a flag cannot change, and data cannot be sent and then tx_detect_hang occurs.
3) Or NETDEV watch doc timeout by those upper layer.
* ACK and Packet do not come or flag does not change, Operation with all indispensable to the handshake for data flow is missing.
* Useful information is not included in the message which dmesg and kernel output.
Though we did the same test also by GbE-Chip other than intel, we were the same results.
- MARVELL - 88E8053
- Realtek - RTL8111D
- Broadcom - BCM5751
We are using TimesysLinux. (kernel 3.0.35)
From now on, we will do the test using iMX6Q SD board and freescale BSP.
And then packet analysis on PCIe will also be done more.
If it has information for someone to solve this trouble, please tell me.
And If there is information needed, please tell me it.