[PATCH v2 0/4] RGMII RX and TX clock delays using Atheros 8035

Marc Gonzalez marc_gonzalez at sigmadesigns.com
Fri Jul 21 05:47:53 PDT 2017


On 21/07/2017 13:22, Marc Gonzalez wrote:

> Changes from v1
> - Drop support for disabling RX and TX clock delays
> (it breaks some boards). Document the issues instead.
> - Split the MAC patch in two unrelated parts
> - Fix the vantage 1172 DTS
> 
> Marc Gonzalez (4):
>   net: phy: at803x: Document RGMII RX and TX clock delay issues
>   net: ethernet: nb8800: Set RGMII_MODE for all RGMII modes
>   net: ethernet: nb8800: Fix RGMII TX clock delay setup
>   ARM: dts: tango4: Add RGMII RX and TX clock delays
> 
>  arch/arm/boot/dts/tango4-vantage-1172.dts |  2 +-
>  drivers/net/ethernet/aurora/nb8800.c      |  8 +++++---
>  drivers/net/phy/at803x.c                  | 12 ++++++++++++
>  3 files changed, 18 insertions(+), 4 deletions(-)

Rudimentary test:

ip addr add 172.27.64.45/18 brd 172.27.127.255 dev eth0
ip link set eth0 up
sleep 10 ## autoneg should be complete
time fping -c 10000 -b 1450 -p 1 -i 1 -q 172.27.64.1
ethtool -S eth0
cat /proc/interrupts

# test_eth.sh 
[   13.276242] ENTER at803x_enable_rx_delay
[   13.280283] BEFORE=82ee
[   13.282735]  AFTER=82ee
[   13.285462] ENTER at803x_enable_tx_delay
[   13.289567] BEFORE=2d47
[   13.292018]  AFTER=2d47
[   16.663266] nb8800 26000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
172.27.64.1 : xmt/rcv/%loss = 10000/10000/0%, min/avg/max = 0.18/0.21/3.79

real    0m10.688s
user    0m0.106s
sys     0m0.472s

NIC statistics:
     rx_bytes_ok: 14960128
     rx_frames_ok: 10002
     rx_undersize_frames: 0
     rx_fragment_frames: 0
     rx_64_byte_frames: 2
     rx_127_byte_frames: 0
     rx_255_byte_frames: 0
     rx_511_byte_frames: 0
     rx_1023_byte_frames: 0
     rx_max_size_frames: 10000
     rx_oversize_frames: 0
     rx_bad_fcs_frames: 0
     rx_broadcast_frames: 0
     rx_multicast_frames: 0
     rx_control_frames: 0
     rx_pause_frames: 0
     rx_unsup_control_frames: 0
     rx_align_error_frames: 0
     rx_overrun_frames: 0
     rx_jabber_frames: 0
     rx_bytes: 14960128
     rx_frames: 10002
     tx_bytes_ok: 14960128
     tx_frames_ok: 10002
     tx_64_byte_frames: 2
     tx_127_byte_frames: 0
     tx_255_byte_frames: 0
     tx_511_byte_frames: 0
     tx_1023_byte_frames: 0
     tx_max_size_frames: 10000
     tx_oversize_frames: 0
     tx_broadcast_frames: 1
     tx_multicast_frames: 0
     tx_control_frames: 0
     tx_pause_frames: 0
     tx_underrun_frames: 0
     tx_single_collision_frames: 0
     tx_multi_collision_frames: 0
     tx_deferred_collision_frames: 0
     tx_late_collision_frames: 0
     tx_excessive_collision_frames: 0
     tx_bytes: 14960128
     tx_frames: 10002
     tx_collisions: 0

            CPU0       CPU1       
  19:      10825        983     GIC-0  29 Edge      twd
  20:         85          0      irq0   1 Level     ttyS0
  21:          0          0      irq0  60 Level     mmc0
  22:        228          0      irq0   8 Level     mmc1
  25:      20005          0      irq0  38 Level     eth0
  28:          1          0      irq0  37 Edge      26000.nb8800-mii:04
IPI0:          0          0  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts
IPI2:       1183       1725  Rescheduling interrupts
IPI3:          0          1  Function call interrupts
IPI4:          0          0  CPU stop interrupts
IPI5:          1          0  IRQ work interrupts
IPI6:          0          0  completion interrupts
Err:           0


fping caps at 1000 packets per second, which limits
its usefulness as a benchmarking tool.

Regards.




More information about the linux-arm-kernel mailing list