Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #78, ИЮНЬ 2005 г.

BIOS на блюдечке

Крис Касперски ака мыщъх

Хакер, номер #078, стр. 078-108-9


[разгон системы]

Чтобы разогнать систему, необходимо написать свой ROM-модуль, настраивающий чипсет на максимальную производительность. Конфигурирование чипсета осуществляется через специальные регистры, находящиеся глубоко внутри материнской платы и подключенные к шине PCI. Описание регистров можно найти в даташите. Где-то там будет раздел PCI Configuration Registers или что-то в этом роде. Сравнение конфигурационных возможностей чипсета с BIOS Setup показывает, что часть настроек обычно бывает умышленно заблокирована производителем материнской платы.

В частности, регистр 80000064h чипсета VIA Apollo Pro 133 (у меня дома такой - прим. Горлума) управляет чередованием банков памяти, в то время как многие материнские платы на его основе такой возможности не имеют. Ну и как нам ее получить?

У PCI-шины есть два замечательных порта. В порт CF8h заносится адрес чипсетного регистра, с которым мы хотим работать, а через порт CFCh происходит обмен данными. Большинство подобных регистров представляют собой набор управляющих битов, поэтому перед тем как что-то записывать в порт CFCh, мы сперва должны прочитать текущее состояние чипсета, взвести/опустить нужные нам биты при помощи операций OR и AND, после чего затолкать обновленный регистр на место.

На языке ассемблера это выглядит так:

; расширение BIOS'а, задействующее режим чередования DRAM-банков

; (только для чипсета VIA Apollo Pro 133! Обладатели других чипсетов

; должны заменить подчеркнутые константы в соответствии со своей

; документацией)

mov eax, 80000064h ; регистр чипеста, управляющий DRAM-контроллером

mov dx, 0CF8h ; PCI-порт (адрес регистра)

out dx, eax ; выбираем регистр

mov dx, 0cfch ; PCI-порт (данные)

in eax, dx ; читаем содержимое регистра 80000064h

or eax, 00020202h ; взводим биты, устанавливающие режим чередования

out dx, eax ; записываем регистр чипсета

Данный модуль может быть либо оформлен как ISA-ROM, либо внедрен в boot-блок. Главное, чтобы он получил управление после того, как BIOS произведет первичную инициализацию оборудования, иначе наши настройки будут проигнорированы! Зашив обновленную прошивку в BIOS, мы с удовлетворением замечаем, что быстродействие системы ощутимо возросло. Таким же точно образом можно редактировать и остальные регистры, отсутствующие в BIOS Setup, разгоняя систему до скорости реактивного гепарда, которому в известное место залетел шмель.

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

INFO

Фирма Award была выкуплена Phoenix'ом и в настоящее время существует только как бренд (торговая марка). А это значит, что Phoenix-BIOS'ы устроены точно так же, как и Award, поскольку их пишет одна и та же фирма.

INFO

Существует множество готовых прошивальщиков, поддерживающих практически все известные типы BIOS'ов, причем некоторые из них распространяются вместе с исходными текстами. Одним из таких прошивальщиков является знаменитый UNIFLASH (www.uniflash.org).

Назад на стр. 078-108-8  Содержание  Вперед на стр. 078-108-10