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.

DP83869HM: Unstable link issues with partner and unstable connexion

Part Number: DP83869HM

Hi,

We have designed a custom board using the DP83869HM as RGMII to copper interface. All configuration is done through strapping to set up the device as RGMII to Copper, 1000Base-T/100Base-TX/10Base-Te with Auto-negotiation, 1000/100/10 advertised, and Auto MDI-X. Which matches the values read on register STRAP_STS (0x6E) which is all 0x00

We are facing a couple issues that we can't get our head around.

First issue is that during boot up and after finalizing the PHY auto-negotiation we are facing several link down/up cycles until it stabilizes. Sometimes link stabilizes at 1Gb and sometimes it stabilizes by dropping to 100Mb sometimes it does not stabilize at all. The second issue which only occurs to one of the board we are testing is that during a period of usage the link would go down and thus restart the auto-negotiation or sometimes the board reboots itself.

We read the PHY registers when the link status goes down and after link status comes back up to try find the issue and nothing really stands out other than on register GEN_STATUS1 (0xA) shows the bit 12 (REM_RCVR_STATUS) as 0 or remote receiver not OK

We think there might be something else happening other than the remote receiver not being OK because we have tried with different partners (modems, routers, switches), cables (CAT5a, CAT6, CAT7, CAT8), and different boards even and they all experience the same behavior.

One sort of hacky solution we found for issue 1 is that if we add a 50ms delay after finalizing auto-negotiation and before we read the link status register we get a stable connection right away at 1Gb, and we are not sure that 50ms delay fixes it. However, one of the boards still might have a link drop at some point during usage

Any suggestions?

Note: we are not using linux, we are using mAbassi RTOS

Here are the register reads we are seeing

After link goes down:

[0x0] - 0x1000
[0x1] - 0x7969
[0x2] - 0x2000
[0x3] - 0xA0F1
[0x4] - 0x1E1
[0x5] - 0xCDE1
[0x6] - 0x6F
[0x7] - 0x2001
[0x8] - 0x6001
[0x9] - 0x300
[0xA] - 0x2800
[0xD] - 0x401F
[0xE] - 0x0
[0xF] - 0xF000
[0x10] - 0x5048
[0x11] - 0xA802
[0x12] - 0x0
[0x13] - 0x1C40
[0x14] - 0x29C7
[0x15] - 0x0
[0x16] - 0x0
[0x17] - 0x40
[0x18] - 0x6150
[0x19] - 0x4444
[0x1A] - 0x2
[0x1E] - 0x12
[0x1F] - 0x0
[0x25] - 0x480
[0x2C] - 0x141F
[0x2D] - 0x0
[0x2E] - 0x221
[0x31] - 0x10B0
[0x32] - 0xD0
[0x33] - 0x0
[0x37] - 0x0
[0x39] - 0x0
[0x3A] - 0x0
[0x43] - 0x7A0
[0x4F] - 0x200
[0x6E] - 0x0
[0x86] - 0x77

After link comes back up:

[0x0] - 0x1000
[0x1] - 0x796D
[0x2] - 0x2000
[0x3] - 0xA0F1
[0x4] - 0x1E1
[0x5] - 0xCDE1
[0x6] - 0x6D
[0x7] - 0x2001
[0x8] - 0x6001
[0x9] - 0x300
[0xA] - 0x3800
[0xD] - 0x401F
[0xE] - 0x0
[0xF] - 0xF000
[0x10] - 0x5048
[0x11] - 0xAC02
[0x12] - 0x0
[0x13] - 0x400
[0x14] - 0x29C7
[0x15] - 0x0
[0x16] - 0x0
[0x17] - 0x40
[0x18] - 0x6150
[0x19] - 0x4444
[0x1A] - 0x2
[0x1E] - 0x12
[0x1F] - 0x0
[0x25] - 0x480
[0x2C] - 0x141F
[0x2D] - 0x0
[0x2E] - 0x221
[0x31] - 0x10B0
[0x32] - 0xD0
[0x33] - 0x0
[0x37] - 0x0
[0x39] - 0x0
[0x3A] - 0x0
[0x43] - 0x7A0
[0x4F] - 0x200
[0x6E] - 0x0
[0x86] - 0x77