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.

About BIST fail with internal loopback(BMCR->loopback bit set) on DP83848C.

Guru 10570 points
Other Parts Discussed in Thread: DP83848C


Hello,

I am designing target with DP83848C 100Mbps Ethernet PHY.
I have been able to be complete auto negotiation(Full Duplex/100Mbps), and link status is ok with PC.
But, ping command from PC to DP83x and from DP83x to PC could not be success.
I do not use Strap Option, so DP83x operate as default settings.

Does anyone advise me, please?

When I tried BIST(Built-in self test) with internal loopback(BMCR->loopback bit set), it was failed.

   Register dumping after BIST is below. [100Mbps, Internal Loopback]
   BMCR       0x00:0x6100
   BMSR       0x01:0x784d
   PHYIDR1    0x02:0x2000
   PHYIDR2    0x03:0x5c90
   ANAR       0x04:0x01e1
   ANLPAR/NP  0x05:0x0000
   ANER       0x06:0x0004
   ANNPTR     0x07:0x2001
   PHYSTS     0x10:0x060d
   MICR       0x11:0x0000
   MISR       0x12:0x0000
   FCSCR      0x14:0x0000
   RECR       0x15:0x0000
   PCSR       0x16:0x0100
   RBR        0x17:0x0001
   LEDCR      0x18:0x0000
   PHYCR      0x19:0x8121
   10BTSCR    0x1a:0x0904
   CDCTRL1    0x1b:0xff00
   EDCR       0x1d:0x6011

What is the meaning of BIST fail?
What should I do?

I appreciate your trivial information.
Thank you in advance.

Best regards,
RY

  • RY,

    You have taken a very good approach to the problem.  Getting the packet BIST working with internal loopback is a good first step to understanding the functionality you are seeing at the upper layers (e.g. ping). 

    Your register settings look correct and complete for operating packet BIST in internal loopback mode.  I would recommend that you confirm two aspects of your test setup:

    1. Make sure that the MII connections to the DP83848 are not being driven or pulled.
    2. Remove any cabling or connections to the RJ-45. 

    The first recommendation is the more important of the two.  The device should ignore any signaling from the RJ-45 during internal loopback.  However, if the MII inputs (e.g. TX_EN) are being driven or pulled during the test, it could cause a problem. 

    Patrick

  • Patrick,

    Thank you very much for your advise.
    I will check this!

    Best regards,
    RY

     

  • Hello, Patrick.

    For our basic confirming, we are using DP83848C Evaluation Module(DP83848C-MAU-EK) now.
    As MII host, I have connected AM335x Sitara Processor.

    We confirmed that auto negotiation is complete, link status is ok with PC, also BIST is passed both internal loopback and external loopback.
    But, we have not been able to success ping from PC and to PC.

    We are thinking that one of cause is not enough MDIO setting.
    And, another cause is EMAC setting is not enough.

    Our register dump of DP83x is below after ping command to PC.
    Do you have a problem somewhere in this?

    0x00:0x3100
    0x01:0x786d
    0x02:0x2000
    0x03:0x5c90
    0x04:0x01e1
    0x05:0xcde1
    0x06:0x000f
    0x07:0x2801
    0x10:0x0015
    0x11:0x0000
    0x12:0x2c00
    0x13:0x0000
    0x14:0x0000
    0x15:0x0000
    0x16:0x0100
    0x17:0x0001
    0x18:0x0000
    0x19:0x8021
    0x1a:0x0804
    0x1b:0x0000
    0x1c:0x0000
    0x1d:0x6011

    If you do not have any problem we would like to check EMAC setting.
    Could you check this?

    Best regards,
    RY

  • RY,

    The register settings for the Phy look correct.  To be absolutely certain, I would recommend that the registers are read multiple times.  Several Phy register bits latch low or high to preserve any change of status.  Reading the registers multiple times should ensure that the current value is being read and not a previously latched value.

    This is important in this case for the PHYSTS register (address 0x10).  For a good link, the Signal Detect (bit 10) and Descrambler Lock (bit 9) bits should be set.  In the registers provided, the PHYSTS register reads 0x0015.  For a good link, on re-reading this register I would expect a value of 0x615. 

    Assuming that the value of the PHYSTS register is correct on a re-read, we will need to expand the scope of the debug.  We may need to follow up with AM335x support team.  Could you provide more details on your overall system?  Are you using an AM335x EVM or a board of your own design?  Are you connecting the DP83848C EVM to the AM335x EMAC using the MII connector on the DP83848C EVM or are you using explicit wires to make the connections?

    Patrick

  • Hello, Patrick.

    Thank you so much for your answer.
    I was able to get 0x0615 value when I read PHYSTS register multiple times.
    I think you may have no problem with the configuration of the PHY with this?

    If yes, we would like to check AM335x EMAC registers again.

    I would like to answer about your questions.

    Patrick O'Farrell said:

    Are you using an AM335x EVM or a board of your own design?

    We are using our original target board.

    Patrick O'Farrell said:

    Are you connecting the DP83848C EVM to the AM335x EMAC using the MII connector on the DP83848C EVM or are you using explicit wires to make the connections?

    We are using DP83848C EVM using the wires to make the connection.

    Best regards,
    RY

  • Hello, Patrick.

    We have been able to succeed ping command in both DP83848C EVM and original target board.
    Thank you for helping me. I appreciate to you.

    Best regards,
    RY

  • Hi,

    I have moved your post to the Ethernet forum.  To help with better supporting and tracking your future questions in Ethernet, please post any new Ethernet related questions into this forum.

    Thanks!

    Patrick

  • HI, RY,

    I came aross the same problem .

    Can you share the way how you solve it ?

  • Hello, ge-san.

    Finally, AM335x register initialization was not enough in this problem.
    Please check following registers.

    gmii_sel
    conf_<module>_<pin> <-- pinmux
    CM_PER_CPGMAC0_CLKCTRL

    Best regards, RY

  • Hi, RY,

    what kind of interface you have used? gmii or mii? I'm using mii.

  • ge-san,
    I used MII.
    Best regards, RY

  • RY,

    Thanks for help!

    Best regards, geshuihuan