howto: recover failed p5b flash

После того, как материнка была убита, меня посетила мысль, что это не самый плохой стимул сделать небольшой апгрейд, поэтому я прикупил новую мать и, заодно, побольше памяти.

Прошло некоторое время и мне понадобилась живая материнка, чтобы собрать ещё один компьютер, а поскольку жаба сидящая на плече и говорящая, что где-то в инете были способы восстановления убитого биоса – не давала денег, я пошёл гуглить.

Вчера наконец-то я решился сделать это!


Оказалось, что на материнской плате есть недокументированный разъём SPI, через который можно напрямую писать биос. Более того оказалось, что существует софт, который позволяет использовать параллельный порт (да-да, тот самый рудимент, через который когда-то подключались принтеры) для записи.

В интернетах нашлась вот такая схема:
http://www.yourbrainiacs.com/FILES/ReflashBIOS.doc
(на всякий случай я переложил к себе)

С одной стороны у нас Parallel Connector (DB-25) мы включаем его в “хост”, с другой – кастом на 6 пинов (7й – “ключ”). Также необходимо питание 2.8 – 3.6 вольта для микросхемы биоса.

У меня куда-то пропал припой, но зато нашёлся старый принтерный провод и новый USB коннектор. Жестокое насилие над проводами, которые больше не смогут выполнять своё старое предназначение, несколько часов времени с мультиметром и выяснением – какой провод к какому штырьку подходит и я узнал правильную комбинацию для скрутки проводов. В качестве питания я взял обычную “таблетку”, она выдаёт как раз нужные 3 вольта. Провода от батарейки прикрутил в уже существующую скрутку – “-” к скрутке двух проводов (2<->18), “+” – к свободному проводу.

Получилось вот такое чудо:

Загрузил “хост” компьютер загрузочным диском от win98 и запустил прошивалку – она почему-то выдала unknown manufacturer о производителе чипа, попытался прошить – не получилось.
Как оказалось, у USB разъёма оба чёрных провода (земля) соединены, а я их использовал.. Хорошо, хоть ничего не сгорело. Пришлось полностью отсоединять и заново делать скрутку.

Рекомендую следующий рецепт подключения USB проводов к параллельному кабелю:

SPI штыри:
2 4 6
1 3 5 X

USB штыри:

К Б З Ч
К Б З Ч

1 (Красный, свободен)
3 (Белый, к 7 штырю)
5 (Зелёный, к 10 штырю)
7 (Чёрный, не используется)

2 (Красный, к 18 штырю)
4 (Белый, к 8 штырю)
6 (Зелёный, к 9 штырю)
8 (Чёрный, не используется)

Запускаюсь – ура, чип написало правильно SST 25VF080B id=BF258Eh, прошиваю биос (spipgm2 /p bios.rom), включаю жертву – не работает. Ок, запускаю заново прошивку, но в этот раз уже в медленном режиме (spipgm2 /s bios.rom), проходит время, готово. Запускаю жертву – не работает, чешу репу, отключаю кабель прошивки, запускаю ещё раз – о чудо – она ожила! Сколько усилий не пропало напрасно, ура!

Теперь пошаговая инструкция по прошивке:
Жертва, в моём случае, успешно прошилась, когда к ней был подключён блок питания, но сам компьютер не был включён (т.е. просто светится лампочка на матери, но вентиляторы не крутятся).

1. spipgm2 /i (узнаём, что у нас там за чип)
Тут важно увидеть, что чип обнаружился правильно и его id != 0xFFFFFF, иначе либо жертва включена, либо что-то с кабелем

2. spipgm2 /u (разблокируем чип)
3. spipgm2 /e (удаляем старую прошивку – это обязательно надо сделать)
4. spipgm2 /s bios.rom (пишем новую прошивку под названием bios.rom)

5. spipgm2 /d dump.rom (optional, считываем биос с жертвы, чтобы проверить)
6.1 Желательно иметь программку для сравнения бинарных файлов, я нагуглил cmp16.exe
6.2 cmp16 /r bios.rom dump.rom

Убеждаемся в том, что биосы идентичны, отключаем кабель, включаем жертву и радуемся! 🙂

Уточню – я не включал никакие сопротивления и конденсаторы в схему, о которых писали на англоязычных сайтах – всё отлично прошивалось и без них. Также отлично работала просто скрутка из проводов, без шлейфа и пайки (хотя провод я пропаяю и нормально заизолирую).

В общем шить биос при помощи такого кабеля не намного сложнее, чем пользоваться утилитой биоса, но всё же лучше не доводить до необходимости его применения 🙂

Similar Posts

  • WPF

    Появилась наконец-то возможность потрогать шаловливыми ручками WPF, начал вчера делать маленький hello world петпрожект и изучать новую для меня штуку от майкрософта. Пока нравится, получается достаточно быстро сделать лузер-интерфейс и закодировать нужный функционал. Посмотрим, как дальше пойдёт, вдруг сбудется мечта идиота и получится на его базе сделать генерацию интерфейса для игры 🙂 Share this post:…

  • Про работу

    Сегодня, наконец-то, подтвердилось, что ошибка, с которой мы боремся с начала недели – это баг в компиляторе. Отчёт уже принят афтарами и они чинят, теперь ждём патча. Кул, не каждый день находишь баги в компайлере 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Rollin again

    Был на открытии роллерского сезона, который проходил в НВЦ (экс ВДНХ). Прикольно было, однако. Собралась огромная туча роллеров, показывали слалом, раздавали тортики и катались паравозиком – это так здорово, оказывается 🙂 Вообще нагонялись по самое не могу, мои нонейм-китайские ролики уже начали разваливаться, похоже, что переход на более правильные состоится чуть раньше, чем я планировал….

  • starcraft II beta

    Вчера утром в почте я обнаружил инвайт на бета-тест второго старкрафта. Очень приятная неожиданность, ну очень! 🙂 Вечером я до него наконец-то добрался и сел чуток “потестить”. Итак, в бете доступен только мультиплеер, работает автоматическая система подбора противника по уровню профессионализма, можно обойтись без неё, но я до этого пока не добрался, поставил себе новичка…

  • Motorola Droid Turbo XT1254 CDMA tuning

    У моего телефона почему-то после каждой перепрошивки слетают настройки EVDO на Интертелекоме, из-за чего нужно править настройки. Т.к. я всё время забываю процедуру, то решил её сохранить тут. Запускаем телефон в режиме BP Tools (из fastboot bootloader меню) Идём в Device Manager, выбираем устройство diag_mdm и ручками ставим драйвер Motorola QC Diag Port Запускаем DFS…