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.

DP83825I: Difference of PHY reseting ways

Expert 2831 points
Part Number: DP83825I

Tool/software:

Difference of PHY  reseting ways

Hello,

May I have question about PHY reseting way?

I think there is some way to reseting.

My customer is tested this:

A. Assert PHYRCR_Register bit 15 from Host processor

B. First assert Low RST_N pin, Second set PHYRCR_Register bit 14 from Host processor

These ways are same approach to reset digitalcore and registers.

However only B have issue that not link up after reset in rarely.

Compleatly same hardware, only change reset way B to A, The issue has solved.

Is there any difference in internal PHY controll, disital core operation, and so?

Thanks,

GR

  • Hi GR,

    For case B, is host processor writing bit 14 while RST_N is low?

    Register reads/writes will not take effect while PHY is held in reset. Please see if case B has issues if writing PHYRCR bit 14 after RST_N is high.

    PHYRCR[15] is functionally the same as asserting RST_N low. PHYRCR[14] will restart the PHY's internal state machine - these sequences are both valid for full HW/SW reset:

    1) Reset by asserting RST_N low->high. Write 0x1F = 0x4000 after this hardware reset.

    2) Reset by writing 0x1F = 0x8000. Write 0x1F = 0x4000 after this hardware reset.

    Thank you,

    Evan 

  • Hi Evan,

    Thanks for your information.

    For case B, is host processor writing bit 14 while RST_N is low?

    Register reads/writes will not take effect while PHY is held in reset. Please see if case B has issues if writing PHYRCR bit 14 after RST_N is high.

    It should be no.

    My customer is using though Linux kernel API.

    Functions of writeing PHY register should be re-write(send same command) if phy_write() retrun error(=mean can't write).

    PHYRCR[15] is functionally the same as asserting RST_N low. PHYRCR[14] will restart the PHY's internal state machine - these sequences are both valid for full HW/SW reset:

    1) Reset by asserting RST_N low->high. Write 0x1F = 0x4000 after this hardware reset.

    2) Reset by writing 0x1F = 0x8000. Write 0x1F = 0x4000 after this hardware reset.

    Do you have any need-delay-time between RST_N Low->high and writing PHYRCR[14] in 1)?

    And RST_N Low -> High and writing PHYRCR[15] is comleatly same operation?

    If there is information and difference (A and B way) of internal controll flow, Could you let me know?

    (If need NDA, please let me know. I will contact TI local sales)

    Thanks,

    GR

  • Hi GR,

    I see, so phy_write() will continuously write the register until the error is not returned? This is okay, as long as a write will occur after RST_N is high.

    Do you have any need-delay-time between RST_N Low->high and writing PHYRCR[14] in 1)?

    Yes, I recommend waiting at least 2ms after RST_N is high:

    And RST_N Low -> High and writing PHYRCR[15] is comleatly same operation?

    They are functionally similar for restarting the PHY, with one difference:

    Using RST_N pin will sample the strapped pins again to set PHY config to strapped values, while PHYRCR[15] will reset all registers to default values independent of straps.

    Both resets are valid methods for restarting the PHY, but RST_N is generally more consistent as it's not dependent on register access.

    Thank you,

    Evan

  • Hi Evan,

    Sorry to late reply.

    I understand.

    Thanks for the information.

    Best regards,

    GR