This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DP83867IR: lost package issue when work at 1000M speed

Part Number: DP83867IR

Hi TI team

I met a Gigabit ethernet communtation issue when using DP83867IR with TI AM335x MPU in my design and need TI team urgent support, the following are the details:

PHY:  PHY partnumber is DP83848IRRGZ and it conneccted with AM335x thourg RGMII, VDDA1P8 (pins 13 and 48) are not used and were left unconnected

MPU:  MPU partnumber is AM3354BZCZD60, both emacs connecte with tow DP83867 thorugh RGMII interface

Issue: Both ETHs can work ok in 100M speed, however, under 1000M speed, communication packet loss is very serious when test ping command with larg packet( 65500 or 1500 bytes)

Is this a DP83867IR application design issue or AM335x BSP driver issue ? Can you provide some suggestions for analyzing and solving this issue? Thank you!

  • Hi Lance,

    This type of problem generally points to a signal integrity issue. I will review the schematic and get back to you by the end of the week.

    In the meantime, please review the following layout guidelines: SNLA387

    Also, please send me a screenshot of how you are determining communication packet loss.

    Thanks,

    David

  • Hi David,

    Thanks, I remember the schematic diagram and PCB design were reviewed by TI local FAE during the development phase, please let me konw if you need  more details,  It`s urgent for the project.

  • Hi Lance,

    How are you are determining "communication packet loss"? Does link ever drop during this measurement? What length/type of cable are you using? Please try using a different cable and different link partners.

    Also share the complete schematic and layout. I will have a look at the MDI section of it.

    Thanks,

    David

  • Hi David,

    I have test the both gigabit ethernet ports(eth0/eth1) with 30cm and 100cm cat6 cables and different link partners, both ports have the communcation issue, below are the test results:

    1. Test ping command with default 32 bytes packet size, no packet loss

    2. Test  ping command with  more than 1000 bytes packet size, packet loss often occurs

    3. Test ping command with 65500 bytes packet size, almost 70~80% packet loss rate

    There is no link drop during the test.

    PCB layout

  • Hi Lance,

    An Ethernet packet is a maximum of 1530 bytes in length, I am confused how the number 65500 applies here. Please send me an exact screenshot of how you are configuring this packet length, and how you are measuring "communication packet loss". 

    Sometimes we see an affect of interpacket gap (IPG) on data transmission. What IPG are you using? Does adjusting the packet size change the IPG at all as well?

    Another thing, 30 and 100cm cables are very short. Please try using a 10m cable and see if that makes a difference.

    Thanks,

    David 

  • Hi David,

    The background of this issue was that the controller can`t be accessed through Web and SSH when the ethernet port worked at 1000Mbps , so I make some test with ping command below using my PC and found that the packet loss is very serious at 1000Mpbs, I have also test it with different PC and different type/length cables(30cm~3m, cat6), the result is almost the same:

    1.  ping 192.168.100.100 -t             /* with default 32 bytes packet size, no packet loss */

    1.  ping 192.168.100.100 -t -l 500    /* Packet loss starts  */

    2.  ping 192.168.100.100 -t -l 1000  /* about 30~40% Packet loss */

    3.  ping 192.168.100.100 -t -l 1500  /* about 40~50% Packet loss */

    4.  ping 192.168.100.100 -t -l 65500 /* about 70%~80% Packet loss with the max packet size*/

    But it could pass the test when the ethernet port works at 100Mbps, I checked the default value of IPG for the ping command is 1s. 

    Can you tell me how I can debug this and find the root cause ? 

    By the way, the project is urgent, what do I need to do to help increase the priority of this issue? if need TI's local FAE/sales to raise the request or need our senior leaders in North America contact TI's sales and raise the request, please let me know, thanks!

  • Hi Lance,

    It sounds like this ping test is not the problem that needs solving, but rather "the controller can`t be accessed through Web and SSH." Please send me screenshots and details of this issue occurring. Also send me screenshots of the terminal after sending the ping command. 

    Since your schematic and layout have already been checked over, this sounds more like a system level issue than a PHY level issue. Nonetheless, you can send me a register dump from the PHY to check over.

    Thanks,

    David 

  • Hi David,

    I think the package lost issue causes ping/Web/SSH communication failure, I don`t konw whether the local FAE had carefully reviewed the schematic SCH and PCB design,can you check them again,thanks!Could you tell me which register you want to check ? 

    below are the screenshots of ping command test:

    1. 1Gpbs test with 32bytes package size(no package lost)

    2. 1Gbps test with 1500bytes package size(more than 50% package lost)

    3. 100Mbps test with 1500 package size(no package lost)

  • Hi Lance,

    I would like to check the basis 0x00-0x1f registers, register 0x0015, and register 0x0135. Please send one reading during success and one reading during fail case.

    Also, I may recommend using the tool iperf to check throughput, since that is a more common method than this ping test.

    Thanks,

    David

  • Hi David,

    the follow are the register values when runing ping command, Occasionally, the network port is continuously link up and disconnected during the test,not offen :

    success case (with default 32bytes package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x796d
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x3800
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0077
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xaf02
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0000
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0000
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0x0000

     fail case  (with large package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x796d
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x3800
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0077
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xaf02
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0004
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0000
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0x0000

  • Hi Lance,

    Register 0x15 is showing no RX_ER errors, and register 0x135 is showing no CRC errors. Register 0x1 shows link is up and has not gone down since the last read. This indicates the PHY can receive packets properly, and the issue is on the MAC side or at the application level. I suggest investigating more in those locations.

    Thanks,

    David

  • Hi Lance,

    To gain further confidence, can you read back registers 0x225, 0x265, 0x2A5, 0x2E5. These registers give us an indication of link quality. 

    Further, we can have a look at your layout if you would like to share it.

    Thanks,

    David

  • Hi David,

    Please help to check the follow register values, the three register value alway changed when I keep reading them during ping command fail, if this happened the ping command always fail even if with default 32 bytes package size, only reconnect the cable to recovere it. 

    By the way, I will send the layout tomorrow:

    Register[0x0001] value was changed between 0x796d and 0x7969 
    Register[0x000a] value was changed between 0x68ff and 0x78ff 
    Register[0x0011] value was changed between 0xab02 and 0xaf02

    success case (with default 32bytes package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x796d
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x7800
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0077
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xaf02
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0000
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0000
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0xffea
    Register[0x0225]= 0xffea
    Register[0x0265]= 0xffea
    Register[0x02a5]= 0xffea
    Register[0x02e5]= 0xffea

    fail case  (with large package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x7969
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x68ff
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0077
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xab02
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0504
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0008
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0xffea
    Register[0x0225]= 0xffea
    Register[0x0265]= 0xffea
    Register[0x02a5]= 0xfffea
    Register[0x02e5]= 0xffea

  • Hi Lance,

    Looks like the link is dropping. Does this only happen when the large packets are being sent?

    Also, the extended registers are not being read correctly (0x0135, 0x0225, etc.). For these registers, you must follow the process described in section 8.4.2.1 of the datasheet. Could you also add register 0x6E to the dump?

    I will review your schematic and get back to you.

    Thanks,

    David

  • Hi David,

    I`m on PTO these two days and I'll check it when I get back to the office. Thank you!

  • Okay, let me know.

    Thanks,

    David

  • Hi David,

    please review the updated test data:

    success case (with default 32bytes package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x796d
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x7800
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0021
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xac02
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0000
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0000
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0x0000
    Register[0x0225]= 0x0034
    Register[0x0265]= 0x0023
    Register[0x02a5]= 0x0033
    Register[0x02e5]= 0x003c
    Register[0x006e]= 0x0021

    and the following registers`s value always changed:

    ===============sleep 500ms===================
    Register[0x0265]= 0x0023 VS 0x002b
    Register[0x02a5]= 0x0033 VS 0x0034
    Register[0x02e5]= 0x003c VS 0x0033
    ===============sleep 500ms===================
    Register[0x0225]= 0x0034 VS 0x0033
    Register[0x0265]= 0x002b VS 0x0043
    Register[0x02a5]= 0x0034 VS 0x0033
    Register[0x02e5]= 0x0033 VS 0x002d
    ===============sleep 500ms===================
    Register[0x0225]= 0x0033 VS 0x0042
    Register[0x0265]= 0x0043 VS 0x0028
    Register[0x02a5]= 0x0033 VS 0x0043
    Register[0x02e5]= 0x002d VS 0x004c
    ===============sleep 500ms===================
    Register[0x0225]= 0x0042 VS 0x0033
    Register[0x0265]= 0x0028 VS 0x0027
    Register[0x02a5]= 0x0043 VS 0x0032
    Register[0x02e5]= 0x004c VS 0x0032
    ===============sleep 500ms===================
    Register[0x0265]= 0x0027 VS 0x0043
    Register[0x02a5]= 0x0032 VS 0x0033
    Register[0x02e5]= 0x0032 VS 0x0044
    ===============sleep 500ms===================
    Register[0x0225]= 0x0033 VS 0x004f
    Register[0x0265]= 0x0043 VS 0x0024
    Register[0x02a5]= 0x0033 VS 0x0049
    Register[0x02e5]= 0x0044 VS 0x004c
    ===============sleep 500ms===================
    Register[0x0225]= 0x004f VS 0x0057
    Register[0x0265]= 0x0024 VS 0x0043
    Register[0x02a5]= 0x0049 VS 0x0034
    ===============sleep 500ms===================
    Register[0x0225]= 0x0057 VS 0x0033
    Register[0x02a5]= 0x0034 VS 0x004a
    Register[0x02e5]= 0x004c VS 0x0035
    ===============sleep 500ms===================
    Register[0x0225]= 0x0033 VS 0x0031
    Register[0x0265]= 0x0043 VS 0x002b
    Register[0x02a5]= 0x004a VS 0x0049
    Register[0x02e5]= 0x0035 VS 0x004b

    ....

    fail case  (with large package size):

    Register[0x0000]= 0x1140
    Register[0x0001]= 0x796d
    Register[0x0002]= 0x2000
    Register[0x0003]= 0xffffa231
    Register[0x0004]= 0x01e1
    Register[0x0005]= 0xffffcde1
    Register[0x0006]= 0x006d
    Register[0x0007]= 0x2001
    Register[0x0008]= 0x6001
    Register[0x0009]= 0x0300
    Register[0x000a]= 0x78ff
    Register[0x000b]= 0x0000
    Register[0x000c]= 0x0000
    Register[0x000d]= 0x401f
    Register[0x000e]= 0x0021
    Register[0x000f]= 0x3000
    Register[0x0010]= 0x5048
    Register[0x0011]= 0xffffa802
    Register[0x0012]= 0x0000
    Register[0x0013]= 0x0504
    Register[0x0014]= 0x29c7
    Register[0x0015]= 0x0001
    [29085.455872] cpsw 4a100000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
    Register[0x0016]= 0x0000
    Register[0x0017]= 0x0040
    Register[0x0018]= 0x6b50
    Register[0x0019]= 0x4004
    Register[0x001a]= 0x0002
    Register[0x001b]= 0x0000
    Register[0x001c]= 0x0000
    Register[0x001d]= 0x0000
    Register[0x001e]= 0x0002
    Register[0x001f]= 0x0000
    Register[0x0135]= 0x0000
    Register[0x0225]= 0x004c
    Register[0x0265]= 0x003c
    Register[0x02a5]= 0x004c
    Register[0x02e5]= 0x0033
    Register[0x006e]= 0x0021
    ===============sleep 500ms===================
    Register[0x0001] value was changed: 0x796d VS 0x7969 (before VS after)
    Register[0x02a5]= 0x004c VS 0x0047
    Register[0x02e5]= 0x0033 VS 0x0031
    ===============sleep 500ms===================
    Register[0x0011] value was changed: 0xffffa802 VS 0xffffac02 (before VS after)
    Register[0x0225]= 0x004c VS 0x0046
    Register[0x0265]= 0x003c VS 0x003b
    Register[0x02a5]= 0x0047 VS 0x0048
    Register[0x02e5]= 0x0031 VS 0x0046
    ===============sleep 500ms===================
    Register[0x0225]= 0x0046 VS 0x004f
    Register[0x0265]= 0x003b VS 0x0026
    Register[0x02a5]= 0x0048 VS 0x0034
    Register[0x02e5]= 0x0046 VS 0x002c
    ===============sleep 500ms===================
    [29088.575630] cpsw 4a100000.ethernet eth1: Link is Down
    Register[0x000a] value was changed: 0x78ff VS 0x68ff (before VS after)
    Register[0x0225]= 0x004f VS 0x004c
    Register[0x0265]= 0x0026 VS 0x003b
    Register[0x02a5]= 0x0034 VS 0x0035
    Register[0x02e5]= 0x002c VS 0x0043
    ===============sleep 500ms===================
    Register[0x0225]= 0x004c VS 0x0034
    Register[0x0265]= 0x003b VS 0x003e
    Register[0x02a5]= 0x0035 VS 0x003a
    Register[0x02e5]= 0x0043 VS 0x004a
    ===============sleep 500ms===================
    Register[0x0225]= 0x0034 VS 0x004b
    Register[0x0265]= 0x003e VS 0x003c
    Register[0x02a5]= 0x003a VS 0x0033
    Register[0x02e5]= 0x004a VS 0x002c
    ===============sleep 500ms===================
    [29090.655857] cpsw 4a100000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
    Register[0x000a] value was changed: 0x68ff VS 0x78ff (before VS after)
    Register[0x0225]= 0x004b VS 0x004a
    Register[0x0265]= 0x003c VS 0x0024
    Register[0x02a5]= 0x0033 VS 0x004b
    Register[0x02e5]= 0x002c VS 0x0048
    ===============sleep 500ms===================
    Register[0x0225]= 0x004a VS 0x0033
    Register[0x0265]= 0x0024 VS 0x003b
    Register[0x02a5]= 0x004b VS 0x0033
    Register[0x02e5]= 0x0048 VS 0x002c
    ===============sleep 500ms===================
    [29092.735633] cpsw 4a100000.ethernet eth1: Link is Down
    Register[0x0011] value was changed: 0xffffac02 VS 0xffffa802 (before VS after)
    Register[0x0225]= 0x0033 VS 0x0030
    Register[0x02a5]= 0x0033 VS 0x0034
    Register[0x02e5]= 0x002c VS 0x0032
    ===============sleep 500ms===================
    Register[0x0225]= 0x0030 VS 0x002d
    Register[0x0265]= 0x003b VS 0x003c
    Register[0x02a5]= 0x0034 VS 0x0033
    Register[0x02e5]= 0x0032 VS 0x0044
    ===============sleep 500ms===================
    Register[0x0225]= 0x002d VS 0x0034
    Register[0x0265]= 0x003c VS 0x003d
    Register[0x02a5]= 0x0033 VS 0x0034
    Register[0x02e5]= 0x0044 VS 0x004d
    ===============sleep 500ms===================
    Register[0x0225]= 0x0034 VS 0x0031
    Register[0x0265]= 0x003d VS 0x0023
    Register[0x02a5]= 0x0034 VS 0x0033
    Register[0x02e5]= 0x004d VS 0x0046
    ===============sleep 500ms===================
    Register[0x0001] value was changed: 0x7969 VS 0x796d (before VS after)
    Register[0x0225]= 0x0031 VS 0x0033
    Register[0x0265]= 0x0023 VS 0x003e
    Register[0x02e5]= 0x0046 VS 0x003b
    ===============sleep 500ms===================
    Register[0x0001] value was changed: 0x796d VS 0x7969 (before VS after)
    Register[0x000a] value was changed: 0x78ff VS 0x68ff (before VS after)
    Register[0x0265]= 0x003e VS 0x0040
    Register[0x02a5]= 0x0033 VS 0x0047
    Register[0x02e5]= 0x003b VS 0x0034
    ===============sleep 500ms===================
    Register[0x0001] value was changed: 0x7969 VS 0x796d (before VS after)
    Register[0x000a] value was changed: 0x68ff VS 0x78ff (before VS after)
    Register[0x0011] value was changed: 0xffffa802 VS 0xffffac02 (before VS after)
    Register[0x0265]= 0x0040 VS 0x003c
    Register[0x02a5]= 0x0047 VS 0x0045
    Register[0x02e5]= 0x0034 VS 0x002f
    ===============sleep 500ms===================
    Register[0x0001] value was changed: 0x796d VS 0x7969 (before VS after)
    Register[0x000a] value was changed: 0x78ff VS 0x68ff (before VS after)
    Register[0x0011] value was changed: 0xffffac02 VS 0xffffa802 (before VS after)
    Register[0x0265]= 0x003c VS 0x003b
    Register[0x02a5]= 0x0045 VS 0x004b
    Register[0x02e5]= 0x002f VS 0x0034
    ===============sleep 500ms===================
    Register[0x0225]= 0x0033 VS 0x003d
    Register[0x0265]= 0x003b VS 0x0041
    Register[0x02e5]= 0x0034 VS 0x002c
    ===============sleep 500ms===================
    Register[0x0011] value was changed: 0xffffa802 VS 0xffffac02 (before VS after)
    Register[0x0225]= 0x003d VS 0x004a
    Register[0x0265]= 0x0041 VS 0x0040
    Register[0x02a5]= 0x004b VS 0x0034
    Register[0x02e5]= 0x002c VS 0x0045
    ===============sleep 500ms===================
    Register[0x0225]= 0x004a VS 0x002c
    Register[0x0265]= 0x0040 VS 0x003f
    Register[0x02e5]= 0x0045 VS 0x0048
    ===============sleep 500ms===================
    Register[0x000a] value was changed: 0x68ff VS 0x78ff (before VS after)
    Register[0x0225]= 0x002c VS 0x0030
    Register[0x0265]= 0x003f VS 0x003c
    Register[0x02a5]= 0x0034 VS 0x0033
    Register[0x02e5]= 0x0048 VS 0x004c
    ===============sleep 500ms===================
    Register[0x0225]= 0x0030 VS 0x0031
    Register[0x0265]= 0x003c VS 0x003f
    Register[0x02a5]= 0x0033 VS 0x0044
    Register[0x02e5]= 0x004c VS 0x0045
    ===============sleep[29103.135874] cpsw 4a100000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
    500ms===================

  • Hi Lance,

    Thank you for this updated register dump. I will go through it and get back to you asap.

    Thanks,

    David

  • Hi Lance,

    Can you please recap the issue and progress that has been made? I know this issue is being handled on email thread as well. Have you been working with the MAC team and checking on the application level?

    Everything you have sent earlier in this thread did not indicate any issue on the PHY level. Link was up, there were no RX_ER errors or CRC errors, and the MSE shows excellent link quality. 

    Now you have shared a log in which link is intermittently dropping. Is the issue link drop or packet loss?

    From the latest log, I also see register 0x000A bit [12] is toggling, indicating an issue with the remote receiver. What link partner is being used? Please try connecting several other link partners to see if that is the issue.

    Thanks,

    David

  • Hi David,

    OK, I will also update the progress that has been made on email thread. 

    Do you mean TI`s MAC team in NA ?  Can you forward the thread to your MAC team colleagues ?  Thanks!

    By the way, I have changed another link partner and no link drop happened, but packet loss issue is till exist. The new discovery is that no packet lost if ping PC IP address from the controller command line, however the packets loss issue will happened if ping the controller IP address from PC command line.

  • Hi Lance,

    I see you have an open thread with the processor team here. They will respond within 24 hours. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1159873/processor-sdk-am335x-am335x-gigabit-ethernet-lost-package-issue

    I do not think there is any further issue the PHY team can help resolve here. Would you agree?

    Thanks,

    David

  • David,

    #1. Customer said on their AM335x + PHY KSZ9031 board works fine

    #2. Customer did a experience to modify AM335x PLL, increase the CORE PLL from 1000M to 1001-1004, which increase RGMII clock from 125MHz to 125.125125.5MHz. then no package dropped. 

    How do you think this clue?

  • Hi Tony,

    This points to a PPM difference between MAC and PHY. Can you please measure the TX_CLK, RX_CLK , and CLKOUT pin frequencies in the highest resolution you can. We will look for any difference here.

    Thanks,

    David