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.

AM3356: No PHY Link error

Part Number: AM3356
Other Parts Discussed in Thread: TLK110, DP83822IF

Hello TI,

We are working on AM3356 based Jaguar board (which is similer to TI ICE baord), the main change is insted of RJ45 we are using LC (FO mode).

with below PHY address, we are getting link status as "NO LINK", physical we can see link LED is glowing.
Phy0 ADDress is 0x0000
Phy1 ADDress is 0x0001

Logic and memory browser attached here.

/** ============================================================================
 *   @n@b CSL_MDIO_phyLinkStatus
 *
 * \brief   This API reads the link status of all PHY connected to this MDIO.
 *          The bit corresponding to the PHY address will be set if the PHY
 *          link is active.
 *
 * \param   baseAddr Base Address of the MDIO module.
 * \param   phyAddr  PHY Address.
 *
 * \retval  TRUE   PHY link is active.
 * \retval  FALSE  PHY link is inactive.
 * =============================================================================
 */
/* for misra warnings*/
static inline uint32_t CSL_MDIO_phyLinkStatus(uint32_t baseAddr, uint32_t phyAddr);
static inline uint32_t CSL_MDIO_phyLinkStatus(uint32_t baseAddr, uint32_t phyAddr)
{
    uint32_t retVal = FALSE;

    if(0U != ((HW_RD_REG32(baseAddr + CSL_MDIO_LINK_REG)) & ((1U) << phyAddr)))
    {
        retVal =  (uint32_t)TRUE;
    }

    return retVal;
}



Input params for the API CSL_MDIO_phyLinkStatus() are baseAddr with value 0x4a332400U and phyAddr with value 0x0U.

/* LINK_REG */
#define CSL_MDIO_LINK_REG                                       ((uint32_t)(0xCU))

when we read MDIO register "PHY Link Status Register" (means output of (HW_RD_REG32(baseAddr + CSL_MDIO_LINK_REG))) , we are getting value as 0x00000002 and "MDIO User PHY Select Register 0" we are getting value as 0x00000040 (Highlighted, can refer to above image).

Now with above values this API CSL_MDIO_phyLinkStatus() returns False because of if condition is failing.

we need some info what this "PHY Link Status Register" value means and with what factors we get this value.

Could you help me how to fix this "NO LINK" issue.


Regards,

Vipul