|
Чем и как прочитать образ из NAND?, есть плата на процессоре TI AM1705 |
|
|
|
Jan 15 2013, 12:38
|
Участник

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736

|
Может быть туплю, сильно не пинайте  Итак вопрос: собрал свою плату на процессоре Sitara AM1705, в NAND по UART записал U-boot, затем из под U-boot прошил в NAND ядро Linux, файловую систему, затем из под Linux записал в NAND свое приложение, протестировал работоспособность. Теперь мне нужно прочитать из NAND полученный образ (U-boot + Linux + rootFS + приложение) и записать этот образ в другие платы. Типовая вобщем-то задача. Каким образом можно вычитать образ из NAND? Подозреваю, что мне потребуется Code Composer Studio и JTAG? Или как-то еще? П.С.: До того как перейти на Texas, работал с ARM9 от Atmel, так там была прекрасная утилита SAM-BA. Она позволяла (в удобном графическом режиме) записать/прочитать флеш память по USB...
|
|
|
|
|
 |
Ответов
|
Jan 16 2013, 10:57
|
Участник

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736

|
Воспользовался dd. Описал всю NAND (256 Мб) как один раздел: mtdparts=davinci_nand.1:0x10000000@0x0(nand_all)ro Загрузился, подмаунтился к хосту по nfs и выполнил: dd if=/dev/mtdblock0 of=/nfs/mtdblock0.bin Получил на хосте желаемый образ NAND размером 256 Мб. На днях принесут программатор, попробую зашить в чистую новую флешку mtdblock0.bin и загрузиться с нее.
Сообщение отредактировал no_d@t@ - Jan 16 2013, 10:57
|
|
|
|
|
Jan 16 2013, 12:15
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(no_d@t@ @ Jan 16 2013, 14:57)  Воспользовался dd. ... Получил на хосте желаемый образ NAND размером 256 Мб. На днях принесут программатор, попробую зашить в чистую новую флешку mtdblock0.bin и загрузиться с нее. Какую фс вы используете? У меня такое ощущение что jffs2 / ubifs вас мощно стукнут граблями по лбу после того как вы в другой экземпляр нандфлэш зальете считанный образ.
|
|
|
|
|
Jan 16 2013, 12:22
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039

|
Цитата(_3m @ Jan 16 2013, 16:15)  У меня такое ощущение что jffs2 / ubifs вас мощно стукнут граблями по лбу после того как вы в другой экземпляр нандфлэш зальете считанный образ. А расскажите, почему jffs2 / ubifs стукнут граблями? Просто стоит похожая зачача - прочитать образ из NAND и залить в другие платы.
|
|
|
|
|
Jan 16 2013, 18:25
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(samike @ Jan 16 2013, 14:22)  А расскажите, почему jffs2 / ubifs стукнут граблями? Дело вовсе не в файловых системах, а в том, что NAND flash (ради удешевления, вероятно) поставляется с некоторым процентом сбойных секторов, которые при производстве соответствующим образом помечены. У каждого экземпляра микросхемы количество и расположение этих секторов разное. Дальше, думаю, всё понятно.
|
|
|
|
|
Jan 17 2013, 05:00
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(IgorKossak @ Jan 16 2013, 23:25)  Дело вовсе не в файловых системах, а в том, что NAND flash (ради удешевления, вероятно) поставляется с некоторым процентом сбойных секторов, которые при производстве соответствующим образом помечены. У каждого экземпляра микросхемы количество и расположение этих секторов разное. Дальше, думаю, всё понятно. Мне казалось, что ремаппинг сбойных секторов выполняется драйвером, лежащим "ниже" чем /dev/mtdblock*. Иными словами, блоки, доступные через /dev/mtdblock*, уже гарантированно "хорошие". Я неправ?
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Jan 17 2013, 05:44
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(alx2 @ Jan 17 2013, 09:00)  Мне казалось, что ремаппинг сбойных секторов выполняется драйвером, лежащим "ниже" чем /dev/mtdblock*. Иными словами, блоки, доступные через /dev/mtdblock*, уже гарантированно "хорошие". Я неправ? Как все запущено! Вы правы, но частично. Бэды могут появляться во время работы, софт их на лету помечает и обходит. Однако главная проблема не в этом. Проблема в том что в нанд есть Spare area в которой хранится корректирующий код, кроме того например jffs2 в одной из конфигураций хранит там метаданные, образ без метаданных можно сразу отправлять в /dev/null потому что он не смонтируется. Из-за корректирующего кода стертый блок и блок в который записаны 0xff совершенно разные вещи. Еще раз повторю: из нанд надо снимать образ утилитой которая понимает тип фс. Писать тоже утилитой от используемой фс.
|
|
|
|
|
Jan 18 2013, 04:37
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(_3m @ Jan 17 2013, 10:44)  Бэды могут появляться во время работы, софт их на лету помечает и обходит. Уточните, пожалуйста, какой именно софт их помечает и обходит - драйвер, лежащий "ниже" /dev/mtdblock*, или софт файловой системы, лежащий "выше"? Верно ли я понял, что именно софт файловой системы? Цитата(samike @ Jan 17 2013, 13:28)  Вобщем, процесс автоматизации прошивки большого количества плат пока видится таким: Мне вообще такой подход (модификация образа файловой системы в целевой плате) кажется странным. Причем странным дважды. 1. Сначала Вы создаете файловую систему без нужного приложения (а что там тогда есть?), записываете ее в ПЗУ платы, потом устанавливаете приложение, после чего считываете образ FS из платы обратно для последующего тиражирования. Не логичней ли будет сразу установить все нужные пакеты, включая ваше приложение, и сразу сгенерировать образ файловой системы, готовый к производству? 2. Если уж по каким-то непонятным мне причинам Вы не хотите (или не можете) сразу генерировать образ FS с тем содержимым, которое требуется, и задача стоит именно в модификации уже имеющейся FS, не лучше ли будет "развернуть" содержимое FS на персоналке, выполнить необходимые модификации (доустановить какие-то пакеты) и затем заново сгенерировать новый образ? И не связываться вообще с NAND-ПЗУ и целевым устройством вообще...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Jan 18 2013, 07:28
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(alx2 @ Jan 18 2013, 08:37)  Уточните, пожалуйста, какой именно софт их помечает и обходит - драйвер, лежащий "ниже" /dev/mtdblock*, или софт файловой системы, лежащий "выше"? Верно ли я понял, что именно софт файловой системы? Требовать от софта файловой системы отвечать за bad blocks носителя бессмысленно. В HDD листы бэдов пишутся контроллером во флэш-память (т.е. более другой носитель). Полагаю, в NAND сделано примерно также - контроллер пишет ошибки большой дешёвой памяти в более дорогую, но независимую память (на том же кристалле). Наружу контроллер предоставляет линейный массив, но не обязательно одинаковой длины - с этим и связаны неприятности с переносом системы посредством dd, имхо.
|
|
|
|
|
Jan 18 2013, 09:47
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(xemul @ Jan 18 2013, 11:28)  Требовать от софта файловой системы отвечать за bad blocks носителя бессмысленно. В HDD листы бэдов пишутся контроллером во флэш-память (т.е. более другой носитель). Полагаю, в NAND сделано примерно также - контроллер пишет ошибки большой дешёвой памяти в более дорогую, но независимую память (на том же кристалле). Нету там "более дорогой независимой" все в нанд! "финские студенты" с вами не согласны и bad blocks появляющиеся вследствие износа помечает фс. Курите Bad_Block_table_supportКод Set the option NAND_BBT_WRITE to enable the table write support. This allows the update of the bad block table(s) in case a block has to be marked bad due to wear. The MTD interface function block_markbad is calling the update function of the bad block table. If the write support is enabled then the table is updated on FLASH. Помечает бэды в частности: drivers/mtd/ubi/wl.c fs/jffs2/erase.c Еще посмотрите drivers/mtd/nand/nand_bbt.c
|
|
|
|
|
Jan 18 2013, 10:31
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(_3m @ Jan 18 2013, 13:47)  Нету там "более дорогой независимой" все в нанд! "финские студенты" с вами не согласны и bad blocks появляющиеся вследствие износа помечает фс. Курите Bad_Block_table_supportЗначит опять склероз (касательно размещения флэша другого свойства для bad blocks на том же чипе). В позапрошлом году развлекался, вытаскивая инфу с usb-шных флэшек. В приведённой Вами ссылке следующий параграф описывает обычный для них случай. А по граблям с хранением bbt носителя на нём же производители hdd уже ходили.
|
|
|
|
Сообщений в этой теме
no_d@t@ Чем и как прочитать образ из NAND? Jan 15 2013, 12:38 mempfis_ Цитата(no_d@t@ @ Jan 15 2013, 16:38) Каки... Jan 15 2013, 12:52 no_d@t@ Цитата(mempfis_ @ Jan 15 2013, 16:52) Сам... Jan 15 2013, 13:17  alx2 Цитата(no_d@t@ @ Jan 15 2013, 18:17) А чт... Jan 16 2013, 05:36   no_d@t@ Цитата(alx2 @ Jan 16 2013, 09:36) А это у... Jan 16 2013, 08:16   _3m Цитата(samike @ Jan 16 2013, 16:22) А рас... Jan 16 2013, 16:41      samike Цитата(_3m @ Jan 17 2013, 09:44) Еще раз ... Jan 17 2013, 06:14       samike Цитата(alx2 @ Jan 18 2013, 08:37) Уточнит... Jan 18 2013, 05:52 samike Печально.
Так как же все таки корректно прочитать ... Jan 17 2013, 04:28 svss Цитата(samike @ Jan 17 2013, 10:28) Печал... Jan 17 2013, 08:34  IgorKossak Цитата(svss @ Jan 17 2013, 10:34) Несколь... Jan 17 2013, 10:38 samike Вобщем, процесс автоматизации прошивки большого ко... Jan 17 2013, 08:28
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|