Я пытаюсь написать встроенные чистые драйверы GMAC и PHY, чтобы иметь возможность использовать Ethernet на Allwinner R40.Я настроил оба: GMAC и PHY (Realtek rtl8211), но я подозреваю, что что-то пропустил или сделал не так.На данный момент я могу включить светодиод на разъем Ethernet.Регистр состояния RGMII сообщает, что ссылка RGMII установлена правильно.Я создал правильный список дескрипторов RX и TX для GMAC и передал их адреса в GMAC.
Проблема в том, что я не могу ничего сейчас отправить или получить.После того, как я установил правильные биты для запуска DMA для TX, весь список дескрипторов остается нетронутым.Я имею в виду, что если GMAC будет работать, то по крайней мере один дескриптор TX должен быть изменен, но это не так.В первом слове дескриптора есть бит номер 31, указывающий, что этот дескриптор принадлежит TX DMA.Я установил это согласно документу.GMAC DMA должен очистить этот бит при обходе списка дескрипторов.Но это не очищается.
Второе - PHY возвращает в PHYSR (17.10), что Ethernet-соединение не в порядке.Возможно ли, что GMAC не просматривает список дескрипторов, потому что PHY сообщает, что ссылка не в порядке?Если нет, то что еще может привести к тому, что GMAC не запускает какие-либо передачи?