jmf616 SSD firmware recovery

Поскольку и-нет глух, у меня есть ответ на ваш вопрос.

Если SSD на jmicron jm616 начинает прикидываться FCR SATA Loader 1000,01, то есть два способа.
1.1 Если это комбо устройство SATA+USB, то качаем JMicron 61X M.P. Tool
usbdev.ru/?wpfb_dl=3853 Прикрепленный файл. В нем явно больше типов флеша и более новая ПО.


Смело подключаем к USB и ... дальше все интуитивно понятно.
1.2 Если у вас в загашнике завалялся переходник SATA-USB jmf20329 - аналогично, как и описано в инструкции к MPtool.
Если контроллер переходника не jmf20329, то поздравляю. Притом, если это jmf20339, то утилита найдет именно его, но не стоящий за ним SSD.
Проверенно лично, не тратьте время.

2. Если ничего этого нет, то велкам.

Качаем обновлялку до версии 110322 JMicron JMF616 SATA ISP Tool v110322
usbdev.ru/?wpfb_dl=2858
Разбираем SSDешку и смотрим тип флеши.
Смотрим как она называется в файле Flash.ini, т.е. ее "псевдоним".
Подключаем SATA шлейф "на горячую", ибо дивайс толком не инициализируется и подвешивает определение устройств в BIOSе.
Грузимся во FreeDOS с VC.
SATA ISP Tool v110322 радостно вам заявит, что не может определить версию фирмвари в устройстве.
Выбираем редактирование файла jmisp616.exe, переходим в HEX, меняем
//определение Current firmware version. Первая правка возможно не нужна. Зачем делал -уже не вспомню.
Offset: 0 1 2 3 4 5 6 7
00008EE0: FC 80 7D FC 00 74 06 80
на
Offset:
00008EE0: FC 80 7D FC 00 75 06 80
и
Offset: 0 1 2 3 4 5 6 7
0000BF90: 7E 44 00 00 00 74 64 B8
на
Offset:
0000BF90: 7E 44 00 00 00 75 64 B8
с этим изменением версия определится как у FCR SATA Loader т.е. 1000,01

//Прошивальщик считает, что версия SATA LOADER старше 110322
Offset: 0 1 2 3 4 5 6 7
0000BFE0: 00 00 00 74 02 EB 12 B8
на
Offset:
0000BFE0: 00 00 00 75 02 EB 12 B8

// Update fail, до свиданья
Offset: 0 ... 7 8 9 A B C D E F
0000C0E0: FC 00 75 05 E9 03 03 00
на
Offset:
0000C0E0: FC 00 74 05 E9 03 03 00

Сохраняем изменения в файле.
Правим isp.ini
Значения ключей прописаны в мануале от виндового USB MP tool по первой ссылке.
Некоторые комментарии на примере:
[TestItems]
CheckFlashMask=31
EnSataTest=1
EnFlashTest=1
EnDramTest=1
EnPreFormat=1
EnDownload=1
DownloadType=1
EnRWTest=1
EnCheckTables=1
EnSetMaxLBA=0
SetMaxLBAValue=0
EnFormat=0
DiskFormat=0
DiskLabel=SSD Disk

[DeviceSetting]
ModelNum=SPCC Solid State Disk
FirmwareVer=110322
SerialNum=000012121971-032GT10
SNAutoInc=1
SNDecimal=0
SNMinLength=20
SNErrReuse=0
VID=152D
PID=0616
VendorName=SP
ProductName=T10G32
ManufString=Silicon Power
ProductString=616 SSD
OUI=000000
UID=000000000
UIDAutoInc=0
UIDDecimal=0

[FlashSetting]
FlashUniName=AAMDB18
Channel=8
Bank=1
DrvCurrent=1

[FwSetting]
DefPercentage=48
ResPercentage=68
Bch16ReadErrorThreshold=13
Bch24ReadErrorThreshold=20
Bch16EccErrorCopyThreshold=4
Bch24EccErrorCopyThreshold=15
ScrambleEnable=1
RemapEnable=1
UsbRemovable=0
UsbLedP14=0
SecurityCounter=5
DirtyDepth=40
EnTrimCmd=1
EnSizeAlignment=0
EnThermalSensor=1
Обратить внимание на
[DeviceSetting]
FirmwareVer=110322 //отображение версии в свойствах устройства. Если не указывать, будет 123456. Возможны проблемы с обновлением ПО
[FlashSetting]
FlashUniName=AAMDB18 // "псевдоним" флеша из FLASH.ini. Указывать обязательно
Channel=8 // количество каналов
Bank=1 // количество банков

Если неизвстно, то скорее всего - мс на одной стороне платы - 8/1, на двух - 8/2. Подбирать экспериментально, что бы емкость соответствовала предыдущей.

DrvCurrent=x // Это ток неизвестно чего (настраивается под тип флеша), 0=2мА, 1=4мА и т.д. "x"- авто/без изменений.
EnThermalSensor=1 // Включает показание температуры.Если не включенно или команда написана с ошибкой, как біло:) , то в современных версиях застрянет на 40 градусах.
EnTrimCmd=1 // Включает TRIM
EnSizeAlignment=0 // Отключает какое-то выравнивание. Если включить, то у 32ГБ диска 5 ГБ уходит под нужды контролера для замены битых ячеек.

ЕСли SSD уходит в отказ из-за неправильной фирмвари, то паяем джампер. Его замыкание отключает выполнение фирмвари и диск ждет ее скачивания с компа. В случае когда активировался SATA LOADER, устанавливать не нужно.

Теперь о фирмвари, прошивальщике, жизни и вообще.
- JMicron JMF616 SATA ISP Tool v110322 льет только v110322. С другими - затыкается на разных этапах.
- isp.dat - закодированный разными битовыми сдвигами файл, содержащий 3 фразы (2 каких-то предупреждения и имя компании), версию фирмвари, битовую маску каких-то операций, производящую оверрайд isp.ini - 12 байт, в каждом байте толи 0, толи 1 + символ Y/N кажется соглашения соглашения с EULA.
- У ISP Tool v110322 эта самая v110322 прописана в .ехе, маски нет, имени компании нет и вообще красота.
- Фирмварь состоит из init.bin(Х/З что), GDP.bin(фирмварь?), SATATEST.bin (???). SYS_xxxx (настройка контроллера под тип и конфигурацию флеша) - нужный файл смотрится в виндовом ISP Tool.

Update

Для тех кто хочет обновить фирмваре до последней 120703 130805.
1. Исправляем бинарный файл jmisp616.exe из набора JMicron JMF616 SATA ISP Tool v110322
usbdev.ru/?wpfb_dl=2858
как описанно выше по всем шагам.
1,1 вносим дополнительные изменения
Offset: 0 1 2 3 4 5 6 7
26ff8: 31 31 30 33 32 32 00 4E
на
Offset:
26ff8: 31 33 30 38 30 35 00 4E
и
Offset: 0 1 2 3 4 5 6 7
27018: 0A 00 31 31 30 33 32 32
на
Offset:
27018: 0A 00 31 33 30 38 30 35
т.е. текстовое "110322" меняем на "130805"
Сам номер фирмваре находится в файлах SYS_xxxx по смещению где-то 0300h и имеют вид
JMSSD_130805_S,Aug 5 2013,18:57:29,61XA.
Если строка в SYS_xxxx не совпадет со значением в JMISP616.exe, то будет "error code 060 - download firmware fail!"
В ISp.ini версия фирмваре носит описательный характер отображается при инициализации диска, может быть любая. Но лучше указывать настоящую, во избежание проблем в дальнейшем.

1.2 В файле isp.ini меняем строку
FirmwareVer=110322 на
FirmwareVer=130805
Для обновления фирмваре в принципе достаточно, что бы файл isp.ini имел вид
[DeviceSetting]
FirmwareVer=130805
[FlashSetting]
FlashUniName=AAMDB18
Channel=8
Bank=1
DrvCurrent=X
[FwSetting]
DefPercentage=48
ResPercentage=68
Bch16ReadErrorThreshold=13
Bch24ReadErrorThreshold=20
Bch16EccErrorCopyThreshold=4
Bch24EccErrorCopyThreshold=15
ScrambleEnable=1
RemapEnable=1
UsbRemovable=0
UsbLedP14=0
SecurityCounter=5
DirtyDepth=40
EnTrimCmd=1
EnSizeAlignment=0
EnScrambleRandomSeed=1
EnThermalSensor=1
3. Из архива по адресу (спасибо фирме Трансенд и ее ФТП ).
217.166.158.90/Products/SSD25S-M_JMF616/
версия 130411. По факту 130805.
извлекаем файлы:
init.bin, satatest.bin, GDP.bin, SYS_ХХХХ.bin(все), Flash.ini
4. Файлы из JMicron JMF616 SATA ISP Tool v110322 usbdev.ru/?wpfb_dl=2858 :
- ISP.dat - оригинальный, размером 69кБ
- jmisp616.exe - исправленный в предыдущих шагах
- isp.ini - исправленный в предыдущих шагах

Или просто скачать прикрепленный файл jmk_616_ver_130805.7z.7zip

Убрать .7zip (ограничение движка форума, .7z не принимает), разархивировать, запустить JMISP616.exe из под FreeDOS или при наличии адаптера - JMMassProd61X.exe из Виндоуз, можно 10, можно х64.
Данные естественно с диска будут удалены, так что перед мероприятием - бекап.
И все будет norma 4 you

ВложениеРазмер
jmk_old_120703.7zip744.65 КБ
jmk_old_130805.7zip1000.52 КБ
jmk_old_110322.7zip970.44 КБ

666pan

переходник SATA-USB jmf20329
Через него виндовая прога определит тип Флеша.
Без него -никак.

Аватар пользователя EOF8157

Попал ко мне Kingston SSDnow V100S2 128 Гб с ошибкой не ставится система, ошибка записи
И дернул черт натравить на него HDDScan - проверка на чтение была успешной, а вот запись -после первых нескольких нормальных блоков пошли бэды, HDDScan я тормознул, да видимо поздно - через несколько минут диск исчез из системы и больше не появился.
Новая прошивка производителя диск не видит
собрал уже несколько версий утилит(2.8a,2.11,2.19,2.20,2.31,2.37,2.39) под дос, перепробовал все в разных комбинациях, восстановить не получается
что имею на данный момент:


1 вообще диск как то странно себя ведет - на холодную плохо определяется(в режиме лоадера) в системе, приходится несколько раз передергивать питание, потом нормально. может диск совсем плох, и его просто не восстановить
2 дальше чем прошивка 110322 никто не шьет - до ошибки 70, сыплется на table , остальные доходят до ошибки 50 preformat -может памяти хана ?
3 после заливки 110322 тулза версии 2.31(от трансценда) определяет тип памяти, но с ней нет прошивки от моего накопителя, прошивка из другого дистрибутива вызывает ошибку разных версий (а поправить ехешник не получится) версии живут в isp.dat и зашифрованы - его ломать надо
4 замечено что указание типа памяти в ini файле никак не влияет, то есть тулза версии 2.31(от трансценда) определяет память вне зависимости от указаний, а из ini файла берет только название
5 замечено что определение текущей прошивки зависит от isp.dat - видимо там прописано в каком месте искать версию
6 родная прошивка(с тулзой 3.37) диск не видит и более того умудряется уничтожить залитую 110322 еще на стадии обнаружения диска(то есть повисит, подумает, скажет чип памяти не поддерживается и свалит, а диск после этого надо опять шить иначе остальные прошивальщики не увидят тип памяти)
7 попробовал тут контроллер USB-SATA на jm20339 - виндовая тулза его никак не видит, диск определяется как то страшно месиво букв и цифр, а вот контроллер 20336 определяет верно как загрузчик, но видимо эффект 20339 как в шапке - тулза видит только контроллер
8 пробовал составлять ini файл в виндовой тулзе, но видимо досовая версия игнорирует половину ключей

Осталась одна надежда на мост 20329 (заказал) и что виндовая тулза более функциональная
как я понимаю работай их тулза под 7кой переходник не нужен был бы - 7ка с AHCI работает нормально, в отличии от XP, насколько я вижу на своей системе

Все мосты сожжены... будем перепаивать!

Аватар пользователя EOF8157

Итак, от скуки изменил 4 байта в прошивальщике версии 2.31 - места правки другие но рискнул и вроде получилось
теперь если взять с ним isp.dat от кингстона то получаю ошибку get erase count c0
а если с трансендовским дат то он хочет дополнительный файл прошивки sys_utfc и все равно ошибка таблиц с кодом J00

Все мосты сожжены... будем перепаивать!

Аватар пользователя EOF8157

А вот что написала правленная версия 2.37

Preformat.....Fail! Error Code = C00, Pre-Format Fail!
==================Error Message==============================
Number of bad block is over defect ratio:
Ch#00, Bank#00, Die#00, BadBlockNum: 13, BadBlockNumRatio(1/1000): 6
Ch#00, Bank#01, Die#00, BadBlockNum: 7, BadBlockNumRatio(1/1000): 3
Ch#00, Bank#02, Die#00, BadBlockNum: 2, BadBlockNumRatio(1/1000): 0
Ch#00, Bank#03, Die#00, BadBlockNum: 1, BadBlockNumRatio(1/1000): 0
Ch#01, Bank#00, Die#00, BadBlockNum: 20, BadBlockNumRatio(1/1000): 9
Ch#01, Bank#01, Die#00, BadBlockNum: 3, BadBlockNumRatio(1/1000): 1
Ch#01, Bank#03, Die#00, BadBlockNum: 10, BadBlockNumRatio(1/1000): 4
Ch#02, Bank#00, Die#00, BadBlockNum: 8, BadBlockNumRatio(1/1000): 3
Ch#02, Bank#01, Die#00, BadBlockNum: 9, BadBlockNumRatio(1/1000): 4
Ch#02, Bank#02, Die#00, BadBlockNum: 3, BadBlockNumRatio(1/1000): 1
Ch#02, Bank#03, Die#00, BadBlockNum: 2, BadBlockNumRatio(1/1000): 0
Ch#03, Bank#00, Die#00, BadBlockNum: 7, BadBlockNumRatio(1/1000): 3
Ch#03, Bank#01, Die#00, BadBlockNum: 3, BadBlockNumRatio(1/1000): 1
Ch#03, Bank#02, Die#00, BadBlockNum: 1, BadBlockNumRatio(1/1000): 0
Ch#03, Bank#03, Die#00, BadBlockNum: 9, BadBlockNumRatio(1/1000): 4
Ch#04, Bank#00, Die#00, BadBlockNum: 3, BadBlockNumRatio(1/1000): 1
Ch#04, Bank#01, Die#00, BadBlockNum: 17, BadBlockNumRatio(1/1000): 8
Ch#04, Bank#02, Die#00, BadBlockNum: 6, BadBlockNumRatio(1/1000): 2
Ch#04, Bank#03, Die#00, BadBlockNum: 14, BadBlockNumRatio(1/1000): 6
Ch#05, Bank#00, Die#00, BadBlockNum: 12, BadBlockNumRatio(1/1000): 5
Ch#05, Bank#01, Die#00, BadBlockNum: 2, BadBlockNumRatio(1/1000): 0


Ch#05, Bank#02, Die#00, BadBlockNum: 8, BadBlockNumRatio(1/1000): 3
Ch#05, Bank#03, Die#00, BadBlockNum: 10, BadBlockNumRatio(1/1000): 4
Ch#06, Bank#00, Die#00, BadBlockNum: 10, BadBlockNumRatio(1/1000): 4
Ch#06, Bank#01, Die#00, BadBlockNum: 7, BadBlockNumRatio(1/1000): 3
Ch#06, Bank#02, Die#00, BadBlockNum: 5, BadBlockNumRatio(1/1000): 2
Ch#06, Bank#03, Die#00, BadBlockNum: 1, BadBlockNumRatio(1/1000): 0
Ch#07, Bank#00, Die#00, BadBlockNum: 8, BadBlockNumRatio(1/1000): 3
Ch#07, Bank#01, Die#00, BadBlockNum: 5, BadBlockNumRatio(1/1000): 2
Ch#07, Bank#02, Die#00, BadBlockNum: 3, BadBlockNumRatio(1/1000): 1
Ch#07, Bank#03, Die#00, BadBlockNum: 2, BadBlockNumRatio(1/1000): 0

Bad CH/CE:
Ch#0, CE#0, BadBlockNum: 13
Ch#1, CE#0, BadBlockNum: 20
Ch#2, CE#0, BadBlockNum: 8
Ch#3, CE#0, BadBlockNum: 7
Ch#4, CE#0, BadBlockNum: 3
Ch#5, CE#0, BadBlockNum: 12
Ch#6, CE#0, BadBlockNum: 10
Ch#7, CE#0, BadBlockNum: 8
Ch#0, CE#1, BadBlockNum: 7
Ch#1, CE#1, BadBlockNum: 3
Ch#2, CE#1, BadBlockNum: 9
Ch#3, CE#1, BadBlockNum: 3
Ch#4, CE#1, BadBlockNum: 17
Ch#5, CE#1, BadBlockNum: 2
Ch#6, CE#1, BadBlockNum: 7
Ch#7, CE#1, BadBlockNum: 5
Ch#0, CE#2, BadBlockNum: 2
Ch#2, CE#2, BadBlockNum: 3
Ch#3, CE#2, BadBlockNum: 1
Ch#4, CE#2, BadBlockNum: 6
Ch#5, CE#2, BadBlockNum: 8
Ch#6, CE#2, BadBlockNum: 5
Ch#7, CE#2, BadBlockNum: 3
Ch#0, CE#3, BadBlockNum: 1
Ch#1, CE#3, BadBlockNum: 10
Ch#2, CE#3, BadBlockNum: 2
Ch#3, CE#3, BadBlockNum: 9
Ch#4, CE#3, BadBlockNum: 14
Ch#5, CE#3, BadBlockNum: 10
Ch#6, CE#3, BadBlockNum: 1
Ch#7, CE#3, BadBlockNum: 2
==================Error Message==============================
Press any key to continue...

что-то не могу прикрепить файлы - "Ошибка закачки файла. Невозможно переместить закачанный файл."
выложил правленые экзешники сюда
yadi.sk/d/3e8S_6i8335YhH
yadi.sk/d/Xge99kvx335YhV

Все мосты сожжены... будем перепаивать!

Аватар пользователя EOF8157

купил переходник на jmf20329 - stlab U461 был вариант Espada PAUB023 но не рискнул - вдруг китайцы впаяют что другое
у виндовой тулзы возможностей больше но к сожалению ничего с винтом сделать она не смогла, но зато в ней есть схема расположения элементов. возможно удастся сделать диск меньшего обьема с помощью паяльника

Все мосты сожжены... будем перепаивать!

8 пробовал составлять ini файл в виндовой тулзе, но видимо досовая версия игнорирует половину ключей
Все ключи ДОС версии есть в конце ехе-шника в явном виде.
CTR+F JM ProductModel Setting и дальше все переменные которые воспринимает прошивальщик из ини-файла.

Можно попробовать поиграться с FlashSetting DefPercentage

Всем привет. Нужна ваша помощь с SSD Silicon Power SSD E20 32GB.
На руках есть плата SATA-USB с контролером JM20339 (плата от LACIE внешний HDD умер, осталось коробка и плата жива).
И чет мне не нравится что JM20339, чувствую я что не зря написано не тратьте время....
После подключения определяется как SPCC Sol id State DiskB28 USB Device, и контроллер там JMF616 (скрин приложил)
blob.inmac.org/012017/b595a2c290d1e5aa.jpeg


Прога увидела SSD виде нЛО, но "по-своему" (скрин приложил)
blob.inmac.org/012017/5046e6e94f4c324c.png
Жму Load INI, Выбираю ISP.INI, жму START, выбивает FAIL (скрин приложил)
blob.inmac.org/012017/adaa9126b8f811fe.png
Жму на символ "?", понятно, выбивает список ошибок, но вот что они сообщают - без понятия. (скрин приложил)
blob.inmac.org/012017/56c0cadcca5fe3c7.png
Сам SSD, определяется на 29GB, но вот у него жесткие проблемы с записью - затупает (подвисает все если на нем стоит система) и запись оооочень медленная, чтение так же не блещет скорость.
В общем вопрос! Можно ли отпаять чип JM20339, и в место него впаять JM20329, будет работать?
Цены просто конские на мост, а на сам чип всего лишь ~2$

squad7
Поищите дешевые боксы для внешних ХДД.
После экспериментов с 339, стал необходим бокс под роутер.
Самый простой оказался на 329-м.
По цене - всего раза в полтора дороже дискретного переходника ЮЗБ-САТА, зато потом можно хоть для чего-то использовать.

Shevalier
А что вы имеете введу про "бокс под роутер", просто у меня куча роутеров валяется мало ли может там есть?)
Про бокс(скорее осталось коробка от внешнего LACIE HDD) под внешний HDD - я понял, и как раз один из них в руках, только вот там стоит jm20339

Цитата:
А что вы имеете введу про "бокс под роутер"

очевидно же - бокс для подключения винта к роутеру, для создания импровизированной домашней торрентокачалки/файлопомойки...

попробуйте второй вариант, с прямым подключением по сата.

Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей