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.

DP83867IS: SGMII Interface fails to establish 1Gbps connection selectively

Part Number: DP83867IS

Hi,

We have a custom board designed with xilinx Zynq Ultrascale+ FPGA. We have connected it to two ethernet ports. 1 port operated using SGMII(4 wire) interface and the other through RGMII. PHYs used are the same(DP83867ISRGZT). When I connected the port on RGMII to the PC(capable of 1GBps) I see 1 gigabit link is established. But the same does not happen with SGMII connected port. It always downshifts the link to 100mbps. I need to mention here that SGMII was still able to establish 1gigabit connection on few other ports but it is very selective. SGMII failed to establish 1GBps link on some of the ports where RGMII was able to. Could you please let me know what could be the issue and how to solve it/debug it?

Thanks in Advance and Best Regards,

Arjun

  • Hello Arjun,

    Can you share the register data of the SGMII PHY after it has linked to 100mbps, registers 0x00-0x1F will provide a clearer picture of the PHY performance? Are you using the PC as a link partner for each PHY over RJ45 connections or connecting on the MAC side of the PHY?

    Regards,
    Justin 

  • Hi Justin,

    Please find the register value as read from the PHY when 100mb link is established. All values are in hex.

    ZynqMP> mii read 0x02 0x00
    1140
    ZynqMP> mii read 0x02 0x01
    7969
    ZynqMP> mii read 0x02 0x02
    2000
    ZynqMP> mii read 0x02 0x03
    A231
    ZynqMP> mii read 0x02 0x04
    01E1
    ZynqMP> mii read 0x02 0x05
    CDE1
    ZynqMP> mii read 0x02 0x06
    006F
    ZynqMP> mii read 0x02 0x07
    2001
    ZynqMP> mii read 0x02 0x08
    6001
    ZynqMP> mii read 0x02 0x09
    0300
    ZynqMP> mii read 0x02 0x0a
    0000
    ZynqMP> mii read 0x02 0x0b
    0000
    ZynqMP> mii read 0x02 0x0c
    0000
    ZynqMP> mii read 0x02 0x0d
    401F
    ZynqMP> mii read 0x02 0x0e
    0000
    ZynqMP> mii read 0x02 0x0f
    3000
    ZynqMP> mii read 0x02 0x10
    5840
    ZynqMP> mii read 0x02 0x11
    7C02
    ZynqMP> mii read 0x02 0x12
    0000
    ZynqMP> mii read 0x02 0x13
    5D46
    ZynqMP> mii read 0x02 0x14
    29C7
    ZynqMP> mii read 0x02 0x15
    0000
    ZynqMP> mii read 0x02 0x16
    0000
    ZynqMP> mii read 0x02 0x17
    0040
    ZynqMP> mii read 0x02 0x18
    6150
    ZynqMP> mii read 0x02 0x19
    4444
    ZynqMP> mii read 0x02 0x1a
    0002
    ZynqMP> mii read 0x02 0x1b
    0000
    ZynqMP> mii read 0x02 0x1c
    0000
    ZynqMP> mii read 0x02 0x1d
    0000
    ZynqMP> mii read 0x02 0x1e
    0002
    ZynqMP> mii read 0x02 0x1f
    0000

    I have connected PC as link partner over RJ45 connection.

    Best Regards,

    Arjun

  • Hi Arjun,

    Register 0x000A[11:10]=[00] indicates that the link partner is not advertising 1000Base-T capability. Can you verify that a port that connects to PHY with RGMII interface reads that the link partner is advertising 1000Base-T?

    Regards,
    Justin 

  • Hi Justin,

    I have confirmed this. The RGMII port works perfectly with the same port in 1000Base-T. In SGMII mode I can see that the advertisements from the par tner starts with 1000Base-T negotiation but then it quickly drops it and goes into multiple negotiation routines where it toggles with 10mbps, 100mbps and 1000mbps for sometime before settling at 100mbps. Not sure why this is so. If I force SGMII to 1000Mbps fixed speed then link never gets established.

    Best Regards,

    Arjun

  • Hi Arjun,

    Forcing SGMII to 1000Mbps is not in the ethernet standard so it will not work for this device. Can you share register 0x6e and 0x6f values in both RGMII mode and SGMII mode to ensure that your strap settings are not interfering with the auto-negotiation?

    Regards,
    Justin