В качестве примера была выбрана утилита
SK6211_PDT_20090828. Она, как и многие
другие, предназначена для работы в среде ОС –
MS Win 2000 или XP. В качестве «подопытного»
выбрана флэшка
Kingston DT100/1GB.
В комплект утилиты входят:
- SK6211_20090828.exe – собственно основной модуль.
- SK6211_User_Manual.pdf – инструкция к программе на
английском языке
- SK6211BA_Skymedi Flash Support List _20090828.xls –
«Флэшлист» - список модулей памяти, которые поддерживает данная версия утилиты.
(Пригодится для определения “CodeBankVer”
по дате)
- SK6211BA R-W Performance_Capacity List_20090828.xls – Сводная таблица тестов
скорости различных модулей памяти в одноканальном и двухканальном режимах в ОС Win XP sp2 & Wink sp4. 2
- SK62XX_FAT_20090505.exe & SK62XX_FATool_UserGuideV1.pdf – вспомогательная
утилита для тестирования флэш.
- ErrorCodes.txt – список кодов ошибок.
- DrvSwitch.exe
– заводской драйвер.
- Driver_Using_manual.pdf – инструкция по использованию
драйвера
Подключаем
флэшку и узнаём
VID/PID, например с помощью
ChipGenius
3.0. У подопытной
VID = 0951 PID = 1607.
Запускаем
утилиту
«SK6211_20090828.exe» и
выбираем
в
“Configuration
Selection” default.
Видим, что в первом окне (
DUT1) определилась флэшка (
SAMPLE –
No Match),
но пока она не готова к прошивке!
SAMPLE = пример,
No Mach
= Нет Совпадения. Имеется ввиду, что текущие настройки (
default) не соответствуют внутренностям
флэшки. Утилита уже определила, что флэшка построена на контроллере который
отзывается на её запросы и уже считала из её прошивки информацию.
Просмотр этой информации производится по дабл-клику на
SAMPLE.
Тут мы видим содержимое прошивки:
-
Контроллер SK6211
-
FID
памяти (AD D3 14
A5 34) и её название (HY27UT088G2A)
-
Версию CodeBank: C080512A_F080516A
-
Версию прошивки: CodeSwap- 0512
- Остальное
не так важно (дата изготовления/ версия утилиты/ название конфигурации =
«гравировка на USB-разъёме»
/ VID&PID коды
и т.д.)
- Channel: Byte Mode (Одноканальный режим.
Может пригодиться в настройках!)
Тут все хорошо! Но что делать кода слетела прошивка так, что
большей части этой информации нет!?
Controller
Version: SK6211BA
Flash Part No.: No matched Flash Part No.
Flash ID 01: 0x89 0x95 0x94 0x1E 0x74
Flash ID 02: 0x00 0x00 0x00 0x00 0x00
Flash ID 03: 0x89 0x95 0x94 0x1E 0x74
Flash ID 04: 0x00 0x00 0x00 0x00 0x00
Flash ID 05: 0x00 0x00 0x00 0x00 0x00
Flash ID 06: 0x00 0x00 0x00 0x00 0x00
Flash ID 07: 0x00 0x00 0x00 0x00 0x00
Flash ID 08: 0x00 0x00 0x00 0x00 0x00
Здесь утилита считала из флэшки FID, но не смогла по нему подобрать
память из своего списка!
Вывод: пробовать другую утилиту или проверять контакты.
Иногда восстановление контактов по Шине Данных между контроллером и памятью изменяет
ID-шник и утилита, по
правильному ID-шнику,
находит соответствие в своей Базе Данных.
Controller
Version: SK6211BA
Flash Part No.: I29F32G08AAMD1_S
Total Flash Size: 8192 MB
4K Page, MLC
Flash ID 01: 0x89 0xD7 0x94 0x3E 0x84
Flash ID 02: 0x89 0xD7 0x94 0x3E 0x84
Flash ID 03: 0x00 0x00 0x00 0x00 0x00
Flash ID 04: 0x00 0x00 0x00 0x00 0x00
Flash ID 05: 0x00 0x00 0x00 0x00 0x00
Flash ID 06: 0x00 0x00 0x00 0x00 0x00
Flash ID 07: 0x00 0x00 0x00 0x00 0x00
Flash ID 08: 0x00 0x00 0x00 0x00 0x00
Здесь утилита нашла память в своей БД. Но версия Code Bank – неизвестна! Находим её
при помощи поиска даты по имени флэш чипа в файле SK6211BA_Skymedi Flash Support List
_20090828.xls

Теперь ищем подходящие
Code bank.
Открываем файл:
…\SK6211_PDT_20090828\CodeBank\2806\CBVer-1.2.2.44.ini

Находим по дате 09,03,09 версию: C090309A_F090309A
Вернёмся к подопытной. Переходим по кнопке “Advaced” в расширенные настройки. Пароль – 123456.
прописываем VID & PID: 0951 & 1607
Vendor Name: Kingston
Product Name: DataTraveler 2.0
Revision: 8.2 (оставляем без изменений)
Disk Type: Removable (оставляем без изменений)
S/N: 001478544881SK8703120829 (это родной серийник подопытной)
S/N Gen: (3) Don't Change SN
Ниже можно пропустить до
Fixed Flash Size = 1024 (ставим оригинальный размер флэшки)
При установке галки на Erase All выдаётся сообщение: Warning Message: System information will be eliminated after erase all !!! (Предупреждение: системная информация будет ликвидирована после установки режима «удаление всего» !!!)
Переходим в правое окошко Flash Options
Выбираем контроллер: SK6211BA
Выбираем Code Bank Ver: C080512A_F080516A (тот который выдала утилита по двойному клику на SAMPLE) Теперь я жду, что в секции Flash Selection должна появиться возможность выбора желаемой памяти - HY27UT088G2A, но этого не происходит. В чем же причина? Возможно в версии утилиты! Ведь в прошивке указана версия: PDT Version: SK6211_PDT_20080616_BA, а я пользуюсь SK6211_20090828! Идем по пути выбора ч/з флэшлист. Находим дату - 02.04.2008, но названия с такой датой в списке не нахожу и версии Code Bank с ближайшей датой тоже не подходят! Предположение с соответствием даты из флэшлиста для этой флэшки не подходит. Помог только полный перебор!
При выборе C090828A_F090828A утилита дала возможность выбора желаемой памяти!
Далее выбираем Channel Mode: Single
Больше ничего не меняем. Получаем этот скрин настроек:

Жмем Save
Получаем статус READY

Теперь утилита «готова» прошить флэшку.
Жмём Auto-LLF
Работа над ошибками
44 - [CONTROLLER_MISMATCH_ERROR]
2 - [CONTROLLER_CODEBANK_MISMATCH]
при изменение рид\врайт тест ошибка 37 - [PREFMT_ERR_WRITE_P_BLK_ERR]
-Помогла галка на ERASE ALL
_______________________________
45 - [DISK_ACCESS_ERROR]
(Статус READY, ошибка в процессе LLF)
-Помогло: перевод в тестовый режим замыканием 31-32 ног на м/с памяти
и повторная прошивка
_______________________________
101 - [FLASH_NOT_SUPPORT]
-Нужна более свежая версия утилиты с поддержкой новой памяти
ps: в предыдущей версии 20090709_BA (34 - [FLASH_NOT_SUPPORT])
_______________________________
94 - [CAN_NOT_FIND_FILE]
1 - [ERASE_HEX]
При попытке прошить - (Access error)
- Убрали удлинитель USB, из-за которого были потери.
_______________________________
В работе над ошибками был использован мой личный опыт и опыт пользователей
форума: Vitorrio, SeeJay, E1haZ и других.