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

  • VS2005 Automation

    Я пишу Add-in для студии, который бы позволил более эффективно компилировать проекты gcc компилятором, которым мы пользуемся. На данный момент самой важной и насущной проблемой является управление компилятором, получение текущих настроек и установка своих, и вот тут начинаются проблемы 🙁 Для любого Add-in доступен объект типа EnvDTE2, который предоставляет доступ ко всему, что есть в…

  • Home Automation Framework

    Умный дом, или как программисту (и не только) добавить автоматики в своё жильё. Поделюсь своим опытом начального внедрения Z-Wave, а потом и самодельных девайсов в квартире.

  • Воспоминания об Иране. ч.1 – Прибытие

    Предложили мне недавно написать про мои впечатления от Ирана, и я подумал, что действительно, было бы интересно написать, а потом можно сравнить с нынешней ситуацией, т.к. мои воспоминания о той стране заканчиваются десять лет назад. Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Про еДеньги

    Так сложилось, что последние полгода я живу с долларовой виза-картой. И обнаружил множество неудобств, связанных с конверсией валюты, называется грабительский курс. При этом я думал, мож просто Украина – страна та ещё, поэтому тут всё плохо. Но, потратив кучу денег за кордоном в разных валютах, я сел за выписку с калькулятором и обнаружил, что там…

  • Грубая сила

    Дибажил я тут одну программку. Вылетала она при выходе, при чём совсем в том коде, который писался нами, и от которого есть исходники. Вылетала она в коде движка, от которого есть только либы и заголовочные файлы. Происходило всё очень просто – access violation writing location 0xfeeefeee, что обозначает попытку записи в уже освобождённую память. В…