Второй RMII выведен, но есть один момент - на референсах с двумя ethernet портами, к обоим чипам физики подходит один и тот же MDIO/MDC интерфейс (GPIO6,7), на нашем модуле он не выходит наружу.
У нас выведен ENET1_MDC/MDIO (GPIO4,5).
Можно ли будет подружить внешний чип физики с этим MDC/MDIO ответить затрудняюсь (по идее, можно).
Если озадачитесь, настроите и поделитесь с общественностью - с меня бонус.
Еще, если правильно помню, у них в документации была ошибка как раз с наличием ENET1_MDC/MDIO на GPIO4,5 ...
Перед началом упражнений первым делом лучше этот момент уточните.
По-моему никаких проблем не должно быть - у нас выведены те же пины что и на референсе
у процессора одинаковые IP блоки EMAC и у каждого есть свой MDIO просто по пинам их нельзя использовать одновременно - они помоему на одни и те же пины выведены - либо один, либо другой. В DTS указвается чей MDIO использовать, у нас в отличии от референса просто пины MDIO переклчены на первый интерфейс (выделено жирным шрифтом выше) и тут указано MDIO первого интерфейса
Отличие от референса - у нас один интерфейс используется а в остальном только програмное. Чтобы два интерфейса использовать нужно чтобы адреса разные были у PHY и садить их на одну шину MDIO - это надо на схеме своей учитывать
А если сконфигурировать второй чип PHY Ethernet (например, LAN8720) только подтяжками на нужную скорость, дуплекс и т.д. ,не прибегая к интерфейсу MDIO? Сейчас смотрю код инициализации PHY на STM. Там только записываем скорость, режим автоопределения, дуплекс в PHY и все. Так эти режимы и без MDIO настроить можно. Только вот в Линуксе как это все работать будет я не знаю. А так если разберемся, то конечно сообщим.
Спасибо. Решение интересное, нужно попробовать. Я так понял, что виртуальный MDIO уже в ядре реализован и его через device Tree надо включить на любый свободных пинах.
Я так понял, что виртуальный MDIO уже в ядре реализован и его через device Tree надо включить на любый свободных пинах.
есть драйвер готовый и это не совсем виртуальный MDIO - програмная реализация шины MDIO через дергание GPIO. Виртуальный - это если делать как вы хотели
Там только записываем скорость, режим автоопределения, дуплекс в PHY и все. Так эти режимы и без MDIO настроить можно. Только вот в Линуксе как это все работать будет я не знаю.
в Linux для такого случая создается виртуальный MDIO с фиксированными параметрами PHY