Вредоносное ПО (malware) - это назойливые или опасные программы,...
American Megatrends, Inc. (AMI)
Контрольные точки процедур POST, выполняемых в AMIBIOS, были переработа- ны и дополнены в 1995 году и до настоящего времени не претерпели существенных из- менений. Первое описание POST кодов или как их называет AMI - "check points" в их нынешнем виде появилось в связи с выходом в свет ядра V6.24, 15/07/95. Некоторые изменения внесены в AMIBIOS V7.0, что отражается в настоящем документе.
Особенности выполнения стартовых процедур AMIBIOS
Если в процессе старта в диагностическом порту появляются данные 55h, AAh, не следует сопоставлять эту информацию с POST кодами - мы имеем дело с типовой тестовой последовательностью, в задачи которой входит проверка целостности шины данных.
На этапе старта вывод в диагностический порт данных носит специфический для каждой платформы характер. В некоторых реализациях первый визуализируемый код связан с действиями, который компания AMI называет chipset specific stuff. Эта проце- дура сопровождается выводом в порт 80h значения CCh и выполнением ряда действий по настройке регистров системной логики. Как правило, код CCh возникает в тех слу- чаях, когда используется системная логика от Intel, построенная на основе контроллера PIIX - это чипсеты TX, LX, BX.
Некоторые бортовые микросхемы ввода-вывода содержат RTC и контроллер кла- виатуры, которые по старту находятся в отключенном состоянии. Цель BIOS - проини- циализировать эти ресурсы платы для дальнейшего использования. В этом случае пер- вая стартовая процедура, связанная с настройкой контроллера клавиатуры, сопровож- дается выводом значения 10h, затем выполняется инициализация RTC, о чем свиде- тельствует появление в диагностическом порту кода DDh. Следует отметить, что отказ хотя бы одного из этих ресурсов повлечет нестарт системной платы в целом на первом же этапе выполнения POST.
На ряде плат процесс инициализации начинается с перевода CPU в защищенный режим. В этом случае вслед за первым визуализируемым кодом 43h выполнение POST продолжается так, как описано в документации AMIBIOS - управление передается в точку D0h.
Коды неупакованной процедуры инициализации
Uncompressed Init Code Check Points
Код ошибки | Описание ошибки |
---|---|
EE | В современных реализациях AMIBIOS первый визуализируемый код связан с об- ращением к устройству, с которого возможна загрузка для восстановления BIOS |
CC | Инициализация регистров системной логики CD Тип Flash ROM не опознан |
CE | Несовпадение контрольных сумм в стартовом BIOS CF Ошибка в доступе к запасной микросхеме Flash ROM |
DD | Ранняя инициализация RTC, который интегрирован в SIO чип |
D0 | Запрет немаскируемого прерывания NMI. Отработка временной задержки для за- тухания переходных процессов. Проверка контрольной суммы Boot Block, оста- нов при несовпадении |
D1 | Выполнение процедуры регенерации памяти и Basic Assurance Test. Переход в 4 GB режим адресации памяти |
D3 | Определение объема и первичный тест памяти |
D4 | Возврат в реальный режим адресации памяти. Ранняя инициализация чип сета. Установка стека |
D5 | Перенос модуля POST из Flash ROM в транзитную область памяти |
D6 | При несовпадении контрольной суммы или CTRL+Home выполняется переход на процедуру восстановления Flash ROM (Код E0) |
D7 | Передача управления служебной программе, осуществляющей распаковку сис- темного BIOS |
D8 | Полная распаковка системного BIOS |
D9 | Передача управления системному BIOS в Shadow RAM |
DA | Чтение информации из SPD (Serial Presence Detect) модулей DIMM DB Настройка MTRR регистров центрального процессора |
DC | Контроллер памяти программируются согласно данным, полученным из SPD DE Ошибка конфигурации системной памяти. Фатальная ошибка |
DF | Ошибка конфигурации системной памяти. Звуковой сигнал 10 Ранняя |
11 | Возврат из состояния STR (Suspend to RAM) |
12 | Восстановление доступа к SMRAM (System Management RAM) |
13 | Восстановление регенерации памяти |
14 | Поиск и инициализация VGA BIOS |
Коды процедуры перезаписи Flash ROM
Boot Block Recovery Codes
Код ошибки | Описание ошибки |
---|---|
E0 | Выполняется подготовка к перехвату INT19 и проверяется возможность старта системы в упрощенном режиме |
E1 | Установка векторов прерываний |
E3 | Восстановление содержимого CMOS, поиск и инициализация BIOS |
E2 | Подготовка контроллеров прерываний и непосредственного доступа к памяти |
E6 | Разрешение прерываний от системного таймера и FDC |
EC | Повторная инициализация контроллеров IRQ и DMA ED Инициализация дисковода |
EE | Чтение загрузочного сектора с дискеты EF Ошибка дисковых операций |
F0 | Поиск файла AMIBOOT.ROM |
F1 | В корневом каталоге файл AMIBOOT.ROM не найден F2 Считывание FAT |
F3 | Считывание AMIBOOT.ROM |
F4 | Объем файла AMIBOOT.ROM не соответствует объему Flash ROM |
F5 | Запрет Internal Cache |
FB | Определение типа Flash ROM |
FC | Стирание основного блока Flash ROM |
FD | Программирование основного блока Flash ROM |
FF | Рестарт BIOS |
Коды распакованного системного BIOS, выполняемые в ShadowRAM
Runtime code is uncompressed in F000 shadow RAM
Код ошибки | Описание ошибки |
---|---|
03 | Запрет немаскируемого прерывания NMI. Определение типа сброса |
05 | Инициализация стека. Запрет кэширования памяти и контроллера USB |
06 | Выполнение в ОЗУ служебной программы |
07 | Распознавание процессора и инициализация APIC |
08 | Проверка контрольной суммы CMOS |
09 | Проверка отработки клавиш End/Ins |
0A | Проверка сбоя батарейного питания |
0B | Очистка буферных регистров контроллера клавиатуры |
0C | Контроллеру клавиатуры передается команда тестирования |
0E | Поиск дополнительных устройств, обслуживаемых контроллером клавиатуры |
0F | Инициализация клавиатуры |
10 | Клавиатуре передается команда сброса |
11 | Если нажата клавиша End или Ins, выполняется сброс CMOS 12 Перевод в пассивное состояние контроллеров DMA |
13 | Инициализация чип сета и кэш L2 |
14 | Проверка системного таймера |
19 | Выполняется тест формирования запросов на регенерацию DRAM |
1A | Проверка длительности цикла регенерации |
20 | Инициализация устройств вывода |
23 | Считывается порт ввода контроллера клавиатуры. Опрашивается Keylock Switch и Manufacture Test Switch |
24 | Подготовка к инициализации таблицы векторов прерываний |
25 | Инициализация векторов прерываний завершена |
26 | Через порт ввода контроллера клавиатуры опрашивается состояние перемычки Turbo Switch |
27 | Первичная инициализация контроллера USB. Обновление микрокода стартового процессора |
28 | Подготовка к установке видеорежима |
29 | Инициализация LCD панели |
2A | Поиск устройств, обслуживаемых дополнительными ROM |
2B | Инициализации VGA BIOS, проверка его контрольной суммы |
2C | Выполнение VGA BIOS |
2D | Согласование INT 10h и INT 42h |
2E | Поиск видеоадаптеров CGA |
2F | Тест видеопамяти адаптера CGA |
30 | Тест схем формирования разверток адаптера CGA |
31 | Ошибка видеопамяти или схем формирования разверток. Поиск альтернативного видеоадаптера CGA |
32 | Тест видеопамяти альтернативного видеоадаптера CGA и схем разверток |
33 | Опрос состояния перемычки Mono/Color |
34 | Установка текстового режима 80х25 |
37 | Видеорежим установлен. Экран очищен |
38 | Инициализация бортовых устройств |
39 | Вывод сообщений об ошибках на предыдущем шаге |
3A | Вывод сообщения «Hit DEL» для входа в CMOS Setup |
3B | Начало подготовки к тесту памяти в защищенном режиме |
40 | Подготовка дескрипторных таблиц GDT и IDT |
42 | Переход в защищенный режим |
43 | Процессор в защищенном режиме. Прерывания разрешены |
44 | Подготовка к проверке линии A20 |
45 | Тест линии A20 |
46 | Определение размера ОЗУ выполнено |
47 | Тестовые данные записаны в Conventional Memory |
48 | Повторная проверка Conventional Memory |
49 | Тест Extended Memory |
4B | Обнуление памяти |
4C | Индикация процесса обнуления |
4D | Запись в CMOS полученных размеров Conventional и Extended memory 4E Индикация реального объема системной памяти |
4F | Выполняется расширенный тест Conventional Memory |
50 | Коррекция размера Conventional Memory |
51 | Расширенный тест Extended Memory |
52 | Объемы Conventional Memory и Extended Memory сохранены |
53 | Обработка отложенных ошибок четности |
54 | Запрет контроля четности и обработки немаскируемых прерываний |
57 | Инициализация региона памяти для POST Memory Manager |
58 | Выводится приглашение для входа в CMOS Setup |
59 | Возврат процессора в реальный режим |
60 | Проверка страничных регистров DMA |
62 | Тест регистров адреса и длины пересылки контроллера DMA#1 |
63 | Тест регистров адреса и длины пересылки контроллера DMA#2 |
65 | Программирование контроллеров DMA |
66 | Очистка регистров Write Request и Mask Set POST |
67 | Программирование контроллеров прерываний |
7F | Разрешение запроса NMI от дополнительных источников |
80 | Устанавливается режим обслуживания прерываний от порта PS/2 |
81 | Тест интерфейса клавиатуры при ошибках сброса |
82 | Установка режима работы контроллера клавиатуры |
83 | Проверка статуса Keylock |
84 | Верификация объема памяти |
85 | Вывод на экран сообщений об ошибках |
86 | Настройка системы для работы Setup |
87 | Распаковка программы CMOS Setup в Conventional Memory. |
88 | Работа программы Setup завершена пользователем |
89 | Завершено восстановление состояния после работы Setup |
8B | Резервирование памяти дополнительному блоку переменных BIOS |
8C | Программирование конфигурационных регистров |
8D | Первичная инициализация контроллеров HDD и FDD |
8F | Повторная инициализация контроллера FDD |
91 | Конфигурирование контроллера жестких дисков |
95 | Выполняется ROM Scan для поиска дополнительных BIOS |
96 | Дополнительная настройка системных ресурсов |
97 | Проверка сигнатуры и контрольной суммы дополнительного BIOS |
98 | Настройка System Management RAM |
99 | Установка счетчика таймера и переменных параллельных портов 9A Формирование списка последовательных портов |
9B | Подготовка области в памяти для теста сопроцессора |
9C | Инициализация сопроцессора |
9D | Информация о сопроцессоре сохраняется в CMOS RAM |
9E | Идентификация типа клавиатуры |
9F | Поиск дополнительных устройств ввода |
A0 | Формирование регистров MTRR (Memory Type Range Registers) |
A2 | Сообщений об ошибках на предыдущих этапах инициализации |
A3 | Установка временных характеристик автоповтора клавиатуры |
A4 | Дефрагментирование неиспользованных регионов RAM |
A5 | Установка видео режима |
A6 | Очистка экрана |
A7 | Перенос исполняемого кода BIOS область Shadow RAM |
A8 | Инициализация дополнительного BIOS в сегменте E000h |
A9 | Возврат управления системному BIOS AA Инициализация USB шины |
AB | Подготовка модуля INT13 для обслуживания дисковых сервисов |
AC | Построение таблиц AIOPIC для поддержки мультипроцессорных систем AD Подготовка модуля INT10 для обслуживания видео сервисов |
AE | Инициализация DMI |
B0 | Таблица конфигурации системы выведена B1 Инициализация ACPI BIOS |
00 | Программное прерывание INT19h – загрузка Boot Sector |
Особенности выполнения Device Initialization Manager
Кроме выше указанных POST кодов, в диагностический порт выводятся сообще- ния о событиях в процессе выполнения Device Initialization Manager (DIM). Существует несколько контрольных точек, в которых отображается состояние инициализации сис- темных или локальных шин.
Информация отображается в формате слова, младший байт которого совпадает с системным POST кодом, а старший байт указывает на тип выполняемой инициализационной процедуры. Старшая тетрада в старшем байте указывает тип выполняемой процедуры, а младшая определяет шинную топологию для ее применения.
Старшая тетрада
Младшая тетрада
В случае если обнаружена ошибка конфигурации системной памяти, в порт 80h выводится последовательно в бесконечном цикле код DE, код DF, код ошибки конфигурации, который может принимать следующие значения:
2. Award BIOS V4.51PG Elite
AwardBIOS V4.51PG Elite
Динамично развивающаяся компания Award Software в 1995 году предложила новое на то время решение в области низкоуровневого программного обеспечения - AwardBIOS "Elite", более известное как V4.50PG. Режим обслуживания контрольных точек не изменился ни в широко распространенной версии V4.51, ни в раритетном исполнении V4.60. Суффиксы P и G обозначают соответственно поддержку механизма PnP и обслуживание функций энергосбережения (Green Function).
Выполнение POST в Shadow RAM
Код ошибки | Описание ошибки |
---|---|
03 | Запрет NMI, PIE (Periodic Interrupt Enable), AIE (Alarm Interrupt Enable), UIE (Update Interrupt Enable). Запрет генерации программируемой частоты SQWV |
04 | Проверка формирования запросов на регенерацию DRAM |
05 | |
06 | Тест области памяти, начинающейся с адреса F000h, где размещен BIOS 07 Проверка функционирования CMOS и батарейного питания |
BE | Программирование конфигурационных регистров Южного и Северного Мостов |
09 | Инициализация кэш-памяти L2 и регистров расширенного управления кэширова- нием процессора Cyrix |
0A | Генерация таблицы векторов прерываний. Настройка ресурсов Power Management и установка вектора SMI |
0B | Проверка контрольной суммы CMOS. Сканирование шины PCI устройств. Обнов- ление микрокода процессора |
0С | Инициализация контроллера клавиатуры |
0D | Поиск и инициализация видеоадаптера. Настройка IOAPIC. Измерения тактовой частоты, установка FSB |
0E | Инициализация MPC. Тест видеопамяти. Вывод на экран Award Logo |
0F | Проверка первого контроллера DMA 8237. Определение клавиатуры и ее внут- ренний тест. Проверка контрольной суммы BIOS |
10 | Проверка второго контроллера DMA 8237 |
11 | Проверка страничных регистров контроллеров DMA |
14 | Тест канала 2 системного таймера 15 Тест регистра маскирования запросов 1-го контроллера прерываний |
16 | Тест регистра маскирования запросов 2-го контроллера прерываний 19 Проверка пассивности запроса немаскируемого прерывания NMI |
30 | Определение объема Base Memory и Extended Memory. Настройка APIC. Программное управление режимом Write Allocation |
Код ошибки | Описание ошибки |
---|---|
31 | Основной отображаемый на экране тест оперативной памяти. Инициализация USB |
32 | Выводится заставка Plug and Play BIOS Extension. Настройка ресурсов Super I/O. Программируется Onboard Audio Device |
39 | Программирование тактового генератора по шине I2C |
3C | Установка программного флага разрешения входа в Setup |
3D | Инициализация PS/2 mouse |
3E | Инициализации контроллера External Cache и разрешения Cache BF Настройка конфигурационных регистров чип сета |
41 | Инициализация подсистемы гибких дисков |
42 | Отключение IRQ12 если PS/2 mouse отсутствует. Выполняется программный сброс контроллера жестких дисков. Сканирование других IDE устройств |
43 | |
45 | Инициализация сопроцессора FPU |
4E | Индикация сообщений об ошибках |
4F | Запрос пароля |
50 | Восстановление ранее сохраненного в ОЗУ состояния CMOS |
51 | Разрешение 32 битного доступа к HDD. Настройка ресурсов ISA/PnP |
52 | Инициализация дополнительных BIOS. Установка значений конфигурационных регистров PIIX. Формирование NMI и SMI |
53 | |
60 | Установка антивирусной защиты BOOT Sector |
61 | Завершающие действия по инициализации чип сет |
62 | Чтение идентификатора клавиатуры. Установка ее параметров |
63 | Коррекция блоков ESCD, DMI. Очистка ОЗУ |
FF | Передача управления загрузчику. BIOS выполняет команду INT 19h |
3. Award BIOS V6.0 Medallion
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 Определение типа памяти, суммарного объем и размещение по строкам 0С Проверка контрольных сумм |
C3 | Проверка первых 256К DRAM для организации Temporary Area. Распаковка BIOS в Temporary Area |
C5 | Если контрольные суммы совпали, выполняемый код POST переносится в Shadow. В противном случае управление передается на процедуру восстановления BIOS |
B0 | Инициализация North Bridge |
A0-AF | Аппаратно-зависимая процедура инициализации системной логики E0-EF Ошибка в процессе инициализации системной логики |
Восстановление BIOS
Выполнение POST в Shadow RAM
Поздняя инициализация выполняется в оперативной памяти и продолжается до момента вызова пользовательского меню - CMOS Setup. Для этой фазы POST характерно использование сегмента памяти E000h, в котором отрабатывается прохождение кон- трольных точек от 01h до 7Fh.
Код ошибки | Описание ошибки |
---|---|
01 | Распаковка XGROUP по физическому адресу 1000:0000h |
03 | Ранняя |
05 | Установке начальных значений переменных, задающих атрибуты изображения. Проверка флага состояния CMOS |
07 | Проверка и инициализация контроллера клавиатуры |
08 | Определение типа интерфейса подключенной клавиатуры |
0A | Процедура автоопределения клавиатуры и мыши. Финальные настройки кон- троллера клавиатуры с использованием регистров пространства PCI |
0E | Тестирование сегмента памяти F000h |
10 | Определения типа установленной памяти FlashROM |
12 | Тест CMOS |
14 | Процедура инициализации регистров чипсета |
16 | Первичная инициализация бортового частотного синтезатора |
18 | Определения установленного процессора и объем его Cache L1 и L2 1B Генерация таблицы векторов прерываний |
1C | |
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 | |
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 |
Ряд процессов, происходящих в Award Medallion BIOS, обозначается особыми группами контрольных точек. К ним относятся:
System Event codes - контрольные точки системных событий.
Power Management Debug codes - контрольные точки, возникающие в процессе выполнения сервисов APM или ACPI.
System Error codes - сообщения о фатальных ошибках.
Debug codes for MP system - точки инициализации многопроцессорных платформ.
Особенности ускоренного прохождения 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) |
4. Phoenix BIOS 4.0 Release 6.0
Phoenix Technologies, Ltd.
Один из лидеров разработки низкоуровневого программного обеспечения Phoe- nix Technologies приурочил к выходу Windows95 новую версию PhoenixBIOS 4.0. Поддержка семейства процессоров Intel Pentium отражается в названии промежуточных ревизий. Одна из последних - Release 6.0 - легла в основу всех выпускаемых BIOS. С появлением Release 6.1 существенных изменений в выполнении процедур POST не про- изошло, и, следовательно, это не отразилось на индикации контрольных точек.
Отличительная особенность PhoenixBIOS состоит в том, что если в процессе выполнения POST возникают ошибки тестирования 512 Кбайт основной памяти (коды 2Ch, 2Eh, 30h), в порт 80h выводится дополнительная информация в формате слова, биты которого идентифицируют сбойную адресную линию или ячейку данных. Например, код "2C 0002" означает, что обнаружен сбой памяти по адресной линии 1. Код "2E 1020" в этом случае будет означать, что обнаружен сбой по линиям данных 12 и 5 в младшем байте шины данных памяти. В системах 386SX, где используется шестнадцати битная шина данных, возникновение ошибки на этапе выполнения кода 30h невозможно
Вывод в диагностический порт POST кода сопровождается выводом на системный динамик звукового сигнала. Схема формирования звукового сигнала следующая:
- Восьми битный код преобразуется в четыре двух битные группы
- Значение каждой группы увеличивается на единицу
- По полученному значению генерируется короткий звуковой сигнал (например: код 16h = 00 01 01 10 = 1-2-2-3)
Выполнение стартовых процедур POST из ROM
Код ошибки | Описание ошибки |
---|---|
01 | Инициализация контроллера Baseboard Management (BMC) |
02 | Проверка текущего режим работы процессора |
03 | Запрет выполнения немаскируемых прерываний |
04 | Определяется тип установленного процессора |
06 | Начальные установки регистров PIC и DMA |
07 | Область в памяти, предназначенная для копии BIOS, обнуляется |
08 | Ранняя инициализация регистров системной логики |
09 | Установка программного флага выполнения POST |
0A | Инициализация программных ресурсов процессора |
0B | Разрешение Internal Cache |
0E | Инициализация ресурсов Super I/O |
0C | Инициализация кэш L1/L2 согласно значениям CMOS |
0F | Инициализация IDE |
10 | Инициализация подсистемы Power Management |
11 | Установка значений альтернативных регистров |
12 | Выполняется установка значения регистра MSW (Machine Status Word) |
13 | Ранняя инициализация PCI устройств |
14 | Инициализация контроллера клавиатуры |
16 | Проверка контрольной суммы ROM BIOS |
17 | Определение объема кэш L1/L2 |
18 | Инициализация системного таймера 8254 |
1A | Инициализация контроллера DMA |
1C | Сброс значений программируемого контроллера прерываний |
20 | Проверка формирования запросов регенерации DRAM |
22 | Проверка работы контроллера клавиатуры |
24 | Установка селектора для обслуживания плоской 4Gb модели памяти |
26 | Разрешение линии А20 |
28 | Определение суммарного объема установленной памяти |
29 | Инициализация POST Memory Manager (PMM) |
2A | Обнуление 640Kb основной памяти |
2C | Тестирование адресных линий |
2E | Сбой по одной из линий данных в младшем байте шины данных памяти |
2F | Выбор протокола работы кэш памяти |
30 | Тест доступной системной памяти |
32 | Определение тактовых параметров CPU и частоты шины |
Код ошибки | Описание ошибки |
---|---|
33 | Инициализация Phoenix Dispatch Manager |
34 | Запрет на выключение питания с помощью ATX Power Button |
35 | Настройки регистров системной логики, управляющих формированием временных характеристик доступа к памяти, портам ввода/вывода, системным и локальным шинам |
36 | Выполняется рестарт при неудачном переходе к следующей процедуре POST. Последовательностью процедур управляет Watch Dog Service |
37 | Завершается процесс настройки регистров системной логики |
38 | Содержимое Runtime модуля BIOS распаковывается и переписывается в область, предназначенную для Shadow RAM |
39 | Повторная инициализация контроллера кэш-памяти |
3A | Повторное определение размера кэш L2 |
3B | Инициализация трассировки выполнения BIOS |
3C | Дополнительная настройка регистров логики для конфигурирования мостов PCI-PCI и поддержки распределенных PCI шин |
3D | Выполняется настройка регистров системной логики в соответствии с установками CMOS Setup |
3E | Read Hardware Configuration |
3E | Проверка подключения системы ROM Pilot |
40 | Определение тактовых параметров CPU |
41 | Инициализация ROM Pilot - управления удаленной загрузкой |
42 | |
44 | Set BIOS Interrupt |
45 | Инициализация устройств до включения PnP механизма |
46 | По специальному алгоритму вычисляется контрольная сумма BIOS |
47 | Инициализация I2O контроллеров ввода/вывода |
48 | Поиск видеоадаптера |
49 | Инициализация PCI |
4A | Инициализация системных видеоадаптеров |
4B | Выполняется Quiet Boot - сокращенная последовательность старта системы, используемая для ускоренного прохождения POST |
4C | Содержимое VGA BIOS переписывается в транзитную область |
4E | Визуализация текстовой строки BIOS Copyright |
4F | Резервирование памяти для меню выбора загрузочных устройств |
50 | Визуализируется тип процессора и его тактовая частота |
51 | Инициализация контроллера и устройств EISA |
52 | Программирование контроллера клавиатуры |
54 | Активизирован режим звукового сопровождения клавиш |
55 | |
58 | Поиск необслуживаемых запросов на прерывания |
59 | Инициализация процедуры POST Display Service (PDS) 5A Вывод сообщения "Press F2 to enter SETUP" |
5B | Запрет CPU Internal Cache |
5C | Проверка Conventional Memory |
5E | Detect Base Address |
60 | Проверка Extended Memory |
62 | Проверка адресных линий Extended Memory |
64 | Передача управления на выполняемый блок, генерируемый производителем системной платы (Patch1) |
66 | Настройка регистров управления кэшированием |
67 | Минимальная инициализация контроллеров APIC |
68 | Разрешение кэш L1/L2 |
69 | Подготовка System Management Mode RAM |
6A | Визуализируется объем External Cache |
6B | Установка значений CMOS Setup по умолчанию |
6C | Визуализация информации об использовании Shadow RAM |
6E | Визуализация информации об Upper Memory Blocks (UMB) |
70 | Вывод сообщений об ошибках |
72 | Проверка текущей конфигурации системы и информации в CMOS |
76 | Проверка информации об ошибках клавиатуры |
7A | Проверка состояния средств программной (System Password) или аппаратной (Key Lock Switch) блокировки клавиатуры |
7C | Установка векторов аппаратных прерываний |
7D | Инициализации системы слежения за питанием |
7E | Инициализация сопроцессора |
80 | Запрещается бортовой контроллер ввода/вывода SIO |
81 | Выполняется подготовка к загрузке операционной системы |
82 | Поиск и определение портов RS232 |
83 | Конфигурирование внешних IDE контроллеров |
84 | Поиск и определение параллельных портов |
85 | Инициализация устройств ISA PnP |
86 | Бортовые ресурсы контроллера SIO конфигурируются в соответствии с установками CMOS Setup |
87 | Конфигурирование MCD (Motherboard Configurable Devices) |
88 | Устанавливаются значения блока переменных в области BIOS Data Area |
89 | Разрешается формирование немаскируемого прерывания |
8A | Установка значений переменных, находящихся в области Extended BIOS Data Area |
8B | Проверка схем подключения PS/2 Mouse |
8C | Инициализация контроллера дисковода |
8F | Определение количества подключенных ATA устройств |
90 | Инициализация и конфигурирование контроллеров жестких дисков |
91 | Установка временных параметров работы жестких дисков в режиме PIO |
92 | Передача управления на выполняемый блок, генерируемый производителем системной платы (Patch2) |
93 | Построение таблицы конфигурации мультипроцессорной системы |
95 | Выбор процедуры обслуживания CD-ROM |
96 | Возврат в Real Mode |
97 | Построение MP Configuration Table |
98 | Выполняется процедура ROM Scan |
99 | Проверка состояния параметра SMART 9A Содержимое ROM переписывается в RAM |
9C | Настройка подсистемы Power Management |
9D | Инициализация ресурсов для защиты от несанкционированного доступа |
9E | Разрешаются аппаратные прерывания |
9F | Определяется количество накопителей IDE и SCSI |
A0 | Установка DOS Time по состоянию RTC A1 Назначение данного кода неизвестно A2 Проверка состояния Key Lock |
A4 | Установки характеристик автоповтора клавиатуры |
A8 | Сообщение "Press F2 to enter Setup" удаляется с экрана |
AA | Проверяется наличие SCAN кода клавиши F2 во входном буфере AC Запускается программа Setup |
AE | Очищается флаг перезапуска, выполняемого по CTRL+ALT+DEL B0 Генерируется сообщение "Press F1 to resume, F2 to Setup" |
B1 | Снимается флаг выполнения POST B2 Процедура POST завершена |
B4 | Выдача звукового сигнала перед загрузкой |
B5 | Фаза Quiet Boot завершена |
B6 | Проверка пароля, если данный режим включен в Setup B7 Инициализация ACPI BIOS |
B9 | Поиск загрузочных устройств на USB шине BA Инициализация параметров DMI |
BB | Повторное выполнение процедуры ROM Scan |
BC | Обнуляется триггер фиксации ошибки четности RAM |
BD | Визуализируется меню для выбора загрузочного устройства BE Очистка экрана перед загрузкой операционной системы BF Активизация антивирусной поддержки |
C0 | Запускается процедура обработки программного прерывания INT 19h - загрузчик Boot Sector. Процедура обработки прерывания последовательно пытается загрузить Boot Sector, опрашивая дисковые устройства в порядке, предписанном Setup |
C1 | Начальная инициализация процедуры обслуживания сбоев (PEM) C2 Вызов служебных процедур для ведения протокола ошибок |
C3 | Визуализация сообщений об ошибках в порядке их поступления С4 Установка флагов начальных состояний |
C5 | Инициализация расширенного блока ячеек CMOS RAM |
C6 | Первичная инициализация док-станции |
C7 | Отложенная инициализация док-станции |
С8 | Выполнение находящихся в составе Boot Block тестовых процедур определения целостности структур BIOS |
С9 | Проверка целостности внешних по отношению к системному BIOS структур и/или модулей |
CA | Запуск Console Redirect для обслуживания удаленной клавиатуры CB Эмуляция дисковых устройств в RAM/ROM |
CC | Запуск Console Redirect для обслуживания видео CD Поддержка обмена данными с PCMCIA |
CE | Настройка контроллера светового пера |
Сообщения о фатальных ошибках
D0 Ошибка, вызванная исключительной ситуацией (Exception error) D2 Вызов процедуры обработки прерывания от не идентифицированного источника D4 Ошибка, связанная с нарушением протокола выдачи и снятия запросов на пре- рывание D6 Выход из защищенного режима с программным формированием сброса D7 Для сохранения состояния видеоадаптера требуется больший объем памяти, чем доступно в SMRAM D8 Ошибка при программном формировании импульса сброса процессора DA Потеря управления при возврате в Real Mode DC Выход из защищенного режима с программным формированием сброса без по- вторной инициализации контроллера прерываний DD Ошибка при тестировании расширенной памяти DE Ошибка контроллера клавиатуры DF Ошибка управления линией A20 19
Выполнение процедур из Boot Block
Код ошибки | Описание ошибки |
---|---|
E0 | Настройка конфигурационных регистров чипсета E1 Инициализация Северного и Южного мостов |
E2 | Инициализация CPU |
E3 | Инициализация системного таймера |
E4 | Инициализация ресурсов Super I/O |
E5 | Проверка состояния Recovery Jumper, установка которого принудительно запускает режим BIOS Recovery |
E6 | Проверка контрольной суммы BIOS |
E7 | Управление передается BIOS, если его контрольная сумма вычислена правильно E8 Инициализация поддержки MPS |
E9 | Переход к плоской 4Gb модели памяти |
EA | Инициализация нестандартного оборудования |
EB | Настройка контроллера прерываний и прямого доступа к памяти |
EC | Путем записей и контрольных считываний по специальному алгоритму определя-ется тип памяти: FPM, EDO, SDRAM, в соответствии с результатом настраиваются конфигурационные регистры Host Bridge |
ED | Путем записей и контрольных считываний по специальному алгоритму определя-ется объем банков памяти и размещение по строкам. В соответствии с результа том настраиваются конфигурационные регистры Host Bridge (DRAM Row Boundary) |
EE | Содержимое Boot Block копируется в Shadow RAM EF Подготовка SMM RAM для обработчика SMI |
F0 | Тест памяти |
F1 | Инициализация векторов прерываний |
F2 | Инициализация Real Time Clock |
F3 | Инициализация видео подсистемы |
F4 | Генерация звукового сигнала перед загрузкой |
F5 | Загрузка операционной системы, хранящейся во Flash ROM |
F6 | Возврат в Real Mode |
F7 | Boot to Full DOS |
F8 | Инициализация контроллера USB |
FA…FF | Коды взаимодействия с процедурой PhDebug |
5. Insyde BIOS Mobile Pro
Insyde Software Corp.
Инсайдер рынка мобильных систем прочно обосновался там, где требуется верность традициям и консервативный подход к построению BIOS. Получив в наследство исходный код от SystemSoft, компания постоянно работает над его совершенствованием. Последняя из ревизий MobilePRO активно используется в ноутбуках Mitac и Clevo, документация к которым и легла в основу таблицы Error Codes - так в Insyde Software называют контрольные точки выполнения POST.
Контрольные точки загрузочного блока
Несмотря на то, что свой первый BIOS компания Insyde Software создала в 1992 году, устоявшая модель загрузочного блока, - или Boot Loader, как его назвали сами создатели, - окончательно сформировалась только к концу 1995 года. С этого момента стартовая процедура получила нумерацию по версии и дате создания.
Наиболее существенным моментом с точки зрения сервисного инженера, иссле- дующего процесс загрузки компьютерной системы с InsydeBIOS, становится устройство отображения диагностических кодов. Хотя, как правило, Boot Loader использует стандартный в таких случаях Manufacture"s Diagnostic Port 80h, в некоторых случаях вывод контрольных точек выполняется только на PIO Port (Parallel Input/Output port for diagnostic purpose), который представляет собой не что иное, как параллельный порт 378h. Существуют реализации, в которых диагностические коды, посылаемые в порт 80h, дублируются и в параллельный порт.
Код ошибки | Описание ошибки |
---|---|
00 | Стартовая точка выполнения загрузочного блока 01 Запрет линии А20 (не используется) |
02 | Обновление микрокода центрального процессора |
03 | Тестирование оперативной памяти |
04 | Перенос загрузочного блока в оперативную память |
05 | Выполнение загрузочного блока из оперативной памяти |
06 | Форсирование процедуры восстановления Flash ROM |
07 | Перенос системного BIOS в оперативную память |
08 | Верификация контрольной суммы системного BIOS |
09 | Запуск процедуры POST |
0A | Запуск процедуры восстановления Flash ROM с накопителя FDD |
0B | Инициализация синтезатора частот |
0C | Завершение процедуры восстановления BIOS |
0D | Альтернативная процедура восстановления Flash ROM с FDD |
0F | Останов в случае возникновения фатальной ошибки |
BB | Ранняя инициализация LPC SIO |
CC | Стартовая точка начала восстановления Flash ROM |
88 | Разрешение функций ACPI |
99 | Ошибка при выходе из режима STR |
60 | Переход в режим Big Real Mode |
61 | Инициализация SM Bus. Данные SPD сохраняются в CMOS A0 Чтение и анализ полей SPD, ранее сохраненных в CMOS A1 Инициализация контроллера памяти |
A2 | Определение логических банков модуля DIMM |
A3 | Программирование регистров DRB (DRAM Row Boundary) |
A4 | Программирование регистров DRA (DRAM Row Attributes) |
AE | В системе обнаружены модули DIMM, которые разнятся между собой функциями Error Correcting Codes (ECC) |
AF | Первичная инициализация регистров контроллера памяти, отображаемых в пространстве памяти |
E1 | Выполнение загрузочной процедуры прекращается, если модуль DIMM не оснащен микросхемой SPD |
E2 | Тип модуля DIMM не соответствует требованиям системы |
EA | Минимальное время между активацией строк DIMM модуля и переходом в состояние регенерации не соответствует системным требованиям |
EC | Регистровые модули не поддерживаются ED Проверка режимов CAS Latency |
EE | Организация модуля DIMM не поддерживается системной платой |
Выполнение процедур POST из RAM
Самые современные решения InsydeBIOS используют 16-битное отображение контрольных точек. Для этого используются порты 80h и 81h, последний из которых предназначен для расширения стандартной диагностики.
Изучение контрольных точек затрудняется их нерегулярным построением, когда различные по смыслу процессы сопровождаются одними и теми же кодами. В дуальных диагностических системах существуют разнородности другого порядка: некоторые POST коды отображаются только в один из портов без привычного в таких случаях дублирования.
Код ошибки | Описание ошибки |
---|---|
10 | Инициализация кэш-памяти, проверка CMOS |
11 | Запрет линии А20. Установка регистров контроллеров 8259. |
12 | Определение способа загрузки |
13 | Инициализация контроллера памяти |
14 | Поиск подключенного к шине ISA видео адаптера |
15 | Установка значений системного таймера |
16 | Установка регистров системной логики по CMOS |
17 | Подсчет общего объема оперативной памяти |
18 | Тестирование младшей страницы Conventional Memory |
19 | Проверка контрольной суммыы образа Flash ROM |
1A | Повторная установка регистров контроллера прерываний |
1B | Инициализация видео адаптера |
1C | Инициализация подмножества регистров видео адаптера, совместимых с программной моделью 6845 |
1D | Инициализация EGA адаптера |
1E | Инициализация CGA адапетра |
1F | Тест страничных регистров DMA контроллера |
20 | Проверка контроллера клавиатуры |
21 | Инициализация контроллера клавиатуры |
22 | Сравнение полученного объема оперативной памяти со значением в CMOS |
23 | Проверка автономного батарейного питания и Extended CMOS |
24 | Тестирование регистров контроллера DMA |
25 | Установка параметров DMA контроллера |
26 | Формирование таблицы векторов прерываний |
27 | Ускоренное определение объема установленной памяти |
28 | Защищенный режим |
29 | Тест системной памяти выполнен |
2A | Выход из защищенного режима |
2B | Перенос процедуры Setup в оперативную память |
2C | Запуск процедуры инициализации видео |
2D | Повторный поиск CGA адаптера |
2E | Повторный поиск EGA/VGA адаптера |
2F | Вывод на экран сообщений VGA BIOS |
30 | Пользовательская процедура инициализации контроллера клавиатуры |
31 | Проверка подключенной клавиатуры |
32 | Проверка прохождения запроса от клавиатуры |
33 | Проверка регистра статуса клавиатуры |
34 | Тест и обнуление системной памяти |
35 | Защищенный режим |
36 | Расширенный тест памяти завершен |
37 | Выход из защищенного режима |
38 | Запрет линии А20 |
39 | Инициализация кэш-контроллера 3A Проверка системного таймера |
3B | Установка счетчика DOS Time в соответствии с Real Time Clock |
3C | Инициализация таблицы аппаратных прерываний |
3D | Поиск и инициализация манипуляторов и указателей |
3E | Установка статуса клавиши NumLock |
3F | Инициализация последовательных и параллельных портов |
40 | Конфигурирование последовательных и параллельных портов |
41 | Инициализация FDD контроллера |
42 | Инициализация HDD контроллера |
43 | Инициализация Power Management для шины USB |
44 | Поиск и инициализация дополнительных BIOS |
45 | Повторная установка статуса клавиши NumLock |
46 | Проверка функциональности сопроцессора |
47 | Инициализация PCMCIA |
48 | Подготовка к старту операционной системы |
49 | Передача управления исполняемому Bootstrap коду |
50 | Инициализация ACPI |
51 | Инициализация Power Management |
52 | Инициализация контроллера шины USB |
POST- коды Award BIOS Medallion V 6.0
POST-код (hex) Выполненная проверка
Выполнение стартовых процедур POST из Flash BIOS
CF Раннее определение типа процессора. Запись результатов в CMOS. Функциональный тест чтения/записи CMOS.
Если определение типа процессора или запись в CMOS закончились неудачей, устанавливается фатальная ошибка операции и выполнение POST останавливается
C0 Предварительная инициализация чипсета.
Запрет областей теневого ОЗУ, отключение кэша L2. Очистка кэша L1.
Программирование следующих базовых регистров чипсета.
- Контроллеров прерываний: прием по фронту IRQ, Master Controller — IRQ 00h=INT 8...IRQ 7=INT 0Fh, Slave Controller — IRQ 8= INT 70h...IRQ 15=INT 77h.
- Контроллеров ПДП.
- Интервального таймера: Counter 0 — режим деления частоты на 65 536 (18,2 Гц) для генерации запросов IRQ 0 системных часов. Counter 1 — выработка импульсов для регенерации DRAM (128 циклов выполняется за 2 мс или интервал между регенерацией двух строк составляет около 15 мкс). Counter 2 — используется для озвучивания системного динамика.
- RTC инициализируется в том случае, если произошел сбой питания от аккумулятора. Если сбоя Vcc (bat) не было, то инициализируются только регистры, отвечающие за взаимодействие RTC и процессора, но не часы
Проверка типа, объема, старшего адреса и ECC ОЗУ. Проверка первых 256 Кбайт ОЗУ. |
|
Организация в этой области транзитного буфера, в который из Flash BIOS |
|
копируется Boot Block для проверки контрольных сумм |
|
Проверка контрольной суммы BIOS и наличия метки BBSS. Если проверки некорректны, |
|
принимается решение о частичном повреждении ИМС Flash BIOS. Если проверки |
|
корректны, то в буфер копируется программа распаковки системной BIOS |
|
Распаковка системной BIOS в ОЗУ, копирование в ОЗУ факультативной системы |
|
BIOS. Подготовка к затенению BIOS |
|
Копирование выполняемого кода POST в область E000h-F000h теневого ОЗУ. |
|
Передача управления модулю Boot Block. |
|
Начало выполнения POST из теневого ОЗУ. |
Проверка целостности структуры BIOS. Если контрольные суммы проверки служебных полей BIOS совпадают, выполнение проверки ОЗУ продолжается, в противном случае управление передается программам восстановления BIOS
Выполнение POST в теневом ОЗУ (Shadow RAM )
1 По физическому адресу 1000:0000h распаковывается модуль BIOS — программа XGROUP, позволяющая установить все ресурсы системной платы, включая системный таймер, контроллеры прерываний и ПДП, математический сопроцессор и видеоконтроллер по умолчанию
3 Выполнение ранней инициализации чипа Super I/O, первый этап был выполнен на шагах алгоритма CFh и C0h
5 Установка начальных атрибутов видеосистемы.
Проверка флага состояния CMOS, его содержимое обнуляется
7 Сброс входного и выходного буферов контроллера клавиатуры (совместимого с ИМС 8042 или 8742). Контроллер входит в состав чипа Super I/O системной
платы. Самотестирование, инициализация контроллера клавиатуры. Разрешается подключение интерфейса клавиатуры
Запрет подключения интерфейса компьютерной мыши PS/2. |
|
Определяется тип интерфейса клавиатуры (PS/2 или AT/DIN). Программируется |
|
контроллер клавиатуры. Разрешается использование клавиатуры |
|
Интерфейс PS/2-мыши еще запрещен. |
|
Для некоторых систем — определение портов, к которым подключены PS/2-клавиатура |
|
и мышь, что может вызвать переназначение портов |
|
Проверка теневого сегмента F000h циклами чтения и записи. Данная область |
|
будет использоваться для DMI и ESCD. Если проверка некорректна, то |
|
вырабатывается звуковой сигнал и код ошибки EFh выводится в порт 0080h |
|
Если записанные и считанные данные из сегмента F000h не совпадают, |
|
констатируется ошибка и выполнение POST останавливается |
10 Определение типа установленной Flash BIOS. Проверка позволяет выбрать для BIOS соответствующую программу записи, с помощью которой загружается специальная команда Read Intelligent Identifier. Команда используется также процедурами модификации блоков ESCD и DMI, которые могут быть перезаписаны как при загрузке, так и после нее — при обращении приложений к функциям Plug and Play или DMI.
Код BIOS, выполняемый в рабочем сеансе, будет декодирован и переписан в область Run-time area (F000h).
Программирование регистров чипсета
12 Выполнение цепочки тестов CMOS. В часах RTC устанавливается режим питания. Ячейки CMOS используются в дальнейшем для хранения промежуточных результатов в ходе процедуры инициализации. В частности, в ячейки загружаются значения по умолчанию
14 Выполнение ранней инициализации чипсета. На первом этапе программируются ресурсы, недоступные разработчику системной платы. На втором этапе в регистры чипсета загружаются значения, изменяемые с помощью утилиты MODBIN. Становится возможной тонкая настройка ОЗУ и устройств PCI
16 Ранняя инициализация системного тактового генератора — установка значений по умолчанию
18 Определение параметров процессора: компании производителя, семейства, поколения, определение вида и объема кэша L1 и L2, типа SMI. Выполнение функции команды CPUID (коды и архитектура процессоров различных производителей отличаются).
Проверка регистров процессора, измерение тактовой частоты ядра процессора. После выполнения функции результат размещается в 128-разрядном слове, образованном ячейками регистров центрального процессора — EAX+EBX+ECX+EDX. Для расшифровки значения используемого кэша код сдвигается и перемещается в регистр AL
Инициализация таблицы векторов прерываний (объем 1 024 байта, 256 типов |
|
прерываний). На данном этапе устанавливаются типы для 32 векторов (INT 00h- |
|
INT 1Fh), указывающих на процедуры BIOS. |
|
Выполнение проверок, направленных на обеспечение требований Y2K |
|
Проверка контрольной суммы CMOS и соответствия напряжения питания |
|
аккумулятора номиналу. Если выявлены ошибки — устанавливаются значения по |
|
умолчанию, задаваемые производителем системной платы |
|
На данном этапе прием скан-кодов с клавиатуры и их обработка контроллером 8742 и процессором невозможны, поскольку запрещены прерывания, не подготовлена область данных BIOS, а клавиатура не инициализирована. Настройки Setup BIOS не должны противоречить выполнению последовательности POST
21 Инициализация системы Hardware Power Management для ноутбуков.
Формирование таблицы физических параметров, структуры для обслуживания автономного аккумуляторного питания, функций энергосбережения при работе жестких дисков, а также операций сохранения образа ОЗУ на диске
23 Обнаружение математического сопроцессора.
Проверка количества цилиндров — 40 или 80, а также типа установленного флоппи-диска.
Выполнение ранней инициализации чипсета.
Подготовка карты ресурсов BIOS, предназначенной для дальнейшей инсталляции устройств Plug and Play, а также УВВ на шине PCI
24 В процессорах поколений Intel P6 и P7 предусмотрена возможность организации доступа к памяти микропрограмм, в которой содержатся алгоритмы выполнения каждой машинной команды. На данном этапе в микрокод микропрограмм могут быть внесены изменения, позволяющие модернизировать алгоритмы или ввести новые микрокоды, предназначенные для новых машинных команд. Процедура обновления микрокода выполняется следующим образом.
- С помощью команды CPUID идентифицируется процессор и определяются его параметры — тип (Type), семейство (Family), модель (Model) и коэффициент умножения частоты (Stepping).
- Из модуля обновления микрокода, хранимого в BIOS, считывается нужный блок объемом 2 048 байт и распаковывается не в ОЗУ, а в SM RAM.
- Обновляется микрокод процессора.
Для некоторых процессоров Intel выполняется дополнительная идентификация. Обновляется карта распределения ресурсов
Инициализируются устройства Plug and Play. Информация о ресурсах, затребованных устройствами Plug and Play, обновляется на основании сканирования данных из CMOS, расширений BIOS, расположенных на шинах расширения УВВ, а также информации, хранящейся в блоке данных ESCD. Запись данных в ESCD откладывается на финальную стадию выполнения POST
25 Ранняя инициализация PCI. Перечисление устройств на шине. Назначение ресурсов ОЗУ и УВВ.
Поиск устройства видеосистемы, расширения BIOS и запись информации в область C000:0h (сегментный адрес в регистре CS:адрес смещения в регистре IP)
26 Настройка логики, обслуживающей линии Vendor Identification.
Завершение инициализации системного тактового генератора. Отключение синхронизации неиспользуемых слотов DIMM и PCI.
Инициализация системы мониторинга напряжений и температур, выполняемая в соответствии с типом системной платы
На данном этапе прием скан-кодов с клавиатуры и их обработка контроллером 8742 и процессором невозможны, поскольку запрещены прерывания, не подготовлена область данных BIOS, а клавиатура не инициализирована. Настройки Setup BIOS не должны противоречить выполнению последовательности POST
27 Разрешение прерывания INT 09h. Повторная инициализация контроллера клавиатуры на основе новых данных (таблицы векторов прерываний, инициализации чипсета).
Для BIOS формируется 16-символьный буфер ввода и устанавливается область памяти для полноценного функционирования
29 Программирование регистров MTRR процессора поколения Р6, а также инициализация контроллера APIC процессоров Pentium.
Программирование чипсета (например, контроллера IDE) в соответствии |
|
с установками в CMOS. |
|
Измерение внутренней частоты процессора. |
|
Вызов расширения BIOS видеосистемы |
|
Инициализация модуля многоязычности. |
|
Посылка данных для отображения на экране дисплея (заставка Award, тип |
|
процессора и его скорость) |
|
Программирование чипа Super I/O |
|
Проверка битов маскирования канала 1 контроллера прерываний (совместимого |
|
40 Проверка битов маскирования канала 2 контроллера прерываний (совместимого с ИМС 8259)
Проверка функционирования контроллера прерываний (совместимого с ИМС 8259) |
|
Подсчет общей памяти проверкой каждого двойного слова в каждой странице 64 Кбайт. |
|
Запись программы, предназначенной для проверки процессоров семейства AMD |
|
Программирование регистров MTRR процессора семейства Syrix. Инициализация |
|
кэша L2 процессоров поколения P6, а также инициализация APIC для P6 |
|
Инициализация шины USB |
|
Проверка всей памяти, очистка расширенной памяти |
55 Для многопроцессорной платформы выполняется отображение числа процессоров
57 Отображение экрана логотипа Plug and Play. Ранняя инициализация устройств Plug and Play
59 Активизация ресурса антивирусной защиты — интегрированного антивирусного средства Trend Anti-Virus
60 Этап, позволяющий загрузить программу Setup.
До этой стадии POST вы должны успеть нажать соответствующую клавишу
65 Инициализация компьютерной мыши PS/2
67 Подготовка информации для адресного пространства, предназначенного для функции вызова: INT 15h (содержимое регистра AX=E820h)
На данном этапе прием скан-кодов с клавиатуры и их обработка контроллером 8742 и процессором невозможны, поскольку запрещены прерывания, не подготовлена область данных BIOS, а клавиатура не инициализирована. Настройки Setup BIOS не должны противоречить выполнению последовательности POST
Включение кэша L2 |
|
Программирование регистров чипсета в соответствии с элементами, описанными |
|
в Setup и в таблице автоконфигурирования |
|
Назначение ресурсов для всех устройств Plug and Play. |
|
Автоматическое распределение COM-портов для интегрированных устройств |
|
в том случае, если установлена опция Setup “AUTO” |
|
Инициализация контроллера флоппи-дисков. |
|
Дополнительная настройка регистров флоппи-диска |
73 Факультативная функция ввода утилиты обновления BIOS AWDFLASH.EXE, если она находится на флоппи-диске и выбрана комбинация клавиш
75 Обнаружение и инсталляция всех IDE-устройств: жестких дисков, LS-120, ZIP, CD-R/RW, DVD и т.д.
Если обнаружена ошибка, выводится соответствующее сообщение, и программа ожидает нажатия клавиши.
Если ошибка не обнаружена или нажата клавиша
Очистка заставки с логотипом EPA или производителя
82 В зависимости от типа чипсета и системной платы в ОЗУ выделяется область для управления питанием.
В таблицу ESCD вносятся последние изменения, связанные с управлением питанием.
После снятия заставки с логотипом EPA видеорежим восстанавливается. Запрос пароля, если таковой предусмотрен установками CMOS
83 Восстановление данных из стека временного хранения в CMOS
84 Вывод на экран сообщения “Initializing Plugand Play Cards...” об обнаруженных ранее устройствах Plug and Play и параметрах
85 Завершение инициализации USB.
Определение порядка загрузки с жестких дисков SCSI
87 Переключение видеосистемы на текстовый режим работы.
Построение таблиц SYSID в области DNI согласно спецификации “System Management BIOS”.
Для обслуживания сетевых устройств создается идентификатор UUID (Universal Unique ID), а также идентификатор для загрузки с устройств Fire Wire IEEE 1394
На данном этапе все основные процедуры инициализации завершены. Выполняется подготовка к загрузке операционной системы, составляются необходимые для этого таблицы, формируются массивы, структуры
89 Если программой Setup предусмотрено использование протокола ACPI, в верхнюю область адресного пространства 4 Гбайт вставляются соответствующие таблицы
Сканирование в пространстве PCI расширений BIOS, предназначенных для |
|
реализации протокола AOL (Alert On LAN). Инициализация средств AOL |
|
Разрешение использования логических средств поддержки немаскированного |
|
прерывания NMI. |
|
Разрешение использования контроля четности модулей ОЗУ |
|
Для горячего подключения мыши PS/2 разрешается линия IRQ 12. |
|
Обслуживание линии IRQ 11, нормализация параметров шумовых помех линий |
|
запросов прерываний |
91 Подготовка условий для обслуживания жестких дисков в режиме Power Management. Операции подобного типа (Suspend to RAM) могут быть реализованы в рабочем сеансе операционной системы.
Установка переменных BIOS, хранящих базовые адреса последовательных и параллельных портов, которые располагают программами расширения BIOS
93 Подготовка к сохранению информации о разделах загрузочных устройств
94 Если Setup предусмотрена, включается кэш L2. Программируется параметр Boot Up Speed.
Завершение инициализации чипсета и системы управления питанием.
Снятие стартовой заставки BIOS, на экран монитора выводится таблица распределения ресурсов.
Настройка регистров процессоров семейства AMD K6. Завершающее обновление регистров процессоров семейства Intel P6.
Окончательная инициализация подсистемы удаленной загрузки Remote Pre Boot
95 Установка режима автоматического перехода на зимнее/летнее время Daylight Saving.
Программирование контроллера клавиатуры на число нажатий в секунду и время ожидания до входа в режим автоповтора.
Чтение идентификатора клавиатуры KBD ID.
Для 101-кнопочной клавиатуры устанавливается флаг NumLock в соответствии с информацией CMOS
96 Сохранение информации о разделах загрузочных устройств.
В многопроцессорных системах выполняется завершающая настройка системы, формируются служебные таблицы и поля, используемые в рабочем сеансе операционной системы.
Настройка регистров процессоров семейства Cyrix.
Заполнение и корректировка таблицы ESCD в соответствии с состоянием системы Power Management устройств Plug and Play и ATAPI.
Корректировка CMOS в соответствии с требованиями протокола Y2K.
Установка счетчика системных часов DOS Time в соответствии с показаниями RTC CMOS. Значение времени из формата “часы:минуты:секунды” пересчитывается
в такты (временные интервалы следования импульсов) интервального таймера 18,2 Гц и записывается в область переменных BIOS — DOS Time.
На данном этапе все основные процедуры инициализации завершены. Выполняется подготовка к загрузке операционной системы, составляются необходимые для этого таблицы, формируются массивы, структуры
Сохранение разделов устройств загрузки для дальнейшего использования интегрированными антивирусными средствами Trend Anti-Virus и Paragon Anti-Virus Protection.
Разрешение использования кэша L1.
На динамик системного блока генерируется звуковой сигнал окончания POST. Построение и сохранение таблицы MSIRQ.
Выполнение подготовки к загрузке операционной системы
FF Передача управления программе-загрузчику начального сектора BOOT. Выполнение прерывания BIOS INT 19h.
Вызванная подпрограмма позволяет (в соответствии с опцией меню BIOS Features Set Up программы Setup) опросить загрузочные устройства для поиска сектора загрузки. Для загрузки информация из сектора Цилиндр: 0, Головка: 0, Сектор:
1 считывается по адресу 07C0:0000h, после чего управление командой FAR JMP передается на начало этого блока
Выполнение программы, записанной в загрузочном секторе
ПРИМЕЧАНИЕ.
ECC (Error Correcting Code) — код коррекции ошибок применяется в модулях ОЗУ, способствуя повышению отказоустойчивости ПК. ECC позволяют исправить ошибку в одном разряде и обнаружить в двух разрядах. Поэтому компьютер, в памяти которого используются подобные коды, в случае ошибки в одном разряде может работать без прерывания, причем данные не будут искажены
BBSS (Boot Block Specification Signature) — метка сигнатуры спецификации загрузочного блока.
SMI (System Management Interrupt) — аппаратное обеспечение, интегрированное в процессор, предназначенное для управления потребляемой мощностью. Для обслуживания этих компонентов используется высокоприоритетное прерывание.
Y2K — требования, предъявляемые к коммерческим продуктам компьютерных систем для обеспечения функциональной совместимости, функциональности и прочих параметров, имевших место до и после 2000 года.
DMI (Desktop Management Interface) — протокол, позволяющий обеспечить взаимодействие программных средств с компонентами системных плат.
MTRR (Memory Type Range Registers) — регистры процессоров поколений P6 и P7, в которые заносятся данные, описывающие свойства областей памяти и определяющие тип кэши-рования памяти.
APIC (Advanced Programmable Interruption Controller) — усовершенствованный программируемый контроллер прерываний , входящий в состав чипсета. Процессор поколения P6 также располагает подобным контроллером для мультипроцессорного применения.
MSIRQ (Microsoft IRQ Routing Map) — таблица карты распределения прерываний , стандартизирована Microsoft.
SM RAM (System Management RAM) — одно из названий оперативной регистровой памяти небольшой емкости, предусмотренной в архитектуре процессоров, начиная с Pentium Pro и выше, предназначенной для хранения служебных данных.
В случае неадекватного завершения каждого из процессов алгоритм переходит на обра ботку особого случая, и POST BIOS Medallion генерирует коды, отмеченные ниже:
POST- коды особых случаев Award BIOS V 6.0 Medallion
Код системных событий (System Events codes)
Код, активизируемый при обслуживании компонентов APM или ACPI (Power Management Debug codes)
Энергосбережение с отключением напряжения питания +12 В |
|
Переход в режим работы с минимальным энергопотреблением |
|
Прерывание для выхода из режима энергосбережения по событию |
|
Переход процессора в режим энергосбережения путем снижения его тактовой |
|
Переход в режим частичного энергосбережения с использованием технологии ACPI |
|
Использование компонента SMI для перехода в режим энергосбережения |
|
Переход процессора в режим энергосбережения с использованием технологии APM |
|
Переход системы в режим энергосбережения с использованием технологии APM |
|
Перевод системы в режим полного энергосбережения |
|
Сообщение о фатальных ошибках выполнения операций (System Error codes)
Ошибка обработки кода ECC |
|
Ошибка жесткого диска при возврате из режима энергосбережения |
|
Несовпадение данных при записи в сегмент F000h и считывании из него |
|
Для сокращения времени прохождения тестовой программы POST Award BIOS вы можете воспользоваться опцией Quick Power On Self Test, которую можно обнаружить в программе Setup. В этом случае запускается модифицированная версия теста Award Software, которая, в отличие от полной версии программы, выполняется быстро.
Коды контрольных точек POST AMI BIOS 8 V1.4
Представление о дисплее кодов контрольных точек
Для отображения контрольных точек POST AMI BIOS применяются диагностические платы POST Diagnostic Card, индикаторы на системных платах, а также дисплеи контроль ных точек AMI BIOS Checkpoint Display .
Дисплей представляет собой строку кода в нижнем правом углу экрана монитора, отобра жаемую во время прохождения POST
Недостаток использования дисплея кодов контрольных точек состоит в невозможности при-менения этого метода при отключенной видеосистеме.
Назначение диспетчера инициализации устройст
В различные периоды тестирования POST управление передается специальной про грамме диспетчеру инициализации устройств DIM (Device Initialization Manager).
Эта программа получает управление от BIOS в том случае, если необходимо проверить сис темные или локальные шины компьютера. Существует несколько контрольных точек POST, предназначенных для запуска этой программы.
2Ah инициализация устройств на системной шине.
38h инициализация устройств IPL.
39h индикация ошибок при инициализации шин.
95h инициализация шин, управляемых расширениями BIOS.
DEh — ошибка конфигурации ОЗУ.
DFh — ошибка конфигурации ОЗУ.
Сообщения, генерируемые DIM, также выводятся в диагностический порт 80h и хранятся в информационном слове в процессе выполнения проверки.
Слово, в котором хранится отмеченная информация, содержит младший байт, совпадаю щий с системным POST кодом. Старший байт делится на две тетрады. Ниже представлено описание кодов, загружаемых в тетрады.
Поля старшей тетрады.
Инициализация всех устройств на интересующих шинах запрещена.
Инициализация статических устройств на интересующих шинах.
Инициализация устройств вывода информации на интересующих шинах.
Инициализация устройств ввода информации на интересующих шинах.
Инициализация устройств системной загрузки (IPL) на интересующих шинах.
Инициализация устройств общего назначения на интересующих шинах.
Сообщение об ошибках для интересующих шин.
Инициализация устройств, управляемых расширениями BIOS (для всех шин).
Инициализация загрузочных расширений BIOS, соответствующих BIOS Boot Specification (для всех шин).
Младшая тетрада.
Системные процедуры инициализации (DIM).
Шины подключения интегрированных системных устройств.
Шина ISA Plug and Play.
Шина PCMCIA.
В том случае, если обнаружена ошибка конфигурации ОЗУ, в диагностический порт вы водится циклическая последовательность кодов DEh, DFh и контрольных точек конфигура ции, которые могут принимать следующие значения.
00 ОЗУ не обнаружено.
01 установлены модули DIMM различных типов.
02 чтение из узла SPD (Serial Presence Detect) модуля DIMM произведено неудачно.
03 модуль DIMM не может быть использован на данной частоте.
04 модуль DIMM не может быть использован в данной системе.
05 ошибка в младшей странице памяти.
Расшифровка кодов POST-карты для "Award BIOS 4.5 "
Award BIOS Version 4.51PG
C0
программирование регистров микросхемы Host Bridge для установки следующих режимов: External Cache запрещен. Запрещено копирование в ячейки External Cache информации, читаемой процессором (все шинные циклы Non Cacheable), а также запрещен просмотр TAGRAM на предмет кэш-попаданий (Force Cache Miss). Internal Cache запрещен. Запрещено формирование сигнала KEN# микросхемой Host Bridge, это запрещает процессору кэшировать читаемые данные. Перед запретом Internal Cache очищается программно либо аппаратно. Shadow RAM запрещено. Это приводит к направлению циклов обращения к адресам расположения System BIOS и Additional BIOS непосредственно на соответствующие ROM , а не Shadow RAM. Данная процедура пишется под конкретный Chipset. Выполняется программирование PIIX ресурсов: Контроллера DMA, контроллера прерываний, таймера, блока RTC. Контроллер DMA переводится в пассивный режим, так как конкретная инициализация каналов (установка базовых адресов, длин блоков, режимов передачи) задача не POST, а программ поддержки периферийных устройств, выполняемых уже по ходу рабочего сеанса. Контроллер прерываний настраивается следующим образом.
Master Controller (IRQ0-IRQ7)
:
режим векторных прерываний, прием запроса по фронту IRQ в соответствии IRQ0=INT8...IRQ7=INT0Fh.
Slave Controller (IRQ8-IRQ15)
:
режим векторных прерываний, прием запроса по фронту IRQ в соответствии IRQ8=INT70h...IRQ15=INT77h.
На этом этапе происходит только подготовка контроллера прерываний к работе, сами прерывания запрещены, и разрешаются существенно позже, предположительно, после теста памяти 31 Таймер настраивается следующим образом.
Counter 0
: генерация запросов IRQ0 для подсчета DOS Time, устанавливается режим деления частоты на 65536, в результате частота IRQ0 равна 18.2 Hz.
Counter 1
: генерация запросов DRAM Refresh, устанавливается режим деления частоты на 20, в результате интервал между регенерацией двух строк DRAM около 15 мкС, т.е. 128 циклов выполняется за 2 мС.
Counter 2
: Используется для звука. На данном этапе просто переводится в пассивное состояние, установка параметров этого счетчика происходит при выдаче сигнала на системный динамик.
Подсистема Real Time Clock нуждается в инициализации только в случае, если произошел сбой батарейного питания. Иначе полная инициализация CMOS не выполняется, потому что это приводило бы к сбросу часов при каждом включении. Если сбоя VCC(BAT) не было, инициализируются только регистры, отвечающие за взаимодействие RTC и процессора, но не сами часы
С1
Путем последовательных записей и контрольных считываний определяется тип памяти, суммарный объем и размещение по строкам. Результатом этого шага является настройка следующих параметров DRAM контроллера:
тип памяти (SDRAM, EDO, FPM);
картирующая информация (в зависимости от расположения по Socket);
значение параметра Memory.
Если адрес, сформированный процессором, превышает Memory , данный цикл направляется на PCI. Более точная настройка временнЫх параметров DRAM выполняется позже, в соответствии с содержимым Setup RAM либо SPD
C3
Проверка первых 256К DRAM для организации Temporary Area. Распаковка System BIOS в DRAM, копирование Option ROMs в DRAM. Этот этап выполняется для подготовки к операции Shadow. Необходимость в Temporary Area связана с тем, что Shadow блоки ОЗУ, закрепленные за соответствующими ПЗУ, включаются на те же диапазоны адресов, что и сами ПЗУ, из-за этого нельзя выполнить пересылку (распаковку) за один прием, потому что читать надо ROM, а записывать в Shadow RAM. Поэтому вначале на соответствующий диапазон картируется ROM и выполняется пересылка (распаковка) в транзитный буфер Temporary Area, затем перепрограммируется Host Bridge так, чтобы на область адресов BIOS картировать Shadow RAM и из транзитного буфера код переносится в Shadow RAM. На этапе C3 тестируются первые 256 Кбайт DRAM, которые в дальнейшем будут использованы как транзитный буфер.
Выполняется проверка контрольных сумм и наличие метки BBSS. Если метка не обнаружена или контрольные суммы не совпадают, принимается решение о частичном повреждении микропрограмм BIOS. Управление передается на подпрограмму восстановления FlashROM, расположенную в BootBlock. (BootBlock POST Codes)
C5
Выполняемый код POST переносится в Shadow RAM и далее выполняется из Shadow RAM для ускорения прохождения POST.
Shadow RAM быстрее ROM по двум причинам: разрядность ROM 8 бит, разрядность RAM равна разрядности локальной шины данных процессора. Время выборки используемых DRAM существенно меньше аналогичного параметра используемых ROM / Flash ROM
C6
Определение присутствия, объема и типа External Cache. Наличие и параметры External Cache определяются путем записей и контрольных считываний по специальному алгоритму
C8
Проверка целостности компонентов BIOS, расположенных в ROM. В случае несовпадения контрольной суммы компонентов делается вывод о повреждении области 128 Кб, содержащей внешний по отношению к системному BIOS файл awardext.rom. В виду того, что системный BIOS хранится в следующем 128 Кб блоке, некоторые 2 Мбит BIOS могут корректно обрабатывать эту ошибку и передавать управление на программу восстановления.
CF
Определение типа процессора. Результат помещается в CMOS. В виду того, что не все RTC инициализируются к этому моменту, сначала выполняется тест чтения/записи.
Если по каким либо причинам определение типа CPU закончилось неудачей, такая ошибка становится фатальной и POST дальше не выполняется и система останавливается.
01
В ранних версиях BIOS выполнялась проверка флагов признаков результата арифметической операции по такому алгоритму: флаги переноса (CF), нуля (ZF), знака (SF), переполнения (OF) принудительно устанавливаются в 1 командой SAHF, после этого проверяется что команды условного перехода JC, JZ, JS, JO выполняются. Затем подобным образом проверяется правильность отработки условных переходов при нулевых значениях этих флагов. Позднее от этого отказались по причине того, что неправильная работа флагов является очень грубой ошибкой процессора, при наличии которой POST все равно не дойдет до этого теста. Кроме того, начиная с 80386, процессоры имеют автономный тест, и при наличии такой грубой ошибки маловероятно, что процессор начнет выполнение POST вообще.
02
Зарезервировано для ProcessorTest 2. Проверка регистров процессора путем записи и контрольного считывания. От этого теста отказались приблизительно на этапе 80386 по той же причине, что и для теста 01
.
03
Предполагается, что верен вариант Soyo, согласно которому выполняется только настройка EISA ресурсов, а PIIX ресурсы (DMA, INT, Timer, RTC) настраиваются на шаге C0
, как это было описано выше, однако в зависимости от конкретной версии BIOS могут быть вариации.
NMI (Non Maskable interrupt) немаскируемое прерывание, имеет фиксированный номер вектора (2), используется для сообщения процессору об аварийных ситуациях (ошибка четности DRAM, активность сигнала IOCHCK# на ISA и т.п.).
PIE
, AIE
, UIE
(в исходном документе Award опечатка, по ошибке указано UEI) - это три разрешающих бита для формирования запроса прерывания схемой RealTimeClock (IRQ8 = INT 70h), по трем условиям, которые можно взаимонезависимо разрешать и запрещать.
PIE
(Periodic Interrupt Enable
) - разрешение периодических прерываний с программно устанавливаемой частотой.
AIE
(Alarm Interrupt Enable
) - разрешение прерываний от будильника, формируемых при совпадении значений часов, минут, секунд в регистрах подсчета времени и регистрах будильника.
UIE
(Update Interrupt Enable
) - разрешение прерываний при завершении цикла обновления состояния счетчиков часов:минут:секунд (1 раз в секунду).
SQWV
- режим генерации программируемой частоты на специальном выходе микросхемы RTC. PIE, AIE, UIE, SQWV запрещаются при выполнении POST, для этого записывается соответственно управляющий байт в регистр 0Bh микросхемы RTC.
04
Проверка формирования запросов на регенерацию DRAM.
В классической реализации PC AT запросы на регенерацию DRAM генерирует канал 1 системного таймера 8254. К его выходу также подключен триггер, работающий в счетном режиме и меняющий свое состояние на противоположное при каждом запросе. Состояние этого триггера можно программно считывать через бит 4 порта 61h. Проверка Refresh Toggle заключается в проверке того факта, что этот триггер переключается с заданной частотой. Однако появились chipset, использующие другие алгоритмы регенерации DRAM, с целью свести к минимуму простои CPU из-за регенерации. В этом случае, несмотря на то, что Refresh Trigger сохраняется для совместимости, по нему уже нельзя проверить формирование запросов на регенерацию.
Начиная с этого момента становится возможным использование стека
05
Если установлены адаптеры EGA или VGA, поддерживаемые собственным BIOS, операция Blank Video на этом этапе невозможна, так как Video BIOS еще не инициализирован. Если установлены CGA или MDA, обслуживаемые процедурами видео сервиса System BIOS, теоретически есть возможность очистить экран на этом шаге.
Проверка и инициализация контроллера клавиатуры. Контроллеру клавиатуры передается команда самотестирования и контролируется статус после ее завершения. Затем передается команда разрешения интерфейса клавиатуры.
Примечание 1
:
На данный момент прием кодов нажатых клавиш еще невозможен, так как запрещены прерывания, не подготовлены области данных BIOS, не инициализирована сама клавиатура.
06
Тест Shadow области памяти, начинающейся с адреса F000h, где размещен BIOS. Предположительно выполняются некоторые действия направленные на дополнительную проверку памяти или содержимого памяти, так как если на шаге C5
в Shadow RAM размещен BIOS, тестировать его уже поздно. Возможно, данный шаг обусловлен спецификацией конкретного ChipSet либо присутствует в BIOS, не поддерживающих Early Shadow.
07
Проверка функционирования CMOS и батарейного питания.
Батарейное питание проверяется путем чтения регистра 0Dh микросхемы RTC. Бит 7 этого регистра индицирует ошибку батарейного питания, причем он сообщает об ошибке, даже если в данный момент питание CMOS в норме, но с момента последнего считывания регистра 0Dh имело место пропадание питания CMOS. Если зафиксирована ошибка питания, BIOS запоминает этот факт, но POST не останавливается. Затем выполняется Verify Basic R/W functionality - проверка ячеек CMOS как проверка памяти. Записываются значения, выполняется контрольное считывание и проверяется равенство читаемого кода записанному. В отличие от ошибки батарейного питания, ошибка, выявленная этой проверкой считается фатальной и приводит к остановке на коде 07
.
BE
Настройка конфигурационных регистров CHIPSET. Программирование конфигурационных регистров микросхем Host Bridge и PIIX. Значения загружаются из таблицы BIOS defaults, доступной пользователю с помощью утилиты MODBIN .
08
В сложившемся разногласии видимо верное значение Absent, в виду того, что 64К, о которых здесь идет речь, уже протестированы, так как входят в 256К, задействованных на шагах C3
, C5
. OEM Specific действия по первичной настройке DRAM Controller соответственно уже проделаны.
09
Процессоры IBM/Cyrix имеют внутренние регистры для более гибкого управления кэшированием. На этом шаге выполняется машинная команда CPUID для распознавания типа процессора (видимо, основная процедура распознавания CPU происходит существенно позже, на данном этапе следует выяснить IBM/Cyrix это или нет), если распознан IBM/Cyrix, инициализируются его регистры расширенного управления кэшированием.
Выполняется инициализация L2 Cache Controller (запись управляющих слов в соответствующие регистры конфигурационного блока Host Bridge, очистка TAGRAM).
0A1
Генерация таблицы векторов прерываний. Таблица имеет объем 1024 байта и содержит 256 указателей на процедуры обработки прерываний, на каждую процедуру - два 16-битовых слова: смещение и сегмент, на данном этапе устанавливаются 32 вектора (INT 00h - INT 1Fh), на процедуры обработки соответствующих прерываний (Interrupt Handlers), входящие в состав BIOS. Векторы 33-120 устанавливаются на процедуру заглушку. Настройка ресурсов Power Management. На этом шаге также происходит первичная настройка подсистемы управления питанием, входящей в состав PIIX, схемы генерации SMI (System Management interrupt) и установка вектора SMI .
0B
Если нажата клавиша INS, выполняется установка CMOS по умолчанию.
Существенно важный момент для BIOS, поддерживающих SoftMenu. (См. FAQ №9
) .
Проверяется контрольная сумма блока ячеек CMOS, отвечающего за хранение конфигурационной информации, если фиксируется ошибка, устанавливается программный флаг CMOS недостоверен. Этот флаг также устанавливается, если ранее, на шаге 07
было выявлено пропадание батарейного питания CMOS.
Если BIOS поддерживает PnP, выполняется сканирование ISA PnP устройств и инициализация их параметров (Адрес, Номера IRQ и DRQ). Для PCI устройств устанавливаются основные параметры в блоке конфигурационных регистров (PCI Bus Cycle parameters, I/O and MEMORY Address). Блок конфигурационных регистров PCI устройства содержит поля, имеющие одинаковое назначение у всех PCI устройств (стандартные) и поля, специфичные для конкретного устройства. Установка параметров PCI устройств, о которой здесь идет речь сводится к установке значений стандартных полей.
В процессорах класса P6 существует доступ к памяти микропрограмм, в которой хранится микрокод для выполнения каждой машинной команды. Внесение изменений в микрокод, дает возможность изменять алгоритмы выполнения имеющихся машинных команд и добавлять новые.
0C
Инициализация блока переменных BIOS. На этом этапе присваиваются стартовые значения переменным BIOS, находящимся в 256-байтовом блоке 0040:0000h - 0040:00FFh.
Разногласия с Initialize Keyboard, видимо решаются в пользу варианта Soyo, так как второе после включения питания мигание светодиодов клавиатуры происходит уже после инициализации видеоадаптера
0D
Классический подход к обнаружению видеоадаптера следующий: проверяется наличие EGABIOS или VGABIOS путем проверки наличия сигнатуры 55 AA по адресу начала Video BIOS (Seg:Offs
= C000:0000h
). Если сигнатура обнаружена, проверяется контрольная сумма Video BIOS, если она правильная, происходит передача управления командой CALL FAR по адресу Seg:Offs = C000:0003h на инициализационную процедуру Video BIOS. Эта процедура настраивает видеоадаптер, переустанавливает вектор прерывания INT 10h (Video Service) на сервисную процедуру Video BIOS, выдает заставку видеоадаптера и возвращает управление вызвавшей процедуре System BIOS командой RET FAR. Если Video BIOS не обнаружен, делается попытка обнаружить CGA или MDA, путем сканирования пространства портов и поиска регистров управления CGA/MDA. Если CGA или MDA обнаружены, BIOS инициализирует видеоадаптер. В отличие от EGA/VGA, у CGA/MDA адаптеров Video BIOS нет и обработка INT 10h для CGA/MDA входит в обязанности System BIOS. Если не обнаружен никакой видеоадаптер - генерируется звуковой сигнал.
На этом же этапе происходит распознавание типа процессора (процессоров) настройка I/O APIC, Local APIC, программирование Host Bridge для установки параметров Host Bus (Front Side Bus). Для распознавания типа процессора обычно используется команда CPUID.
Для измерения тактовой частоты используется измерение частоты инкрементирования регистра TSC (Time Stamp Counter), который инкрементируется по каждому такту Internal CPU CLK. В качестве генератора образцовой частоты может использоваться либо системный таймер, либо RTC. Некоторые BIOS не используют Time Stamp Counter, а измеряют время выполнения цикла из последовательности команд, для которых известно количество тактов на команду. Так делалось, когда процессоры не имели TSC
0E
Если установлен видеоадаптер CGA или MDA, выполняется тест Video RAM. Для EGA/VGA такой тест был проделан Video BIOS на шаге 0D
, при выполнении инициализационной процедуры C000:0003h
.
Относительно настройки APIC: скорее всего она разбита на два этапа, выполняемых на шагах 0D
и 0E
.
Предположительно на этом шаге, а не 0F
, настраивается клавиатура и разрешаются аппаратные прерывания от таймера 8254 (IRQ0) и клавиатуры (IRQ1).
Инициализация RPB (Remote Pre Boot) подсистемы удаленной загрузки,
0F
Проверка первого контроллера DMA 8237, ошибочно указанного в документации SOYO канал 0 - перепутаны понятия "канал DMA" и "контроллер DMA". Проверка выполняется путем записи и контрольного считывания регистров базового адреса и длины пересылки. Собственно тестовых пересылок данных с помощью DMA каналов на этом шаге и вообще в POST не выполняется. Таким образом проверяется только чтение/запись регистров контроллера DMA процессором с помощью команд IN / OUT.
BIOS Checksum должен был проверяться при распаковке, видимо расположение BIOS Checksum Test на этом этапе было до того, как BIOS разделили на Boot Block и основной (упакованный) блок.
Известно, что на этом этапе выполняется определения клавиатуры и ее внутренний тест. Запрещены Reset контроллера клавиатуры и обслуживаемый им интерфейс манипулятора "мышь" PS/2. Эти действия выполняются позже на шаге 3D.
10
Проверка второго контроллера DMA 8237.
11
Проверка страничных регистров контроллеров DMA. Страничные регистры необходимы для расширения 16-битового адреса формируемого контроллером 8237 до 24-битового (ISA) или 32-битового (EISA).
Обособление страничных регистров от контроллера DMA обусловлено тем, что в старых системах использовался контроллер DMA Intel 8237 в виде отдельной микросхемы, он способен формировать только 16-битовые адреса, поэтому устанавливался дополнительный блок расширения адреса (DMA Page Registers).
Тест страничных регистров выполняется путем записей и контрольных считываний, без собственно DMA операций (пересылок)
14
Тест канала (счетчика) 2 системного таймера. Канал 2 системного таймера используется для генерации звука. По нашим сведениям какого-либо классического подхода к этому тесту не сформировано, некоторые BIOS ограничиваются записью и контрольным считыванием регистров таймера, доступных для записи и чтения (R/W test).
Некоторые BIOS программируют таймер на формирование заданного интервала и контролируют длительность сформированного интервала по часам RTC. Однако в случае расхождения не понятно кто ошибся - Timer или RTC. Предположительно, Award 4.51 ограничился R/W тестом,
15
Проверка регистра маскирования запросов первого контроллера прерываний. Следует сказать, что использование термина "Channel" для контроллера прерываний нетрадиционно и приведет к путанице. Приняты следующие обозначения: Первый контроллер прерываний (Master), 8259#1. Регистры доступны по адресам 20h, 21h. Обрабатывает IRQ0-IRQ7, которым присвоены вектора INT 08h - INT 0Fh. Второй контроллер прерываний (Slave), 8259#2. Регистры доступны по адресам A0h, A1h. Обрабатывает IRQ8-IRQ15, которым присвоены вектора INT 70h - INT 77h. Выход Slave8259 подключен ко входу IRQ2 Master 8259.
На этом шаге проверяется регистр маскирования первого контроллера прерываний путем записи тестовых кодов в порт 21h и контрольного считывания. Однако проверки собственно операции маскирования, как индивидуального разрешения/запрещения линий IRQ POST не выполняет.
16
Проверка регистра маскирования запросов второго контроллера прерываний. Операция аналогична шагу 15
, адрес регистра маскирования для второго контроллера прерываний - A1h.
17
Зарезервировано. Видимо у более ранних версий BIOS на этом шаге выполнялась следующая операция: устройства источники IRQ (Timer, Keyboard...) программировались таким образом, чтобы запрос IRQ зафиксировался в пассивном состоянии, затем выполнялось чтение регистров запросов контроллеров прерываний 8259#1 и 8259#2 и проверялся тот факт, что соответствующие запросы пассивны.
Практика ремонта плат, показывает, что фиксация IRQ в состоянии 0 или 1 дает о себе знать только в момент, когда нужно взаимодействовать с устройством, IRQ которого неисправно (так происходит в большинстве случаев). На этапе теста контроллера прерываний такой дефект НЕ выявляется, поэтому предполагается, что BIOS не делает указанного действия.
18
По описанию этот шаг подобен шагу 17
, однако, если на шаге 17
проверялось отсутствие запросов, то здесь наоборот, устройства источники IRQ программируются на активизацию запросов и проверяется запуск процедур обработки прерывания для активизированных запросов.
На основании тех же экспериментальных данных, о которых шла речь в описании шага 17
, можно считать, что шаг 18
действительно отсутствует в том смысле, который имеет в виду Award. Имеется подтверждение о его существовании и выполнении совершенно иных тестовых процедур, связанных с определением типа процессора.
19
Проверка пассивности запроса немаскируемого прерывания (NMI). Запрос NMI используется для сообщения процессору об аварийных ситуациях (ошибка четности памяти, активность сигнала #IOCHCK на шине ISA). Он приводит к генерации прерывания с фиксированным номером вектора - 2 и обрабатывается без участия 8259. Указанные аварийные события приводят к установке триггера NMI, сброс этого триггера выполняется программно, его состояние также можно опросить (используется порт 61h). Обычно этот тест подразумевает выполнение программного сброса триггера NMI и проверку, что он не установился повторно
1A
Предположительно, что этот шаг Reserved, а вывод на экран значения тактовой частоты CPU происходит на шаге 0D.
1E
, 1F
Установка параметров шины EISA в соответствии с содержимым NV memory (EISA BIOS). Проверяется контрольная сумма блока параметров EISA (NVM Checksum), если она верная, контроллер EISA инициализируется в соответствии с указанными параметрами.
20
...2F
Инициализация EISA устройств. В отличие от ISA, шина EISA имеет средства для индивидуальной адресации слотов (раздельные сигналы SELECT). Таким образом, имеется возможность программно распознать, в каком слоте какое устройство установлено. Возможно также выполнить раздельный доступ к конфигурационным регистрам подобно PCI, что и делается на этом шаге
.
30
1
.Get Base Memory and Extended Memory Size
2.P6 Multi-P BIOS Only - Init I/O and Local APIC
3.Program K5/K6 CPU"s Write Allocation
Определение объема Base Memory и Extended Memory. Это завершающая стадия определения объема памяти, к этому моменту все операции по картированию выполнены, и на этой стадии уже начинается тестирование памяти, BIOS выполняет запись/контрольное считывание, определяет, начиная с какого адреса прекращается совпадение читаемых значений записанным и этот адрес принимается как граница памяти.
Настройка APIC применительно к P6 освещена достаточно мало.
K5/K6 Write Allocation
- это нововведение AMD, которое сводится к следующему. У процессоров Intel поводом для кэширования ячейки является только ее чтение, после того, как ячейка с определенным адресом кэширована, это приносит пользу также и при записи (Write Back), однако само кэширование выполняется только при чтении, поэтому если в выполняемом коде попадается серия из последовательных записей по одинаковым (или близким) адресам, кэш не приносит пользы, если до этого эти адреса не считывались программой. AMD Write Allocation - режим, при котором поводом для кэширования является не только чтение данных, но и запись. Это чревато коллизиями, как любое отступление от стандарта Intel, поэтому AMD предусмотрела возможность программного управления этим режимом, вплоть до отключения его. Настройка регистров процессоров AMD K5/K6, управляющих этим режимом, и есть часть шага 30.
31
1. Test base memory from 256K to 640K and extended memory above 1MB .
2. Test Extended Memory from 1M to the of memoryusing various patterns.
NOTE: This will be skipped in EISA mode and can be "skipped" with ESC key in ISA mode.
3. USB Init .
Основной отображаемый на экране тест оперативной памяти. Для объема памяти, определенного на шаге 30
выполняется тест, путем записи нескольких видов Pattern и их контрольного считывания. Предположительной причиной разногласий по EISA является тот факт, что по старым стандартам, иметь более 16 Мбайт памяти могла только EISA система. Сейчас это не так, и вся физически присутствующая память тестируется на этом этапе, во всяком случае для не EISA системы.
Инициализация USB. По USB есть сомнения: это действие не имеющее отношение к тесту памяти и для него должны были зарезервировать отдельный код.
32
IfEISA Mode flag is set then test EISA memory found in slots initialization.
NOTE: This will be skipped in ISA mode and can be "skipped" with ESC key in EISA mode.
Display the Award Plug and Play BIOS Extension message (PnP BIOS ONLY).
Program all onboard super I/O chips(if any) including COM ports, LPT ports, FDD port... according to setup value Program onboard audio devices
Если исходить из предположения, что вся память проверяется на шаге 31
, то для шага 32
верным кажется вариант Soyo, где нет упоминаний про память.
Выводится заставка Plug and Play BIOS Extension
.
Настройка ресурсов Super I/O. Микросхема SIO вводится в режим конфигурирования. В соответствии с установками Setup, если CMOS достоверен, программируются параметры: базовые адреса программно-доступных ресурсов COM, LPT, FDC, GamePort номера используемых линий IRQ и DRQ. После этого отключается режим конфигурирования SIO.
Аналогично программируется Onboard Audio Device. Если Audio Device подключено к PCI, его настройка происходит не на этом шаге, а на шаге 0B .
39
Programming clock synthesizer by I2C bus
.
Предположительно, на этом шаге выполняется программирование тактового генератора по шине I2C
3C
Set flag to allow users to enter CMOS Setup Utility.
Установка программного флага разрешения входа в Setup.
3D
1. Initialize Keyboard.
2. Install PS2 mouse .
3. Build the INT 15h function E820H table .
4. Build the PnP Device Node for total memory size .
Инициализация PS/2 mouse. Один из альтернативных моментов для инициализации клавиатуры.
Относительно функции E820h и PnP Device Node информации мало.
3E
Try to turn on Level 2 cache.
NOTE: Some chipset may need to turn on the L2 cache in this stage. But usually, the cache is turn on later in POST 61h.
Один из альтернативных моментов для инициализации контроллера External Cache и разрешения Cache
BF
1. Program the rest of the Chipset"s value according to Setup (Later Setup Value Program).
2. If auto-configuration is enabled, programmed the chipset with pre-defined values in the MODBINable Auto-Table
.
Настройка конфигурационных регистров CHIPSET в соответствии с установками CHIPSET Setup.
Доступно для утилиты MODBIN.
40
Display virus protect disable or enable - Absent
.
Отображение состояния опции Virus Protect, исключено в новых версиях BIOS
41
Initialize floppy disk drive controller and any drives.
Инициализация подсистемы гибких дисков.
Для BIOS поддерживающих процессоры P6 сначала выполняется отключение local APIC, потому что в противном случае запрос IRQ не может быть правильно сгенерирован. Затем, для всех типов BIOS, выполняется программный сброс контроллера дисковода (через порт 3F2h). Снимается маскирование запроса прерывания от дисковода (IRQ6), для этого обнуляется бит 6 в порте 21h, проверяется прохождение запроса прерывания от контроллера дисковода. Устанавливаются параметры работы контроллера дисковода (командой SPECIFY). Если в Setup разрешен Floppy Drive Seek Test, выполняется тест позиционирования для установленных дисководов
42
1. Cut IRQ 12 connection if PS2 mouse is not installed.
2. Install IDE Hard Drives. Auto-detect HDDs. Build the AT compatible HDD table for Type 47. Set PIO timing
.
3. Detect CD ROM on IDE Bus
.
4. Detect LS120 drive
.
Отключение IRQ12 если PS/2 mouse отсутствует.
Выполняется программный сброс контроллера жестких дисков. Если для устройства в Setup указан режим AUTO, выполняется команда IDENTIFY DRIVE, иначе параметры устройства берутся из CMOS. Выполняется программирование конфигурационных регистров PIIX для установки PIO Mode.
Выполняется сканирование на предмет наличия других IDE устройств (CDROM, LS120 ...). Если на Primary IDE присутствуют устройства, размаскируется IRQ14, обнуляется бит 6 в порте A1h. Если на Secondary IDE присутствуют устройства, размаскируется IRQ15, обнуляется бит 7 в порте A1h. Проверяется прохождение соответствующих IRQ (только для HDD)
43
1. Detect and Initialize Serial/Parallel Ports (also game port).
2. If it is a PNP BIOS, initialize serial and parallel ports
.
Предположительно само конфигурирование Si/o Chip происходит на шаге 32
, а на шаге 43
ресурсы SIO вносятся в формируемый BIOS список PnP устройств.
45
Detect and Initialize math coprocessor.
Инициализация сопроцессора FPU.
Проверка наличия (Detect) в обычном понимании не выполняется, так как наличие/отсутствие FPU однозначно следует из информации, прочитанной по команде CPUID при определении CPU Type. Но в силу того, что убедиться в функциональной пригодности этого устройства невозможно на ранних этапах POST, выполняется ряд тестов с участием памяти, подтверждающих корректность определения FPU.
Под инициализацией обычно понимается программный сброс FPU и запись управляющего слова в регистр FPU CW .
4E
1. Reboot if Manufacturing pin POST Loop is set. Otherwise display any messages (i.e., any non-fatal errors that were detected during POST) and enter Setup.
2. If there is any error detected (such as video, keyboard etc.), show all the error messages on the screen and wait for user to press key .
3. Enable "Far Hit" for IBM/Cyrix 6x86 CPU.
Инициализация клавиатуры USB.
Некоторые материнские платы (в основном в конструктиве Socket 7) имеют перемычку для заводского тестирования. Если указанная перемычка установлена, выполняется перезагрузка. В противном случае на экран выводятся сообщения о нефатальных ошибках, таких как несоответствие HDD объявленному в CMOS типу, отказе клавиатуры и тому подобное.
На данном этапе становится возможен вход в CMOS Setup, если отработано нажатие клавиши DEL.
В случае, если перемычка заводского тестирования не установлена либо не предусмотрена вообще и обнаружены ошибки, не препятствующие дальнейшему выполнению POST и старту операционной системы, выводится сообщение и ожидание продолжить POST по нажатию любой клавиши. Для клавиатуры в стандарте DIN или PS/2 инициализация уже выполнена на шаге 3D
, поэтому выполняется только проверка состояния KeyLock. Прочие параметры клавиатуры устанавливаются на шаге 62
.
В связи с тем, что на шаге 45
завершены все инициализационные процедуры для CPU, становится возможным выбрать протокол работы с cache L2, если установлен процессор IBM/Cyrix. Разрешается Write Allocation .
4F
1. If password is needed, ask for password.
2. Clear the Energy Star Logo (Green BIOS ONLY) .
Запрос на ввод пароля, если это предусмотрено установками CMOS Setup.
Логотип Energy Star Pollution или его заменяющий исчезает.
50
Write all CMOS values back to RAM and clear screen.
Write all the CMOS values currently in the BIOS stack area back into the CMOS .
Восстановление ранее сохраненного в ОЗУ состояния CMOS. При выполнении некоторых фрагментов POST содержимое CMOS может модифицироваться, поэтому исходное содержимое CMOS копируется в ОЗУ, обычно стек BIOS, а после прохождения искажающих CMOS фрагментов, записывается обратно в CMOS .
51
Enable parity checker, Enable NMI, Enable cache, reset flags before boot.
Относительно разрешения контроля четности, немаскируемых прерываний, cache L1/L2 и переустановки флагов информации нет. Предположительно, выполнение указанных операций возможно только для чип сетов типа Intel HX, осуществляющих поддержку контроля четности.
Разрешено автоопределение HDD по схеме с 32-битным доступом.
Инициализация и установка параметров устройств ISA/PnP до инициализации устройств PCI
52
1. Initialize any option ROMs present from C8000h to EFFFFh
.
NOTE: When FSCAN option is enabled, will initialize from C8000h to F7FFFh
.
2. Later PCI initializations (PCI BIOS ONLY) - assign IRQ to PCI devices - initialize all PCI ROMs.
3. Program shadows RAM according to Setup settings.
4. Program parity according to Setup setting.
5. Power Management Initialization. Enable/Disable global PM - APM interface initializtion.
Инициализация ПЗУ дополнительных BIOS (ROMSCAN процедура). В диапазоне адресов C8000H-EFFFFH
выполняется поиск сигнатур дополнительных BIOS (55 AA), если сигнатура обнаружена, считывается байт длины блока (идущий после сигнатуры) для блока проверяется контрольная сумма, и в случае верной контрольной суммы управление передается командой FAR CALL по смещению 0003 относительно начала блока. Предполагается, что дополнительный BIOS выполнит инициализацию устройства, которое он обслуживает, перехватит необходимые вектора прерываний и вернет управление в System BIOS командой RET FAR. Типичный пример - SCSI BIOS, который обычно перехватывает INT 13h и берет на себя обслуживание SCSI HDD. Video BIOS использует ту же идеологию, но находится на особом положении - его инициализация происходит раньше, для обеспечения возможности отображения выполнения POST на экране.
Assign IRQ to PCI devices - имеется в виду установка значений четырех конфигурационных регистров PIIX (по числу линий PCI INT), в которые записывается, на какое IRQ картируется каждая из линий запросов прерывания PCI (INTA#, INTB#, INTC#, INTD#). Для дополнительных BIOS в соответствии с установками Setup, опционально включается режим Shadow. Для System BIOS он включен всегда.
На этом этапе также программируется:
формирование NMI (Nonmaskable Interrupt) для Parity Check
формирование SMI (System Management Interrupt) для Green функций
53
Initialize time value in 40h: BIOS area.
1. If it is NOT a PNP BIOS, initialize serial and parallel ports .
2. Initialize time value in BIOS data area by translate the RTC time value into a timer tick value
.
Установка счетчика DOS Time в соответствии с Real Time Clock. Значение времени в формате часы:минуты:секунды пересчитывается в тики таймера 18.2 Hz и записывается в ячейки DOS Time в области переменных BIOS. Установка переменных BIOS, хранящих базовые адреса портов.
60
SetupVirus Protection (Boot Sector Protection) functionality according to Setupsetting
.
Установка антивирусной защиты BOOT Sector. В большинстве плат такая защита реализуется программно. Перед входом в процедуру обработки дискового сервиса (INT 13h) устанавливается транзитный программный модуль, который анализирует входные параметры функции и детектирует две ситуации:
Попытка записи в BOOT Sector (AH=3
, CL=1
, CH=0
, DL=8xh
, DH=0
)
Попытка форматирования Track 0 (AH=5
, CH=0
, DL=8xh
, DH=0
)
Если система условий - значения регистров - выполняется, вместо дисковой операции выдается предупреждающее сообщение и звуковой сигнал. На шаге 60
выполняется перестановка вектора INT 13h на транзитный контролирующий модуль, если в Setup включен данный режим.
61
1. Try to turn on Level 2 cache.
Note: if L2 cache is already turned on in POST 3D, this part will be skipped .
2. Set the boot up speed according to Setup setting .
3. Last chance for Chipset initialization .
4. Last chance for Power Management initialization (Green BIOS only) .
5. Show the system configuration table
.
Один из альтернативных моментов для включения External Cache.
Завершающие действия по инициализации Chipset и Power Management
62
1. Setup daylight saving according to Setup value .
2. Program the NUM Lock, typmatic rate and typmatic speed according to Setup setting Чтение KBD ID.
Установка режима Daylight Saving - разрешение автоматического перехода на зимнее/летнее время для RealTimeClock, состояния NUM Lock, частота автоповтора и время ожидания до входа в режим автоповтора.
63
1. If there is any changes in the hardware configuration, update the ESCD information (PNP BIOS ONLY) .
2. If there is any changes in the hardware configuration, update the DMI data pool (DMI BIOS ONLY) .
3. Clear memory that have been used .
4. Boot system via INT 19h
.
Коррекция блоков ESCD, DMI, если изменилась конфигурация. Очистка, обнуление ОЗУ.
75
Thermal Warning
.
Если в качестве контроллера системного мониторинга используется LM78, выполняется сигнализация о превышении допустимых значений температурного режима.
В настоящее время нет достоверной информации о генерации этого кода контроллерами других производителей, например Winbond Electronics или Genesys Logic.
80
...83
, 90
...93
Primary Master IDE Power Off(80)/On(90); Primary Slave IDE Power Off(81)/On(91); Secondary Master IDE Power Off(82)/On(92);
Secondary Slave IDE Power Off(83)/On(93)
.
84
and 94
Sound Chip Power Off(84)/On(94)
.
86
...88
, 96
...98
COMA Power Off(86)/On(96) ; COMB Power Off(87)/On(97) ;
LPT Power Off(88)/On(98).
8B
and 9B
Turn CRT Off(8B)/On(9B)
.
85
, 89
, 8A
, 8C
, 8D
and 95
, 99
, 9A
, 9C
, 9D
Turn Unknown Devices Off/On
.
Это не один из этапов POST, а вывод в диагностический порт контрольных точек включения / выключения неизвестных устройств.
Следует отметить, что все коды группы 80 и 90 связаны с событиями, возникающими в процессе Green Functions. На сегодня нет достоверной информации, однозначно определяющей устройства, кроме выше упомянутых, участвующих в функциях энергосбережения
B0
Spurious. If interrupt occurs in protected mode.
Обработчик-заглушка прерываний (исключений) для защищенного режима. Это не один из этапов POST, а процедура, на которую устанавливаются вектора (для защищенного режима не вектора, а дескрипторы IDT) внутренних прерываний (исключений) процессора на время работы в Protected Mode, например, при тесте Extended Memory. Если при работе в Protected Mode не будет сбоев, эта процедура и не получит управления. Если будут иметь место ошибки, например некорректные данные в дескрипторных таблицах, страничные нарушения и другие исключительные ситуации Protected Mode, управление будет передано на эту процедуру, она выведет код B0 в Port 80 и остановится
B1
If unmasked NMI occurs, display Press F1
to disable NMI, F2 reboot
.
Unclaimed NMI occurs.
Обработчик-заглушка немаскируемого прерывания. Это не один из этапов POST, а процедура, на которую указывает вектор немаскируемого прерывания. Если возник запрос NMI, и не удалось идентифицировать причину NMI, в Port80 выводится этот код, на экран выводится сообщение:
Press F1
to disable NMI, F2 to reboot
.
И ожидаются действия пользователя.
B2
Unknown action
.
55
and BB
Begin to Shutdown the system 5 Volt;
Begin to Shutdown the system 0 Volt
.
D3
SMI Handle .
D7
Software Doze
.
D8
Software Standby
.
D9
Software Suspend
.
E1
...EF
Setup Pages E1
- Page 1
, E2
- Page 2
, etc.
По этой операции проверенной информации нет, предположительно, что это актуально для старых систем, у которых доступ к BIOS ROM организуется постранично через картируемое окно, при установке каждой новой страницы выводится код Ex, где x - номер страницы. Этот факт подтверждается существованием в указанном диапазоне кодов, связанных с выполнением других процессов
EC
ECC Post Code associate with System Management Interrupt (SMI)
.
В настоящее время нет достоверной информации о причинах генерации этого кода. Предположительно, его возникновение связано с обработкой ECC в процессе выполнения Green Functions .
ED
HDD hang up on 0V resume.
Данный код сигнализирует об ошибке выхода HDD из режима энергосбережения.
FF
System Booting
.
This means that the BIOS already pass the control right to the operating system.
Передача управления загрузчику BOOT сектора. BIOS выполняет команду INT 19h. Процедура обработки прерывания INT 19h последовательно пытается заг.
POST карты не первое десятилетие используются для диагностики «железных» неисправностей компьютеров и материнских плат всевозможных форм-факторов. На данный момент этих карт создано очень много, практически для всех возможных ситуаций. Статья рассказывает о том, что такое POST карты и для чего их используют, как они работают, какие бывают и чем друг от друга отличаются.
POST
После нажатия кнопки включения компьютера BIOS проводит поэтапную проверку и инициализацию всех элементов аппаратной части компьютера. Называется этот процесс: POST (англ. Power-On Self-Test – самотестирование после включения). Не только компьютеры, но и большинство современных электронных устройств имеют схожие системы.
BIOS сообщает статус (или результат) прохождения POST несколькими способами:
1. Вывод сообщений на экран . Самый дружественный и информативный способ. По сути, доступен только после успешного или почти успешного прохождения самотестирования. Отсутствие какой-либо информации на экране говорит о серьезных неисправностях базовых компонентов (материнская плата, процессор, память, видеоадаптер и т.д.). Диагностика ошибок возможна в основном только для периферийных устройств (накопители, клава и др.).
2. Звуковые сигналы . Наверное, все слышали короткий «биип» при включении компьютера – в большинстве BIOS это означает прохождение теста без ошибок и готовность к загрузке ОС. Другие варианты сигналов могут говорить об определенных проблемах с железом. Эти коды «азбуки Морзе» различаются у разных производителей и даже разных версий BIOS. Найти их обычно можно в книжке к материнке или соответствующих онлайн справочниках.
3. POST коды . В ходе каждого этапа процесса самотестирования BIOS отправляет текущий код на порт 80h (иногда 81h или другие), и если возникает ошибка, там остается или код операции, на которой произошел сбой, или код последней успешной операции. Считав этот код, можно определить на каком этапе произошла ошибка, и что могло ее вызвать. Это единственный из всех перечисленных способов, который позволяет идентифицировать проблемы на материнской плате, которая не подает видимых признаков жизни. По этой причине, он обычно используется для диагностики и ремонта непосредственно материнских плат.
Если первые два способа диагностики не требуют специального оборудования, разве что монитор и подключенный к материнской плате динамик (бывает, что его там нет), то для третьего способа вам понадобиться собственно POST карта.
Где смотреть значения POST кодов и звуковых сигналов?
- Также рекомендую англоязычный ресурс PostCodeMaster – там собрано еще больше POST кодов и звуковых сигналов BIOS разных производителей (есть довольно редкие, плюс немного по конкретным материнкам, в том числе серверным).
Наиболее подробно для всех распространенных версий BIOS на русском и с расшифровкой они описаны на сайте IC Book . Но информации столько, что немудрено заблудиться, удобней скачать оттуда готовый PDF документ со списком кодов (щелкнув в нем по нужному коду попадаешь на страницу с подробной расшифровкой).
POST карты
Основная задача любой POST карты – это считать и отобразить текущий POST код. Считать его можно несколькими способами: по шинам ISA, PCI, LPC или через LPT порт. Есть и другие, более экзотические варианты (о них чуть позже). Кроме, собственно, отображения кода, хорошие POST карты имеют дополнительные диагностические возможности (индикаторы, режимы тестирования, встречаются даже со встроенным видеоадаптером).
Некоторые материнские платы (обычно Premium сегмента) имеют встроенный индикатор POST кодов.
Раньше POST карты многие умельцы делали вручную, но сейчас этим совершенно нет смысла заниматься, за текстолит и компоненты больше отдадите, чем стоит обычная карточка. Если только очень хочется…
ISA
Первыми POST картами были карты для шины ISA , существовавшей с 1981 по 199х годы. Используется она даже сейчас (хоть и весьма редко), в основном в промышленном и военном секторе – там, где осталось оборудование для этой шины. Продаются и POST карты для нее, как в отдельном исполнении (только ISA), так и комбайны ISA + PCI.
Если вы не занимаетесь ремонтом 486, то иметь POST карту ISA совершенно не обязательно.
PCI
Следующей массовой компьютерной шиной стала PCI . Сейчас это самая распространенная шина для настольных компьютеров. Естественно, для нее есть и POST карты всех возможных форм, размеров и функций. Самую простейшую , с обычным сегментным индикатором, можно купить за 2-3 бакса на любом Ebay, Ali и им подобным.
В принципе, такая карта со своей базовой задачей вполне справляется – POST код вы узнаете. Но для профессиональной работы этого мало. Полезно иметь индикаторы основных напряжений (обычно: +5, +3.3, +12, -12, +3.3 Standby) и индикаторы сигналов шины (из самых базовых: CLK, RST#, FRAME#, IRDY#). Важно иметь возможность переключения порта, на котором карта «слушает» коды POST (не только стандартный 80h). Бывают и другие «фишки», отсюда и такой «навороченный» вид у продвинутых карточек.
Обычно POST карты устанавливаются на заведомо неисправные материнские платы (собственно, для этого они и предназначены), и не исключены случаи выхода из строя самой POST карты в ходе тестирования. Поэтому неплохо иметь простенькую дешевую карту для первичной диагностики.
Еще один удобный вариант – это выносной индикатор. Он позволяет со всеми удобствами производить диагностику материнских плат, не вынимая их из системника. С одной стороны, если дело дошло до POST карты, то скорей всего материнку все же придется извлечь для ремонта, но с другой стороны – не всегда, да и POST карты просто удобный способ общей диагностики. На фото Sintech ST8679 , китайская карточка с выносным многострочным LCD дисплеем.
LPT
Существуют POST карты для LPT порта – довольно простой и удобный способ диагностики для любого компьютера или ноутбука, имеющего этот самый LPT порт. Из-за технических особенностей, они не имеют возможностей, присущих картам для PCI , но это компенсируется простотой и доступностью. Требуют питание по USB (для этого и наличие порта на плате).
Однако LPT изживает свой век, и на современных компьютерах их уже почти не встретишь, соответственно, доживают свои дни и эти карты.
PCI-E
Служивший нам верой и правдой много лет PCI , постепенно вытесняет более современная PCI- Express . Немалое количество современных материнских плат вообще не имеют слота PCI (хотя и могут иметь саму шину). Могу вас обрадовать – POST карты для PCI-E существуют . Например, американская компания Ultra-X предлагает такую (цены у них обычно дикие, но тут ни цен, ни даже информации), в интернет можно встретить фото инженерных PCI-E карточек от Gigabyte (по всей видимости, только для внутреннего использования).
Есть и китайская версия PCI- E POST карты под названием KQCPET6-H . Производит ее китайская компания QiGuan Electronics , специализирующаяся на производстве разного рода диагностических карт (и довольно интересных). Их официальный сайт (www.qiguaninc.com), к сожалению, давно не обновлялся, и информации об этой карточке там нет, зато ее спокойно можно купить за 20 +/- баков на Ali.
Но с PCI-E не все так просто. Во-первых, сама диагностика с помощью PCI-E на данный момент вещь мутная, хотя бы, из-за отсутствия адекватной информации. Во-вторых, с PCI-E все зависит от конкретного изготовителя – нет гарантии, что коды будут выводиться; если и выводятся, то нет гарантии, что по стандартному порту и в стандартном виде…
Как же получить POST коды с платы без PCI, если нет под рукой PCI-E карты? Однозначный ответ на этот вопрос дать не получится. Если на вашей материнке есть встроенный индикатор – считайте, что вам крупно повезло. Можно использовать LPT , если он есть, конечно. Ну и последний вариант – использовать шину LP C , на некоторых материнских платах есть готовые коннекторы (LPC_DEBUG и т.п.). Даже если их нет, сама шина всегда присутствует, но придется «подпаиваться»…
USB
Одним из самых перспективных способов диагностики на сегодняшний день является USB . И главная тому причина – повсеместная распространенность этого интерфейса. Как мы уже выяснили, отсутствие того или иного разъема на материнской плате может стать преткновением для диагностики. И эту проблему как раз решает USB – парочку портов имеют буквально все компьютеры и ноутбуки, выпущенные за последние 15 лет.
Для такой диагностики необходимо наличие в системе USB Debug Port – это своего рода расширение USB, позволяющее передавать диагностическую информацию. В USB 3.0 реализация Debug Port получилась сподручней (подробней о Debug Port можно прочитать по ссылке). Кроме передачи POST кодов, Debug Port позволяет производить полноценную отладку кода BIOS и UEFI .
Было даже выпущено разными компаниями. NET20DC от Ajays (компания почти тут же обанкротилась, так как поставщики отказались поставлять им компоненты для сборки девайса). Insyde H 2 O DDT от Insyde Software (выпущен, вроде, в 2008 году, но информация об этом девайсе канула в лету даже на официальном сайте). Оба этих устройства скорее отладчики, хотя и имеют возможность захвата POST кодов.
Наиболее продвинутым и полноценным средством диагностики является AMIDebug Rx от AMI : позволяет выводить POST коды с описанием, полноценно работает с UEFI, ведет лог процесса POST, можно подключать к ПК для настройки и считывания кодов, имеет функции отладчика. Самое интересно – выпущено это чудо еще в 2009 году! Понятное дело, что предназначен девайс для родного AMIBIOS , работает ли он с другими BIOS – мне неизвестно.
За 6-7 лет с момента появления этих USB устройств, ни одно из них популярности не получило, купить сейчас можно только AMIDebug Rx, и то, только напрямую от производителя по индивидуальному запросу . Цена девайса не разглашается. Так что, повсеместного перехода на USB диагностику пока не ожидается.
Диагностика ноутбуков
С ноутбуками все немного сложней. Наиболее распространенные разъемы, которые можно использовать для диагностики – это mini PCI или Mini PCI-E (у более современных).
Mini PCI-E (как и PCI-E) не обязан выводить POST коды, все зависит от того, заложил ли эту возможность производитель или нет.
Опять же, есть вариант использования шины LPC . На материнских платах порта для подключения к этой шине вполне может не быть, поэтому придется напрямую подпаиваться к плате или контролеру.
Отдельные производители имеют свои способы диагностики, тут уж действительно «кто во что горазд». К сожалению, эта информация обычно является достоянием лишь производителя и его внутренних сервисных центров, поэтому все существующие варианты POST карт в общем доступе вряд ли найдутся. Наиболее исчерпывающий комбайн «все в одном флаконе» для диагностики ноутбуков – это POST карта Sintech ST8675 , которую несложно найти у китайских продавцов за 20-30$ с доставкой.
Из интересных решений, российская компания BVG-Group предлагает заглушку на VGA для ноутбуков Samsung, и карты в виде модуля памяти для ноутбуков ASUS. Это, наверное, наиболее «экзотические» варианты POST карт, что я знаю. Хотя овации скорее следует отдать производителям ноутбуков, придумавшим именно такой способ диагностики для своей продукции.
Тех, кто ждал конкретных примеров я, возможно, разочарую – POST карта это один из инструментов диагностики, который в большинстве случаев лишь помогает понять «куда копать», а уж как копать и какой лопатой зависит сугубо от вас. Иногда для постановки «диагноза» может хватить только ее одной, а может потребоваться помощь мультиметра и осциллографа в комплекте с умением ими пользоваться. Если это вызывает у вас затруднения, то лучше отнесите вашу материнскую плату специалистам, пока из нерабочей она не стала не подлежащей восстановлению.
PS
Такое вот у POST карт интересное прошлое и насыщенное настоящее. Что их ждет в будущем? Поживем – увидим. Но реалии таковы, что в нынешнюю эпоху потребительства от девайсов зачастую избавляются раньше, чем они успевают сломаться. А если и ломаются, то оказываются в сервисных мастерских производителя, где уж явно должно быть подходящее диагностическое оборудование. Все это, на мой взгляд, и является основной причиной образовавшегося «POST вакуума».