 |
 |
Стартовые процедуры Boot Block |
На этапе старта персональной платформы программный код BIOS выполняется из
загрузочного блока – Boot Block, и сопровождается выводом в диагностический порт контрольных точек 91h…FFh.
 До индикации первого диагностического кода независимо от аппаратной реализации контроллера ввода-вывода SIO выполняется его конфигурирование для доступа к ряду функций, востребованных на следующих этапах выполнения POST. Затем выполняются инициализационные процедуры, обеспечивающие доступ к RTC – контроллеру Real Time Clock,совместимому по программной модели с MC146818. Важно отметить, что отказ SIO может привести к останову POST без вывода в диагностический порт каких бы то ни было кодов. Тестирование системы с помощью LiteBIOS позволяет обходить эту и другие кризисные ситуации.
Современные тенденции в развитии PC-платформ поставили новые задачи перед функциональностью системного BIOS. В результате усложнения стартовых процедур и увеличения их объема наметились два пути наполнения Boot Block дополнительными сервисами, так или иначе связанные с использованием кэш-памяти для системных нужд.
 |
 |
Intel® 845: особенности выполнения загрузочного блока |
Все наборы системной логики, начиная с Intel® 845, содержат специфическую для данного семейства процедуру, отмеченную POST-кодом A0h. Ее вызов осуществляется после C1h и обеспечивает инициализацию системной памяти в одно- (для i845) или двухканальном (для i865 и всех последующих) режиме, в зависимости от размещения и архитектуры DIMM-модулей. Затем выполняется цепочка кодов, отображаемая как десятичная последовательность 01, 03,…,08, 09, 10h(!), 11h,…,24h, 25h, в процессе выполнения которой определяется и настраивается первый канал RAM.
Успешное прохождение этого этапа завершается выводом в диагностический порт значения AFh. Процедура инициализации второго канала DRAM в точности повторяет эту последовательность от кода A0h до кода AFh, и передает управление процедуре распаковки системного BIOS (код C3h).
Если в процессе инициализации системной памяти обнаружены ошибки элементов памяти или произошли сбои, то, в зависимости от ситуации, в диагностический порт выводяется значения E0h, E1h, E2h, а в порт системного динамика – звуковой сигнал. Выполнение POST прекращается.
 Код 01 и все последующие не связаны с процедурой восстановления BIOS, запуск которой также начинается с 01. Пользователь самостоятельно должен принять решение о программном контенте, основываясь на последовательности событий, происходящих в диагностическом порту (см. "Режим отображения POST-кодов").
Использованы материалы IA-32 Intel® Architecture Software Developer's Manual, Intel® 82865PE/82865P Memory Controller Hub.
 |
 |
AMD64-specific: особенности выполнения загрузочного блока |
Стартовые процедуры BIOS, выполняемые на платформах AMD-64 еще до инициализации оперативной памяти, декларируют статус кэш процессора как область Cacheable, Write Back. Это позволяет в отсутствии DRAM использовать регион адресов 0DC000h…0DFFFFh в качестве оперативной памяти для упрощения программного кода и ускорения инициализации систем.
D0h – первый выполняемый код на платформах AMD-64, после того, как объявлен Cache-as-RAM, за которым следует группа процедур инициализации, отмеченных F0h,…,F3h. Затем выполняется цепочка кодов, отображаемая как последовательность 0, 1, 4, 8, 0Ch, 10h, 20h, 30h, 40h, 44h, 48h, 4Ch, 50h, 54h, для настройки первого канала DRAM. Успешное прохождение завершается выводом в диагностический порт значения FEh. Процедура инициализации второго канала аналогична, и по завершению передает управление на код C0h.
 Код 01 и все последующие не связаны с процедурой восстановления BIOS, запуск которой также начинается с 01. Пользователь самостоятельно должен принять решение о программном контенте, основываясь на последовательности событий, происходящих в диагностическом порту (см. "Режим отображения POST-кодов").
Использованы материалы BIOS and Kernel Developer's Guide for AMD Athlon™ and AMD Opteron™ Processors
|
 |