Архив метки: ft2232

FTDI FT2232 Nand reader

Компиляция информации по работе с nand памятью с помощью FT2232  (описано при работе в Windows)

плата в DipTrace
плата адаптера для прошивки LPC9xx

Источники информации (комментарии — ВАЖНО):
http://spritesmods.com/?art=ftdinand&page=2    
ZADIG (драйвер для FTDI чипов
1. WinUSB
2.libusb
3.libusbK
)
 
https://github.com/bkerler/NANDReader_FTDI (чтение только 8 битных  чипов !!!)(работает через libusb или libusbK, но со странностями) *****************************************
информация для сборки проекта
*****************************************
1. Для вывода русского языка
#include <locale.h>
setlocale(LC_ALL, «Russian»);
2. использовать LUBUSB CALL
3. getopt брать из source в libusb ( <iostream> не использовать)
4. драйвер — zadig — libusbK !!!!!!!!!
5. Вызовы __cdecl
6. использовать CMAKE
*****************************************
для компиляции необходимы
libftdi
libusb
libusbX

https://github.com/ohjeongwook/NANDReader_FTDI дальнейшее развитие предыдущей версии !!!
https://github.com/ohjeongwook/DumpFlash (усеченная версияпредыдущего проекта !!!,
похоже продолжает развиваться

в частности не читает новые чипы, неправильно распознает идентификаторы чипа)
(работает через libusb но со странностями)
Необходимо установить
Python 2.6
Pyserial
PyUSB
Pyftdi
Import error: no module named pyftdi.ftdi
#from pyftdi.pyftdi.ftdi import *
from pyftdi.ftdi import *
value error: no backend available не находит устройство
http://blog.j-michel.org/post/86992432269/from-nand-chip-to-files  extractor областей из полученного дампа

Шаманство: (видимо криво установлены драйвера и библиотеки, но система нужна в этом виде)
Если при работе с NandTool чип неопределяется — возврат 00 00 00 00 00 00
1. установить libusb драйвера2. прочитать информацию с помощью DumpFlash -i
3.сменить драйвера на libusbK
4.прочитать информацию с помощью NandTool
все начинает корректно определяться
так необходимо делать после каждого нового переподключения устройства к USB (надо разбираться в причине)
на чипах Hynix HY27UV08BG5P такого не наблюдается.

Возможно это связано с этим   K9F1G08Q0A
(Power-On Auto-Read
The device is designed to offer automatic reading of the first page without command and address input sequence during power-on.
An internal voltage detector enables auto-page read functions when Vcc reaches about 1.8V.  PRE pin controls activation of auto-
page read function. Auto-page read function is enabled only when PRE pin is tied to Vcc. Serial access may be done after power-on
without latency.   Power-On Auto Read mode is available only on 3.3V device(K9F1GXXU0M).)

 

If you encounter problems with using a USB device with libusb on Windows, you may need to install a libusb device filter. This guide assumes that you already have libusb-win32 installed on Windows, and that you have the libusb-win32 binary version 1.2.2.0 in a folder called libusb-win32-bin-1.2.2.0. If not, see Compiling Openocd for information on installing libusb.

Описание проблемы
http://sourceforge.net/p/libusb-win32/wiki/Home/

Общие принципы восстановления данных с испорченных флеш накопителей на основе NAND памяти.

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

2. Запись  на чипы/кристаллы памяти производится блоками (blocks), состоящими в свою очередь из страниц (page), которые состоят из секторов(чаще всего по 528 бит) —  формируя  единое целое банки (Banks). Блоки внутри банков перемешанные. Каждый блок обладает маркером, как правило, 1 или 2 бита идущие подряд (это функция от номера блока), оперируя маркерами, контроллер автоматически расставляет блоки в нужном порядке, после чего информация, находящаяся на накопителе через USB интерфейс выводится на экран. В редких случаях Банки так же могут быть перемешаны, усложняя общую смешанность данных.
Задача состоит в том, чтобы в нужном порядке расставить Блоки внутри каждого Банка как это делает контроллер флеш карты, получить образ и скопировать данные. Для чего  понадобятся знания о принципах работы алгоритмов контроллеров, по которым осуществляется нумерация блоков с помощью маркеров или таблиц трансляции.

Datasheets:
K9F1G08Q0A
Микросхемы NAND памяти фирмы HYNIX
Memory chips
NAND Flash Code Information:
nand_flash_pnd
SK Hynix

ID Data of NAND Flash:
id_data_summary

Information & manuals:
Reverse Engineering Flash Memory for Fun And Benefit(1)