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.

DP83TC812S-Q1: switch port doesn't receive any packets

Part Number: DP83TC812S-Q1

Hi there,

The PHY has been connected to one of the port on a managed switch. The path looks like,

managed switch -> PHY -> T1-TX MediaCovnerter -> RJ45 -> Linux machine

The MC used in this case is EVB-LAN8770M_MC.

The PHY has been configured as slave per SNLA389A and the switch port link show active along with the MC Link LED Green.

However,

  1. When trying to ping the Linux machine from the switch VLAN, the port is only able to Tx transmit the packets and DOESN'T Rx receive any packets. 
  2. From the other side as well the observation is same, if trying to ping VLAN from Linux machine, the machine only Tx transmits packets but DOESN'T Rx receive packets.
  3. ABLE to ping switch VLAN via other CuPHY interface from the Linux machine

Does PHY registers needs to be configured to be able to receive packets?

How do I troubleshoot this? Is there any guide already?

Appreciate any help.

thx,

  • Hi J P,

    Did you have any previous correspondence on this issue with Gerome on this issue? If so, I can transfer this thread to Gerome.

    If this is a new issue, I can gladly help you with this.

    --
    Regards,
    Gokul.

  • Hi Gokul,

    Thanks for your reply.

    No. Gerome helped with my previous question so I hoped he would be able to help me with my question.

    But I welcome help from anyone on this.

    Do you have any instructions for me to try or any question that I could try answer.

    thx,

  • Hello J P,

    ABLE to ping switch VLAN via other CuPHY interface from the Linux machine

    Do you mean that this is working with some other PHY?

    Can you please share the following information with me?

    1. What is the MAC interface used?
    2. Can you please share the schematic with me?
    3. Can you also share the read values of the following registers? 0x0, 0x1, 0x0600, 0x0608, 0x0648, 0x045D?

    --
    Regards,
    Gokul.

  • Thanks for your reply Gokul,

    Yes, the switch has several internal CuPHYs and I can ping VLAN if I route my ping from linux pc via that network interface.

    1. It is using SGMII to talk to the switch port. Sorry if I didn't understand your question.

    2. Sorry, I can't share schematic due to export complications.

    3. Following are the values,

    # 0x0
    Value 15 8 7 0
    0x2100 0010.0001.0000.0000

    # 0x1
    Value 15 8 7 0
    0x0065 0000.0000.0110.0101

    # 0x600
    Value 15 8 7 0
    0x0030 0000.0000.0011.0000

    # 0x608
    Value 15 8 7 0
    0x027b 0000.0010.0111.1011

    # 0x648
    Value 15 8 7 0
    0x0120 0000.0001.0010.0000

    # 0x45D
    Value 15 8 7 0
    0x4208 0100.0010.0000.1000

  • Hello J P,

    Looks like copper link is up and all register reads are as expected.

    We will have to check if SGMII link is up. This can be known by reading register 0x060A. Can you please provide the read value of that register?

    --
    Regards,
    Gokul.

  • # 0x60A
    Value 15 8 7 0
    0x0166 0000.0001.0110.0110

  • Hello J P,

    Looks like the device is not linked-up on SGMII side.

    We will have to do the following to debug why the device is not linked-up.

    1. Ensure that auto-negotiation is enabled on SGMII side of the switch.
    2. Review the schematic of the SGMII connections to the switch
    3. Debug why SGMII auto-negotiation is not completed, from switch side too.

    --
    Regards,
    Gokul.

  • Thanks Gokul, really appreciate your quick response.

    Looking at the PHY Datasheet, what I understand is the auto-negotiation is disabled and it only works at 100Mbps full-duplex mode. Did I interpret it wrong? 

    So, I've the switch port set to 100Mbps full-duplex and not auto. Do you mean the switch port should be set to auto and then it will be negotiated at 100Mbps full-duplex during the handshake?

  • Hello JP,

    There are usually two auto-negotiations in SGMII PHYs. One auto-negotiation is on the Copper side and the other one on the SGMII side.
    DP83TC812 has no auto-negotiation on Copper side, but PHY still has auto-negotiation on SGMII side.

    To get this compatible with your switch, you can enable auto-neg on switch side or disable auto-neg on PHY side.
    Auto-neg can be disabled on PHY by programming 0x0608[0]=0.

    --
    Regards,
    Gokul.

  • I tried a few combinations by Enabling Auto-Negotiation on switch port and disabling Augo-negotiation on PHY by setting 0x0608[0] to 0 but that didn't help.

    1. I'm confused between Reg 0x608[0] and 0x0[12]. Is it really required to set 0x0608[0] to 0?
    2. Are there any frame gap settings that need to be configured?
      1. I tried 0 and 5 for FDX on the switch port but that also didn't help.

    I've no idea what else to check from here.

  • Hello JP,

    0x0[12] is enable bit for Auto-negotiation on the Copper side. Since, auto-neg is not supported on copper, programming this register will not affect anything.

    Can you try enabling auto-neg on SGMII side by programming 0x0608[0] and enabling auto-neg from the switch side?

    I think it will be faster if we can also debug from the switch side why SGMII link-up is not going through.

    --
    Regards,
    Gokul.