|
Драйве Nand, ошибка при записи |
|
|
|
Jun 23 2014, 12:03
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089

|
Собственно есть готовая сборка linux для платы AM3517EVM. На оригинальной плате установлен чип nand Micron с разрядностью шины 16 бит. У меня же на отладночной плате установлен чип samsung с 8 разрядной шиной. Для запуска менял в файле nand_base.c разрядность шины (не нашел, где задать соответствующее определение). В итоге ядро загружается и начинает сыпаться сообщения:
cannot write OOB for EB at 07320000, requested 8 bytes, read 0 bytes, error -5 jffs2_flush_wbuf(): Write failed with -5 JFFS2 warning: (1507) jffs2_sum_write_data: Write of 16232 bytes at 0x0d99c098 failed. returned -5, retlen 0 Write of 2340 bytes at 0x0dce0000 failed. returned -5, retlen 0
ну и так далее в том же духе. Через минут 15 и вовсе всё падает
JFFS2 error: (1500) jffs2_link_node_ref: Adding new ref cf3e9488 at (0x0a031000-0x0a031000) not immediately after previous (0x0a040000-0x0a031000) kernel BUG at /home/logic/mybuild/src/linux/fs/jffs2/nodelist.c:644!
подозреваю, что какие то проблемы с ECC, только вот понять не могу, что именно не так...
|
|
|
|
|
 |
Ответов
|
Jun 23 2014, 16:11
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(Dilim @ Jun 23 2014, 16:03)  Собственно есть готовая сборка linux для платы AM3517EVM. На оригинальной плате установлен чип nand Micron с разрядностью шины 16 бит. У меня же на отладночной плате установлен чип samsung с 8 разрядной шиной. Для запуска менял в файле nand_base.c разрядность шины (не нашел, где задать соответствующее определение). В итоге ядро загружается и начинает сыпаться сообщения:
cannot write OOB for EB at 07320000, requested 8 bytes, read 0 bytes, error -5 jffs2_flush_wbuf(): Write failed with -5 JFFS2 warning: (1507) jffs2_sum_write_data: Write of 16232 bytes at 0x0d99c098 failed. returned -5, retlen 0 Write of 2340 bytes at 0x0dce0000 failed. returned -5, retlen 0
ну и так далее в том же духе. Через минут 15 и вовсе всё падает
JFFS2 error: (1500) jffs2_link_node_ref: Adding new ref cf3e9488 at (0x0a031000-0x0a031000) not immediately after previous (0x0a040000-0x0a031000) kernel BUG at /home/logic/mybuild/src/linux/fs/jffs2/nodelist.c:644!
подозреваю, что какие то проблемы с ECC, только вот понять не могу, что именно не так... Подобные проблемы обсуждались на форуме TI. У Вас согласованы все действия по записи и чтению в (из) nand? Подозреваю, что загрузчик U-boot. Он правильно работает на запись-чтение с Вашей памятью? Образ rootfs jffs2 создан с учетом геометрии Вашей памяти?
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Jun 24 2014, 08:25
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089

|
Цитата(mdmitry @ Jun 23 2014, 20:11)  Подобные проблемы обсуждались на форуме TI. У Вас согласованы все действия по записи и чтению в (из) nand? Подозреваю, что загрузчик U-boot. Он правильно работает на запись-чтение с Вашей памятью? Образ rootfs jffs2 создан с учетом геометрии Вашей памяти? Сейчас я гружусь с mmc и через u-boot записываю в нанд образы u-boot`а, ядра и файловой системы после чего перезагружаюсь уже с нанда. Т.к. загрузка проходит нормально имею смелось предположить, что запись в нанд происходит правильно. Поясните пожалуйста, что Вы имеете ввиду под геометрией памяти. Если это размер erase-блоков, то да, это учитывается.
|
|
|
|
|
Jun 24 2014, 15:46
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089

|
Цитата(mdmitry @ Jun 24 2014, 15:31)  Да. С Вашим процессором не работал, но имел проблемы на другом процессоре. С mmc и NFS все стартовало и работало, а с nand были проблемы. Есть известная проблема расчета crc для некоторых плат TI, по разному считаются и записываются контрольные суммы U-boot`ом и kernel'ом. Правил руками U-boot и kernel, переделывал образ jffs2 корневой системы с учетом размеров блоков на стирание и запись. Спасибо, но всё оказалось проще: надо было увеличить тайминги.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|