Содержание
Phoenix Technologies, Ltd.
Один из лидеров разработки низкоуровневого программного обеспечения Phoenix 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 Ранняя инициализация регистров системной логики
11 Установка значений альтернативных регистров
09 Установка программного флага выполнения POST
0A Инициализация программных ресурсов процессора
0B Разрешение Internal Cache
0E Инициализация ресурсов Super I/O
0C Инициализация кэш L1/L2 согласно значениям CMOS
0F Инициализация IDE
10 Инициализация подсистемы Power Management
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 и частоты шины Выполнение процедур POST из RAM
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 Дополнительная настройка регистров логики для конфигурирования мостов PCIPCI и поддержки распределенных 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 Инициализация контроллера USB
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
Выполнение процедур из 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
Award BIOS 6.0: полная загрузка
Данная таблица содержит POST-коды, которые отображаются при полной процедуре POST.
- CF Определяется тип процессора и тестируется чтение/запись CMOS
- C0 Предварительно инициализируется чипсет и L1-, L2-кэш, программируется контроллер прерываний, DMA, таймер
- C1 Детектируется тип и объем оперативной памяти
- C3 Код BIOS распаковывается во временную область оперативной памяти
- 0С Проверяются контрольные суммы BIOS
- C5 Код BIOS копируется в теневую память и управление передается модулю Boot Block
- 01 Модуль XGROUP распаковывается по физическому адресу 1000:0000h
- 02 Инициализация процессора. Устанавливаются регистры CR и MSR
- 03 Определяются ресурсы ввода/вывода (Super I/O)
- 05 Очищается экран и флаг состояния CMOS
- 06 Проверяется сопроцессор
- 07 Определяется и тестируется контроллер клавиатуры
- 08 Определяется интерфейс клавиатуры
- 09 Инициализация контроллера Serial ATA
- OA Определяется клавиатура и мышь, которые подключены к портам PS/2
- 0B Устанавливаются ресурсы звукового контроллера AC97
- OE Тестируется сегмент памяти F000h
- 10 Определяется тип flash-памяти
- 12 Тестируется CMOS
- 14 Устанавливаются значения для регистров чипсета
- 16 Первично инициализируется тактовый генератор
- 18 Определяется тип процессора, его параметры и объемы кэша L1 и L2
- 1B Инициализируется таблица векторов прерываний
- 1С Проверяются контрольные суммы CMOS и напряжение питания аккумулятора
- 1D Определяется система управления питанием Power Management
- 1F Загружается матрица клавиатуры (для ноутбуков)
- 21 Инициализируется система Hardware Power Management (для ноутбуков)
- 23 Тестируется математический сопроцессор, дисковод, инициализация чипсета
- 24 Обновляется микрокод процессора. Создается карта распределения ресурсов устройств Plug and Play
- 25 Начальная инициализация PCI: перечисляются устройства, поиск адаптера VGA, запись VGA BIOS по адресу C000:0
- 26 Устанавливается тактовая частота по CMOS Setup. Отключается синхронизация неиспользуемых слотов DIMM и PCI. Инициализируется система мониторинга (H/W Monitor)
- 27 Разрешается прерывание INT 09h. Снова инициализируется контроллер клавиатуры
- 29 Программируются регистры MTRR, инициализируется APIC. Программируется контроллер IDE. Измеряется частота процессора. Вызывается расширение BIOS видеосистемы
- 2B Поиск BIOS видеоадаптера
- 2D Отображается заставка Award, информация о типе процессора и его скорости
- 33 Сбрасывается клавиатура
- 35 Тестируется первый канал DMA
- 37 Тестируется второй канал DMA
- 39 Тестируются страничные регистры DMA
- 3C Настраивается контроллер 8254 (таймер)
- 3E Проверка контроллера прерываний 8259
- 43 Проверяется контроллер прерываний
- 47 Тестируются шины ISA/EISA
- 49 Вычисляется объем оперативной памяти. Настраиваются регистры для процессора AMD K5
- 4E Программируются регистры MTRR для процессоров Syrix. Инициализируются кэш L2 и APIC
- 50 Определяется шина USB
- 52 Тестируется ОЗУ с отображением результатов. Очищается расширенная память
- 53 Если выполнена очистка CMOS, то сбрасывается пароль на вход в систему
- 55 Отображается количество процессоров (для многопроцессорных платформ)
- 57 Отображается логотип EPA. Начальная инициализация устройств ISA PnP
- 59 Определяется система защиты от вирусов
- 5B Вывод подсказки для запуска обновления BIOS с дискеты
- 5D Запускается контроллер Super I/O и интегрированный аудиоконтроллер
- 60 Вход в CMOS Setup, если была нажата клавиша Delete
- 65 Инициализируется мышь PS/2
- 69 Включается кэш L2
- 6B Настраиваются регистры чипсета согласно BIOS Setup
- 6D Назначаются ресурсы для устройств ISA PnP и COM-порты для интегрированных устройств
- 6F Инициализируется и настраивается контроллер гибких дисков
- 75 Детектируются и устанавливаются IDE-устройства: жесткие диски, CD/DVD, LS-120, ZIP и др.
- 76 Выводится информация об обнаруженных IDE-устройствах
- 77 Инициализируются последовательные и параллельные порты
- 7A Сбрасывается и готовится к работе математический сопроцессор
- 7C Определяется защита от несанкционированной записи на жесткие диски
- 7F При наличии ошибок выводится сообщение и ожидается нажатие клавиш Delete и F1
- 82 Выделяется память для управления питанием и заносятся изменения в таблицу ESCD.
- Убирается заставка с логотипом EPA. Запрашивается пароль, если нужен
- 83 Все данные сохраняются из временного стека в CMOS
- 84 Вывод на экран сообщения Initializing Plug and Play Cards
- 85 Завершается инициализация USB
- 87 Создаются таблицы SYSID в области DMI
- 89 Устанавливаются таблицы ACPI. Назначаются прерывания для PCI-устройств
- 8B Вызывается BIOS дополнительных ISA- или PCI-контроллеров, за исключением видеоадаптера
- 8D Устанавливаются параметры контроля четности ОЗУ по CMOS Setup. Инициализируется APM
- 8F IRQ 12 разрешается для «горячего» подключения мыши PS/2
- 94 Завершение инициализации чипсета. Отображение таблицы распределения ресурсов. Включение кэша L2. Установка режима перехода на летнее/зимнее время
- 95 Устанавливается частота автоповтора клавиатуры и состояния Num Lock
- 96 Для многопроцессорных систем настраиваются регистры (для процессоров Cyrix). Создается таблица ESCD. Устанавливается таймер DOS Time по показаниям часов RTC CMOS. Сохраняются разделы загрузочных устройств для использования встроенным антивирусом. Динамик оповещает об окончании POST. Создается таблица MSIRQ FF Выполняется прерывание BIOS INT 19h. Поиск загрузчика в первом секторе загрузочного устройства
Award BIOS 6.0: сокращенная загрузка
Сокращенная процедура выполняется при установке в BIOS параметра Quick Power On Self Test.
- 65 Сбрасывается видеоадаптер. Инициализируются звуковой контроллер, устройства ввода/вывода,тестируется клавиатура и мышь. Проверяется целостность BIOS
- 66 Инициализируется кэш-память. Создается таблица векторов прерываний. Инициализируется система управления питанием
- 67 Проверяется контрольная сумма CMOS и тестируется батарейка питания. Настраивается чипсет на основе параметров CMOS
- 68 Инициализируется видеоадаптер
- 69 Настраивается контроллер прерываний
- 6A Тестируется оперативная память (ускоренно)
- 6B Отображается логотип EPA, результаты тестов процессора и памяти
- 70 Отображается подсказка для входа в BIOS Setup. Инициализируется мышь, подключенная к PS/2 или USB
- 71 Инициализируется контроллер кэш-памяти
- 72 Настраиваются регистры чипсета. Создается список устройств Plug and Play.& Инициализируется контроллер дисковода
- 73 Инициализируется контроллер жестких дисков
- 74 Инициализируется сопроцессор
- 75 Если нужно, жесткий диск защищается от записи
- 77 Если нужно, запрашивается пароль и выводятся сообщения Press F1 to continue, DEL to enter Setup
- 78 Инициализируются платы расширения с собственной BIOS
- 79 Инициализируются ресурсы платформы
- 7A Генерируются корневая таблица RSDT, таблицы устройств DSDT, FADT и т. п.
- 7D Собирается информациия о разделах загрузочных устройств
- 7E BIOS готовится к загрузке операционной системы
- 7F Состояние индикатора NumLock устанавливается в соответствии с настройками
- BIOS Setup
- 80 Вызывается INT 19 и запускается операционная система
- FF Загрузка операционной системы
После того как запускается компьютер, происходит начало работы BIOS. Он необходим для осуществления задачи загрузки системы. Предусматривается функционирование программы BOOT-ROUTINE, которая инициирует подпрограмму POST. Она, в свою очередь, предназначается для самостоятельного тестирования подключённых устройств, а также задании конкретных настроек.
Разработано большое число проверок. Они созданы для каждого из подсоединённых устройств – от принтеров, до материнской платы и видеокарты. Каждый из реализуемых тестов обладает уникальным номером, получившим название POST кода Phoenix BIOS. Предусматривается его запись в отдельно отведенный порт с адресом 0080H. Это происходит до того, как начинается указанный тест. В результате возникновение сбоя прервёт процесс и после анализа содержимого порта можно будет ознакомиться с последней запись. Именно она станет указывать на проблемное место.
Как считать POST-коды Phoenix BIOS
Существует несколько вариантов действий:
- Когда плата располагает встроенным индикатором кодов, то он способен предоставить необходимые сведения.
- Большинство систем предусматривает выдачу последнего осуществляемого ПОСТ кода на экран в ходе реализации проверки.
- Допускается применять особую карту расширения.
- Установка специального ПО, которое выполняет считывание информации из порта 0080H.
Таблица кодов
Общее количество вариантов сбоя предусматривает несколько десятков. Требуется рассмотреть основные POST-коды Phoenix BIOS:
Контроль параметров действующего режима функционирования устройства
Немаскируемые прерывания NMI перестают осуществляться
Установление типа имеющегося процессора
Первичная инициализация контроллеров
Первичная инициализация регистров чипсета
Задаётся специальный флаг, говорящий о том, что в текущий момент осуществляется выполнение ПОСТ
Происходит запуск работы программных ресурсов ЦП
Кэш паять допускается применять в дальнейшем
Начало работы кэш памяти
Начало работы ресурсов, которые отвечают за процессы ввода и выдачи
Начало работы контроллера IDE
Происходит задание установок для обеспечения контроля на системой питания
Задаются параметры, отвечающие за альтернативные регистры
Задаётся регистр MSW
Начало работы клавиатурного контроллера
Установление того, каков именно размер кэш памяти устройства