В программном обеспечении для программаторов Тритон, начиная с версии 5.8.56 (декабрь 2020г.), добавлена возможность проверки и коррекции ошибок при работе с микросхемами NAND-FLash. Учитывая, что данная тема очень сложная, и не многие программаторы поддерживают эту функцию в полном объеме, попробую объяснить, что это такое и для чего нужно.
Технология, по которой изготовлены микросхемы NAND-Flash, не может гарантировать отсутствие ошибок в процессе работы с микросхемой. Существуют два типа этих ошибок. Первый тип обнаруживается при записи или стирании микросхемы и маркируется как дефектный блок. Второй тип появляется при чтении микросхемы, как правило, в виде искажения отдельных битов. Для исправления таких ошибок используются корректирующие коды (или ECC). Ошибки могут быть в виде "плавающих" бит, которые будут считываться каждый раз по-разному. При повторном чтении или проверке программатор может сообщить об этом. Либо постоянно читаться не правильно, в этом случае программатор напишет, что считано успешно, но данные будут повреждены. Если при записи такого файла в другую микросхему, к ошибкам в файле добавятся еще ошибки в микросхеме, то общее число ошибок может превысить корректирующую способность кода и устройство работать не будет.
Что сделано (версия V5.8.56). - На данный момент программа поддерживает основные алгоритмы коррекции ошибок: Хемминга, Рида-Соломона, БЧХ. - В режиме Автокоррекции программа распознает 50 различных конфигураций этих алгоритмов. - Программа позволяет исправлять считываемые из микросхемы данные и очищать чужой файл от ошибок при записи микросхемы. - Проверено около 80 разных микросхем и более 200 дампов от LCD телевизоров, спутниковых ресиверов, принтеров, DVD, DVR, GPS, WIFI... - Из имеющегося архива программа определяет около 80% алгоритмов ECC.
Как это работает в программе. После выбора микросхемы NAND, в меню "Коррекция ошибок" (это меню доступно при подключении программаторов V5.7T или V5.8T) можно выбрать нужный алгоритм ECC и настроить его параметры, либо выбрать режим Автокоррекции. В режиме Автокоррекции при ЧТЕНИИ микросхемы, программа вычисляет ECC для каждой страницы, сверяет его с ECC считанным из микросхемы, при необходимости корректирует ошибки, и сохраняет данные в буфере. При ЗАПИСИ микросхемы программа проверяет и исправляет ошибки в исходном файле (не меняя ECC), после чего пишет данные в микросхему. В отличии от других программаторов, Тритон только исправляет ошибки и НЕ МЕНЯЕТ ECC. Те, кто разбираются в данном вопросе, могут настроить параметры для каждого алгоритма (организацию страниц, количество ошибок, адрес размещения ECC...), а также задать порядок обработки файла при записи (записать файл "как есть", проверить и исправить в нем ошибки, или перерассчитать ECC заново).
Вот пример записи многострадальной K9GAG08U0E.
И последующее чтение этой же микросхемы.
Или другой пример записи K9GAG08U0E. В большинстве случаев, без проверки ECC, программатор покажет, что все нормально. Но с учетом того, что в файле есть 21 страница с некорректируемыми ошибками, работа телевизора будет под вопросом.
Что пока не работает. 1. Дампы, в которых используется два алгоритма ECC. В основном это телевизоры Sony. Программа понимает эти алгоритмы, но пока не решен вопрос как переключать алгоритм в процессе работы. К тому же у меня нет полной уверенности, что это "родной" дамп с телевизора, а не смонтированный файл от разных моделей. 2. Дампы, использующие полные 7 байт ECC. Опять же телевизоры SONY. 3. Дампы, использующие 14-байтный ECC, с нестандартным размерами страниц.
Буду признателен за любые идеи или подсказки по этим вопросам. В случае, если эта информация конфиденциальна, это можно обсудить в личке или в техподдержке на сайте Тритона.