Программирование NAND флеши (разделение main и spare)

R

rrp1

  • 12 Окт 2011
Здравствуйте!
Никто не программировал NAND флешь на программаторе?
В моем программаторе UNIPROG main area и spare area прошивается отдельно, а вот в дампе который я скачал похоже все вместе т.к. размер флеши 64 Мб. а размер дампа 66 Мб., пробовал прошить так как есть игнорируя последние 2 Мб. (тем более что последние 4 Мб. дампа - FF - ничего не запускается :( (спутниковый ресивер), возможно что spare area находится не в конце дампа, а например в начале или в конце каждого блока, не подскажете какой программой можно разделить массивы? Или хотя бы подскажите где хранится в дампе spare массив, может вручную можно разделить если конечно main и spare не пишутся постранично, а то прийдеться до пенсии разделять 64 Мб. :)
Спасибо!
 

Что это ? Неисправность Прошивки Схемы Справочники Маркировка Корпуса Программаторы Аббревиатуры Частые вопросы Ссылки дня

  • Это информационный блок по ремонту

    Содержит основные технические рекомендации и советы поиска по разделам сайта необходимые для ремонта - принципиальные схемы, файлы прошивок, программ, маркировку компонентов, ссылки на базы данных. Обратите внимание и на другие темы где расположены советы и секреты мастеров, измерения, принцип работы и методы диагностики. Предназначен для тех, кто случайно попал на эту страницу, периодически обновляется и отображается только гостям.
  • Вопросы по ремонту

    Вопросы по Программирование NAND флеши (разделение main и spare) Если у вас есть вопрос по ремонту и определении дефекта, Вы должны создать свою, новую тему в форуме. По этой теме уже рассмотрены следующие неисправности:

    • не включается
    • прошивка
    • перезагружается
    • замена;
    • мигает;
    • цена;
    • купить;
  • Прошивки в разделах:

    Прошивки телевизоров TOSHIBA
  • Package (корпус) - вид корпуса электронного компонента

    SOT-89 - пластковый корпус для поверхностного монтажа
    SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
    TO-220 - корпус для монтажа (пайки) в отверстия
    SOP (SOIC, SO, TSSOP) - миниатюрные корпуса для поверхностного монтажа
  • Programmer (программатор) - устройство для записи (считывания) информации в память или другое устройство

    Ниже список некоторых программаторов:
    Postal-2,3 - универсальный программатор по протоколам I2C, SPI, MW, IСSP и UART. Подробно - Postal - сборка, настройка
    TL866 (TL866A, TL866CS) - универсальный программатор через USB интерфейс
    RT809H - универсальный программатор EMMC-Nand, FLASH EEPROM через интерфейсы ICSP, I2C, UART, JTAG
    CH341A - самый дешевый (не дорогой) универсальный программатор через USB интерфейс
  • Краткие сокращения

    LED (Light Emitting Diode) - Светодиод (Светоизлучающий диод)
    MOSFET (Metal Oxide Semiconductor Field Effect Transistor) - Полевой транзистор с МОП структурой затвора
    EEPROM (Electrically Erasable Programmable Read-Only Memory) - Электрически стираемая память
    eMMC (embedded Multimedia Memory Card) - Встроенная мультимедийная карта памяти
    LCD (Liquid Crystal Display) - Жидкокристаллический дисплей (экран)
  • Частые вопросы

    Как мне дополнить свой вопрос по теме Программирование NAND флеши (разделение main и spare)?

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему Программирование NAND флеши (разделение main и spare) как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

    При активном участии в форуме Вам будут доступны дополнительные файлы и разделы, которые не отображаются гостям - схемы, прошивки, справочники, методы и секреты ремонта, типовые неисправности, сервисная информация.

P

pavel-pervomaysk

Команда форума
  • 12 Окт 2011
rrp1, то у тебя прогер молдавский, и не он один такой.
А вообще могу сказать что шить нанд флеш прогером глупо... В проце сидят данные о битых блоках твойе флеши, так что перепрошив получаем труп.
 
B

Barabashka

  • 13 Окт 2011
pavel-pervomaysk сказал(а):
то у тебя прогер молдавский
Паша, таки прогер наш киевский, правда староват, ещё в прошлом тысячилетии разработан, но помогает частенько, да с нандами там конечно немного странновато, но если им считал, то записать можно.
pavel-pervomaysk сказал(а):
и не он один такой.
тритон вроде также читает отдельно два массива
rrp1 может легче поискать прогер каким считывал аффтар, или через джитаг залей, проц уже сам увидит битые сектора и закроет их. А если унипрогом то тяжеловато, там надо фф вставлять, при выборе нанда почитай хелп что авторы написали....
 
P

Postal2

  • 13 Окт 2011
pavel-pervomaysk сказал(а):
шить нанд флеш прогером глупо...
- вот и я гляжу, что это так. Всё откладывал, потихоньку подгребаю сведения.
pavel-pervomaysk сказал(а):
В проце сидят
Barabashka сказал(а):
проц уже сам увидит битые сектора и закроет их.
- не сам проц, а встроенный на кристалл контроллер нанд. Алгоритм работы с нандом реализован аппаратно, вариантов реализации много. Чуть попозже разберусь детально, мне для жтага это надо.
 
R

rrp1

  • 13 Окт 2011
Jtagа к сожелению в этом ресивере нету (Tiger T600HD), или засекречен, свободных разъемов я так и не нашел, старая флешка совсем сдохла, поэтому с нее дамп считать было невозможно, а новая похоже без бедов, в нее дамп пишется без ошибок, тем более вроде пишут что spare массив обычно используется для подмены бедов, авторы программатора пишут что при загрузке в spare 1 Кб пропускается, а следующие 16 байт пишутся, если предположить что в этом дампе так и расположены данные, то можно в spare просто его открыть и все, правда непонятно почему в spare адресное пространство начинается с адреса 0000000 и кончается 3FFFFFF, а по описанию авторов как у них пишется spare то должна кончатся на 41FFFFF, т.к. на 1 кб main приходится 16 байт spare.

Добавлено 13-10-2011 09:14

Кажись нашел зависимость в дампе каждые 512 байт есть однообразные строчки по 16 байт , обычно ff или бывает первые байты заполнены, может есть какие-то проги которые смогут их отделить, сейчас попробую хекс редактором, может ему можно задать вырезание определенных строк
 
Б

БМК

  • 13 Окт 2011
Barabashka сказал(а):
тритон вроде также читает отдельно два массива

:no:
Тритон для NAND-Flash не есть хорошо,но все ,что удавалось считать с рабочих
аппаратов и записать,то все работало.

Сейчас пользую ChipProg-481,это песня.
Считывает NAND-ы тоже одним массивом.
 
L

LDZ

  • 13 Окт 2011
rrp1, погугли по словам "xbox360 jtag", - были прожки для nand.
 
P

pavel-pervomaysk

Команда форума
  • 13 Окт 2011
Postal2, я всех тонкостей не знаю, но написал как понимаю сам + убедился лично на практике. Шить флеш однозначно нужно через проц, в других случаях это просто трата времени.
 
R

rrp1

  • 13 Окт 2011
Для меня наоборот легче через программатор, выпаял прошил и впаял, так даже быстрее, я даже не представляю, сколько времени через прод будет шиться 64 Мб, прийдется надолго про компьютер забыть :) , хотя можно только бут восстановить и дальше обычным способом, я вот уже вручную у 60 кб строки поудалял, осталось еще - 240 Кб , правда еще тоже сделать и со spare массивом :( и бут с юсб загрузчиком будет готов, потом можно будет запаять флешь и дать команду чтобы через юсб флешку грузилось.
Может все таки есть програмка которая сама удаляет каждые 16 байт из 512 ?
 
А

алеx3

  • 13 Окт 2011
Postal2 сказал(а):
вот и я гляжу, что это так. Всё откладывал, потихоньку подгребаю сведения
Володь интересно твоё мнение по вот такому варианту чтения-записи нанд , прикрепил файлик в архиве, ссылка на сайт сейчас не работает.
Я пробовал собирать такую хрень, да реально работает , читает-пишет через картридер (причём очень быстро и без ошибок), но апять-же без возможности доступа к spare area. Как думаеш реально-ли написать какую либо прогу, чтоб через картридер можно было достучаться до этой дополнительной области .Например как я понял, спец софт для низкоуровнего форатирования, для конкретного контроллера используемого в картридере , туда имеет доступ.

Read Embedded Flash Chips uC Hobby.rar
 
А

алеx3

  • 13 Окт 2011
rrp1 сказал(а):
Может все таки есть програмка которая сама удаляет каждые 16 байт из 512 ?

Вот там выложена программка http://monitor.net.ru/forum/splitter_newexe-download-33186.html которая сделает всё за тебя. В первую строчку вводи значение 512 (размер блока данных), во вторую 16 (размер spare данных). При условии, что дамп снят с обычного флэша на 64 мега. На выходе получишь Pages.bin и Spares.bin

Добавлено 13-10-2011 23:59

Прога реально работает, на выходе два файла.
 
P

Postal2

  • 14 Окт 2011
rrp1 сказал(а):
легче через программатор
- оно легче было БЫ ... Контроллер нанда (в проце) применяет на лету коррекцию (это, видимо, spare и есть) он при загрузке применит _свой_ алгоритм и "исправит" данные :gigi: .

Добавлено 13-10-2011 23:24

алеx3, ну у меня глюк с открыванием такого файла, софт написать с эмуляцией кодов коррекции всех контроллеров? Тяжеловато. Иначе куркульный прогер умел бы.

Добавлено 13-10-2011 23:33

Короче, этот "spare" у каждого контроллера нанда будет разный, имеет смысл делать только "зеркальное" копирование этой области.
алеx3 сказал(а):
спец софт для низкоуровнего форатирования, для конкретного контроллера используемого в картридере , туда имеет доступ.
- ну так софт вроде какой-то есть свободно, даташит контроллера почитать - и узнать, что можно делать.
 
А

алеx3

  • 14 Окт 2011
Postal2 сказал(а):
ну у меня глюк с открыванием такого файла
интернетЭксплорером сохранял,
Впринципе там просто расписано что с помощью картридера потдерживающего карточки Smartmedia и xD , можно прочитать нанд флешку , так как выводы по назначентю ног эдентичны и остаёться просто распаять проводками.
 
P

Postal2

  • 14 Окт 2011
алеx3 сказал(а):
можно прочитать нанд флешку
- если читается правильно - то алгоритм совпал, и spare нахрен не надо - он (кардридер) сам запишет туда всё как надо.

Добавлено 13-10-2011 23:51

А если читается хрень - тогда да, надо вынимать коды коррекции.
 
R

rrp1

  • 14 Окт 2011
алеx3 сказал(а):
Может все таки есть програмка которая сама удаляет каждые 16 байт из 512 ?

Вот там выложена программка  ссылка скрыта от гостей 
Splitter_new.rar которая по описанию с того-же форума сделает всё за тебя. В первую строчку вводи значение 512 (размер блока данных), во вторую 16 (размер spare данных). При условии, что дамп снят с обычного флэша на 64 мега. На выходе получишь Pages.bin и Spares.bin

Добавлено 13-10-2011 23:59

Прогу я скачал реально работает, на выходе два файла.

Спасибо! Да действительно работает, а то я как минимум целый день бы сидел чтобы только загрузчик восстановить 300 кб, прошил - все запустилось .
 
J

JeWell

  • 2 Июн 2012
Здравствуйте!
Попробую продолжить тему. Надеюсь, в разделе flame'а не запрещено поднятие старых тем (во всяком случае, наличия правил я тут вообще не наблюдаю).
Собственно, пришёл к тем же вилам: есть аппарат (спутниковый ресивер), в нём нандовая флэшка. В ней всё - загрузчик и рабочий софт. После перешивки, по словам владельца, ресивер скончался. В логе на ком порт следов начала работы загрузчика нету.
Флэшка в тсоп48, программатор Чиппрог-48. Переходника под этот тип флэшки ещё нет, но сделаю. Вопрос, собственно, в том, а чё с ней делать-то?
Задача у меня простая: вычитать дамп (т.е. только полезные данные, без всей этой непонятной белиберды), в нём заменить имеющийся загрузчик, или что там вместо него, на нормальный код загрузчика и прошить обратно в эту же флэшку.
НО! Как это сделать - ума не приложу. Обратился с этим вопросом в техподдержку разработчиков программатора - прислали небольшой мануал по работе с нандами, из которого я тоже ровным счётом ничего не понял.
Драйвер (или как этот контроллер называется правильно?), который заведует работой с нандовыми флэшками, он где вообще живёт? Это часть проца, или это может быть софтово реализуемый алгоритм? Типа из загрузчика считалось, выполнилось и пошло-поехало работать...
Да не суть, в общем. Со стороны ресивера - это какой-то алгоритм.
Со стороны программатора - это куча возможных разных алгоритмов. И вот как тут понять, чем пользоваться, какие настройки делать?
Есть какие-то наработки у кого по этой теме?

БМК, т.к. Вы используете тот же чиппрог, может уже есть опыт, чего и как?
Модели 48 и 481 отличаются только скоростью, насколько я понял, ну и ещё интенсивностью добавления в софт новых микросхем, но в данном случае это не имеет значения.

P.S.
да, забыл сказать, в ресивере джтага нет, а то и проблемы бы не было...
 
А

алеx3

  • 3 Июн 2012
JeWell сказал(а):
на нормальный код загрузчика
А он у тебя есть ? под твоё железо.
И позволь поинтересоваться что за флеш?
 
B

Barabashka

  • 3 Июн 2012
JeWell, как-бы в данном конкретном случае для восстановления ресивера надо считать дамп с рабочего с двумя массивами и залить в заведомо исправную флешку оба массива ( ну или если прогер читает одним файлом то полностью дамп, кстати на сколько нанд? ), так как в spare лежит информация о пригодности страниц, в рабочем тюнере при записи софта нерабочие страницы будут закрыты, но если прочесть прогером то инфа там так и останется, просто к ней проц не обращается, ну или сам нанд это делает. Можно конечно попробовать записать какую-то часть с начала, по идее загрузчик там, но это уже 50 на 50, может и не поможет через комп порт допрошить. Как мне видется нанд это как книга, можно к любой странице обратиться мгновенно, если у тебя в начале нанда лежит например инфа обратиться к последним страницам, то запись только части нанда не поможет, возможно загрузчик кинули в конец нанда, но это так, предположение, поэтому сказать где в нанде полезные данные вряд-ли кто-то возьмётся...... А какой у Вас прогер? Что за мануал прислали, если не секрет? Как-то пытался поизучать и вытянуть прошивку с мп4 плеера, взял нанд поменьше, что-бы читалось не так долго, стёр его и заливал прошивку по юсб, так вот с начала нанда лежит софт отвечающий за работу от компа как флешки, а сам софт плеера при работе как плеера ложился в конец нанда, так что надо наверно изучать документацию на проц, если там что-то такое будет написано. Возможно сумбурно написал, гуру поправят если что, но мне кажется на прогере надо полностью нанд прошивать, вряд ли в тюнер поставят нанд на гигабайт или два.... А что за тюнер? Какой проц? Донор есть?
 
Б

БМК

  • 3 Июн 2012
JeWell сказал(а):
Флэшка в тсоп48, программатор Чиппрог-48. Переходника под этот тип флэшки ещё нет, но сделаю

Какая именно флешь?

JeWell сказал(а):
БМК, т.к. Вы используете тот же чиппрог, может уже есть опыт, чего и как?
Если слить флешь с рабочего аппарата,и перезалить на аналогичный,то проблем не было.
Если ковырять потертый дамп ,это неоправданный гемор.
Нужен оригинал.

Добавлено 03-06-2012 08:39

JeWell,
JeWell сказал(а):
Обратился с этим вопросом в техподдержку разработчиков программатора - прислали небольшой мануал по работе с нандами, из которого я тоже ровным счётом ничего не понял

Если не в тягость, скинь пожалуйста файл,можно в личку.
 
J

JeWell

  • 3 Июн 2012
алеx3 сказал(а):
А он у тебя есть ? под твоё железо.
Есть. Я надеюсь, что это именно он (файлик из инета с кодом загрузчика, но может в нём какой заголовок есть, ещё не знаю, во всяком случае, в hex-редакторе опыт вырезания ненужного для/из дампов имеется.
Флэшка - совсем малюсенькая, всего 128 мегабайт, Samsung K9F1G08U0C.

Barabashka, то что Вы пишете про "нанд - это книга и загрузчик может лежать на любой странице" - в данном контексте, это не имеет отношение к нанду, т.к. с тем же успехом и в обычной флэшке код загрузчика может быть где угодно, куда идёт переадресация из сектора флэшки, которую при старте опрашивает процессор.
Программатор у меня чиппрог-48, я ведь уже упомянул об этом.
Мануал, который прислали - всего лишь help-файлик к программе для программатора. Посмотрел, а он, оказывается, в последней имеющейся на сайте версии программы уже внутри такой же есть, т.е. с тем же разделом по работе с нандами. Поэтому, это не какая-то там тайная наука, скачать и почитать может каждый:  ссылка скрыта от гостей 
Ну либо вот выложу на некоторое время у себя, кому интересно - в разделе "работа с программатором" есть раздел "работа с нанд":  ссылка скрыта от гостей  (1,7МБ)
Barabashka сказал(а):
А что за тюнер? Какой проц? Донор есть?
Тюнера в ресивере нет, тюнер в проце. Т.е. есть антенный вход, после него какой-то квадратик с 3-4 ногами размером 2*2мм и после него 2 дорожки под проц. Также нет отдельной микросхемы сетёвки, тоже провода из трансформатора под проц. Удивляюсь, как разработчики проца позабыли включить в него интерфейс смарт-карты, т.к. там стоит внешняя тда8024. Проц - броадком, BCM7325, корпус бга. Ресивер одноразовый во всех смыслах этого слова. Вылетит "сетёвка" от грозы - писец процу. Тот же эффект будет и в случае с "тюнером". Флэшка тоже одна - эта вот нандовая, т.е. битый блок в загрузочной области - и всё, сушите ласты.
А имя этому ресиверу - "Vu+Solo". Бойтесь и трепещите, кто эту дрянь имеет! :mrgreen:
Донора нет, почему и хотел вручную в дампе поковыряться. Иного выбора-то нету.
Да и толку-то, с такой флэшкой иметь донора... считаешь - и куда потом с этим куском кода, в котором абсолютно не понятно, что есть дамп, а что аппендикс в виде spare области.

БМК, про флэшку уже написал, Samsung K9F1G08U0C.
БМК сказал(а):
Если слить флешь с рабочего аппарата,и перезалить на аналогичный,то проблем не было.
А как же быть с этими плохими блоками?
Какие настройки в софтине от программатора делать?
 
Б

БМК

  • 3 Июн 2012
JeWell сказал(а):
БМК, про флэшку уже написал, Samsung K9F1G08U0C.
БМК писал:
Если слить флешь с рабочего аппарата,и перезалить на аналогичный,то проблем не было.
А как же быть с этими плохими блоками?
Какие настройки в софтине от программатора делать?

смотри личку
 
J

JeWell

  • 3 Июн 2012
БМК, спасибо!
Только вот разработчики чиппрогов пошли каким-то не очевидным путём.
Для модели, что есть у Вас (481) - для работы с этой флэшкой они требуют адаптер 1-в-1, а для модели 48 - нужен специально извращённый адаптер "AE-TS48-NAND-2".
 
Б

БМК

  • 3 Июн 2012
JeWell сказал(а):
а для модели 48 - нужен специально извращённый адаптер "AE-TS48-NAND-2".

Да,не повезло тебе.
Попробуй считать флешь на адаптере 1-в-1,выбрав K9F1G08U0A(K9F1G08U0B,K9F1G08U0M),и отключив идентификатор,
 
B

Barabashka

  • 3 Июн 2012
JeWell, сорри, не внимательно вечером читал насчёт прогера, да и про флешь Вы правы. Я конечно спрашивал насчёт ресивера, но написал тюнер, меня иногда просят перешить когда бут увален, я подойду спрошу есть ли где такая модель на слить дамп, посмотрел в нете картинки что-бы иметь представление о чём говорим. А джетага не наблюдается на плате? Всё-таки легче будет работать с нандом.... Роясь по нету наткнулся на картинку, по идее бут вверху и весит 1 кило  ссылка скрыта от гостей  Так тоже восстанавливал девайсы полным копированием нанда на прогере.....
 
J

JeWell

  • 3 Июн 2012
БМК, спасибо, испробую.

Barabashka, джтага на плате нет. Во всяком случае, в виде явного разведённого разъёма. Возможно, какие-то контрольные точки где-то и есть, которые при установке в стенд для диагностики/ремонта плат могут иметь вывод на джтаговые ноги проца, ну не суть. На картинке - jffs, т.е. файлик для образа файловой системы, который по определению уже не может быть кодом загрузчика для старта всего устройства, т.к. на момент загрузки - процессор не знает о том, что такое файловая система.
Но тема-то не об этом, это всё отступления.

Самое важное - это каким-то образом определить, что во всех данных из флэшки чем является.

Если грубо - это как многоэтажная книжная полка, на которой все полочки строго одинакового размера и каждая разделена на 2 части, большую и маленькую (например, 95% и 5%).
И вот далее следуют уже разные варианты.
1 - В большой части хранится полезный код, и если какое-то место в ней имеет дырку (т.е. если мы туда поставим книжку, то она провалится в пустоту, иными словами - это битый блок), то вместо установки книжки в это место, мы ставим её в ту запасную часть места на той же полке.
Данный вариант предполагает интеллектуальность того, кто работает с книжками на этой многоэтажной полке (библиотекаря, например). Чтобы он вёл запись, где что на каждой конкретной полке стоит, какое место где дырявое, где нет.
Возвращаясь к реальности - это должен быть контроллер работы с нандовой флэшкой. Т.е. для каждой такой "полки" он должен, при записи данных, контроллировать, не провалится ли устанавливаемая на полку книжка вникуда (т.е. не происходит ли потеря данных при записи). Если таковое происходит - значит он где-то на этой же полке должен сделать для себя же на будущее отметку, что на такое-то место ничего больше нельзя размещать, а вместо этого возможны 2 варианта:
а) пропустить этот блок и продолжить запись в следующий исправный (тем самым удлинняя основную часть полки и укорачивая ту резервную),
б) либо не менять соотношение длин основной и резервной части и использовать место в резервной области для размещения данных (т.е. в описании для каждой конкретной полки должна быть информация, что по такому-то адресу дырка, а вместо него используется такой-то адрес в резервной части).

2 - Всё место на каждой полке используется под хранение данных, т.е. когда мы сознательно принебрегаем разделением на основную и дополнительную часть. И по сравнению с первым несколько проще (хотя вся работа возложена тоже на контроллер нанд): поступающая на хранение информация предварительно снабжается избыточным кодом, чтобы, в случае ошибок чтения, её можно было восстановить при помощи алгоритма восстановления.

Повторюсь: как, имея считанный программатором дамп (а читает же он всё подряд, т.к. в конкретном устройстве, из которого флэшка, контроллер нанда может работать по какому угодно алгоритму) понять, где там какие данные?

И, авторы программатора для копирования флэшки предлагают брать новую чистую флэшку без сбойных блоков. А таких ведь практически не бывает! Итого - имеем полный ступор.
С одним только исключением - самый первый блок данных в нанде не может иметь сбойных секторов, т.е. в него якобы и должен всегда помещаться код загрузчика для работы устройства. Прописав его, за остальные данные можно не переживать, просто вытерев их, т.к. устройство (если в нём есть таковая возможность, конечно же) само по своему алгоритму запишет что и куда ему заблагорассудится.


+Ed: возможно, я в каких-то подробностях относительно представленных вариантов работы ошибаюсь, а что-то может быть не совсем полно. В любом случае, просьба поправить, если есть какие-то ошибки.
 

Верх Низ