14 Replies Latest reply on Jun 2, 2015 9:15 AM by jc

    SGMII Auto-negotiation failure between i350-am2 and i347-at4

    Green Belt



      I've made two board connected via SAS connectors.


      Board 1 - i.MX6Q with i350

      Board 2 - i347-AT4, Two port of RJ-45, Power circuitary


      Board 1 and Board 2 connected via SAS connector.


      SAS Connector does not used for SAS/SATA but two pair of SGMII signal.... It's like Seagate Kinetic.


      Everything except SGMII working fine. I need to mod igb driver to force link setup for SGMII get working.


      I found this code in igb_setup_loopback_test(), pasted into igb_copper_link_autoneg()


      u32 reg;

      /* Set PCS register for forced speed */

      reg = rd32(E1000_PCS_LCTL);

      reg &= ~E1000_PCS_LCTL_AN_ENABLE;     /* Disable Autoneg*/

      reg |= E1000_PCS_LCTL_FLV_LINK_UP |   /* Force link up */

             E1000_PCS_LCTL_FSV_1000 |      /* Force 1000    */

             E1000_PCS_LCTL_FDV_FULL |      /* SerDes Full duplex */

             E1000_PCS_LCTL_FSD |           /* Force Speed */

             E1000_PCS_LCTL_FORCE_LINK;     /* Force Link */

      wr32(E1000_PCS_LCTL, reg);


      And then, ethernet is working now...


      Q. SGMII Auto-negotiation is not working. How can i this feature get working? What should i inspect?


      Thanks. Have a nice day!