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.

DRA829V: QSGMII Configuration

Part Number: DRA829V

Hi,

 

We’ve received some questions about QSGMII from my customer Could you help to answer their questions below ?

 

Regarding the setting to the Micro Command register (18G), they think there is a restriction that it should be done only once per vsc8514 device.

It is necessary to set the PHY assigned as the QSGMII Main port, correct ?

 

The comment in Vsc8514_config() of vsc8514.c says that it is only once per vsc8514 device, but when they set it only once for the PHY assigned as the QSGMII SUB port, the link between MAC and PHY was not passed other than the set SUB port of the four ports,

 

When the PHY assigned as the QSGMII Main port was configured only once, the other 3 SUB ports were also successfully linked.

Therefore, they would like to confirm that there are restrictions that must be set for the PHY assigned as the QSGMII Main port other than what is described in the comments.

 

Referenced code:

\ti\pdk_jacinto_08_05_00_36\packages\ti\drv\enet\src\phy\vsc8514.c

 

static int32_t Vsc8514_config(EnetPhy_Handle hPhy,

                              const EnetPhy_Cfg *cfg,

                              EnetPhy_Mii mii)

 

Regards,

Hideaki

  • Hi Hideaki,

    The QSGMII main port must be connected to the PHY.  The SUBS must not be connected to a PHY.

  • Hi Shreyas,

    Thank you for reply, but I might not tell you their question correctly. Let me ask again below.

    The following comment is attached in the source code included in "pdk_jacinto_08_05_00_36".

    It says "Micro Command register (18G) should be done only once for the vsc8514 device, not per PHY."

    Does this mean that it must always be done for the Main Port?

    ***********************************************************************

    \ti\pdk_jacinto_08_05_00_36\packages\ti\drv\enet\src\phy\vsc8514.c L192-211

         /*
         * The configuration of all 4 ports in QSGMII mode via Micro Command
         * register (18G) should be done only once for the vsc8514 device,
         * not per PHY.  See Linux's driver as reference:
         * https://elixir.bootlin.com/linux/latest/source/drivers/net/phy/mscc/mscc_main.c#L2082
         *
         * It's a problem if the PHY driver were to configure Micro Command register for
         * each of the 4 x PHYs exposed by vsc8514 device.  When any of the 4 ports
         * was not connected (i.e. cable disconnected), Enet PHY driver would
         * traverse the FOUND/RESET/ENABLE/ANEG states of the disconnected PHY,
         * which ends up writing this global QSGMII mode configuration every time.
         * This will have a side effect on the other PHY(s) of vsc8514 that were actually
         * active.  On the RX side, this can caused CRC and/or alignment errors.
         * On TX, packets would be dropped and never reached the link partner.
         *
         * This global QSGMII mode only once using a local flag in vsc8514 driver,
         * which will not work if multiple vsc8514 devices are used at the same time.
         * This is an acceptable limitation given that Enet LLD's PHY driver doesn't
         * comprehend scenarios were multiple PHYs share a common configuration.
         */
    ***********************************************************************

    Thanks and regards,
    Hideaki Matsumoto

  • Hi,

    Does this mean that it must always be done for the Main Port?

    No, It should be set only once and may not be required it to set from main port, we can set from sub port as well.
    Usually it will happens from the phy which detected first.

    Best Regards,
    Sudheer