I'm having an issue with the initialization of the ethernet on a custom DM647/8 application. I've tracked the issue down to where the code gets stuck during init within one of the ethernet libraries (hal_eth_dm648.lib). The code is stuck in an infinite while loop because it is not able to reset the GMAC (see code below). Does anyone have any idea why it would not be able to do this?
Thanks,
Jason
From cpsw3g_core.c:
static void cpgmacMacOpen(Cpsw3gPort *hPort)
{
CSL_Cpsw3g_RegsOvly regs = cpsw3gDev.regs;
Cpsw3gConfig *cpswCfg = &cpsw3gCfg.cpswCfg;
Uint32 instId = hPort->portNum;
CpgmacMacConfig *macInitCfg = &cpsw3gCfg.macInitCfg[instId];
CpgmacObj *gmacObject = &cpsw3gDev.cpgmacMac[instId];
/* Do a soft reset of the module */
regs->GMAC[instId].GMAC_SOFT_RESET = CPSW3G_SOFT_RESET_BIT;
/* wait for reset complete */
printf("instID: %d\n",instId);
while (regs->GMAC[instId].GMAC_SOFT_RESET != CPSW3G_SOFT_RESET_COMPLETE)
{
TSK_sleep(10); /* Taskdelay if necessary */
printf("IM STUCK\n");
}