Проблема с NAND jffs2_scan_eraseblock(), mtd->read(..) returned ECC error
Jury093
Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
попробуйте вместо
.name= "bootstrap/uboot/kernel",
упростить до
.name= "kernel",
На любой вопрос есть любой ответ.
fogi
Пункты: 621
Регистрация: 06.02.2013
Собрал mtd-tools, вот что получилось:
Код [@SK-MAT91SAM9 /]$flash_eraseall -j /dev/mtd1
Erasing 128 Kibyte @ 2dc0000 -- 76 % complete. Cleanmarker written at 2dc0000.
Skipping bad block at 0x02de0000
Erasing 128 Kibyte @ 3c00000 -- 100 % complete.Cleanmarker written at 3be0000.
[@SK-MAT91SAM9 /]$
[@SK-MAT91SAM9 /]$flash_eraseall -j /dev/mtd2
Erasing 128 Kibyte @ 4000000 -- 100 % complete.Cleanmarker written at 3fe0000.
[@SK-MAT91SAM9 /]$flash_info /dev/mtd1
Device /dev/mtd1 has 0 erase regions
[@SK-MAT91SAM9 /]$flash_info /dev/mtd2
Device /dev/mtd2 has 0 erase regions
[@SK-MAT91SAM9 /]$nandtest /dev/mtd1
ECC corrections: 0
ECC failures : 29
Bad blocks : 1
BBT blocks : 0
00000000: erasing...
00000000: writing...
00000000: reading...
00000000: checking...
00020000: erasing...
00020000: writing...
00020000: reading...
00020000: checking...
00040000: erasing...
00040000: writing...
00040000: reading...
00040000: checking...
00060000: erasing...
00060000: writing...
00060000: reading...
00060000: checking...
00080000: erasing...
00080000: writing...
00080000: reading...
00080000: checking...
000a0000: erasing...
000a0000: writing...
000a0000: reading...
000a0000: checking...
000c0000: erasing...
000c0000: writing...
000c0000: reading...
000c0000: checking...
000e0000: erasing...
000e0000: writing...
000e0000: reading...
000e0000: checking...
00100000: erasing...
00100000: writing...
00100000: reading...
00100000: checking...
00120000: erasing...
00120000: writing...
00120000: reading...
00120000: checking...
00140000: erasing...
00140000: writing...
00140000: reading...
00140000: checking...
compare failed. seed 9811372
Byte 0x14800 is ff should be e7
Byte 0x14801 is ff should be 22
Byte 0x14802 is ff should be f7
Byte 0x14803 is ff should be 0a
Byte 0x14804 is ff should be 73
Byte 0x14805 is ff should be 06
И так далее..
[@SK-MAT91SAM9 /]$nandtest /dev/mtd2
ECC corrections: 0
ECC failures : 8
Bad blocks : 0
BBT blocks : 0
00000000: erasing...
00000000: writing...
00000000: reading...
00000000: checking...
00020000: erasing...
00020000: writing...
00020000: reading...
00020000: checking...
00040000: erasing...
00040000: writing...
00040000: reading...
00040000: checking...
00060000: erasing...
00060000: writing...
00060000: reading...
00060000: checking...
00080000: erasing...
00080000: writing...
00080000: reading...
00080000: checking...
000a0000: erasing...
000a0000: writing...
000a0000: reading...
000a0000: checking...
compare failed. seed 1379891479
Byte 0x1c800 is ff should be 01
Byte 0x1c801 is ff should be 4a
Byte 0x1c802 is ff should be 5d
Byte 0x1c803 is ff should be 94
Byte 0x1c804 is ff should be 1d
Byte 0x1c805 is ff should be a4
И так далее..
fogi
Пункты: 621
Регистрация: 06.02.2013
Еще заметил что при тестировании результаты не повторяются. Ошибки могут начать сыпаться с любого смещения.
fogi
Пункты: 621
Регистрация: 06.02.2013
sasamy ,
Цитата Дело может быть в таймингах, бутром наверняка выставляет "щадящие" заниженные тайминги.
Выставлял вреде по даташиту. Может попробовать увеличить все на 1-2 единицы?
fogi
Пункты: 621
Регистрация: 06.02.2013
Цитата Может попробовать увеличить все на 1-2 единицы?
Не помогло.. Печалька..
Jury093
Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата Не помогло.. Печалька..
а за аппаратуру уверены?
тестирование памяти делали? и не синтетические тесты, а реальные..
питания хватает, чистое и в норме?
наводок и помех осциллом не видно?
как крайняя мера - поменять чип нанда, мало ли поджаренный..
На любой вопрос есть любой ответ.
fogi
Пункты: 621
Регистрация: 06.02.2013
За за аппаратуру уверен на 99%
Питания хватает чистое и в норме, посмотрел осцилом.
Наводок тоже не видно.
Может проблема в расчетах ECC драйвером mtd?
Могут быть какие-то особенности именно с этим чипом nand памяти?
fogi
Пункты: 621
Регистрация: 06.02.2013
Попробовал завести вторую плату с такой же конфигурацией - ошибки повторяется.
Jury093
Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата Может проблема в расчетах ECC драйвером mtd?
Могут быть какие-то особенности именно с этим чипом nand памяти?
врядли, но поищите, мало ли еррата какая есть..
раз у вас все самосборное, то я бы попробовал:
- форматнуть mtd0 - хоть там исходные бинарники, но вы их перезальете после стирания.. тут интересен положительный результат..
- попробовать разбивку вместо
jffs что-то типа
ubifs (вроде в билдруте есть поддержка)
- поставить чип на 256МБ, как в ките.. не заработает - проблема железа, заработает - ошибки в настройках под ваш нанд
На любой вопрос есть любой ответ.
fogi
Пункты: 621
Регистрация: 06.02.2013
Большое спасибо всем кто помогал советами и наставлениями!
Завелось с пол пинка, но на ядре 3.6.9 от (https://github.com/linux4sam/linux-at91)