Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:4
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
at91sam9260-sk + watchdog
bitterman
Добавлено 06.07.2010 14:31
0
Сообщение: 1
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
Несколько дней уже сильно хочу прикрутить функциональность вотчдога к этому девайсу.

Вотчдог встроен в процессор, в этом я отдаю себе отчёт :)

Шагов вроде следующее число:
1. в bootstrapе нужно убрать все упоминания о вотчдоге, потому как там его выключают, а больше с ним после этого уже ничего не сделаешь
2. у-бут (пока в основном стандартный 1.1.5 из комплекта платы) вообще говоря должен знать о существовании вотчдога, иначе плата будет ребутаться при загрузке ядра по сети, например.
3. драйвер вотчдога в линуксе ресетит вотчдог до тех пор, пока ядро не повиснет.

проблемы следующие:
1. поддержка вотчдога в у-буте для меня очевидна только в 1.3.4, которую я пока не могу нормально прикрутить к этому устройству. непонятным путём удалось заставить его грузить ядро, но ни езернета не видит, ни на флешки писать не может. есть у кого-нибудь рабочий u-boot 1.3.4 или старше для at91sam9260-sk?
2. драйвер вотчдога в ядре (2.6.28) вроде как должен делать всё, что надо, но никак не может найти этот вочтдог, код инициализации не выполняется, т.к., как я понял, platform_driver_probe находит ошибку раньше, чем вызывает соответствующую функцию probe.

Ход мысли был следующий:
1. взять убут 1.3.4, настроить всё как надо про вотчдог
2. использовать драйвер в ядре + демона watchdog из busybox
3. из бутстрапа коцнуть про вотчдог.

пока получился калечный убут 1.3.4, который даже при включенной поддержке вотчдога (какая есть) ребутается тупо через 2 секунды после своего старта (потому что не сбрасывает вотчдог).

что делать -- пока не совсем понял. кто-нибудь разбирался с вотчдогом? англицкие форумы из кеша гугла уже почитал, общие идеи понял, реализация пока не хочет. надо как-то чтобы убут тоже вотчдог ресетил вовремя.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.07.2010 14:59 Редактировалось 06.07.2010 15:01 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
См. здесь, не понял, зачем Вам u-boot для этого крутить приходится, новую версию u-boot сейчас в фаловом разделе выложу. Кстати, от аппаратной реализации платы, ватчдог не зависит.
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 06.07.2010 15:28 Сообщение: 3
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
на мой взгляд, вотчдог полноценно поддерживаться должен и убутом, и ядром.

убутом -- чтобы при загрузочных процессах аля run nand_update ничего не ребуталось из-за вотчдога (ну, это если полноценно делать, может и без этого).

ядром -- собственно, ради чего вотчдог тут и нужен, не уверен я пока в своих навыках драйверописания, вешал уже на спинлоках )

а темы все про вотчдоги на форуме посмотрел уже, про хитрый битик в курсе.
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 06.07.2010 15:53 Сообщение: 4
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
большое спасибо за файл, буду разбираться :)
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 06.07.2010 20:11 Сообщение: 5
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
да, и разбираться мне долго ) с тем, что, куда, и по какому адресу. и почему было 0x8000, а стало 0x8400 (что вроде как более согласовано с размером страницы dataflash, но и раньше работало).

ибо вопросы тупые. и не совсем напрямую относящиеся к вотчдогу.
всё же правда склоняюсь к мысли, что убут должен уметь ресетить вотчдог. т.к. даже если поставить таймаут в 10 секунд, этого не хватит до того момента, как ядро запустит свой драйвер вотчдога.
поэтому (опять теоретизирую), вотчдог надо дёргать даже в процессе "nand read", когда происходит загрузка с нанда.

будут более ясные мысли -- отпишусь конкретнее.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 06.07.2010 21:57 Сообщение: 6
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
...поставить таймаут в 10 секунд, этого не хватит до того момента...
я не помню точных цифр, но никакх проблем на таймаут в десятки секунд (чего достаточно для загрузки всей системы) не вызывало ...
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 15.07.2010 23:52 Сообщение: 7
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
вообще интересная и загадочная ситуация:
1. есть бутстрап 1.16 с убранным выключением вотчдога. ядро грузится (со второго раза ибо ребутается), после чего заявляет, что ложкивотчдога не существует на девайсе. Но при этом ничего не перезагружается (то есть, кто-то всё же записал в WDT_CR)
2. есть точно такой же бутстрап в котором оставлена строчка отключения вотчдога. Не тот, что в комплектации платы, я тут его восстанавливал по diff'у в http://starterkit.ru/html/index.php?name=forum&op=view&id=6263&word=PLLA. Отличается от первого чисто тем, что выключает вотчдог. Ядро грузится, доходит до initrd и впадает в серьёзный ядерный page fault (родственник генерал фоулта). И, в общем дохнет.

Ставлю первый -- грузится. Ставлю второй -- падает на инит рд :-)

При этом
[skipped]
Ситуация выглядит так:
bootstrap не пишет в вотчдог ничего вообще, грузится убут, пытается грузить ядро, как только доходит речь до ядра -- ребутает. в следующий раз вотчдог уже не работает -- можно сколько угодно сидеть в консоли убута. ну и ядро грузится, естественно, ничего не зная о вотчдоге. получается, что хорошо бы самим писать в регистр контроля вотчдога, но в другой стороны вроде надо, чтобы успело дойти до драйвера вотчдога в ядре (регистр одноразовой записи, мы запишем -- драйвер откажется с этим всем взаимодействовать)

в общем, конкретных вопросов нет, есть жалобы :-)
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 16.07.2010 00:16 Сообщение: 8
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
ну, идею происходящего понял.
проц лезет в dataflash, берёт мой (недоделанный, надо взять нормальный с диска :-) бутстрап, не отключает вотчдог, система ребутается до начала загрузки ядра.
при ребуте не ресетятся (умолчальное поведение) микросхемы, в результате чего следующая загрузка происходит уже через nandflash, в котором тоже есть бутстрап, но загрузчик не отключен.

это теперь понятно.

непонятно только, почему может быть ошибка инитрд ядра :-) и как лучше в такой ситуации вести себя с загрузкой -- хочется нормальный вотчдог )
Спуститься к концу Подняться к началу
Персональная информация
bitterman
Добавлено 16.07.2010 00:39 Сообщение: 9
bitterman
0

Пункты: 329
Регистрация: 05.02.2010
можно ещё попробовать как-нибудь без у-бута грузить ядро ) тогда можно сбросить вотчдог прямо перед загрузкой ядра
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 16.07.2010 01:40 Сообщение: 10
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Так много слов и ни одного лога загрузки - я вообще ничего не понял, что у вас происходит и что не работает :) а про initrd давно пора забыть как про страшный сон :) есть initramfs.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX