Award WinFlash: обновление BIOS в среде Windows

Введение


Каждый раз, приступая к обновлению BIOS, пользователь сталкивается с грозным предупреждением: "Программу для перезаписи Flash BIOS следует запускать только из реального режима DOS до старта Windows или других многозадачных операционных систем с заранее приготовленной системной дискеты". В этом нет ничего удивительного, так как утилита, с помощью которой осуществляется модернизация BIOS, должна монопольно владеть системными ресурсами.
Так обстояло дело до недавнего времени. Однако прогресс не стоит на месте, и повсеместный переход к 32-битовым приложениям с графическим интерфейсом оказал влияние и на такую консервативную категорию программного обеспечения, как программы для модернизации BIOS. С недавних пор некоторые производители материнских плат стали предлагать пользователям возможность обновлять BIOS, не покидая столь привычную многим операционную систему Windows. Сначала это разрешалось лишь в Windows NT/2000, но со временем было охвачено и семейство Windows 9x/ME. Однако новое поколение утилит при всех своих преимуществах обладало одним существенным недостатком: программные средства не были универсальны и могли использоваться лишь на ограниченном количестве моделей материнских плат конкретного производителя.
Безусловно, эта тенденция не осталась без внимания такой компании, как Award Software. В результате появилась 32-битовая консольная версия Award Flash, работавшая только под Windows NT/2000. Но это был лишь первый, достаточно робкий, шаг навстречу пользователям: хоть программа и функционировала в среде Windows, но использовала текстовый режим и требовала ввод параметров командной строки. Кроме этого, она была рассчитана на работу лишь с Award BIOS 6.0PG, а набор поддерживаемых чипсетов ограничивался Intel i810xx и i820. Через некоторое время увидело свет уже полноценное Windows-приложение с графическим интерфейсом пользователя -- Award WinFlash 1.0. Вскоре, вслед за первой версией, последовала исправленная и дополненная версия 1.2 этой программы, о которой и пойдет речь далее.

Для кого и зачем?


Обновить BIOS материнской платы прямо из среды Windows... Это то, чего порой так не хватает многим пользователям, страшащимся самих слов "системная дискета" и "режим DOS". И это то, о чем, наверняка, мечтали многие системные администраторы больших сетей. Теперь, спустя почти шесть лет после выхода Windows 95, такая возможность становится доступной и работает это вполне сносно
Но прежде чем перейти к рассказу о возможностях этой утилиты, постараемся ответить на вопрос: насколько актуально обсуждение обновления BIOS в Windows? И почему только сейчас, когда прошло почти шесть лет с момента выхода в свет Windows 95, предпринимаются робкие попытки продвижения таких, казалось бы, эффективных средств?
Читатели, наверное, согласятся, что качество сервиса, предлагаемое утилитой Award Flash для DOS, не выдерживает никакой критики. Особенно учитывая существование такого мощного и универсального инструмента модернизации BIOS в среде DOS, как AMI Flash производства American Megatrends. Очевиден также и тот факт, что увеличение парка персональных компьютеров с ОС Windows 2000 делает все более странной рекомендацию "создайте загрузочную системную дискету...".
Однако все эти аргументы прозвучали бы достаточно неубедительно в споре новаторов и традиционалистов, если бы не был задан трезвый вопрос со стороны: что мешало разработчикам BIOS предложить достойный программный продукт, по крайней мере, пять лет назад? Для ответа на этот вопрос необходимо небольшое теоретическое отступление.
Существует ряд факторов, определяющих зависимость модернизации BIOS от аппаратной реализации и схемных решений:

метод управления напряжением программирования;
способ разрешения записи в микросхему flash;
особенности запрета Shadow RAM;
метод запрещения кэширования BIOS;
способ генерации аппаратного сброса.

Другими словами, операция обновления BIOS требует выполнения сложных манипуляций с регистрами чипсета. И здесь мы подходим к самой сути программных реализаций такого процесса в многозадачных средах. После успешной записи данных во flash-память необходимо привести в исходное состояние все подсистемы материнской платы: Power Management, статус кэш-памяти, картирование адресов ROM на соответствующие адреса RAM и многое другое. Подобную операцию придется выполнить также в случае нефатальной ошибки, связанной, например, со сбоем при определении типа установленной микросхемы flash. Только появление новых наборов системной логики позволило рассматривать Windows-окружение как реальную среду для программирования системной BIOS. Первым таким чипсетом стал Intel i430ТХ.
Но даже наличие подходящих аппаратных платформ не стало определяющим фактором для появления Windows-решения задачи модернизации BIOS. Следующее препятствие -- структура самой BIOS. Дело в том, что в одном из блоков BIOS, о котором речь пойдет ниже, содержится Management Information Format Database (MIF) -- база данных о компьютерной системе в целом. Используя MIF, системный администратор с удаленной машины может оперировать типами, свойствами, состояниями, датами возникновения событий, а также другой информацией о компонентах компьютерной системы. По понятным причинам при обновлении BIOS должен предлагаться надежный механизм предотвращения несанкционированной перезаписи MIF.
Для управления доступом к блокам потребовались структурные изменения в самой BIOS. По этой причине не всякий файл BIOS для имеющейся материнской платы может быть запрограммирован с помощью WinFlash. В связи с особенностями модернизации в среде Windows необходимо, чтобы программируемый образ был рассчитан на использование с соответствующей утилитой. Информация об этом обычно доступна на сайтах производителей материнских плат.

WinFlash собственной персоной


Итак, Award WinFlash v1.20 -- одна из последних разработок компании Award Software, обладающая дружественным интерфейсом и призванная сделать процесс модернизации BIOS простым и удобным даже для неподготовленного пользователя. По крайней мере, именно так утверждает Ричард Чен (Richard Chen), руководитель коллектива разработчиков. Посмотрим, так ли это на самом деле.
Для начала немного технической информации. Award WinFlash работает с Award BIOS версий 4.5 и 6.0 в Windows 9x/ME и Windows NT/2000, для последних двух операционных систем необходим дополнительный драйвер winflash.sys.
Утилита поддерживает следующие чипсеты:

ALi M1631, M1561
AMD-75x
Intel i440BX, i810, i815, i820, i840, i850
SiS530, SiS630
VIA VT82C694X, VT8371 (KX133).

В общем случае WinFlash не требует инсталляции, однако в комплект поставки включен и Install Wizard, позволяющий установить программу стандартным методом. Производитель объясняет этот факт тем, что инсталляция может потребоваться, если пользователь пожелает обновлять BIOS достаточно часто.
После запуска winflash.exe пользователь видит перед собой главное и, по большому счету, единственное окно программы. Практически все основные операции можно традиционно выполнить двумя способами: через меню или с помощью панелей инструментов. Помимо этого, основная часть окна интерактивна и позволяет выбирать блоки BIOS, которые будут перепрограммированы. Также в окне WinFlash доступна некоторая полезная информация -- например часть идентификационной строки текущей версии BIOS. С помощью этого набора букв и цифр можно определить компанию--производителя платы, установленный I/O-чип, модель платы и чипсет, а также ревизию (версию) BIOS. Недостающая же часть этой строки находится в левой части окна программы -- это Build Date, т. е. дата выпуска текущей BIOS. Здесь же можно увидеть контрольную сумму открытого файла BIOS (CheckSum) и тип установленной на плате Flash-микросхемы (Flash Type). Воспользовавшись пунктом меню View/BIOS Information, можно также узнать напряжение программирования и объем этой микросхемы.
Вне всякого сомнения, перед любым обновлением BIOS необходимо сохранить текущую версию BIOS на диск, чтобы можно было вернуть систему в исходное состояние в случае неудачи (меню File/Save Old BIOS). Это является также своеобразным тестом на совместимость образа BIOS с WinFlash: в случае, если сохраняемый файл не совместим с утилитой, будет выдано сообщение "The BIOS does not support Windows 98/NT Mode".
Теперь, когда текущая BIOS сохранена, а новая открыта программой, можно сконфигурировать процесс модернизации. Системная BIOS состоит из четырех основных блоков:

загрузочного (Boot Block)
блока данных о PnP-устройствах (ESCD -- Extended System Configuration Data)
блока данных об аппаратных средствах системы DMI (Desktop Management Interface)
главного блока (Main Block).


Такая классификация дает только приблизительное представление о внутренней структуре, так как в образе BIOS могут присутствовать и другие блоки (SCSI BIOS, IDE RAID BIOS, Video BIOS и т. д.). Тем не менее только четыре основных блока отображены в окне программы. Если схематическое изображение отсутствует, его можно включить опцией View BIOS Structure. Если же эта опция включена, а диаграммы все равно нет, то это означает, что данная BIOS не поддерживается утилитой.
WinFlash в состоянии не программировать любой из блоков, за исключением главного, который обновляется в любом случае. К сожалению, возможность управления программированием дополнительных блоков не предусмотрена, равно как и возможность отменить модернизацию блока "микрокодов" процессоров, который является неотъемлемой частью BIOS со времен Pentium II. В большинстве случаев не рекомендуется обновление блоков DMI и BootBlock, так как неудачная модернизация этих частей BIOS может привести к частичной либо полной неработоспособности системы. Кроме выбора программируемых блоков, можно также установить опции Clear CMOS и Load CMOS Default после программирования BIOS.

Приступим?


Итак, после всех необходимых манипуляций можно приступать к обновлению BIOS. В связи с определенным риском полезно напомнить, что не следует с помощью утилиты WinFlash проверять многозадачность, а тем более многопоточность операционной системы. Все незадействованные в данный момент приложения лучше закрыть. В противном случае весьма вероятно, что будет получено сообщение "Verify error", обозначающее, что BIOS не была успешно обновлена. Отметим, что хотя после обновления BIOS в среде Windows желательно перезагрузить систему, но в проведенных экспериментах компьютер с Windows 98 продолжал нормально работать. Впрочем, ничего удивительного в этом нет, поскольку включенный ПК работает с "копией" системной BIOS, размещенной в области Shadow RAM, тогда как обновлению подвергается "оригинал" -- непосредственно содержимое микросхемы flash.

Выводы


Подводя итог, можно сказать, что, несмотря на некоторые досадные упущения в области интерфейса, WinFlash вполне пригодна для обновления BIOS на большинстве современных материнских плат, работающих под управлением Award BIOS и Microsoft Windows. Нельзя не отметить также тот немаловажный факт, что работы по созданию сервисных утилит проводятся в недрах Award Software на фоне постоянной доработки самой BIOS. По этой причине вопросы рентабельности и целесообразности становятся сдерживающим фактором в развитии сложнейшего программного обеспечения, к которому, несомненно, следует отнести все утилиты обновления BIOS.