Hi everyone,
I have a [url=https://archlinuxarm.org/platforms/armv7/freescale/cubox-i]Freescale CuBox-i4 Pro[/url] mini-computer which is working very well except for one thing. I recently noticed my ethernet device was producing lots of RX errors. So, I decided to investigate and I found this NIC has certain bus limitations which prevents it from transferring data beyond the 470 Mbps threshold. I found an article which specifically talks about the [url=https://boundarydevices.com/i-mx6-ethernet/]i.MX6 Gigabit Ethernet[/url] device. I've tested everything I found in the internet and I was able to think of, but I continue to get RX errors when the device is set at Gigabit speed (1000 Mbps). I thought that enabling flow control would solve the issue it looks like my router doesn't care and my NIC continues to saturate leading to those RX errors. Despite trying with multiple ethernet cables just in case, I'm sure my ethernet cable is 100% fine.
At the moment, the only temporary workaround I've found is to set the speed to 100 Mbps ([code]ethtool -s eth0 autoneg on speed 100 duplex full[/code]). When this speed mode is set, the card is rock solid and no errors are produced, but obviously it is capped to 100 Mbps max. I also noticed that the card works faster in 100 Mbps than when set in 1000 Mbps due to the high rate of RX errors.
The relevant lines of my dmesg is the following (note the last 2 lines are produced after my script sets speed to 100 Mbps):
[code]
$ dmesg | grep "mdio_bus\|fec\|net\|mii"
[ 0.049363] audit: initializing netlink subsys (disabled)
[ 2.266132] mdio_bus 2188000.ethernet-1: MDIO device at address 4 is missing.
[ 2.274104] fec 2188000.ethernet eth0: registered PHC device 0
[ 8.738396] systemd[1]: Starting Generate network units from Kernel command line...
[ 11.510233] Qualcomm Atheros AR8035 2188000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=2188000.ethernet-1:00, irq=POLL)
[ 14.589527] fec 2188000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[ 16.960475] fec 2188000.ethernet eth0: Link is Down
[ 19.005530] fec 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[/code]
The driver info is as follows:
[code]
$ ethtool -i eth0
driver: fec
version: 6.2.10-1-ARCH
firmware-version:
expansion-rom-version:
bus-info: eth0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
[/code]
The default properties of my NIC before I set speed to 100 Mbps are:
[code]
$ ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
1000baseX/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
1000baseX/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: on (auto)
Supports Wake-on: d
Wake-on: d
Link detected: yes
[/code]
Is there anything you can think of to address the issue I'm facing?
Any help is more than welcome!
Thanks.