Прохождение POST и загрузка ОС(ликбез).
При прохождении каждой секции POST записывает ее код (номер)
в диагностический регистр (обычно порт 80h) . Этот регистр физически
располагается на специальной диагностической плате, устанавливаемой в слот
системной шины. Плата содержит 8-битный регистр со световой (двоичной или
шестнадцатеричной) индикацией состояния бит. В пространстве ввода/вывода
регистр занимает один адрес, зависящий от архитектуры PC - точнее, версии BIOS
(80h - 84h, 90h, 680h, 300h). По индикаторам платы можно определить, на какой
секции остановился POST, и определить причину неисправности. Однако для
использования такой диагностики необходима, во-первых, сама плата-индикатор и,
во-вторых, "словарь" неисправностей - таблица, специфическая для версии
BIOS и системной платы.
Во время выполнения POST может выдавать диагностические сообщения в виде
последовательности коротких и длинных звуковых сигналов (эти сигналы различны
для BIOS конкретных версий и фирм-изготовителей), а после успешной инициализации
графического адаптера краткие текстовые сообщения выводятся на экран монитора.
Обычная
последовательность шагов POST:
1)Тестирование регистров процессора.
2)Проверка контрольной суммы ROM BIOS.
3)Проверка и инициализация таймера,
4)Проверка и инициализация контроллеров DMA.
5)Проверка регенерации памяти.
6)Тестирование 64 Кбайт нижней памяти.
7)Загрузка векторов прерывания и стека в нижнюю
область памяти.
8)Инициализация видеоконтроллера: на экране
появляется заставка Video BIOS, обычно с указанием модели видеокарты и объемом
установленной видеопамяти. Если этот шаг прошел успешно, изображение на экране
сменяется заставкой системной BIOS с отображением счетчика объема тестируемой
динамической памяти. Теперь
диагностические сообщения выводятся на экран.
9) Тестирование полного объема ОЗУ.
10) Тестирование клавиатуры.
11) Тестирование CMOS-памяти и часов.
12) Инициализация СОМ и LPT портов.
13) Инициализация и тест контроллера НГМД.
14) Инициализация и тест контроллера НЖМД.
15) Сканирование области дополнительного ПЗУ
(ROM BIOS).
16) Вызов Bootstrap (INT 19h) - загрузка
операционной системы, при неудаче - останов процессора с сообщением
"System Halted" (система остановлена).
При загрузке системы в случае готовности
дисковода загружается Master Boot сектор (первый сектор нулевого цилиндра
нулевой поверхности) диска С: и ему передается управление. Master Boot
загружает Boot Sector активного раздела в память и передает управление на его
начальный адрес. Последовательность загрузки может изменяться дополнительным
ПЗУ BIOS сетевого адаптера в случае удаленной загрузки по сети.
В процессе работы POST используются ячейки CMOS:
- 0Fh (Shutdown Flag) - идентификаторы состояния перед началом теста;
- BIOS DATA AREA [0 : 0472] - тип рестарта (1234h = CTRL+ALT+DEL - "теплый" старт, 4321h - сброс с сохранением памяти). Это позволяет различать причины рестарта (перезагрузка, выход
из защищенного режима и т. д.) для обхода некоторых секций POST;
- результаты прохождения тестов заносятся в CMOS
0Eh - Post Diagnostic Status Byte.
- в байтах 2Еh-2Fh хранится контрольная сумма
CMOS.