Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Настройка PCI-регистров
Конфигурирование чипсета осуществляется специальными регистрами, доступными через шину PCI. При загрузке системы BIOS настраивает процессор, контроллер системной шины, контроллер оперативной памяти и всю прочую периферию в соответствии с настройками, выбранными в «BIOS Setup». Однако практически ни один BIOS не дает доступа ко всем настройкам чипсета или умышленно ограничивает диапазон доступных значений. Как быть, что делать?
Запускаем Award BIOS editor, заходим в System BIOS, находим вкладку «Chipset Registers» и открываем документацию на чипсет. Где-то там должен быть раздел «PCI Configuration Registers» или что-то в этом роде. Для каждого из регистров будет указано устройство (device), к которому он «подключен», номер функции (function) и номер самого регистра, также называемый смещением (offset). Все регистры 8-битные, однако несколько последовательных регистров могут объединяться в слова или даже двойные слова.
Сравнение конфигурационных возможностей чипсета с BIOS Setup показывает, что часть настроек в ней отсутствуют. Даже в заблокированных возможностях (о которых мы уже говорили выше) их нет! В частности, мой любимый AMD 761 поддерживает намного больший диапазон таймингов, чем указано в BIOS Setup. Взять хотя бы величину tPR (time to precharge), определяющую время закрытия DRAM-страницы, в процессе которого происходят возврат данных в банк памяти и его перезарядка. По умолчанию BIOS ставит 3 такта и не дает его изменять. Чтобы сократить tPR до 1 такта, необходимо модифицировать 8 и 7 биты регистра Dev 0:F0:0x54, присвоив им значение 2 («10» в двоичной нотации). Остальные биты не трогать! А как это сделать? Необходимо наложить маску (mask), которая в данном случае будет выглядеть так: «XXXX XXX1 1XXX XXXX». Как видно, 8 и 7 биты установлены в единицу, остальные помечены знаком «Х», указывающим BIOS, что данный бит необходимо оставить без изменений (см. рис. 11).
Рисунок 11. Страничка из документации на чипсет, описывающая конфигурационные регистры
Запись «Dev0:F0:0x54» обозначает: Device 0:Function 0:Register 0x54. На самом деле этих регистров целых два. Регистр 0x54 хранит младшую, а 0x55 – старшую половину слова. Следовательно, в 0x54 необходимо занести 80h («10.00.00.00»), а в 0x55 – 01h. Соответственно в первом случае маска будет равна 80h («1X.XX.XX.XX»), а во втором 01h.
Возвращаемся к Award BIOS Editor, находим регистр с номером 0x54 и, кликнув правой клавишей мыши, выбираем пункт «modify». В появившемся окне первые три поля (Register, PCI, PCI) оставляем без изменений (это номер регистра, устройства и функции), а вот с двумя последующими полями «Resister» и «Value» придется разобраться особо. Мы не можем просто взять и записать значение 0x80, поскольку в этом регистре уже хранятся какие-то параметры, модифицирующие остальные поля. Мы должны устанавливать лишь «наши» биты (в данном случае это бит 7), а над остальными выполнить операцию логическое «OR» по маске. Аналогичным образом настраивается и регистр 55h (см. рис. 12).