Найти в Дзене
merkulss

Hamming NAND Dump Check & ECC Correction Tool v1.0

Скрипт Hamming NAND Dump Check & ECC Correction Tool предназначен для проверки и коррекции данных в дампах NAND-памяти с использованием алгоритма Хэмминга для вычисления и исправления ошибок ECC (Error Correction Code). Скрипт позволяет: Скрипт поддерживает работу с дампами размером 128, 256 и 512 байт на страницу и может быть легко адаптирован для других размеров. Скрипт Hamming NAND Dump Check & ECC Correction Tool является мощным инструментом для работы с дампами NAND-памяти. Он позволяет не только находить и исправлять ошибки, но и гибко настраивать процесс проверки, что делает его удобным для использования в различных сценариях. На текущий момент устройства использующие Hamming ECC, как и SLC NAND уже редкость, однако чаще это эксклюзив и не всегда можно добыть дампы, или есть поддержка схемы в программаторе. Поэтому скрипт останется актуальным. Работает медленно в отличие от готовых решений или в хороших программаторах, поскольку не использует предварительно рассчитанных таблиц,
Оглавление

пример отработки скрипта. ошибки внесены намеренно для проверки.
пример отработки скрипта. ошибки внесены намеренно для проверки.

Описание скрипта

Скрипт Hamming NAND Dump Check & ECC Correction Tool предназначен для проверки и коррекции данных в дампах NAND-памяти с использованием алгоритма Хэмминга для вычисления и исправления ошибок ECC (Error Correction Code). Скрипт позволяет:

  1. Проверять данные на наличие ошибок и автоматически исправлять их, если это возможно.
  2. Пересчитывать ECC для данных, если требуется обновление контрольных сумм.
  3. Пропускать проверку и пересчет для блоков данных, заполненных 0xFF или 0x00, что полезно для ускорения обработки больших дампов.
  4. Работать с несколькими регионами данных, что позволяет гибко настраивать проверку для разных частей дампа.
  5. Сохранять конфигурацию в файл для повторного использования.

Скрипт поддерживает работу с дампами размером 128, 256 и 512 байт на страницу и может быть легко адаптирован для других размеров.

Основные функции

  1. Проверка и коррекция ошибок:
    Скрипт проверяет данные на наличие ошибок с использованием ECC и автоматически исправляет их, если это возможно.
    Если ошибка некорректируемая, скрипт выводит информацию о синдроме ошибки, адресе страницы и номере data_part.
  2. Пересчет ECC:
    Скрипт позволяет пересчитать ECC для всех данных в дампе и сохранить обновленный дамп.
  3. Пропуск проверки для 0xFF и 0x00:
    Если данные заполнены 0xFF или 0x00, скрипт может пропустить их проверку и пересчет, что ускоряет обработку.
  4. Гибкая настройка регионов:
    Пользователь может задать несколько регионов для проверки, указав начальный адрес и размер каждого региона.
  5. Интерактивный выбор файла:
    Скрипт предоставляет удобный интерфейс для выбора файла дампа с поддержкой фильтрации по расширениям.

Примеры использования

  1. Проверка и коррекция ошибок:
    Запустите скрипт и выберите файл дампа.
    Выберите режим 1 (Correct errors).
    Скрипт проверит данные на наличие ошибок и автоматически исправит их, если это возможно.
    Исправленный дамп будет сохранен в файл с суффиксом _fix_ecc.bin.
    Пример вывода:
    CopyCorrected data error at byte 0x1234: 0xAB -> 0xAC (bit 3)
    Corrected ECC error at addresses 0x5678, 0x5679, 0x567A
    Old ECC: [0x12, 0x34, 0x56]
    New ECC: [0x13, 0x35, 0x57]
    Uncorrectable error detected at page 0x1000, data part 2 with syndrome: [0x01, 0x02, 0x03]
  2. Пересчет ECC:
    Запустите скрипт и выберите файл дампа.
    Выберите режим 2 (Recalculate ECC).
    Скрипт пересчитает ECC для всех данных и сохранит обновленный дамп в файл с суффиксом _recalc_ecc.bin.
    Пример вывода:
    CopyRecalculated ECC data saved to dump_recalc_ecc.bin
  3. Пропуск проверки для 0xFF и 0x00:
    При настройке конфигурации укажите y для параметров Skip data filled with 0xFF и Skip data filled with 0x00.
    Скрипт будет пропускать проверку и пересчет для блоков данных, заполненных 0xFF или 0x00.
  4. Работа с несколькими регионами:
    При настройке конфигурации укажите количество регионов и их параметры (начальный адрес и размер).
    Скрипт будет проверять только указанные регионы.

    Заключение

Скрипт Hamming NAND Dump Check & ECC Correction Tool является мощным инструментом для работы с дампами NAND-памяти. Он позволяет не только находить и исправлять ошибки, но и гибко настраивать процесс проверки, что делает его удобным для использования в различных сценариях. На текущий момент устройства использующие Hamming ECC, как и SLC NAND уже редкость, однако чаще это эксклюзив и не всегда можно добыть дампы, или есть поддержка схемы в программаторе. Поэтому скрипт останется актуальным. Работает медленно в отличие от готовых решений или в хороших программаторах, поскольку не использует предварительно рассчитанных таблиц, однако позволяет адаптировать алгоритм более гибко под нестандартные ситуации.

Для поиска параметров неизвестной схемы не сложно глазами разобрать расположение данных и трех байтов ECC, затем сгенерировать на этот дамп новый ECC и проверить, исправить порядок байтов и маски XOR для ECC. Обычно все наглядно.

По ссылке скрипт и пример дампа (с ошибками для примера) с конфигурационным файлом под него.
https://disk.yandex.ru/d/1_za3tB5TFJ1Ww