POST коды Award BIOS

AwardBIOS V6.0 Medallion

Первое упоминание об Award Medallion BIOS, Version 6.0 датируется 12 мая 1999 года. Структура нового продукта осталась неизменной, сохранив раннюю (Early), позднюю (Late) и финальную (System) фазы инициализации аппаратного обеспечения. Существенные изменения коснулись алгоритмов выполнения POST, что отразилось на новой кодировке контрольных точек, значительно расширив их сферу применения. Вместе с тем, в новом BIOS не нашлось места устаревшим технологиям, таким как EISA, и по этой причине ряд POST кодов было упразднено.

Выполнение стартовых процедур POST из ROM

На этапе ранней инициализации программный код BIOS выполняется из загрузочного блока (Boot Block) во Flash ROM, и сопровождается выводом в диагностический порт контрольных точек 91h…FFh

91 Выбор сценария старта платформы

CF Определение типа процессора

C0 Запрет External Cache. Запрет Internal Cache. Запрет Shadow RAM. Программирование контроллера DMA, контроллера прерываний, таймера, блока RTC

C1 Определение типа памяти, суммарного объем и размещение по строкам

Проверка контрольных сумм

C3 Проверка первых 256К DRAM для организации Temporary Area. Распаковка BIOS в Temporary Area

C5 Если контрольные суммы совпали, выполняемый код POST переносится в

Shadow. В противном случае управление передается на процедуру восстановления BIOS

B0 Инициализация North Bridge

A0-AF Аппаратно-зависимая процедура инициализации системной логики

E0-EF Ошибка в процессе инициализации системной логики

Восстановление BIOS

01 Подготовка Conventional Memory для операционной системы

05 Инициализация контроллера клавиатуры

0B Настройка контроллера прерываний

0D Поиск и инициализация VGA BIOS

10 Вывод сообщения «BIOS ROM checksum error»

11 Зарезервировано для использования в будущих реализациях

12 Генерация таблицы векторов прерываний

41 Инициализация дисковода FDD

FF Передача управления на восстановление BIOS

Выполнение POST в Shadow RAM

Поздняя инициализация выполняется в оперативной памяти и продолжается до момента вызова пользовательского меню - CMOS Setup. Для этой фазы POST характерно использование сегмента памяти E000h, в котором отрабатывается прохождение кон трольных точек от 01h до 7Fh.

01 Распаковка XGROUP по физическому адресу 1000:0000h

03 Ранняя инициализация ресурсов Super I/O

05 Установке начальных значений переменных, задающих атрибуты изображения.

Проверка флага состояния CMOS

07 Проверка и инициализация контроллера клавиатуры

08 Определение типа интерфейса подключенной клавиатуры

0A Процедура автоопределения клавиатуры и мыши. Финальные настройки контроллера клавиатуры с использованием регистров пространства PCI

0E Тестирование сегмента памяти F000h

10 Определения типа установленной памяти FlashROM

12 Тест CMOS

14 Процедура инициализации регистров чипсета

16 Первичная инициализация бортового частотного синтезатора

18 Определения установленного процессора и объем его Cache L1 и L2

1B Генерация таблицы векторов прерываний

1C Проверка достоверности CMOS и батарейного питания

1D Первичная настройка системы Power Management

1F Загрузка из внешнего модуля XGROUP клавиатурной матрицы

21 Инициализация подсистемы Hardware Power Management

23 Тестирование сопроцессора. Определение типа накопителя FDD. Подготовительный этап для создания карты ресурсов PnP устройств

24 Процедура обновления микрокода процессора. Обновление карты распределения ресурсов

25 Первичная инициализация и сканирование шины PCI

26 Настройка логики, обслуживающей линии VID (Voltage Identification Device). Инициализация бортовой системы мониторинга напряжений и температур

27 Повторная инициализация контроллера клавиатуры

29 Инициализация APIC, входящего в состав центрального процессора. Измерение частоты, на которой работает процессор. Настройка регистров системной логики.

Инициализация контроллера IDE

2A Зарезервировано, очистка Carry Flag

2B Поиск VGA BIOS

2D Вывод на экран данных о процессоре

33 Выполнение Reset для подключенной клавиатуры

35 Проверка первого канала контроллера DMA 8237

37 Проверка второго канала контроллера DMA 8237

39 Тестирование страничных регистров DMA

3C Настройка контроллера Programmable Interval Timer (8254)

3E Инициализация Master контроллера 8259

40 Инициализация Slave контроллера 8259

43 Подготовка контроллера прерываний к работе. Прерывания запрещены, их разрешение выполняется позже, после теста памяти

45 Проверка пассивности запроса немаскируемого прерывания (NMI)

47 Выполнение ISA/EISA тестов

49 Определение объема базовой и расширенной памяти. Программное управление режимом Writes Allocation путем настройки регистров AMD K5

4E Тестирование памяти в пределах первого мегабайта и визуализация результатов на экране дисплея. Инициализация схем кэширования для одно- и многопроцессорных систем, настройка регистров процессора Cyrix M1

50 Инициализация USB

52 Тестирование всей доступной системной памяти, включая регион для встроенного видео контроллера (Shared Memory). Визуализация результатов на экране дисплея

53 Сброс пароля на вход в систему

55 Визуализация количества обнаруженных процессоров

57 Начальная инициализация ISA PnP устройств, каждому из которых назначается CSN (Card Select Number). Визуализация логотипа EPA

59 Инициализация системы антивирусной поддержки

5B Старт процедуры обновления BIOS с накопителя на гибких дисках

5D Инициализация бортовых SIO и Audio контроллеров

60 Доступ к CMOS Setup открыт

63 Инициализация PS/2 Mouse

65 Инициализация USB Mouse

67 Использование IRQ12 устройствами PCI, если в системе PS/2 Mouse отсутствует

69 Полная инициализация контроллера кэш L2

6B Инициализация чипсета согласно CMOS Setup

6D Настройка ресурсов для устройств ISA PnP в режиме конфигурирования SIO

6F Инициализация подсистемы гибких дисков

73 Предварительные действия по инициализации подсистемы жестких дисков. На некоторых платформах - опрос ALT+F2 для запуска AwardFlash

75 Поиск и инициализация IDE устройств

77 Инициализация последовательных и параллельных портов

7A Программный сброс сопроцессора, запись управляющего слова в регистр FPU CW

7C Установка защиты от несанкционированной записи на жесткие диски

7F Вывод сообщений об ошибках. Обслуживание клавиш DEL и F1

Подготовка таблиц, массивов и структур для старта операционной системы Начиная с кода 82h, POST осуществляет конфигурирование системы согласно установкам CMOS. Финальная его фаза выполняется из области Shadow RAM (сегмент E800h) и завершается передачей управления операционной системе - код FFh.

82 Выделяется область в системной памяти для управления питанием

83 Восстановление данных из стека временного хранения в CMOS

84 Вывод на экран сообщения «Initializing Plug and Play Cards...»

85 Инициализация USB завершена

86 Зарезервировано, очистка Carry Flag

87 Построение таблиц SYSID в области DMI

88 Зарезервировано, очистка Carry Flag

89 Генерация таблиц обслуживания ACPI

8A Зарезервировано, очистка Carry Flag

8B Поиск и инициализация BIOS дополнительных устройств

8C Зарезервировано, очистка Carry Flag

8D Инициализация процедур обслуживания бита четности

8E Зарезервировано, очистка Carry Flag

8F Разрешение IRQ12 для «горячего» подключения манипулятора «мышь»

90 Зарезервировано, очистка Carry Flag

91 Инициализация Legacy-ресурсов платформы

92 Зарезервировано, очистка Carry Flag

93 Предположительно, не используется

94 Заключительные действия по инициализации основного набора логики перед загрузкой операционной системы. Завершается инициализация системы управления питанием. Снимается стартовая заставка BIOS, выводится на экран таблица распределения ресурсов. Для процессоров семейства AMD K6® выполняются специфические настройки. Обновление микрокода для процессоров семейства

Intel Pentium® II и выше

95 Установка режима автоматического перехода на зимнее/летнее время. Программирование контроллера клавиатуры на частоту автоповтора

96 В мультипроцессорных системах выполняются финальные настройки системы и создаются служебные таблицы и поля. Для процессоров семейства Cyrix выполняется дополнительная настройка регистров. Построение таблицы ESCD "Extended System Configuration Data". Установка счетчика DOS Time в соответствии с Real Time Clock. Выполняется сохранение разделов загрузочных устройств для далнейшего использования встроенными антивирусными средствами: Trend AntiVirus или Paragon Anti-Virus Protection. На системный динамик подается сигнал окончания выполнения POST. Строится и сохраняется таблица MSIRQ

FF Загрузка операционной системы

Ряд процессов, происходящих в Award Medallion BIOS, обозначается особыми группами контрольных точек. К ним относятся: System Event codes - контрольные точки системных событий.

B0 Ошибка исключения в Protected Mode

B1 Нераспознанный запрос NMI

B2 Остановка в активном состоянии запроса NMI

Power Management Debug codes - контрольные точки, возникающие в процессе выполнения сервисов APM или ACPI.

55 Энергосбережение с отключением питающего напряжения +12 вольт

66 Переход в режим энергосбережения с минимальным потреблением

D0 Прерывание для выхода из режима энергосбережения по событию

D1 Переход CPU в режим энергосбережения путем снижения его тактовой частоты

D2 Режим частичного энергосбережения с использованием функций ACPI

D3 System Management Interrupt для перевода в режим энергосбережения

D7 Переход CPU в режим энергосбережения средствами APM-сервиса

D8 Переход системы в состояние энергосбережения средствами APM-сервиса

D9 Перевод системы в состояние полного энергосбережения

System Error codes - сообщения о фатальных ошибках.

EC Ошибка обслуживания ECC

ED Ошибка HDD при возврате из режима энергосбережения

EF Несовпадение записанных и считанных данных в сегменте F000h

Debug codes for MP system - точки инициализации многопроцессорных платформ.

A0-A4 Процедура инициализации Local APIC одного из четырех установленных CPU

F0-F4 Сбой одного из CPU на этапе выполнения Built-In Self Test

Особенности ускоренного прохождения POST

Для сокращения времени загрузки системы пользователь в CMOS Setup может выбрать опцию "Quick Power On Self Test". В этом случае прохождение POST будет ускорено за счет отказа от выполнения некоторых процедур (Quick Boot).

Схема работы Quick Boot замещает позднюю и финальную фазы POST и не отражается на работе загрузочного блока. Award Software предлагает кодификацию исполняемых процедур ускоренного прохождения POST, отличную от стандартной. Quick Boot начинается с вывода в диагностический порт контрольной точки 65h и заканчивается POST кодом 80h. Затем управление передается операционной системе с отображением обычного для Award BIOS кодом FFh.

65 Ранняя инициализация SIO контроллера, программный сброс видео контроллера. Настройка контроллера клавиатуры, тест клавиатуры и манипулятора "мышь". Инициализация звукового контроллера. Проверка целостности структур BIOS. Распаковка процедур обслуживания Flash ROM. Инициализация бортового синтезатора частот

66 Инициализация кэш-памяти L1/L2 согласно результатам, полученным по команде CPUID. Генерация таблицы векторов, состоящей из указателей на процедуры обработки прерываний. Инициализация аппаратных средств Power Managment

67 Проверка достоверности CMOS и батарейного питания. Настройка регистров чипсета согласно установкам CMOS. Инициализация контроллера клавиатуры в составе чипсета. Формирование переменных BIOS Data Area

68 Инициализация видео системы

69 Настройка i8259 контроллера прерываний

6A По специальному алгоритму выполняется ускоренный однопроходный тест оперативной памяти

6B Визуализация количества обнаруженных процессоров, логотипа EPA и вывод приглашения для запуска утилиты AwardFlash. Настройка ресурсов встроенного контроллера ввода-вывода в режиме конфигурирования

70 Приглашения для входа в Setup. Инициализация PS/2 и USB Mouse

71 Инициализация кэш-контроллера

72 Настройка конфигурационных регистров системной логики. Формирование списка Plug and Play устройств. Инициализация FDD контроллера

73 Инициализация контроллера HDD

74 Инициализация сопроцессора

75 Если пользователем предписано в установках CMOS Setup, выполняется защита от записи IDE HDD

77 Запрос пароля и вывод сообщения: «Press F1 to continue, DEL to enter Setup»

78 Инициализация BIOS дополнительных устройств на шинах ISA и PCI

79 Инициализация Legacy ресурсов платформы

7A Генерация корневой таблицы RSDT и таблиц устройств DSDT, FADT и т.п.

7D Поиск информации о разделах загрузочных устройств

7E Настройка служб и сервисов BIOS перед загрузкой операционной системы

7F Установка флага NumLock согласно CMOS SetUp

80 Передача управления операционной системе

Выполнение POST в режиме энергосбережения

Одно из состояний платформы, когда содержимое оперативной памяти сохраняяется на жестком диске, называется Hibernate. В спецификации ACPI ("Advanced Configuration and Power Interface Specification", Revision 2.0a от 31/03/2002) оно определяется как режим энергосбережения S4 (Non-Volatile Sleep). Возврат к полноценному функционированию предполагает особый способ прохождения POST. Схема работы ACPI S4, как и при ускоренном старте, замещает позднюю и финальную фазы POST. Существенным моментом становится проверка в загрузочном блоке сценария старта. В зависимости от того, в каком ACPI состоянии находится система после аппаратного сигнала Reset, принимается решение о выходе из состояния S4, который начинается с вывода в диагностический порт контрольной точки 90h и заканчивается POST кодом 9Fh.

90 Ранняя инициализация SIO контроллера, программный сброс видео контроллера. Настройка контроллера клавиатуры, тест клавиатуры и манипулятора "мышь"

91 Проверка достоверности CMOS и батарейного питания

92 Инициализация регистров системной логики и бортового синтезатора частот

93 Инициализация кэш-памяти по информации CPUID

94 Генерация таблицы векторов, состоящей из указателей на процедуры обработки прерываний. Инициализация аппаратных средств Power Managment

95 Сканирование PCI шины

96 Инициализация встроенного контроллера клавиатуры

97 Инициализация видео системы

98 Вывод сообщений VGA адаптера

99 Проверка первого канала контроллера DMA8237 путем записи и контрольного считывания регистров базового адреса и длины блока пересылки

9A Настройка i8259 контроллера прерываний

9B Инициализация PS/2 и USB Mouse. Распаковка ACPI кода. Инициализация кэшконтроллера

9C Настройка конфигурационных регистров системной логики. Формирование списка Plug and Play устройств. Инициализация FDD и HDD контроллеров

9D Резервирование PM-региона в системной памяти не выполняется, если таковой создан в Shadow RAM или SMRAM. В некоторых случаях требуется повторная, завершающая инициализация USB шины, выполняемая при отключенной кэшпамяти L1

9E Настройка Power Management, входящей в состав системной логики. Инициализация схем генерации SMI и установка вектора SMI. Программирование ресурсов, отвечающих за мониторинг системных событий PM

9F С помощью операции запрещения и разрешения очищается кэш-память L1/L2 и восстанавливается ее актуальный размер. Настройки управления режимом энергосбережения, заданные в CMOS Setup, сохраняются в PM RAM. Для мобильныплатформ выполняется проверка возврата к полноценному функционированиюпосле отключения всех питающих напряжений (режим Zero Volt Suspend)