Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с NAND jffs2_scan_eraseblock(), mtd->read(..) returned ECC error
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
fogi
Собираю собственную разработку на базе AT91SAM9XE512, схема на базе кита SK-AT91SAM9XE512-S3E
Отличается в принципе только другой nand памятью у меня установлена MT29F1G08ABAD(хотя их параметры: размер страниц, erase блока совпадают с установленной в стартер-ките).

Пытаюсь загрузить стандартное ядро и фс получаю ошибки вида:

MTDSB: lookup_bdev() returned 0
MTDSB: New superblock for device 1 ("rootfs")
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <4>mtd->read(0x800 bytes from 0x5f800) returned ECC error
uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <4>mtd->read(0x1f1b0 bytes from 0x40e50) returned ECC error
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000532e0: 0xe3a0 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000532e4: 0x9a63 instead

Хотя данная фс и ядро отлично работают на стартер ките. Пробовал собрать свои, получаю тот же эффект: на стартер ките все загружается - монтируется а у меня - ничтего подобного ((.

Образ и ядро заливаю командами u-boot-a
nand erase 0x00200000 0x00200000; tftpboot 20400000 zlinux; nand write.jffs2 20400000 0x00200000 ${filesize};
nand erase 0x00400000 7C00000; tftpboot 20400000 image.jffs2; nand write.jffs2 20400000 0x00400000 ${filesize};


Что делать не представляю.. Подскажите пожалуйста.

Полный лог загрузки:
http://pastebin.com/GkxYAh15
Hoodwin
Ну, как минимум, нужно проверить, одинаково ил сконфигурированы настройки ECC при сборке ядра и U-Boot:

В ядре:
linux/mtd/nand.h -> nand_ecc_modes_t;

В U-boot:
Что-нибудь типа CONFIG_SYS_NAND_HW_ECC, но зависит от того, что поддерживается в железке.



Судя по логу ядра:
Код
AT91 NAND: 8-bit, Software EC


в ядре ECC софтовый. Нужно проверить, что в U-Boot ECC вообще включено.

А вообще, если rootfs сделать не на JFFS2, а на NFS, initramfs, то можно ли ручками сделать
1) flashe_eradeall /dev/mtdX
2) nandwrite /dev/mtdX <jffs2-image>
3) mount -t jffs2 /dev/mtdX

Так будет работать? В принципе, если не будет образа доступно (как в случае initramfs), то можно шаг 2 и пропустить, в этом случае должна примонтироваться пустая файловая система. Можно на нее пописАть и почитать, если ошибок не будет, значит сам по себе линукс с флешкой дружит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.