T.E.S.T.C.O.P.Y. • Просмотр темы - Samsung CLX-33XX/SL-C460/CLP-415 прошивка NAND

Samsung CLX-33XX/SL-C460/CLP-415 прошивка NAND

Все что касается fix-прошивки принтеров пишем только здесь!

Модераторы: kvg, Тиныч!

Прилепить пост

Сообщение balu_dark » Вс мар 08, 2015 9:57 pm

lekm писал(а):А каким образом микроконтролер, в нашем случае принтера, определяет наличие бэд блоков?

По алгоритму заложенному в его микропрограмму. Но анализ прошивки - защищен правом интелектуальной собственности и преследуется по закону. В том числе и в России.
В первом приблежении - это может происходить при стирании сектора и проверке его ЕСС - если ЕСС содержит число ошибок большее чем позволяет исправить используемый алгоритм, весь блок микросхемы вместе с Spare area заливается значением 00. либо автоматически - контроллером NAND процессора либо просто програмно. после этого в таблице бэдов которую 3305 имеет в конце микросхемы ( вернее там не таблица бэдов как таковая- там таблица трансляции виртуальной карты блоков в физические адреса. Так будет канонично правильно, но я для простоты обьяснений называю ее картой бэд блоков) - ставится метка о том что данный сектор не учитывать при работе.

Но в нашем случае - о том что есть карта трансляции - знаем только мы, но не программатор. Если вместо нее будут левые данные - прошивка может не стартовать.

Я не встречал чтобы например проверка ECC делалась при обычных операциях чтения( чисто программно) обычно ее проверяли только при записи блока. Поэтому я не в курсе - могут ли появляться бэды при обычной работе со считыванием данных. А вот при записи - есс проверяют как правило всегда. Но так как в разных устройствах - разные контроллеры. теоретически вполне может быть что некоторые устройства могут переписывать карту и при чтении. Например контроллеры SD карт - вполне себе могут. Часть контроллеров USB flash - тоже. Но там используются другие методы маркировки бэдов так как там обычно все заточено на работу с секторами дисковой системы. А не как в нашем случае - в качестве виртуальной непрерывной памяти.
Последний раз редактировалось balu_dark Вс мар 08, 2015 10:05 pm, всего редактировалось 1 раз.
Тех кого не укусит balu_dark, завтра укусит Петросян.
Аватар пользователя
balu_dark   
Собрал картридж

Прилепить пост

Сообщение lekm » Вс мар 08, 2015 10:04 pm

balu_dark писал(а): о том что есть карта трансляции - знаем только мы, но не программатор.

В самом деле? Я в шоке. А как же цитата от chipprog, приведенная пару постами выше
Маркирование плохих блоков в микросхемах NAND Flash осуществляется записью обычно значения 0 по определенному адресу в области Spare Area нулевой страницы плохого блока. Маркеры плохих блоков лежат в определенных адресах области Spare Area.
...
Нужно иметь ввиду, что маркеры плохих блоков помещаются в обычные ячейки Flash памяти Spare Area, которые стираются при стирании всего блока памяти. Поэтому для сохранения информации о плохих блоках перед стиранием обязательно нужно сохранить эту информацию, а после стирания ее - восстановить.
В программаторах ChipProg при установке опции InvalidBlockManagement в любое значение кроме Do Not Use сохранение и восстановление информации о плохих блоках происходит автоматически.
?
А это что? Фикция, декоративное оформление ....просто что бы было?
Изображение
И самый главный вопрос - вы тоже считаете, что
Ничего он сам не видит. Он видит помеченные беды производителем NAND. И если эту инфу стереть, (не поставить галку что там про bad block менеджмент, эта инфа производителя сотрется и хваленый программатор не найдет ни одного беда.
Пчелам никто не рассказывал где мед брать.
Аватар пользователя
lekm   
Не от мира сего

Прилепить пост

Сообщение balu_dark » Вс мар 08, 2015 10:20 pm

Я не увидел в картинке вообще ничего кроме картинки! карта блоков - где собственно?


lekm писал(а):
balu_dark писал(а): о том что есть карта трансляции - знаем только мы, но не программатор.

В самом деле? Я в шоке. А как же цитата от chipprog, приведенная пару постами выше
Маркирование плохих блоков в микросхемах NAND Flash осуществляется записью обычно значения 0 по определенному адресу в области Spare Area нулевой страницы плохого блока. Маркеры плохих блоков лежат в определенных адресах области Spare Area.
...
Нужно иметь ввиду, что маркеры плохих блоков помещаются в обычные ячейки Flash памяти Spare Area, которые стираются при стирании всего блока памяти. Поэтому для сохранения информации о плохих блоках перед стиранием обязательно нужно сохранить эту информацию, а после стирания ее - восстановить.
В программаторах ChipProg при установке опции InvalidBlockManagement в любое значение кроме Do Not Use сохранение и восстановление информации о плохих блоках происходит автоматически.
?

Разницу вообще между ОБЫЧНО и ВСЕГДА знаете ? я специально выделил ключевые слова в приведенной вами ссылке на документ. Опять же - лично вы знаете по какому именно определенному адресу в области Spare Area нулевой страницы плохого блока надо записывать этот маркер? Если не знаете ВЫ - как об этом узнает программатор ? Именно по этому - вы и ставите галочку USER DATA в ЕСС для того чтобы программатор не задумывался как и что должно быть в ЕСС и просто использовал уже готовые данные из дампа. Уберите USER DATA считайте дамп и залейте его обратно с любыми настройками - принтер станет трупом.

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

Если искренне желаете получить знания а не троллить кого либо тут - берите принтер с низкой версией прошивки , подключайте дебаг и играйтесь с группой команд nand - там есть и работа с бэдами и вывод информации о них, и таблички разные. Реально - все необходимые команды по работе с nand - присутствуют. даже help есть.
Тех кого не укусит balu_dark, завтра укусит Петросян.
Аватар пользователя
balu_dark   
Собрал картридж

Прилепить пост

Сообщение apopovv » Вс мар 08, 2015 10:56 pm

Поправьте, если что не так понял.

1. С завода нанд идет с помеченными бэдами. Метка о том, является ли блок бэдом - находится в служебной области каждого блока.
2. Программатор это знает и при считывании создает таблицу трансляции (пропуска блоков) сам для себя, для дальнейшей работы.
3. Никакой таблици трансляции в самой нанде нет.
4. Usb флешки для обхода бэдов используют стандартный механизм файловой системы, который это умеет с рождения.
5. Устройства типа принтера, которому нужна не файловая система, а линейный кусок памяти, поступают как создателям взбредет в голову. Конкретно у 3305 это реализовано с помощью таблицы трансляции в конце прошивки.
6. Программатор не может читать мысли всех создателей разных способов борьбы с бэдами и довольствуется только документацией на флешку, которая обязательна для всех (в идеале).
Последний раз редактировалось apopovv Вс мар 08, 2015 11:22 pm, всего редактировалось 1 раз.
Аватар пользователя
apopovv   
Учит других ломать принтеры

Прилепить пост

Сообщение balu_dark » Вс мар 08, 2015 11:23 pm

apopovv писал(а):Поправьте, если что не так понял.

1. С завода нанд идет с помеченными бэдами. Метка о том, является ли блок бэдом - находится в каждом блоке.
2. Программатор это знает и при считывании создает таблицу трансляции (пропуска блоков) сам для себя, для дальнейшей работы.
3. Никакой таблици трансляции в самой нанде нет.
4. Usb флешки для обхода бэдов используют стандартный механизм файловой системы, который это умеет с рождения.
5. Устройства типа принтера, которому нужна не файловая система, а линейный кусок памяти, поступают как создателям взбредет в голову. Конкретно у 3305 это реализовано с помощью таблици трансляции в конце прошивки.
6. Программатор не может читать мысли всех создателей разных способов борьбы с бэдами и довольствуется только документацией на флешку, которая обязательна для всех (в идеале).

1. насколько я видел разные нанды с бэдами - меток нет никаких совсем - просто тупо весь блок длиной 21000 в шестнадцатиричной системе забит нолями.
2. программатор делает только то что ему говорит человек - увидев что по ОПРЕДЕЛЕННОМУ СОЗДАТЕЛЕМ ПРОГРАММАТОРА АДРЕСУ лежит один или больше байтов нулевых (какой точный алгоритм признания сектора бэдом в конкретном программаторе - я не знаю! это надо смотреть код программатора). Таблицу никакую программатор не создает! максимум что он может сделать это пропустить блок который не может стереть и пытаться записать данные в следующий рабочий блок. Но тогда имеем дилемму - а что делать с данными которые нужно было записать в текущий блок ? Переносить их в следующий? Но ведь тогда потеряем данные которые будут находится в последнем блоке!
Для обхода этой проблемы - в своей программе я сдвигаю блоки до определенных пределов. А последние блоки всегда оставляю те что надо - с виртуальными таблицами. Опять же - двигать нельзя все подряд блоки - в 3305 часть пространства отдана под файловую систему - а вот ее двигать никак нельзя вроде.
3. да - таблицы нет. в случае использования нанд памяти в качестве накопителя - номера секторов LBA(Logic Block Adress) прописывают прямо внутрь Spare Area рядом с ЕСС. хотя например в мобильниках встречались и более интересные вариации - типа в первом секторе пишется таблица с номерами секторов этого блока. и далее идет чисто программная трансляция.
4. Не совсем так. Но там вся работа тупо возложена на аппаратный контроллер и пользователь снаружи видит чисто файловую систему - все нюансы работы нанда - от него скрыты вообще.
5. Примерно так - в каждом устройстве применяющем нанд в качестве памяти для загрузки прошивки устройства, все зависит от того как создатель смог/захотел работать с нанд памятью. Рекомендую почитать теорию что такое red boot. там будет описано несколько разных вариантов загрузки из нанда для разных платформ.
6. Поправочка - программатор вообще ни с чем не борется! он умеет один или 2 стандартных алгоритма пользовать которые описаны еще в 90х годах прошлого века. Они как бы стандарт но я не видел их ни в одном современном устройстве. все остальное заключается в простом отключении мозга программатора и надежде что пользователь сам знает что куда и зачем класть в микросхему. В таком случае требуется чекнуть опцию - данные пользователя ( User data). А бэды он никак не маркирует особенно - в лучшем случае он затрет сектор нулями, в худшем - сам девайс(или его контроллер) при включении увидев что зона забита нулями - выполнит все то что нужно выполнить.
Тех кого не укусит balu_dark, завтра укусит Петросян.
Аватар пользователя
balu_dark   
Собрал картридж

Прилепить пост

Сообщение apopovv » Вс мар 08, 2015 11:34 pm

Мда ....

А что это за вкладка у программатора "карта плохих блоков" на картинке lekm'а ?
Этож не с проста?
Аватар пользователя
apopovv   
Учит других ломать принтеры

Прилепить пост

Сообщение balu_dark » Вс мар 08, 2015 11:48 pm

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

Определение бэд блока программатором и определение его же - устройством - совершенно разные понятия! Если метод самого определения совпадет и в программаторе и в устройстве то оба - определят бэд блок!
Но дело не в физическом определении самого бэда как термина. Дело в реакции на определение факта работы с бэдом.

В случае программатора - ему по барабану. В большинстве случаев он просто пропустит бэд и либо выкинет те данные которые надо было в это место записать, либо запишет их в следующий сектор. И даже если софт программатора - написан шибко умными людьми - он может в уме у себя хранить карту этих битых блоков и даже (при условии что мы льем дамп принципиально не содержащий битых блоков) теоретически способен при верификации - просто ПРОПУСКАТЬ проверку данных в блоках которые он для себя пометил как сбойные. НО как всегда есть но - как поведет себя программатор если :
в записываемом дампе есть бэд ( то есть зона с кучей нулей) а в программируемой микросхеме в этом блоке нет бэда ?
какие данные и с чем - будет сравнивать при пропуске записи вновь образовавшегося бэда в микросхеме после стирания и попытки записи?
Я ответа на эти вопросы - не знаю. Поэтому зная что конкретно мой программатор ничего не сдвигает и ничего не пропускает - я написал программу которая в тех местах где уже есть бэды - создает пустые зоны, аналогичные тем которые имеются в бэд блоках. Результатом стало то - что теперь у меня верификация зашитой микросхемы(при условии что в процессе записи не появился новый бэд ) всегда проходит успешно. А ранее оно пыталось сравнить данные из дампа с нулевым содержимым бэда и обрывало дальнейшую проверку. Это то и стало причиной написания программы - необходимость проверки записи остальных данных. Пока программа успешно с этой задачей справляется! Задача максимум - генерация сразу дампа из фикс прошивки - пока полностью не реализована из-за отсутствия экспериментального принтера на долгий срок - вроде недели - двух. Потому как в сжатые сроки - лениво паять по 5-10 раз подряд флэшку.

Как еще более подробно вам разжевать если вы не знаете базовых основ работы нанда? Задавайте тогда вопросы но не о том - как летают космические корабли, а дробите вопрос на мелкие части. например как устроен корабль, а что такое двигатель, а как он устроен. а какие принцыпы используются в полетах. А не сразу - у меня есть молоток - я хочу в космос.
Задавая менее глобальные вопросы - и как можно более точнее, вы и уровень повысите, и избавите других от обьяснения что такое аборт. вырванного вами из контекста "волны бились о борт корабля" как в известном анекдоте.
Потому как не всегда можно точно понять что именно вы хотите конкретно узнать задавая тот или иной вопрос. Иногда вы не подозреваете что на поставленный вами вопрос могут существовать 5-6 диаметрально противоположных ответов из совершенно разных областей.

Добавлено спустя 4 минуты 36 секунд:
apopovv писал(а):Мда ....

А что это за вкладка у программатора "карта плохих блоков" на картинке lekm'а ?
Этож не с проста?

да нет на картинке у него никакой карты!
просто показана некая область забитая нулями. в дампе этой области вы точно не увидите!
Вот когда он покажет реальную карту из реальной микросхемы - тогда можно будет говорить о чем либо. выше я уже писал - под "картой бэд блоков" может скрываться простое умственное представление программы обслуживающей программатор о том что где либо есть битый блок. В самом чипе именно в виде "карты" этой информации не будет. Хотя какую либо таблицу программатор и может сохранить в микросхеме чисто для себя - но никто не опознает эти данные именно как некую таблицу. Почему - об этом неоднократно выше писали и я и еще один человек.
Тех кого не укусит balu_dark, завтра укусит Петросян.
Аватар пользователя
balu_dark   
Собрал картридж

Прилепить пост

Сообщение apopovv » Пн мар 09, 2015 12:32 am

Я про то, что может же программатор, считывая данные с рабочей флешки, сделать табличку для себя?
Чтоб не спотыкаться об бэды. Не записывать ее на флешку, а просто иметь у себя.
Аватар пользователя
apopovv   
Учит других ломать принтеры

Прилепить пост

Сообщение balu_dark » Пн мар 09, 2015 12:38 am

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

Теоретически - может. Но практически - только смотреть код программы программатора.
Тех кого не укусит balu_dark, завтра укусит Петросян.
Аватар пользователя
balu_dark   
Собрал картридж

Прилепить пост

Сообщение Evg71 » Пн мар 09, 2015 6:20 am

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


Конечно. Может. Для того чтобы соблюсти требование производителя "не стирайте заводские метки беда", ну и не писать туда данные раз уж там бед.
И назвать эту табличку производитель программатора может как угодно - таблица бедов, список бедов, карта бедов и т.д. и т.п.
А может и не делать, а тупо перед каждой операцией записи и стирания читать блок и смотреть бед это или нет. Если да - просто пропускать.

Например, Autogprog, на данном этапе этого не делает. Стирает все подряд, пишет тоже все подряд.
Аватар пользователя
Evg71   
Добрался до абсорбера
  • Не в сети

Прилепить пост

Сообщение lekm » Вт мар 10, 2015 9:05 pm

Тем кто любит экспериментировать хочу предложить провести простой опыт с принтером.
Суть опыта простая - на рабочем принтере сдуть микру, удалить табличку с информацией о бэдблоках и в таком виде впаять обратно.
Реакция принтера на это действие и будет целью опыта.
Ну о резервной копии дампа наверное не надо было напоминать, но на всякий случай напишу. :-):
Пчелам никто не рассказывал где мед брать.
Аватар пользователя
lekm   
Не от мира сего

Прилепить пост

Сообщение Sergey23 » Вс мар 15, 2015 3:31 am

Подскажите пожалуйста, в 3305 возможна ли замена K9F1G08U0D-SCB0 на K9F1G08U0D-SIB0?
Аватар пользователя
Sergey23   
Заправил картридж
  • Не в сети

Прилепить пост

Сообщение Evg71 » Вс мар 15, 2015 6:25 am

Sergey23 Да, это одна микросхема. Отличия в том, что -SIB поддерживает более широкий диапазон рабочих температур. SCB (от -10 до +125), SIB (от -40 до +125).

P.S. ну и напомню, что возможна замена на K9F1G08U0E

За это сообщение автора Evg71 поблагодарил:
Sergey23
Рейтинг: 2.7%
 
Аватар пользователя
Evg71   
Добрался до абсорбера
  • Не в сети

Прилепить пост

Сообщение lekm » Вс мар 15, 2015 3:47 pm

Если заглянуть в дамп, то можно увидеть вот такое:
Samsung, K9F1G08Q0A, NAND 128MB 1,8V 8-bit..Samsung, K9F1G08U0A, NAND 128MB 3,3V 8-bit..Toshiba, TC58NVG0S3, NAND 128MB 3,3V 8-bit..Micron, MT29F2G16AAB, NAND 256MB 3,3V 16-bit....Toshiba, TC58NVG1S3, NAND 256MB 3,3V 8-bit..Toshiba, TC58NVG2S3, NAND 512MB 3,3V 8-bit..Samsung,
K9F4G08U0D, NAND 512MB 3,3V 8-bit..Micron, MT29F4G08ABADA, NAND 512MB 3,3V 8-bit

Больше всего понравилось : "....Bad block table is crased !!!...[ERROR]"
Пчелам никто не рассказывал где мед брать.
Аватар пользователя
lekm   
Не от мира сего

Прилепить пост

Сообщение Sergey23 » Пн мар 16, 2015 12:14 pm

Evg71 писал(а):Sergey23 P.S. ну и напомню, что возможна замена на K9F1G08U0E

В чиппрог48 нет K9F1G08U0E
шить в наглую как K9F1G08U0D?
Аватар пользователя
Sergey23   
Заправил картридж
  • Не в сети

Пред.След.

Вернуться в Все о прошивке принтеров

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

вверх
вниз
x

#{title}

#{text}