Есть плата цифровой обработки с вышеуказанным процессором.
Пытаюсь запустить на ней Ethernet.
Столкнулся с двумя проблемами.
1. Почему-то не запускается (не включается) клоковый домен для Security Accelerator.
Ниже приведен код включения питания и клоковых доменов (модулей).
CSL_PSC_enablePowerDomain(CSL_PSC_PD_NETCP);
CSL_PSC_setModuleNextState(CSL_PSC_LPSC_PA, PSC_MODSTATE_ENABLE);
CSL_PSC_setModuleNextState(CSL_PSC_LPSC_CPGMAC, PSC_MODSTATE_ENABLE);
CSL_PSC_setModuleNextState(CSL_PSC_LPSC_SA, PSC_MODSTATE_ENABLE);
CSL_PSC_startStateTransition(CSL_PSC_PD_NETCP);
while (!CSL_PSC_isStateTransitionDone(CSL_PSC_PD_NETCP));
Далее проверяю состояние.
res1 = CSL_PSC_getModuleState(CSL_PSC_LPSC_PA); // Возвращает состояние PSC_MODSTATE_ENABLE
res2 = CSL_PSC_getModuleState(CSL_PSC_LPSC_CPGMAC); // Возвращает состояние PSC_MODSTATE_ENABLE
res3 = CSL_PSC_getModuleState(CSL_PSC_LPSC_SA); // Возвращает состояние PSC_MODSTATE_SWRSTDISABLE
Для Security Accelerator результат показывает, что он не включился.
Не могу понять в чем причина?
2. Не работает чтение регистров MDIO.
На чтение просто программа зависает.
Например делаю CSL_MDIO_getVersionInfo(&mdioVersionInfo); и всё. на этой функции программа зависает.
Заметил одну особенность. Что если не включить клоковый домен для SGMII (CSL_PSC_LPSC_CPGMAC), то чтение из MDIO регистров не зависает, но читает случайные данные. Как правило одни нули.
Есть подозрение, что зависание чтения связано с первой проблемой. Не активным клоком Security Accelerator.