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.

AM5729: GPIO and Ethernet ICSS Config ISSUE

Part Number: AM5729

Hi Team,

I'm using AM5729 RTOS ICSS port example code to test the ethernet port, it's working fine. below is the configuration details we did in our code.              

 When adding below lines to configure GPIO pins in code, after that ethernet is not working not even ping is working.  Here we are just initializing GPIO pins .

Could you please help us on this. is there any configuration overwrite we are doing in this?

GPIO configuration:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/* GPIO Driver board specific pin configuration structure */
GPIO_PinConfig gpioPinConfigs[] = {


GPIO_DEVICE_CONFIG(0x08, 0x09) | GPIO_CFG_IN_INT_FALLING | GPIO_CFG_INPUT, //OCTAL_UART0_idx - IRQ_5
GPIO_DEVICE_CONFIG(0x08, 0x02) | GPIO_CFG_IN_INT_FALLING | GPIO_CFG_INPUT, //OCTAL_UART1_idx - IRQ_4

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Ethernet ICSS configuration:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ret  = PRUICSS_socGetInitCfg(&pruIcssCfg);

    if (ret  != PRUICSS_RETURN_SUCCESS)

        return (ret);

    pruIcssHandle = PRUICSS_create((PRUICSS_Config*) pruIcssCfg,PRUICCSS_INSTANCE_TWO);

    Task_Params_init(&taskParams);

    taskParams.priority = 15;

    taskParams.instance->name = "SwitchTask";

    Task_create((Task_FuncPtr)NIMU_ICSS_EmacTestPruIcssInit, &taskParams, &eb);

    /*Port I initializations*/

    emachandle = (ICSS_EmacHandle)malloc(sizeof(ICSS_EmacConfig));

    ICSS_EmacInitConfig* switchEmacCfg;

    switchEmacCfg = (ICSS_EmacInitConfig*)malloc(sizeof(ICSS_EmacInitConfig));

    if ((emachandle == NULL) || (switchEmacCfg == NULL))

    {

        UART_printf("main: malloc returned null\n");

    }

#if defined(__ARM_ARCH_7A__)

    CSL_xbarMpuIrqConfigure_(CSL_XBAR_INST_MPU_IRQ_120, CSL_XBAR_PRUSS2_IRQ_HOST8);  /* link ISR */

    CSL_xbarMpuIrqConfigure_(CSL_XBAR_INST_MPU_IRQ_121, CSL_XBAR_PRUSS2_IRQ_HOST2);  /* RX PKT ISR */

    switchEmacCfg->linkIntNum=CSL_armGicGetGicIdForIrqInputLine(120);

    switchEmacCfg->rxIntNum = CSL_armGicGetGicIdForIrqInputLine(121);

#endif

    switchEmacCfg->phyAddr[0]=1;

    switchEmacCfg->portMask = ICSS_EMAC_MODE_MAC1;

    switchEmacCfg->ethPrioQueue = ICSS_EMAC_QUEUE1;

    switchEmacCfg->halfDuplexEnable = 1;

    switchEmacCfg->enableIntrPacing = ICSS_EMAC_DISABLE_PACING;

    switchEmacCfg->pacingThreshold = 100;

    switchEmacCfg->learningEn = 0;

    NIMU_ICSS_EmacTestGetPortMacAddr(0,lclMac);

    switchEmacCfg->macId = lclMac;

    NIMU_ICSS_EmacTestDrvInit(emachandle, 2);     // ICSS_M instance 0

    ((ICSS_EmacObject*)emachandle->object)->pruIcssHandle = pruIcssHandle;

    ((ICSS_EmacObject*)emachandle->object)->emacInitcfg = switchEmacCfg;

PRUICSS_IntcInitData pruss_intc_initdata = PRUSS_INTC_INITDATA;

    ICSS_EmacInit(emachandle,&pruss_intc_initdata,ICSS_EMAC_MODE_MAC1|ICSS_EMAC_MODE_DUALMAC);

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Regards,

Sathish