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: Enable and Test BIST/loopback mode for troubleshooting h/w

Part Number: DP83867IR
Other Parts Discussed in Thread: AM6421

Tool/software:

Hello Team,

   We have a custom designed board based on AM6421 SoC with DP83867IR phy connected to CPSW RGMII1.

   The problem is that the link is not stable when the link speed is set to 1Gbps. If we reduce it to 10Mbps it becomes more stable

   We analyzed the network traffic with tcpdump/wireshark we see many packets are dropped even at 10Mbps causing lot of delays in ssh/scp or any other tcp traffic

   Hence to isolate and find the root cause/faulty element in the chain, we want to enable loopback mode. We have tried to set phy registers as per DP83867 Troubleshooting Guide (Rev. C)

   But we are not able to get it working. It says it is locked, but the packet counter never increments. sometimes it does not lock at all

  Can someone provide exact commands/register values to set in order to enable loopback on various links in the chain e.g. MII, AFE, PHY etc.

Regards,

Akshay D

  • Hi Akshay, 

    What do you mean it is locked?

    For loopback mode, please follow the register description in 0x0016 register. 




    For MII loopback, this can be enabled by setting bit 14 of 0x0000 register high. 

    Best,
    J

  • Hello,

       Thanks for the clarification. We wanted to enable the BIST.

       Referring to this section from the guide

       

        Followed the same guide. But packet received or any other counts are not changing.

       Tried different loopback paths like analog or digital. But not able to get it working

    Regards,

    Akshay D

  • Hi Akshay, 

    Which speed are you testing? Also, what are you using to access the MDIO?

    The wording in the script is a bit confusing, but the first entry is the register address and the second number is the value to write to the register. 

    In the note when they say write 0000 to 2100, the script is meant to say write 0x2100 to the register 0x0000. 

    Can you share us what your reads are on the register 0x0000, 0x0016 and 0x0017 when you enable the packet generation along with the loopback?

    Best,
    J

  • Hello J,

        Apologies for late response.


        As we are facing issue on 1 Gbps speed, all operations are being done at 10Mbps

       We have followed through the test script as you have mentioned. But when testing, the BIST doesn't work. e.g. if there are errors in the loopback it should increment the error counter, if loopback is successful, it should increment the success count. However, both the counts remain same.

    Regards,

    Akshay D

  • Hi Akshay, 

    Is your MDI pins terminated to 100ohm?
    If not, have you tried digital loopback, or PCS loopback?
    If the internal BIST isn't working or termination is not an option, I also suggest to try putting the PHY in reverse loopback and then connect to another PHY to generate packets and send packets to the DUT. 
    Best,
    J

  • Hello J,

       We do not have 100E termination on MDI.

       However, we have tried various configurations. But haven't got any of the test working (or at we think so that we haven't).

       We have an EVM board with us. What we want is steps to perform the BIST. We will run it on EVM. We can safely say that on EVM everything will work fine. So, it becomes our benchmark system.

      We will perform same procedure on the custom board we have and compare the results.

      We want at least one good test setup. This can be EVM. and accordingly we will compare out custom board.

    Regards,

    Akshay D

  • Hi Akshay, 

    If you do not have 100E termination, I suggest to plug an ethernet cable on the DUT and then plug another TI PHY as a link partner. Because our PHYs have internal termination, it will effectively give the same effect. 

    I tried digital loopback and analog loopback with the given scripts in the troubleshooting guide and I was able to see the lock happening + the packet counter going up along with the link LED lighting up. I didn't see packet counter incrementing nor the lock going high in PCS loopback. This can be because PCS loopback is before internal the packet generator. 

    Few things to note:
    Be careful when you write to 0x0016 register since the first byte determines which loopback mode you are in. 
    I noticed that our script mentions 0016 writes a few times but the value seems to be different especially in the second script when we tell the users to write D004 to register 0016. 

    Please keep the first byte same (XXX8 for analog, XXX4 for digital, XXX3 for PCS loopback) so the loopback mode stays in place. 

    Please let me know if you can reproduce the correct behavior on the EVM. 

    Best,
    J