Перейти к содержанию
    

Эта плата (MYD-YA15XC-T) с завода была прошита старой прошивкой (апрельской вроде), которая в стэндбай вообще не могла войти, зависала после команды echo mem > /sys/power/state (или systemctl standby), после чего ресетилась ватчдогом через 30 секунд.

Прошил на их последний образ - заработало, значит, исправили какие-то косяки. Но, видимо, не до конца. 

Хотя уже собрал и прошил последнюю версию загрузчиков и ядра с гитхаба...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался вроде с тормозами при пробуждении ото сна и заодно решилась проблема отвала сети.

Виноват был "прикрученный" через заднее место ethernet phy AR8035.

 

Китайцы почему то вместо допиливания существующего драйвера phy для него, который сразу не заводится, его совсем выкинули, и прикрутили свой патч-код через вызов phy_register_fixup() (аж два микро модуля ядра регистрируют абсолютно одинаковый код!).

Но этот фиксап не вызывается после пробуждения ото сна, что приводит к неработоспособности phy и отвалу сети.

 

Выкинул этот китайский код нафиг, подправил драйвер phy и DT (дерево устройств), изменив опцию rgmii на rgmii-id, чтобы активировались задержки клоков, и всё заработало как положено.

 

А ещё китайцы не смогли (или не захотели разобраться, как правильно) добавить пин сброса для этого-же многострадального ethernet phy, из-за чего сброс тоже не работал после пробуждения.

Блин - там же в драйвере stmmac есть опция в DT специально для этого! Правда, немного кривая - работала тоже только один раз, но это быстро исправляется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Был ещё нюанс с этой весёлой связкой - стшный GMAC и атеросовское PHY.

Для сброса при инициализации DMA, gmac требует наличия всех клоков, в том числе клока RX от phy. Которого нет, если не вставлен кабель или просто прошло какое-то время. Экономия энергии, мать её за ногу.

Тут то ли не подумали ST, то ли Atheros, но фишка не отключаемая с обеих сторон, похоже.

Сетевой драйвер устанавливает бит сброса и ждёт, пока он сбросится - а клока RX нет, и через секунду срабатывает таймаут и привет отвал ethernet.

 

Китайцы просто выкинули проверку на таймаут из драйвера - он, как ни странно, работает дальше и так, но иногда плохо и автоматически ресетится через несколько секунд.

После того, как я "починил" сброс phy, эта проблема вроде ушла. После сброса он, видимо, подаёт какое-то время клок и мак успевает прогнать инициализацию.

 

Теперь после сна плата просыпается за 150мс, а после глубокого сна (с отключением питания) - за 500 с копейками (долго поднимается USB, возможно, опять китайцы виноваты).

Но в USB пока не полезу, ну его нафиг :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, sonycman сказал:

с отключением питания) - за 500 с

В смысле 8 минут???  Я правильно понимаю?

10 часов назад, sonycman сказал:

или не захотели разобраться, как правильно

А зачем им это, наде железку продавать, желательно сотнями тысяч штук, а с этим и вы разберетесь)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, mantech said:

В смысле 8 минут???  Я правильно понимаю?

Думаете, слишком много? :crazy: Миллисекунд, конечно.

Кстати, функция msleep (и ей подобные) работают очень весело в линуксе.

В драйвере мак таймаут сброса работает как периодический опрос регистра dma с паузой 10мс (msleep(10)) в цикле 100 раз.

При пробуждении ото сна этот таймаут срабатывает идеально за 1 секунду.

 

А вот при загрузке системы, когда много параллельных задач, этот же таймаут растягивается почти на 3 (!) секунды!

Заменил msleep на readl_poll_timeout, которая обеспечивает точное время не зависимо от загрузки.

37 minutes ago, mantech said:

А зачем им это, наде железку продавать, желательно сотнями тысяч штук, а с этим и вы разберетесь)))

Да, не говорите, у них куча различных плат на сайте, по несколько версий уже, а софт сбит из костылей.

Железячники, видимо, хорошие, а программисты студенты одни...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, sonycman сказал:

Думаете, слишком много?

Да кто его знает))))))  Тут принесли безналичный терминал, так он около 150 сек загружается, уже устаю ждать...

2 часа назад, sonycman сказал:

Железячники, видимо, хорошие, а программисты студенты одни...

Просто стиль бизнеса такой, нужны хорошие спецы по железу и какие-то программисты, чтоб просто проверить работоспособность плат, ничего сверхестественного от них и не нужно.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...