LINUX.ORG.RU

Сильные траблы с rtc


0

1

Устройство на Allwinner A10

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

Сначала перестал инициализироваться дисплей (как в linux, так и в заводском abdroid), потом после 1.5-минутного ожидания загрузился стоковый андройд, тут же крашнулся и система после перезапуска вроде бы заработала нормально, только время сбросилось.

После загрузки linux при попытке установить время произошла блокировка: в консоли блокируется всё кроме sysrq reboot, в иксах все анимации вроде работают, но терминалы и фокусировка ввода застрявают.

Вот что всплывает в логе при загрузке:

[    1.120000] sunxi-rtc sunxi-rtc: sunxi_rtc_probe tmp_data = 380239965
[    1.130000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
[    1.130000] sunxi-rtc sunxi-rtc: read time 2069-11-15 23:56:10
[    1.140000] using rtc device, rtc, for alarms
[    1.140000] sunxi-rtc sunxi-rtc: rtc core: registered rtc as rtc0
[    4.360000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
[    4.360000] sunxi-rtc sunxi-rtc: read time 2072-14-18 26:59:13
[    4.370000] sunxi-rtc sunxi-rtc: hctosys: invalid date/time
14 месяц 26 часов - меня убило. Попытка чтения даты из usespace (hwclock -r):
<7>[ 1235.520000] sunxi_rtc_open 
<6>[ 1235.560000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
<6>[ 1235.620000] sunxi-rtc sunxi-rtc: read time 2055-13-1 9:42:60
<6>[ 1235.690000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
<6>[ 1235.750000] sunxi-rtc sunxi-rtc: read time 2061-3-7 15:48:2
Попытка записи даты (hwclock -c):
<7>[   65.690000] sunxi_rtc_open 
<6>[   65.710000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
<6>[   65.760000] sunxi-rtc sunxi-rtc: read time 2054-12-0 8:41:59
<6>[   65.810000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
<6>[   65.860000] sunxi-rtc sunxi-rtc: read time 2013-3-23 31:0:18
Т.е перед записью дата обязательно считывается. Можно как-то это обойти? Может после перезаписи оно перестанет брюхню нести (если часы на месте)? Или мне начинать искать gpio-часы и пины, на которые их можно привесить?

★★★★★

Через android время установилось без проблем, т.е ошибка была вызвана попыткой чтения аппаратного времени. Теперь вопрос - как установить время, не запрашивая его?

mittorn ★★★★★
() автор топика
11 мая 2014 г.
Ответ на: комментарий от slapin

сделал вывод, что там драйвер rtc кривой. Прямой записью в регистры (из пространства ядра) время всегда устанавливается. Остаётся загадкой, почему в android всё работает.
Сейчас использую rtc для трассировки спящего режима т.к нет uart (точнее, нет порта на 3.3в, а заказывать hc05 - сильно дорого/долго).

mittorn ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.