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.

TMDXIDK5718: phy configuration

Part Number: TMDXIDK5718

Hi,

In the example client application -CPSW (in RTOS)for idkam5718 board I am unable to find any function which configures the phy for autonegotiation.My requirement is to establish a 100mbps link without autonegotiation.How can I do this?

CCS V9

PDK 1.0.15

NDK 3.60.0.13

SYS/BIOS 6.75.2.00

  • Hi ,

    Can someone help me on this?

  • Please refer to the below file.

    ~/pdk_am57xx_1_0_17/packages/ti/board/src/idkAM571x/device/enet_phy.c

    You can use ENETPHY_SetPhyMode() to configure the link speed.

  • Hi,

    Thanks for the reply.

    I tried with your suggestion.

    That function is not helping.I cant see any phy register writes in it.There are only print functions.I added this function in the  main file as mentioned below.Is it the right way?

    /* Select RGMII 2 ports GMIIx_SEL = 2 for RGMII*/
    CSL_FINS (((CSL_control_coreRegs *) CSL_MPU_CTRL_MODULE_CORE_CORE_REGISTERS_REGS)->CONTROL_IO_1,
    CONTROL_CORE_CONTROL_IO_1_GMII1_SEL, 2U);
    CSL_FINS (((CSL_control_coreRegs *) CSL_MPU_CTRL_MODULE_CORE_CORE_REGISTERS_REGS)->CONTROL_IO_1,
    CONTROL_CORE_CONTROL_IO_1_GMII2_SEL, 2U);

    /*GMAC RESET ISOLATION Enable*/
    CSL_FINS (((CSL_control_coreRegs *) CSL_MPU_CTRL_MODULE_CORE_CORE_REGISTERS_REGS)->CONTROL_IO_2,
    CONTROL_CORE_CONTROL_IO_2_GMAC_RESET_ISOLATION_ENABLE, 0U);
    CSL_FINS (((CSL_control_coreRegs *) CSL_MPU_CTRL_MODULE_CORE_CORE_REGISTERS_REGS)->CONTROL_IO_2,
    CONTROL_CORE_CONTROL_IO_2_GMAC_RESET_ISOLATION_ENABLE, 1U);

    EMAC_socGetInitCfg(0, &emac_cfg);
    phyDev.miibase = emac_cfg.mdio_base;
    ENETPHY_SetPhyMode((ENETPHY_Handle) &phyDev,NWAY_FD100);

    Other than getting a print statement in hyperterminal.The negotiated connection is not changing to 10Mbps.

  • Hi ,

    int32_t ENETPHY_Tic(ENETPHY_Handle hPhyDev,uint32_t* mdioStatus) .Where is this function called in main.I am not able to understand .Someone please help.