I'm working with yocto using kernel 3.12.61-rt81. An ethernet port was implemented to RGMII mode to catch up gigabit ethernet. However, it starts communicate with the others, its throughput is always below expectation.
$iperf - s
Interval Transfer Bandwidth
0.0-10.0 sec 211 MBytes 176 Mbits/sec
$iperf - c <IP>
Interval Transfer Bandwidth
0.0-10.0 sec 101 MBytes 83.6 Mbits/sec
By using ethtool, I observer exactly setting as below:
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 2
Transceiver: external
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000000 (0)
Link detected: yes
Either I try to change speed to 10-100-1000 or duplex from half to full, eth1 can't work with 10-half/full too. It looks like throughput limitation is 100Mb. After check overall hardware setting by reading register, I feel hardware setting (dtb, phy) is probably fine.
I'm wondering how can I do to debug something wrong happening? Thank you.
User contributions licensed under CC BY-SA 3.0