Всем шалом.
SOM - i.MX6UL
Схема по части ethernet взята под копирку с i.MX6UL Starter (Express, если быть точным).
Ethernet PHY - LAN8720A
Сборка в yocto dey.
Передо мной встала задача пропатчить u-boot для поддержки различной периферии, чего нет в стоковом образе на борде под управлением i.MX6UL. Конкретно - нужен работающий ethernet для загрузки образов через tftp.
Стоковый u-boot я успешно стер, поэтому сейчас ковыряюсь только в собранных образах. До момента, когда я его стер, я успешно мог вычитывать регистры из LAN8270A. Зачем я его вообще стер, если работало ? Стер непреднамеренно, и в любом случае, рано или поздно, пришлось бы переезжать на патченный.
Как я сказал выше, моя кастомная борда полностью повторяет референсную по части изирнета (собираю я для ccimx6ulstarter
), и, соответственно , используя нетронутые исходники dts и настройку iomux, FEC0 почему-то не заводится.
В логах пишет ‘board_eth_init failed’, причем, если врубить дебаг, то до этого ругается на ненайденные атрибуты ‘compatible’ в fdt, хотя я знаю, что они есть как есть в самом .dtsi, так и в исходнике драйвера fec_mxc.c
bind node ethernet@02188000
- attempt to match compatible string 'fsl,imx6ul-fec'
- attempt to match compatible string 'fsl,imx6q-fec'
No match for node 'ethernet@02188000'
Однако, если к конфиге указать
#define CONFIG_FEC_ENET_DEV 1
, то есть поменять изернет с первого на второй, то при загрузке логов об ошибке больше нет и в u-boot можно даже повызывать команды mii без ошибки. Понятно, что одни нули там вычитываются, потому что LAN8720 подключен к первому. Это к сведению, вдруг поможет.
ЧЯДНТ ?
Помогите разобраться, куда смотреть, что делать.