добрый день
Наткнулся на очередную проблему. В u-boot для работы сети добавил запуск внешнего клока для PHY в файл инициализации платы. Локальная сеть работает, пингуются машины. Но когда стартует ядро, оба светодиода на разъеме гаснут, хотя по логу видно что ядро находит PHY и настраивает интерфейс. ifconfig говорит что eth0 настроен, только счетчики пакетов по нулям.
На SAM9260 борде такого не наблюдал... Или может все намного проще, надо какой-то командой eth0 запустить, он по умолчанию выключен?
Вот полный лог загрузки:
мне не ясен смысл телодвижений для юбута - там вроде сетка и так поднимается.. или что-то экзотическое?
судя по номеру - ставите "свежее" ванильное ядро? в файле борды сетку правили?
я с месяц назад запускал взятое с кернела - поднял все, кроме звука, тачскрина и нанда (может еще что упустил), подробности уже не помню..
В утубе надо запустить PCK, который тактирует PHY изернета, плюс автоопределение его адреса, по умолчанию стоит 0, а работает на 1. Ну или место автоопределения жестко задать 1.
Да ванильное свежее ядро, только файл board-sam9m10g45ek.c меняю свой исправленый..
Я в убуте PCK запустил после чего сеть поднялась.
В ядре я не знаю как PCK настроить. Я думал что ядро настроенное раннее PCK трогать не будет...
Спасибо за инфу на счет кварца, так и сделаю. Не буду зацикливаться на этом PCK.
Нога PE31/PWM2/PCK1.
В схеме AT91SAM9M10-G45-EK эта нога используется похожим способом как на данной плате только тактирует AC97(WM9711L). PWM2 в ресурсах системы зарегистрирован на ноге PD26.
В исходнике arch/arm/mach-at91/at91sam9g45.c нашел описание PCK1
В коментарии написано что надо PCK1 пин на выход настроить, значит он где-то сбрасывается... Наверно коментирование вызова clk_register(&pck1); никакого результата не даст..
Других мест где упоминается PE31 не нашел
Закоментил строку clk_register(&pck1); Теперь при загрузке ядра светодиоды на разъеме изернета не гаснут. Но ping с платы не видит компы в сети, девайс тоже не пингуется.
uboot сетевые компы пинговал, но плата в сети была все равно не видна.
Странно как-то. Завтра попробую внешний кварц впаять для эксперимента
вставьте где-нить в конце инита борды распечатку содержимого регистров состояния этого пина (функция, направление, состояние) или принудительно пропишите нужную позу. хорошо бы осциллом глянуть..
мне сейчас не проверить - но юбут вроде не дает себя увидеть, только ответит на пинг извне..
решение правильное (лично я сторонник - каждому камню свой кварц), не забудьте про обвязку и устраните влияние АРМа (PE31)
Запустился изернет :)
проблема была в инициализации в файле board-sam9m10g45ek.c
В плате используется MII интерфейс, а в атмеловской -EK - MII
Надо исправить:
строчку .is_rmii = 1 на .is_rmii = 0 Из-за этого не все ножки конфигурировались.
Я внимательно посмотрел на исправления Павла, у него исправлено. Плюс добавлена инициализация PCK1 функции static void __init ek_board_init(void).
Может быть вариант с моего предыдущего поста с коментарием строки clk_register(&pck1); и рабочий, но я уже кварц впаял так что проверить не смогу.