Перейти к содержанию
    

Драйве Nand

Собственно есть готовая сборка 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, только вот понять не могу, что именно не так...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собственно есть готовая сборка 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 создан с учетом геометрии Вашей памяти?

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подобные проблемы обсуждались на форуме TI.

У Вас согласованы все действия по записи и чтению в (из) nand?

Подозреваю, что загрузчик U-boot. Он правильно работает на запись-чтение с Вашей памятью? Образ rootfs jffs2 создан с учетом геометрии Вашей памяти?

 

Сейчас я гружусь с mmc и через u-boot записываю в нанд образы u-boot`а, ядра и файловой системы после чего перезагружаюсь уже с нанда. Т.к. загрузка проходит нормально имею смелось предположить, что запись в нанд происходит правильно.

Поясните пожалуйста, что Вы имеете ввиду под геометрией памяти. Если это размер erase-блоков, то да, это учитывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поясните пожалуйста, что Вы имеете ввиду под геометрией памяти. Если это размер erase-блоков, то да, это учитывается.

Да.

С Вашим процессором не работал, но имел проблемы на другом процессоре. С mmc и NFS все стартовало и работало, а с nand были проблемы. Есть известная проблема расчета crc для некоторых плат TI, по разному считаются и записываются контрольные суммы U-boot`ом и kernel'ом. Правил руками U-boot и kernel, переделывал образ jffs2 корневой системы с учетом размеров блоков на стирание и запись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да.

С Вашим процессором не работал, но имел проблемы на другом процессоре. С mmc и NFS все стартовало и работало, а с nand были проблемы. Есть известная проблема расчета crc для некоторых плат TI, по разному считаются и записываются контрольные суммы U-boot`ом и kernel'ом. Правил руками U-boot и kernel, переделывал образ jffs2 корневой системы с учетом размеров блоков на стирание и запись.

 

Спасибо, но всё оказалось проще: надо было увеличить тайминги.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...