Part Number: AM3352
Good afternoon,
We are bringing up a new board design that uses a AM335x CPU and a KSZ9031RNX Ethernet Phy. We use this combination on other boards and have mature firmware for it as a good reference. All we have changed here is that we are using rgmii2 rather than the first instance due to Pin Muxing requirements. The issue we have is that we are seeing very slow FTP upload speeds, around 30kB/s when on our other boards we get around 10MB/s maxing out the link (we disable gigabit as we only route out 4 wires. In Wireshark I see 3 TCP Dup ACK's from the AM335x followed by a fast retransmission from the PC as the first issue after a couple of data packets have been sent, so it looks like data from the PC is being dropped.
Looking at the datasheets and comparing to our working systems I have dumped the Phy register (0x0-0x1f) info and that all looks to be as expected. I have also dumped the statistics/status registers from the CPSW in the AM335x and this is where I have seen a issue/a difference but i am unsure exactly what it means or how it could happen.
CPSW (MAC) Rx Statistics/Status (Phy -> MAC):
Good Rx Frames: 13888179
Broadcast Rx Frames: 13836268
Multicast Rx Frames: 18429
Pause Rx Frames: 0
Rx CRC Errors: 0
Rx Align/Code Errors: 0
Oversize Rx Frames: 0
Rx Jabbers: 0
Undersize Rx Frames: 0
Rx Fragments: 0
Rx Octlets: 1946536772
Rx Start of Frame Overruns: 0
Rx Middle of Frame Overruns: 0
Rx DMA Overruns: 0
CPSW (MAC) Tx Statistics/Status (MAC -> Phy):
Good Tx Frames: 23073
Broadcast Tx Frames: 4
Multicast Tx Frames: 1
Pause Tx Frames: 0
Deferred Tx Frames: 9746
Collisions: 19313
Single Collision Tx Frames: 2014
Multiple Collision Tx Frames: 4918
Excessive Collisions: 0
Late Collisions: 2
Tx Underrun: 0
Carrier Sense Errors: 0
Octets:
Tx Octets: 1478065
Rx + Tx 64 Octet Frames: 656230
Rx + Tx 65–127 Octet Frames: 7303479
Rx + Tx 128–255 Octet Frames: 5914256
Rx + Tx 256–511 Octet Frames: 305
Rx + Tx 512–1023 Octet Frames: 3167
Rx + Tx 1024_Up Octet Frames: 33815
Net Octets: 1948160160
Can anyone shed any liight on what there errors actually mean as far as i can figure out from what is in the datasheet and some assumptions (which are probably wrong) these are issues on the rgmii interface with data going from the MAC tot he Phy but this in itself does not make sense as it is a independent a fully duplex interface?
The deferred frames ar because the medium is bust and collisions are self explanatory but as there are no excessive collisions all the data should have been sent in the end? Again though on rgmii i dont understand how this is possible.
This does not really tie in with what I saw in wireshark if anything i was expecting Rx errors.
Please can anyone shed correct anything i am misunderstanding to make sense of this and suggest any useful routes i could take to get to the bottom of the problem?
Kind regards