[09:03:38] <savalik> ужасы то какие)
[12:11:03] <beaver_rrr> resetnow эпичен
[12:12:18] <stuw> и не говори )
[17:16:44] <stuw> resetnow, как nand продвигается? с tag-данными разобрался?
[18:03:02] <resetnow> stuw: написал вчера в вики. Если кратко, то сейчас проблемы следующие:
[18:03:24] <resetnow> 1) при записи с включенным do_ecc не записываются ecc-байты
[18:04:29] <resetnow> 2) местами неправильная адресация. Т. е. если принудительно записывать в oob данные, а потом прочитать, то раскладка будет слуедующая: 20 байт данных, потом 4 пропущено и до конца oob данные
[18:04:54] <resetnow> а эти 4 байта должны быть вначале, а не с отступом в 20 байт
[18:05:46] <resetnow> в TRM нашел раздел + тут драйвер из убута (он тоже со странностями, правда), пока что пытаюсь поправить проблему (1)
[18:08:11] <resetnow> ну и ubifs падает, потому что коррекция не выполняется при чтении. А не выполняется она, потому что ecc-байты неправильные.
[18:08:53] <resetnow> вообще если получится поправить, надо будет слегка причесать этот драйвер, сейчас он местами немного сумбурный
[18:11:42] <stuw> resetnow, по проблеме 2: что за структура пишется? пропуска в 4 байта не должно быть?
[18:13:51] <stuw> resetnow, еще ты как-то упоминал, что правил какую-то структуру. По вики пробежался, но не нашел какую. (может пропустил, еще раз перечитаю)
[18:14:21] <resetnow> stuw: это было давно и неправильно :)
[18:14:40] <resetnow> я пытался oobavail в 64 поправить, а оказалось, что проблема в другом
[18:14:48] <stuw> ок ) давай тогда по проблеме 2
[18:14:51] <resetnow> https://gitorious.org/ac100/marvin24s-kernel/source/66a8ee5599effdbbb364b38d48c3f6e3b7bf7a68:drivers/mtd/devices/tegra_nand.c#L151
[18:15:13] <resetnow> Точнее, чуть выше прокрутить, там описана структура блока oob
[18:15:33] <resetnow> * Skipped bytes(4)
[18:15:45] <resetnow> Это должно быть вначале, насколько я понимаю.
[18:16:46] <resetnow> Это не то чтобы сейчас срочно и актуально, сейчас я попробую еще правленый код по первой проблеме запустить
[18:16:59] <resetnow> Как же не хватает какого-то интерактивного отладчика
[18:17:16] <resetnow> Наверное, такие вещи через какой-нибудь JTAG отлаживают :)
[18:17:32] <stuw> да, я удаленную отладку так и не осилил (правда мне нужно было в самом начале загрузки)
[18:17:32] <resetnow> Кстати, как-то можно по USB залить ядро и запустить?
[18:17:37] <stuw> почитай про gdb-server
[18:18:11] <stuw> можно делать загрузочный образ (как это сделано в sosbootr5)
[18:18:33] <stuw> ecc-байты - это которые?
[18:19:06] <resetnow> В идеале так: на компьютере запустил скрипт, он перезагрузил тошибу, залил в нее образ ядра (не обязательно в emmc, можно просто запустить) и запустил
[18:19:17] <resetnow> * OOB flash layout for Tegra with Reed-Solomon 4 symbol correct ECC:
[18:19:17] <resetnow> * Skipped bytes(4)
[18:19:17] <resetnow> * Main area Ecc(36)
[18:19:17] <resetnow> * Tag data(20)
[18:19:17] <resetnow> * Tag data Ecc(4)
[18:19:25] <stuw> 36 которые?
[18:19:38] <resetnow> 36 — ecc для содержимого памяти
[18:19:53] <resetnow> 4 (последнее) — ecc для тег-данных
[18:21:54] <stuw> поищи по коду, где используется eccpos. по идее там написано как ты и говоришь - ecc идет с 4 байта
[18:24:35] <stuw> 1) при записи с включенным do_ecc не записываются ecc-байты <- а разве так не должно быть?
[18:24:55] <stuw> или смещения не должны гулять?
[18:25:31] <stuw> т.е. ecc не пишется, но oob идет по тем же смещениям, что и с ecc ?
[18:26:21] <resetnow> насколько я понял из TRM, ecc должен записисываться в нашем случае. Так как эти ecc-байты рассчитываются аппаратно по той информации, что пишется на страницу при dma-транзакции
[18:27:29] <resetnow> про смещения не очень понял. Пока не совсем понятно, какие проблемы со смещениями, но видно, что при прямой записи oob (через nandwrite) пропускаются байты не в начале, а с отступом в 20
[18:27:46] <resetnow> пока я с первой попробую разобраться проблемой
[18:27:52] <stuw> *упс, я прочитал при записи с ВЫключенным do_ecc
[18:30:33] <stuw> да, сполпинка разобраться, что в какой регистр должно идти не получается :)
[18:30:49] <stuw> я потопал домой, вечером еще вылезу.
[18:31:00] <stuw> думаю нужно пробовать сравнить с драйвером убута
[18:31:11] <stuw> в убуте обычно драйвера чуть проще написаны
[18:31:12] <stuw> :)
[18:32:03] <resetnow_1> Я сравниваю, там местами ощутимые отличия
[18:32:18] <resetnow_1> Пока что словил dma timeout на записи
[18:33:59] <resetnow_1> К слову, ожидал кернел паник или что-то вроде этого, а нет, в dmesg появляется дамп регистров и информация о драйвере, но система продолжает работать.
[21:47:40] <resetnow> хрен его знает, кроме dma timeout ничего полезного не вышло
[21:49:03] <resetnow> на всякий случай сдампил регистры прямо перед записью блока — ecc включен, область ecc должна сформироваться автоматически
[21:51:45] <resetnow> у меня NAND_DMA_CFG_B пустой, вот это поворот
[21:51:58] <resetnow> ладно, с эти завтра