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: 1GBPS Not Working

Part Number: DP83867IR

Hi, There, 

 

We are using Texas - DP83867IRRGZR in one of our design. 

We build around, 1K units in production and most of them are working fine at 1GBPS. 

But our production has come across around 4 units  (out of around 1K units) which has issue to communicate at 1GBPS but working fine at 100MBPS. 

 

I verified few, registers on SMI bus. 

 Non working unit Registers value.  

 => mdio read FEC0 0x3 0x01 

1 - 0x7949 

 => mdio read FEC0 0x3 0x08 

8 - 0x6801 

=> mdio read FEC0 0x3 0x0A 

10 - 0x0800 

 => mdio read FEC0 0x3 0x11 

17 – 0x7f02 

=> mdio read FEC0 0x3 0x11 

17 - 0x6f02 

 => mdio read FEC0 0x3 0x13 

19 – 0x9c40 

 

Working unit Registers value.  

 => mdio read FEC0 0x3 0x01 

1 - 0x796d 

=> mdio read FEC0 0x3 0x08 

8 - 0x4000 

=> mdio read FEC0 0x3 0x0A 

10 - 0x3800 

=> mdio read FEC0 0x3 0x11 

17 – 0xbf02 

 => mdio read FEC0 0x3 0x11 

17 - 0xaf02 

 => mdio read FEC0 0x3 0x13 

19 – 0x1c40 

 

Initial thought drive me that, Auto negotiation on Non working unit is failing at 1GBPS. Due to with ssh and ping was not responding on these units. 

 

I tried setting this Non Working unit to manually operate on 100MBPS using command,  

`sudo ethtool -s eth0 autoneg on speed 100 duplex full` 

 With this change unit started responding at 100MBPS for ssh and ping. 

But if I set Non working unit to operate at 1 GBPS, I again see same issue. 

We checked components and possible dry solder on non working units but we found things same between Non working and Working units. 

 

This is initial information from my side to start this thread, 

I need support from you,  

Where should I look for root cause. ? I mean, DP83867IRRGZR  H/W register configuration (Schematic) , Clock , PCB Design …..... 

 Let me know what more information you need from me. 

And sorry for such a long email, Slight smile. But I spend more time in investigation so though I should start thread with as much information as I can. 

 

Thanks, 

Suhant Raval 

 

  • Hi Suhant,

    Thank you for the detailed query. Please allow me until Wednesday 2/7 to review and get back to you with feedback.

    Best regards,

    Evan

  • Hi Suhant,

    For the 4 failing PHYs, is gigabit ssh/ping failing at 100% rate?

    This may be due to marginality in meeting the RGMII timing spec, are you able to test in RGMII shift/align modes for different delays?

    0x32[1:0] to enable TX/RX shift or align mode

    0x86[7:0] to tune RGMII TX/RX delay in shift mode

    If this test does not solve the gigabit link issue, then I recommend an ABA swap with the DP83867 with a working board to isolate this to a board-level or PHY-level issue.

    Thank you,

    Evan

  • Hi, Evan,

     

    Sorry for late reply.

     I checked internally, for ABA swap with the DP83867 with a working board to isolate this to a board-level or PHY-level issue,

    We are using DP83867IRRGZR -  VQFN48(7x7)_0.5_EP package, our facility is not equipped to do it easily so we can not perform this swapping of DP83867.

     

    I tried following things.

     root@MK6:~# sudo phytool write eth0/0x3/0x32 0x0003

    root@MK6:~# sudo phytool read eth0/0x3/0x32

    0x0003

    And ping/ssh on other terminal, but this did not helped, I did not Rebooted, my unit.

     

    Also I tried,

    root@MK6:~# sudo phytool read eth0/0x3/0x86

    0x0066

    root@MK6:~# sudo phytool write eth0/0x3/0x86 0x00FF

    root@MK6:~# sudo phytool read eth0/0x3/0x86

    0x0066

    But, I could not change 0x86 register values,

    Am I doing some thing wrong ?

    Do I need to enable writing on 0x86 register by some way ?

    I checked Boot strap for RGZ RGMII Transmit Clock Skew Details in Schematic / PCB, they are all not connected (set to mode 0)

     

    Based on your instruction I can perform more action here.

     

    Thanks

    Suhant

  • Hi Suhant,

    MMD extended register procedure is required to access registers above 0x1F, here is an FAQ with phytool example of this procedure.

    Thank you,

    Evan