Искусство перешивки BIOS. Часть седьмая.

Восстановление запаянных биосов БЕЗ их выпаивания

Как уже говорилось в "азах", для прошивки флэшек, которые впаяны в плату, можно использовать метод "порчи CRC" - это когда "искусственно" нарушается BIOS-CRC, точней (и правильней) - её подсчёт в процессе POST.

Обычно данный метод применим к случаям, когда в биос "случайно" был зашит "не совсем тот" биос, либо когда в процессе работы плата в один прекрасный момент перестала загружаться, зависая на распространённом "Building DMI Pool" и т.п. Т.е. главным условием является - "живой" бутблок, который и вызывается при некорректной CRC, запуская процедуру "аварийного" восстановления биос (обычно - с дискеты).

PP

Для "обычных" флэшей, как уже было указано в "азах", всё достаточно просто - коротим A15 и A16, что "не заденет" работу бутблока, однако точно испортит CRC. Далее - дело техники, подготавливаем дискетку (винчестер, CD-ROM...) и восстанавливаем.

FWH/LPC

Для интерфейсов FWH/LPC такой трюк (закорачивание адресных линий) не пройдёт, т.к., во-первых, из-за их мультиплексирования (в режиме PP), во-вторых, из-за того, что в "обычном" режиме работы они (интерфейсы) используют лишь четыре линии - FWH0-3/LPC0-3. И тут уже не получится разделить на "используемые" и "не используемые" (бутблоком).

Здесь придётся использовать "временной" фактор. Процедура подсчёта CRC биоса занимает некоторое конечное и "относительно длительное" время (десятые доли секунды). И если в этот момент (подсчёта CRC) "что-то нехорошее" произойдёт с любым из xAD0-3 выводов - CRC будет подсчитана неверно. Потому алгоритм следующий:

1. Ищем флэшку на плате, находим у неё контакты 15-16-17. (DQ2-Vss-DQ3).

2. Заготавливаем "устройство корочения" (например, пинцет) и "прицеливаемся" так, чтобы закоротить 15-16 либо 16-17.

3. Включаем компьютер и через 1-3 секунды (зависит от платы-биоса-процессора) делаем однократное короткое замыкание.

4. В зависимости от "времени" замыкания:

  • Если сделать это "зарано" - биос еще "не дошёл" до этапа подсчёта CRC, а потому, понятно, просто зависнет и ничего не выдаст на экран.
  • Если сделать это "запоздно" - биос уже проверил (успешно) CRC и был скопирован в Shadow, потому он никак "не отреагирует" на корочение (ЮМ "отключил" флэшку - POST работает в ОЗУ) - т.е. поведёт себя также, как без "корочения", выдаст те же сообщения и/или зависнет (там же).

В любом из таких случаев - делаете рестарт (RESET) и повторяете попытку с небольшим "сдвигом" по времени корочения в ту или иную сторону. Обычно, в зависимости от опыта, фазы Луны и везения - это не больше 10-20 попыток (может просто последовательно "перебирать" интервалы от нуля секунд и дальше:).

Если у вас есть POST-карта - коротить нужно сразу же после появления посткода C3 (для Award).

SPI

Для интерфейса SPI ситуация "ещё хуже", чем у FWH/LPC - закорачивание адресных линий не подойдёт в виду отсутствия как таковых. Однако это не отменяет работоспособности данного способа - ищем ногу SI (Serial Data Input) и точно также после 1-3 секунд коротим её на землю. Если, опять же, есть POST-карта - коротим сразу же после C3 для Award BIOS.

 


Статья в бета-версии, добавления/изменения обязательно_последуют, все поправки/пожелания - вносите сюда самостоятельно.

Севко Роман, 11.26.03. (Первая версия) А также другие пользователи rom.by.

Перепечатка без согласования с администрацией www.ROM.by - не допускается.