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.

DP83869HM: DP83869HM

Part Number: DP83869HM
Other Parts Discussed in Thread: USB-2-MDIO, , DP83869

Hi

The ethernet LED is OFF when connected and ON when disconnected

I suspect there is polarity issue

Please let me know,

  1. If the polarity can be changed using processor (example: in device tree etc.)
  2. If yes, kindly let me know the procedure
  • Hi Jay,

    Could you please provide more information

    Which LED?

    How is your device configured? What is the strapping configuration?

    Are you getting link up, are you able to send packets?

    Best,

    Alon

  • Hi

    Thanks for the reply

    Ethernet port LED functionality is not as expected.

    Link (green) and Activity (yelloiw) LEDs are ON when ethernet cable is not connected

    Link(green) is ON, Activity (yellow) is OFF when cable is connected

    We are getting link up and also able to send packets

    I'm not aware of the strap configuration

    1. How can strap configuration be checked

    2. Can the issue be resolved in software

  • Hi Alon

    Do you have any suggestions on the issue?

    Thanks in advance

  • Hi Jay,

    1. Strap configuration can be checked in register 0x6E as seen below.

    2. strapping configuration can be changed after start-up via software in the following registers as described in the datasheet.

    dp83869hm.pdf

    Additionally, I want to highlight that LED polarity can be changed via registers as well, as per your question.

    Please let me know if there are any further questions. 

    best,

    Alon

  • Hi Alon,

    Thank you so much for the reply.

    For accessing the PHY registers, we have been following the steps mentioned in this link: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/145031176/Reading+PHY+registers+over+MDIO+via+the+PHY+Management+GEM+Register

    We have enabled GEM3 management port and made the link to be down as mentioned in the same link.
    We are using the PHY address 0x5.

    We have validated that the PHY register read by reading the PHYIDR1 and PHYIDR2 register which gives out 0x2000 and 0xA0F1 respectively.

    For PHY write operation, we are trying to write the values into LEDS_CFG2 register. But the state of the LEDs do not change at any point. Reading back the LEDS_CFG2 gives the value that is written by us. We have tried different combination of values so that we could atleast see a change in the state of LEDs, but none works.

    Any idea what we are doing wrong?

    Also 0x5E is the value in STRAP_STS(0x6E) register

  • Hi Jay,

    For an easier time, we have a software support tool called "USB2MDIO", utilizing an MSP430. 

    https://www.ti.com/tool/ETHERNET-SW?keyMatch=ETHERNET%20SW

    What you are describing is odd, polarity should change upon configuring LEDS_CFG2 correctly. 

    What were your register writes?

    The strap status register seems fine, and you mention you get link up, and sending packets successfully, so operation is good, this is only an issue LEDs not behaving the way you would like them to. 

    Best,

    Alon 

  • Hi Alon

    Thank you for the response.

    We are using Xilinx's xazu7ev FPGA with DP83869HM PHY on our custom board. Our understanding is that the USB-2-MDIO tool works for TI microcontrollers and it also seems to require additional HW. Would you let us know how this would help in our case?

    During our debug, we had all the LEDs of the PHY ON. We aimed to turn it OFF by trying different combinations of configurations by writing to LEDS_CFG2 register. We have tried writing the values 0x0000, 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777 to LEDS_CFG2 register, hoping at least one of the LEDs would change its state, but we observe no change.

    Following is an example of writing 0x1111 to LEDS_CFG2 register.

    root@p27_01_2022:~# devmem 0xff0e0000 32 0x00000010
    root@p27_01_2022:~# devmem 0xff0e0034 32 0x62e60000
    root@p27_01_2022:~# devmem 0xff0e0034
    0x62E64000
    root@p27_01_2022:~# devmem 0xff0e0034 32 0x52e61111
    root@p27_01_2022:~# devmem 0xff0e0034 32 0x62e60000
    root@p27_01_2022:~# devmem 0xff0e0034
    0x62E61111

    As you can see, the register originally had 0x4000 and after writing 0x1111, it reads back the value that we write. This is supposed to change the polarity to active low and turn off the LEDs. But there is no change in LED state physically. We have also tried the other values mentioned above the same way.

    We have also included register dump of the PHY registers in the log file, if that would help us resolve our issue.

      REG: VALUE
    0x000: 0x3900
    0x001: 0x7949
    0x002: 0x2000
    0x003: 0xA0F1
    0x004: 0x01E1
    0x005: 0x0000
    0x006: 0x0064
    0x007: 0x2001
    0x008: 0x0000
    0x009: 0x1300
    0x00A: 0x4000
    0x00D: 0x0000
    0x00E: 0x0000
    0x00F: 0xF000
    0x010: 0x5028
    0x011: 0x0302
    0x012: 0x0000
    0x013: 0x0400
    0x014: 0x29C7
    0x015: 0x0000
    0x016: 0x0000
    0x017: 0x0000
    0x018: 0x6150
    0x019: 0x4000
    0x01A: 0x0002
    0x01E: 0x0012
    0x01F: 0x0000
    0x025: 0x0480
    0x02C: 0x141F
    0x02D: 0x0000
    0x02E: 0x0221
    0x031: 0x10B0
    0x032: 0x00D0
    0x033: 0x0000
    0x037: 0x0000
    0x039: 0x0000
    0x03A: 0x0000
    0x043: 0x07A0
    0x04F: 0x0200
    0x06E: 0x005E
    0x086: 0x0077
    0x134: 0x1000
    0x135: 0x0000
    0x170: 0x0C0F
    0x180: 0x0752
    0x181: 0xC850
    0x182: 0x5326
    0x183: 0xA01E
    0x184: 0xE976
    0x185: 0x19CF
    0x190: 0x0000
    0x191: 0x0000
    0x192: 0x0000
    0x193: 0x0000
    0x194: 0x0000
    0x195: 0x0000
    0x196: 0x0000
    0x197: 0x0000
    0x198: 0x0000
    0x199: 0x0000
    0x1A4: 0x0000
    0x1A5: 0x0000
    0x1A6: 0x0000
    0x1DF: 0x0040
    0x1E0: 0x417A
    0xC00: 0x0140
    0xC01: 0x6149
    0xC02: 0x2000
    0xC03: 0xA0F1
    0xC04: 0x0020
    0xC05: 0x0000
    0xC06: 0x0000
    0xC07: 0x2001
    0xC08: 0x0000
    0xC18: 0x01FF
    0xC19: 0x0010

  • Hi Jay,

    I recommended USB2MDIO because it makes it easier to interact with the PHY registers, and helps see the register writes easier. You are correct that it will require additional hardware as it will require a MSP430 LaunchPad, if you don't have one on hand, please do not worry about it. 

    As far as your registers writes, I tried understanding the code from the link you sent above, but I still do not think I fully understand how you are performing these register writes. Nevertheless, if it works we can keep going with it. 

    My only question is why are you writing 0x1111 to register 0x19? I understand that you are just trying to see if anything changes but it will be better if we can write the correct values for you current application. I can find the correct register write here if you could send me your schematic. 

    Additionally, just to verify since I understand you are using the Linux, you are using the Linux driver we offer for the DP83869?

    Best,

    Alon

  • I also want to ask whether the register dump you sent is after you performed the write operation?

    If it is after the write operation you performed, then the write didn't take, as I see register 0x19 is still showing 0x4000. 

    Best,

    Alon

  • Hi Alon,

    Thank you for the reply

    I've attached the schematics

    Meanwhile we are checking the driver that is being used currently

  • Hi Jay,

    Thank you for checking the Linux driver is being used correctly. 

    I am not seeing LED0, 1, 2 on the schematic, are they an active high or active low LEDs?

    I just want to write the register writes out for you and need to know the correct polarity for the register write. 

    Best,

    Alon

  • Hi Alon,

    Thanks for the response

    I'm not sure of the polarity. Could you let me know the correct register value for both active high and active low configurations?

    We are using Petalinux 2020.1.

    In Petalinux 2020.1 version we see driver support for device DP83869 is not present (Let me know if the understanding is correct) so we have enabled drivers for DP83867 device

    Support for DP83869 device driver is present from Petalinux version 2021.1 onwards

    1. Let me know if driver for DP83867 is compatible for DP83869 device

    2. Is there a way to integrate DP83869 driver to our system which runs on Petalinux 2020.1? Would it work?

    3. Do you think enabling DP83867 driver is causing LED issue

  • Hi Alon,

    Any suggestions on the issue?

  • Hi Jay,

    I will bring this up with the team, I am not familiar with Linux framework or its affects on functionality.

    Best,

    Alon 

  • Hi Jay,

    I am not familiar with the Petalinux framework, however not having the correct driver enabled could in theory present an issue operating the PHY correctly when performing register writes. 

    There is a chance that the DP83867 driver would cause this issue however there are too many variables to determine this. 

    If you would like I can write the register writes for the active high/low LED's however I don't believe that is the issue however I will be happy to if you would like.

    Best, 

    Alon 

  • Hi,

    We are trying to find a work around for this issue..

    Anyways could you please write out the register values for active high/active low configuration?

  • Hi Jay,

    If you want them active high, you have to set register 0x19 (LEDS_CFG2) to 0x4444, this register should be 0x4444 by default.

    To have them all driven low, you would have to set register 0x19 to 0x0000. 

    There are many settings you can play with, if you are able to get good communication from the PHY, and the LEDs are the only thing that is not working on your design, then perhaps try messing with the various LEDS_CFG registers alongside trying to make the Linux driver work with the Petalinux system you are running. 

    Please let me know how you design goes and if I can help more. 

    Best,

    Alon

  • Hi Jay,

    If there are no further questions, I will go ahead and close this forum. 

    Please reach out with any further query.

    Best,

    Alon