If two DP83867PHYs are able to link up at 10Mbps and 100Mbps but not able to link up at 1Gbps, please refer to the following debug process:
Note: This errata only occur in old revision of the
DP83867PHY (Register 0x0003 = A0F1)
- Try software reset by writing register 0x001F = 4000 on one of the DP83867PHY
and see if that resolve the issue.
- Read register 0x0005[15] and If 0x0005 bit[15] = 0,
- Auto-MDIX is most likely
not complete. Both of the PHY is sending Auto-MDIX FLP_Brust in the same
channel at the same time and result in deadlock situation.
Solution:
- Change Auto MDIX timer on one of the PHY can prevent the deadlock
situation.
- Change register 0x002C bit[32] = 0 on one of the DP83867PHY
- write 0x001F to 4000 to
software reset the PHY
- Read register 0x0005[15] and If
0x0005 bit[15] = 1
- Auto-MDIX is complete and
Auto-negotiation pseudo random number (PRN) is most likely be the issue.
Pseudo random number (PRN) sending random number to determine
which PHY is Master PHY (clocked from a local source) and which one is
the slave PHY (clocked from the recovered clock on the received data
stream) when both PHY are communicate in 1000Base-T. This can be check
through register 0x000A bit[14].
- However, the PRN is not
exactly random and if both DP83867 start auto-negotiation at the same
time, there is a possibility both DP83867 send out the exact same random
seed (PRN) and result in dead lock.
Solution:
- Write 0x0009 bit[12:11] to 11 on one of the DP83867PHY and write 0x0009
bit[12 :11] to 10 on another DP83867PHY. This register can force one of
the PHY to always be MASTER in 1000Base-T communication to prevent the
Pseudo random number (PRN) process.
- Write 0x001F to 4000 to software reset the PHY or write 0x0000[9] =1 to
restart the auto-negotiation