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.
			
		