Контрольные точки процедур POST, выполняемых в AMIBIOS, были переработаны и дополнены в 1995 году и до настоящего времени не претерпели существенных изменений. Первое описание POST-кодов или чекпойнтов (check points), как они именуются в AMI, в их нынешнем виде появилось в связи с выходом в свет ядра v6.24 от 15 июля 1995 года. Некоторые изменения в своё время были внесены в AMIBIOS v7.0.
Если в процессе старта в диагностическом порту появляются данные 55, AA, не следует сопоставлять эту информацию с POST-кодами – мы имеем дело с типовой тестовой последовательностью, в задачи которой входит проверка целостности шины данных как таковой.
На этапе старта вывод в диагностический порт данных носит специфический для каждой платформы характер. В некоторых реализациях первый визуализируемый код связан с действиями, который компания AMI называет chipset specific stuff. Эта процедура сопровождается выводом в порт 80h значения CC и выполнением ряда действий по настройке регистров системной логики. Как правило, код CC возникает в тех случаях, когда используется системная логика от Intel.
Некоторые бортовые микросхемы ввода-вывода содержат RTC и контроллер клавиатуры, которые по старту находятся в отключенном состоянии. Цель BIOS – проинициализировать эти ресурсы платы для дальнейшего использования. В этом случае первая стартовая процедура, связанная с настройкой контроллера клавиатуры, сопровождается выводом значения 10, затем выполняется инициализация RTC, о чем свидетельствует появление в диагностическом порту кода DD. Следует отметить, что отказ хотя бы одного из этих ресурсов повлечет нестарт системной платы в целом на первом же этапе выполнения POST.
На ряде плат процесс инициализации начинается с перевода CPU в защищенный режим. В этом случае вслед за первым визуализируемым кодом 43 выполнение POST продолжается так, как описано в документации AMIBIOS – управление передается в точку D0.
Начиная с AMIBIOS95+ компания American Megatrends задекларировала обобщенный подход к инициализации устройств на всех типах шин. Для этого был разработан универсальный механизм – Device Initialization Manager (DIM), реализованный в виде автономного модуля. Запуск процедур DIM осуществляется в особые моменты выполнения POST, когда необходимо отобразить состояние инициализации Option ROM, устройств ввода и отображения информации:
Старший байт отображается в порт 81, указывая на тип выполняемой процедуры Function Number и топологию, где локализованы заданные устройства: Device Number. Топология, как аргумент, отображается в младшей тетраде 81 порта и может принимать следующие значения:
1x | инициализация ресурсов системной логики |
---|---|
2x | инициализация устройств на шине ISA |
3x | инициализация устройств на шине EISA |
4x | инициализация устройств PnP |
5x | инициализация устройств на шине PCI |
6x | инициализация устройств на шине PCMCIA |
7x | инициализация устройств на шине MCA |
8x | инициализация всех устройств |
Старшая тетрада 81-го порта Function Number указывает либо на процедуру инициализации, применимую к выбранным устройствам, либо на подмножество устройств, объединенных по заданному признаку, которые следует подготовить к работе.
Этот параметр в современной редакции допускает следующие значения:
0 | Reset, Detect, Disable | Построение с помощью менеджера ресурсов карты распределения ресурсов. Из блока конфигурационных компонентов NVRAM строится стратегия инициализации всех устройств, описанных функциями 01,…,05 |
---|---|---|
1 | Initialization for Static Devices | Инициализация дополнительных (off-board) контроллеров PCI IDE |
2 | Initialization for Output Devices | К инициализации средств отображения относится поиск в контрольной точке 2Ah видеоадаптеров, VGA BIOS которых размещается в сегменте C000h. Функция выполняет процедуру ROM Scan, начиная с региона Optional EGA ROM путем поиска сигнатуры 55AAh. Если сигнатура обнаружена, проверяется контрольная сумма и принимается решение о том, что Add-ROM верифицирован и готов принять управление от BIOS. Особенность процедуры - уменьшение пространства RAM выделенного для ROM в связи с «усадкой», когда код занимает меньше места, чем зарезервировано. В этом случае освобождаются регионы C800h/CC00h. 1) |
3 | Initialization for Input Devices | Инициализация устройств консольного ввода (клавиатура и манипулятор «мышь») выполняется только если это указано в установках CMOS Setup. |
4 | Initialization for IPL Devices | Инициализация устройств Initial Program Load (IPL), с которых возможна загрузка операционной системы, выполняется в контрольной точке 38h. К IPL-устройствам согласно BIOS Boot Specification относятся FDD и HDD, позволяющие загрузить ОС. Функция проверяет соответствие найденных дисков по списку, хранящемуся в NVRAM, разрешает их использование и формирует запрос на выделение адресного пространства, портов, IRQ. Использование устройств не указанных в NVRAM становится возможным только если они поддерживают Auto-Detect. |
5 | Initialization for General Devices | Инициализация периферийных (on-board) и дополнительных (off-board) контроллеров, поддерживающих стандарт PnP, а также подключенных к шине PCI контроллеров USB (Universal Serial Bus). |
6 | POST Error Flags | Функция сбора и обработки информации об ошибках выполняется для вывода на экран сообщений пользователю в контрольной точке 39h. Обрабатываются ситуации конфликтов при распределении доступа к ресурсам памяти, портов ввода-вывода, запросов IRQ. Исследуются загрузочные возможности HDD, исходя из информации об их подключении (Master/Slave, Device ID) к соответствующим контроллерам и проверяется бесконфликтность таких подключений. Обрабатываются ошибки от консольных устройств (клавиатура и монитор). Проверяется достоверность и контрольные суммы информации в NVRAM, а также функциональность носителей NVRAM: CMOS и EEPROM. |
7 | Special Function | К специальным функциям модуля DIM относится поиск и инициализация устройств в контрольной точке 95h, Optional ROM которых размещается в сегменте C800h. Этот сегмент используется для дополнительных BIOS контроллеров SCSI/IDE и их RAID модификаций, которые соответствуют BIOS Boot Specification (BBS). Если обнаружен хотя бы один Optional ROM, не поддерживающий BBS, к примеру, MFM-контроллер, AMIBIOS выбирает особый режим старта операционной системы. Специальная функция обслуживает также классифицированные USB Mass Storage устройства. |
8 | Configure Before Boot IPL Devices | Финальное конфигурирование устройств системной загрузки, ранее инициализированных с помощью функции 4 в контрольной точке 38h, требуется на этапе передачи управления операционной системе. По результатам выполнения CMOS Setup, если изменены параметры Boot Device Priority, корректируются таблицы HDD IDE/SCSI, устройств со сменными носителями и CD-ROM. Завершается процедура построением списка загрузочных устройств в порядке, предписанном пользователем. |
Как следует из названия, новая версия увидела свет в 1997 году. AMIBIOS97 – это современный во всех отношениях продукт с поддержкой AGP, InstantON и прочих новинок. Разработка и управление проектом доведены до совершенства с помощью разнообразных скрипт-процессоров, позволяющих генерировать код, в зависимости от особенностей построения NVRAM, DMI и т.п.
00 | 03 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0E | 0F | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
10 | 11 | 12 | 13 | 14 | 19 | 1A | |||||||||
23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2E | 2F | |||
30 | 31 | 32 | 33 | 34 | 37 | 38 | 39 | 3A | 3B | ||||||
40 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4B | 4C | 4D | 4E | 4F | ||
50 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | ||||||||
60 | 62 | 63 | 65 | 66 | 67 | ||||||||||
7F | |||||||||||||||
80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 8B | 8C | 8D | 8F | ||
91 | 95 | 96 | 97 | 98 | 99 | 9A | 9B | 9C | 9D | 9E | 9F | ||||
A0 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | AA | AB | AC | AD | AE | ||
B0 | B1 | ||||||||||||||
CC | CD | CE | CF | ||||||||||||
D0 | D1 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | DA | DB | DC | DD | DE | DF | |
E0 | E1 | E2 | E4 | E6 | EC | ED | EE | EF | |||||||
F0 | F1 | F2 | F4 | F5 | FB | FC | FD | FF |
код | название | описание |
---|---|---|
EE | В современных реализациях AMIBIOS первый визуализируемый код связан с обращением к устройству, с которого возможна загрузка для восстановления BIOS | |
CC | Chipset specific stuff Инициализация регистров системной логики | В некоторых версиях AMIBIOS первый визуализируемый код связан с инициализацией регистров системной логики от Intel, построенной на основе контроллера PIIX: чипсеты TX, LX, BX. Если система находится в режиме энергосбережения, выполняется 5V Resume - возврат к полноценному функционированию. В этом случае в диагностический порт посылается значение DD, и выполняется процедура, задача которой состоит в восстановлении из CMOS содержимого регистров контроллера памяти. |
CD | Chip ID is unknown Тип Flash ROM не опознан | Специфичная для плат Gigabyte процедура обслуживания DualBIOS - код производителя и код микросхемы Flash ROM стартового BIOS не найдены в списке поддерживаемых устройств. В числе причин, по которым происходит данное событие - неисправность Flash ROM, нарушение (повреждение) проводников и элементов в схеме подключения BIOS. |
CE | System halts to wait for hardware reset Несовпадение контрольных сумм в стартовом BIOS | Специфичная для плат Gigabyte процедура обслуживания DualBIOS. Если обнаружено несовпадение контрольных сумм в стартовом BIOS, выполняется остановка. После перезагрузки система запускается с запасной микросхемы Flash ROM. |
CF | DualBIOS Feature inaccessible Ошибка в доступе к запасной микросхеме Flash ROM | Ошибка в доступе к запасной микросхеме Flash ROM возникает в случае, когда невозможно коммутировать сигналы, подключенные к выводам GPIO (General Purpose Input Output), управляющие опцией DualBIOS Feature. Кроме аппаратных проблем, подобная ситуация может произойти также по причине того, что запасная микросхема Flash ROM отсутствует на системной плате. |
D0 | Power on delay is starting, Verify initialization code checksum Запрет немаскируемого прерывания NMI. Отработка временной задержки для затухания переходных процессов. Проверка контрольной суммы Boot Block, останов при несовпадении. | Для того, чтобы «переждать» переходные процессы, связанные с включением питания, выполняется аппаратная задержка сигнала Power Good. Временная задержка в BIOS состоит из вывода тестовых последовательностей в диагностический порт для проверки линий данных. Базовая проверка адресных линий выполняется с помощью вычисления объема загрузочного блока (Boot Block) и его контрольной суммы. Если контрольная сумма не совпадает, прохождение POST прекращается. В виду того, что процессор не имеет средств запрета NMI, эта процедура осуществляется через программно-доступный триггер, управляемый из индексных регистров CMOS. Аналогичным образом выполняется запрет контроля четности. |
D1 | Performing the keyboard controller BAT Test, check Wake-Up status, starting memory refresh, and entering 4 GB flat mode Выполнение процедуры регенерации памяти и Basic Assurance Test. Переход в 4 GB режим адресации памяти. | Контроллеру клавиатуры дается команда BAT (Basic Assurance Test), и проверяется результат ее отработки. Если старт системы выполнен по команде Wake Up, управление передается соответствующим процедурам. Запускаются схемы регенерации памяти - задается режим счета и константа счета для первого канала системного таймера. Содержимое регистров центрального процессора сохраняется в CMOS. Процессор переключается в защищенный режим и устанавливает 4Gb лимиты сегментов в регистрах Descriptor Cache. Затем выполняется возврат в реальный режим. При этом установленные лимиты сегментов сохраняются, что обеспечивает адресацию 4Gb пространства. |
D3 | Starting memory sizing Определение объема и первичный тест памяти | Первичная инициализация регистров системной логики позволяет приступить к определению объема памяти. Эта процедура устанавливает значение адреса BIOS и диапазон адресов для каждого из банков памяти, в соответствии с их объемами. Адрес, начиная с которого прекращается совпадение читаемых и записанных значений, принимается как граница памяти. Процедура памяти носит аппаратно-зависимый характер и выполняется с учетом особенностей платформы. |
D4 | Test 512 kB done. Returning to real mode Возврат в реальный режим адресации памяти. Ранняя инициализация чипсета Установка стека | С помощью операций записи и контрольного чтения проверяется базовый регион Conventional Memory. Операция выполняется двойными словами с помощью ассемблерных команд repe stosd. Если задано прохождения POST в ускоренном режиме, то процедура носит характер обнуления области в 512 Кб с последующей верификацией данных в памяти. Процессор переводится в Real Mode, лимиты сегментов устанавливаются равными 0000FFFFh, что соответствует режиму 16-битовых адресов для обслуживания 64 Кб сегментов. |
D5 | The initialization code is copied to segment 0 and control will be transferred to segment 0 Перенос модуля POST из Flash ROM в транзитную область памяти | Выполняется перенос модуля Boot Block из Flash ROM в транзитную область памяти, подготовленную на предыдущем шаге. Инициализационный код BIOS размещается начиная с адреса 0 и на него передается управление. |
D6 | Enable Internal Cache. Checking if Ctrl Home was pressed and verifying the system BIOS checksum При несовпадении контрольной суммы или CTRL+Home выполняется переход на процедуру восстановления Flash ROM (Код E0) | Впервые с момента старта системы разрешается использование процессорного кэш L1. Контроллер клавиатуры программируется для ввода комбинации клавиш Ctrl+Home, по которой пользователь может форсировать выполнение процедуры восстановления Flash ROM. Проверка контрольной суммы BIOS выполняется только в режиме ускоренного прохождения POST, в штатной ситуации она переносится на следующий шаг. Если произошло хотя бы одно из этих событий, запускается процедура перезаписи Flash ROM. |
D7 | Transfer control to main BIOS Передача управления служебной программе, осуществляющей распаковку системного BIOS | При штатном прохождении POST выполняется подсчет контрольной суммы BIOS и, в случае успешной проверки, управление передается системному интерфейсному модулю, в задачу которого входит распаковка исполняемого кода и запись его в Shadow RAM. Современные версии AMIBIOS на этом завершают стартовую процедуру из Flash ROM, и POST продолжается из оперативной памяти. Существует ряд реализаций, в частности на некоторых платформах Intel, где перенос кода BIOS в RAM детализирован промежуточными процедурами D8-DC. Если контрольные суммы BIOS не совпадают, принимается решение о вызове процедуры перезаписи Flash ROM. Выполняется инициализации контроллера ввода-вывода (SIO) и управление передается на шаг E0h. |
D8 | The main system BIOS runtime code will be decompressed Полная распаковка системного BIOS | В ранних версиях AMIBIOS выполняется распаковка исполняемого кода в транзитный буфер по адресу 1000:0000. Необходимость временного хранения связана с тем, что копия BIOS в системной памяти не может быть создана до тех пор, пока не будет запрещен доступ к ROM. |
D9 | Passing control to the main system BIOS in shadow RAM Передача управления системному BIOS в Shadow RAM | Регистры системной логики настраиваются так, что обращение к Flash ROM перенаправляется на копию BIOS в Shadow RAM. Исполняемый код переносится из области временного хранения в сегмент F000. POST передает управление в контрольную точку 03. |
DA | Read SPD is over. Load CAS latency into memory controller Чтение информации из SPD (Serial Presence Detect) модулей DIMM | В зависимости от аппаратных особенностей платформы, выполняется чтение SPD из установленных модулей DIMM. По результатам опроса устанавливаются регистры чипсета, отвечающие за временные характеристики работы с памятью. Формируется значение Memory Top. |
DB | Use MTRRs to control memory access Настройка MTRR регистров центрального процессора | Платформы, построенные на процессорах AMD, выполняют настройку MTRR-регистров таким образом, чтобы перенаправить циклы обращения к памяти с шины ISA в область PCI-адресов. После включения кэш инициализация памяти завершается и выполняется запуск процедуры регенерации. |
DC | End of memory detection. RAM is in normal operation mode Контроллеры памяти программируются согласно данным, полученным из SPD | Регистры контроллера памяти программируются согласно значениям, полученным из SPD. Модули DIMM переводятся из командного режима в режим нормального функционирования. |
DD | Early initialization RTC and KBC Ранняя инициализация RTC, который интегрирован в SIO чип | Некоторые бортовые микросхемы ввода-вывода содержат RTC и контроллер клавиатуры, которые по включению питания находятся в отключенном состоянии. Цель BIOS - проинициализировать эти ресурсы платы для дальнейшего использования. Следует отметить, что отказ хотя бы одного из этих ресурсов повлечет нестарт системной платы в целом на первом же этапе выполнения POST. Если система находится в режиме энергосбережения, выполняется 5V Resume - возврат к полноценному функционированию: выполняется процедура, которая восстанавливает содержимое регистров контроллера памяти из CMOS. В этом случае управление передается в контрольную точку 11. |
DE | Invalid Memory Configuration Ошибка конфигурации системной памяти. Фатальная ошибка | Если в процессе инициализации возникает фатальная ошибка конфигурации памяти, в диагностический порт последовательно выводятся значения DF и DE, а следом за ними код ошибки. 2). На системный динамик выводится последовательность звуковых сигналов, соответствующая коду ошибки, увеличенному на 5. Выполнение POST прекращается. |
DF | Invalid Memory Configuration Ошибка конфигурации системной памяти |
|
E0 | Start recovery procedure Выполняется подготовка к перехвату INT19 и проверяется возможность старта системы в упрощенном режиме | Процедура восстановления BIOS выполняется, если пользователь форсировал программирование Flash ROM, удерживая по старту клавиши Ctrl+Home, либо при несовпадении контрольных сумм. В современных BIOS конфигурирование контроллера гибких дисков в составе SIO завершено еще на предыдущем этапе, а группа процедур, выполнявшихся ранее в точках E1, E2, E6 сведена к установке векторов прерываний и подготовке контроллера DMA. Выполняется подготовка к перехвату INT19 и проверяется возможность старта в упрощенном режиме. Если обнаружены ошибки, выводится предупреждение пользователю. См. комментарий к коду 11. |
E1 | Initializing the interrupt vector table Установка векторов прерываний | Установка векторов прерываний выполняется исходя из ограниченных возможностей загрузочного блока. В нем хранится Run-Time код, содержащий обработчики прерываний для процедуры перезаписи Flash ROM, который определяет сокращенный вариант сервиса. См. комментарий к коду 12. |
E2 | Restore CMOS and call VGA BIOS Восстановление содержимого CMOS, поиск и инициализация BIOS | См. комментарий к коду 14. |
E3 | Initializing the DMA and Interrupt controllers Подготовка контроллеров прерываний и непосредственного доступа к памяти | Инициализация контроллера DMA состоит в установке полярности сигналов DRQ и DACK, назначении приоритетов каналов и запрете удлиненного цикла записи. Для контроллера прерываний устанавливается режим прием запросов по фронту сигнала IRQ и назначается режим фиксированных приоритетов. Векторные прерывания IRQ0-IRQ7 картируются на INT8-INT0F, а IRQ8-IRQ15 - на INT70h-INT77. См. комментарий к коду 13. |
E6 | Enabling the floppy drive controller and Timer IRQs. Enabling internal cache memory Разрешение прерываний от системного таймера и FDC | Разрешаются прерывания от системного таймера IRQ0 и контроллера дисковода IRQ6, для этого в регистре маскирования запросов мастер-контроллера (порт 21) обнуляются биты 0 и 6. Для того чтобы читаемая информация была кэширована в Internal Cache, необходимо выполнение двух условий, объединенных по «И»: в регистре управления процессора CR0 бит 30 должен быть обнулен; при выполнении цикла чтения памяти сигнал разрешения кэширования KEN#, формируемый логикой, должен быть активен. |
EC | Initializing the DMA and Interrupt controllers Повторная инициализация контроллеров IRQ и DMA | Настройка контроллера прямого доступа к памяти и контроллера прерываний. Генерация таблицы векторов прерываний. |
ED | Initializing the floppy drive Инициализация дисковода | Инициализация дисковода состоит из ряда процедур, одна из которых предназначена для определения количества дорожек. Если дисковод 80-дорожечный, после позиционирования на цилиндр с номером 60 обратный ход на цилиндр 1 переводит сигнал track0 в пассивное состояние, а еще один шаг на цилиндр 0 - в активное. Если дисковод 40-дорожечный, при попытке позиционирования на цилиндр 60 головки упрутся в ограничитель, часть шаговых импульсов не будет отработана и собьется момент перехода с цилиндра 1 на 0, что обнаружится при анализе сигнала track0. Определяется продольная плотность записи для установленного носителя, для чего выполняется чтение при двух значениях тактовой частоты FDC, управляемой через порт 3F7h. Если успешное чтение имело место при обмене данными со скоростью 500 Кбит/с, принимается решение, что установлена дискета 1.2/1.44Mb, при 250 Кбит/с - 360/720Кb. По значению байта количества секторов в загрузочном секторе уточняется объем носителя. 15 sec/track соответствует дисководам объемом 1.2 Mb, а для устройств 1.44 Mb используется значение 18 sec/track. Размер устройства - 5.25« или 3.5» - для данной процедуры определять не обязательно, так как стоит задача получить информацию о дисководе и носителе достаточную для загрузки, при условии, что из CMOS ее брать нельзя. Если в процессе выполнение инициализации дисковода обнаружены ошибки, дальнейшее прохождение POST не выполняется. |
EE | Looking for a floppy diskette in drive A: Reading the first sector of the Diskette Чтение загрузочного сектора с дискеты | В современных реализациях AMIBIOS код EE - первый визуализируемый POST код, который выводится в диагностический порт при обращении к устройству, с которого возможна загрузка для восстановления BIOS. Повторный вызов процедуры чтения загрузочного сектора с дискеты (Cylinder:00, Head:00, Sector:01) выполняется на этапе восстановления BIOS. Если носитель не обнаружен, выводится приглашение пользователю «Insert diskette in A:». |
EF | A read error occurred while reading the floppy drive Ошибка дисковых операций | В эту точку управление передается, если обнаружены ошибки при дисковых операциях и с носителя не удалось прочитать загрузочный сектор. Сообщение об ошибках выводится на монитор, прохождение POST продолжается до успешного завершения операции. Если сбои при чтении вызваны аппаратными проблемами, неуспешные попытки чтения формируют бесконечный цикл, выход из которого требует вмешательства пользователя. |
F0 | Searching for the AMIBOOT.ROM file in the root directory Поиск файла AMIBOOT.ROM | По содержимому служебных полей загрузочного сектора определяется, где помещен корневой каталог, в котором выполняется поиск файла с именем AMIBOOT.ROM. Имя файла AMIBOOT.ROM - зарезервированная константа. Для успешного восстановления BIOS необходимо переименовать файл на гибком диске в соответствии с данным соглашением. |
F1 | The AMIBOOT.ROM file is not in the root directory В корневом каталоге файл AMIBOOT.ROM не найден | В эту точку управление передается при ошибке чтения корневого каталога либо если в нем не найден файл AMIBOOT.ROM. |
F2 | Reading and analyzing the floppy diskette FAT to find the clusters occupied by the AMIBOOT.ROM file Считывание FAT | Считывается FAT (File Allocation Table) дискеты и по содержимому каталога определяется начало кластерной цепочки, соответствующей файлу AMIBOOT.ROM. В случае, если файл с указанным именем не найден, выполняется безусловный переход в контрольную точку F1 для организации бесконечного цикла, выход из которого возможен только при успешном чтении файла с образом BIOS. |
F3 | Reading the AMIBOOT.ROM file, cluster by cluster Считывание AMIBOOT.ROM | На основании цепочки кластеров, описанной в FAT, считывается файл AMIBOOT.ROM. |
F4 | The AMIBOOT.ROM file is not the correct size Объем файла AMIBOOT.ROM не соответствует объему Flash ROM | В эту точку управление передается, если размер файла с образом BIOS не соответствует объему микросхемы Flash ROM, установленной на системной плате. |
F5 | Disabling internal cache memory Запрет Internal Cache | Путем установки в «1» бита 30 регистра CR0 запрещается Internal Cache для того, чтобы обеспечить когерентность данных при взаимодействии с Flash ROM. В противном случае, после считывания статусного регистра микросхемы все действия будут выполняться над кэш-копией. Процедура отключения кэш носит аппаратно-зависимый характер. Для некоторых наборов системной логики запрет кэш на данном шаге не выполняется, так как адресный регион, в котором находится Flash ROM, является некэшируемым. |
FB | Detecting the type of Flash ROM Определение типа Flash ROM | Определение типа Flash ROM выполняется, как правило, с помощью команды Read Intelligent Identifier. После её записи по любому адресу в регионе ROM, запоминающее устройство переключается из режима чтения памяти в режим ReadID. В таком состоянии из указанного региона будет читаться не содержимое ROM, а идентификаторы: по смещению 0 - Manufacturer Code; по смещению 1 - Device Code. Перед выполнением всех этих действий необходимо снять блокировку сигнала Flash WE, а также разрешить доступ к региону, для этого программируются регистры системной логики. |
FC | Erasing the Flash ROM Стирание основного блока Flash ROM | Flash ROM состоит из загрузочного блока, одного или нескольких блоков параметров и основного блока. Для стирания основного блока выполняется команда Erase Flash, состоящая из кодов Erase Setup и Erase Confirm. Flash ROM переходит в режим стирания и в его адресном пространстве считывается не содержимое, а статус, на основании которого процессор определяет момент завершения операции и ее успешность. |
FD | Programming the Flash ROM Программирование основного блока Flash ROM | Программирование основного блока выполняется по алгоритму, который специфицирован производителем запоминающего устройства. Как правило, для каждой записываемой ячейки передается команда, которая состоит из двух кодов: Program Setup и записываемого байта. Момент завершения и успешность операции записи контролируется по статусному регистру Flash ROM. Процесс циклически повторяется для всех ячеек основного блока. |
FF | Flash ROM programming was successful. Next, restarting the system BIOS Рестарт BIOS Коды распакованного системного BIOS, выполняемые в ShadowRAM (Runtime code is uncompressed in F000 shadow RAM) | В эту точку управление передается в случае успешного программирования FlashROM. Далее необходимо выполнить рестарт BIOS. Для этого выполняется команда прямого межсегментного перехода по адресу FFFF:0000 (CS=FFFF, IP=0000). |
10 | Issuing KBC blocking and unblocking command Ранняя инициализация контроллера клавиатуры | Клавиатуре передана команда сброса. В порт 64h посылаются команды C8/C9 разрешающие или запрещающие управление линией А20. В зависимости от аппаратной реализации используются выводы общего назначения Pin23 и Pin24, соответствующие первому и второму биту второго порта контроллера клавиатуры, совместимого по программной модели с 82С42. |
11 | Restore the DRAM registers Возврат из состояния STR (Suspend to RAM) | Возврат из состояния STR (Suspend to RAM) предполагает восстановление контента оперативной памяти. Для этого из CMOS считывается, а в регистры контроллера памяти записывается содержимое, актуальное к моменту выполнения STR. Запускаются схемы регенерации памяти. На некоторых платформах для обозначения данной процедуры используется код E0. |
12 | Reenable SMRAM. Setup MTRRs Восстановление доступа к SMRAM (System Management RAM) | Выполняется настройка System Management RAM (SMRAM) для процедуры обработки System Management Interrupt (SMI Handler). Регистры процессора MTRR настраиваются на обеспечение требуемых условий доступа к региону памяти в сегментах A000 и B000, картируемых на SMRAM. На некоторых платформах для обозначения данной процедуры используется код E1. |
13 | Restore the Refresh rate Восстановление регенерации памяти | Платформы, построенные на процессорах Intel, восстанавливают содержимое регистров контроллера памяти, отвечающих за регенерацию памяти. На платформах AMD данная процедура не выполняется. На некоторых платформах для обозначения данной процедуры используется код E2. |
14 | Restore CMOS and call VGA BIOS Поиск и инициализация VGA BIOS | Для платформ с интегрированным видео выполняется поиск и инициализация VGA BIOS. На некоторых платформах для обозначения данной процедуры используется код E3. |
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 |
звуки | ошибка |
---|---|
1 короткий | Ошибка регенерации памяти. Возможно, неисправен программируемый таймер прерываний или программируемый контроллер прерываний. |
2 коротких | Ошибка процедуры POST. Не прошла одна из проверок оборудования. |
3 коротких | Ошибка чётности памяти в первых 64K. Возможно, неисправна микросхема памяти. |
4 коротких | Ошибка системного таймера или первого банка памяти |
5 коротких | Ошибка процессора |
6 коротких | Ошибка линии управления A20. Неисправность контроллера клавиатуры, которая не позволяет переключить процессор в защищенный режим. |
7 коротких | Ошибка виртуального режима процессора |
8 коротких | Ошибка чтения/записи видеопамяти. Отсутствует или неисправен видеоадаптер. |
9 коротких | Контрольная сумма BIOS неверна |
10 коротких | Ошибка чтения/записи регистра управления питанием в энергонезависимой памяти (CMOS). Неисправность цепей управления питанием. |
11 коротких | Ошибка кэша 2-го уровня |
1 длинный | Все проверки прошли нормально - компьютер готов к загрузке операционной системы |
1 длинный, 1 короткий | Ошибка блока питания |
1 длинный, 2 коротких | Ошибка в ПЗУ BIOS-а видеокарты или ошибка гашения обратного хода строчной развертки |
1 длинный, 3 коротких | Обнаружена ошибка в памяти выше 64К |
1 длинный, 4 коротких | Отсутствие видеокарты |
1 длинный, 8 коротких | Проблемы с видеокартой, или не подключен монитор |
3 длинных | Оперативная память - тест чтения/записи завершен с ошибкой.3) |
непрерывный звуковой сигнал | Неисправность блока питания либо перегрев компьютера |
отсутствует + пустой экран | Неисправен процессор. Возможно, изогнута или сломана контактная ножка процессора. |