Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Драйве Nand
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Dilim
Собственно есть готовая сборка 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, только вот понять не могу, что именно не так...
mdmitry
Цитата(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 создан с учетом геометрии Вашей памяти?



Dilim
Цитата(mdmitry @ Jun 23 2014, 20:11) *
Подобные проблемы обсуждались на форуме TI.
У Вас согласованы все действия по записи и чтению в (из) nand?
Подозреваю, что загрузчик U-boot. Он правильно работает на запись-чтение с Вашей памятью? Образ rootfs jffs2 создан с учетом геометрии Вашей памяти?


Сейчас я гружусь с mmc и через u-boot записываю в нанд образы u-boot`а, ядра и файловой системы после чего перезагружаюсь уже с нанда. Т.к. загрузка проходит нормально имею смелось предположить, что запись в нанд происходит правильно.
Поясните пожалуйста, что Вы имеете ввиду под геометрией памяти. Если это размер erase-блоков, то да, это учитывается.
mdmitry
Цитата(Dilim @ Jun 24 2014, 12:25) *
Поясните пожалуйста, что Вы имеете ввиду под геометрией памяти. Если это размер erase-блоков, то да, это учитывается.

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


Спасибо, но всё оказалось проще: надо было увеличить тайминги.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.