Инструменты пользователя

Инструменты сайта


services:tech-info:post-code:insyde

Insyde

Insyde Software is a company that specializes in UEFI system firmware and engineering support services, primarily for OEM and ODM computer and component device manufacturers. The company's product portfolio includes InsydeH2O BIOS (Insyde Software's implementation of the Intel Platform Innovation Framework for UEFI/EFI[1]) and Humanos, which is a software environment developed for open source operating systems on mobile computer platforms.

Insyde Software was formed when it purchased the BIOS assets of SystemSoft Corporation in October, 1998. Initially Insyde Software was a privately held company that included investment from Intel Pacific Inc., China Development Industrial Bank, Professional Computer Technology Limited (PCT), company management and selected employees.

InsydeBIOS Mobile Pro

Изучение контрольных точек InsydeBIOS затрудняется их нерегулярным по­стро­е­ни­ем самим производителем, когда различные по смыслу процессы за­груз­ки сопровождаются одними и теми же диагностическими кодами.
В дуальных ди­а­гно­сти­ческих системах существуют разнородности другого порядка: некоторые POST-коды отображаются только в один из портов без привычного в таких случаях дублирования - или Manufacture's Diagnostic Port 80h, или PIO Port (LPT-порт с адресом 378h).

POST-коды

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0F
    
    
    
    
    
60 61
    
88
99
A0 A1 A2 A3 A4 A5 A6 A7 A8 AE AF
BB
CC
    
E1 E2 EA EC ED EE
F0 F1
код название описание
00 Start of BootLoader sequence
Стартовая точка выполнения загрузочного блока
Сигнатура центрального процессора сохраняется в CMOS. Осуществляется первичное конфигурирование регистров системной логики, необходимое для дальнейших процедур
01 Disable A20 through A20 (not send)
Запрет линии A20 (не используется)
Манипуляции с линией А20 давно уже не входит в список необходимых действий на раннем этапе старта. Как правило, данный код встречается только как альтернатива предыдущей процедуре, полностью с ней совпадая по смыслу и содержанию
02 Initialize Chipset
Обновление микрокода центрального процессора
Вывод данного значения, как правило, дублируется в параллельный порт и следует непосредственно за кодом 00, предваряя процедуру обновления микрокода центрального процессора
03 Perform conventional RAM test with crossed-pattern R/W
Тестирование оперативной памяти
Выполняется проверка оперативной памяти (RAM) для организации области временного хранения. Полное несовпадение записанных и считанных данных позволяет сделать вывод об отсутствии оперативной памяти, после чего управление передается на код F0. Частичное несовпадение приводит к обработке ошибки RAM Test Failed на коде F1
04 Move BootLoader into the RAM
Перенос загрузочного блока в оперативную память
Содержимое загрузочного блока BIOS переносится в область временного хранения в оперативной памяти. Несовпадение контрольных сумм приводит к переходу на ветку восстановления BIOS (код 0A)
05 Start point of execution of BootLoader in RAM
Выполнение загрузочного блока из оперативной памяти
Упакованные модули Boot Loader распаковываются по заранее установленным фиксированным адресам в оперативной памяти.
06 User Flash Check
Форсирование процедуры восстановления Flash ROM
На платформах с параллельным портом форсируется процедура восстановления BIOS. Под форсированием понимается поиск установленного на параллельном порту устройства, наличие которого препятствует штатному прохождению POST, выполняя принудительное программирование Flash ROM со сменного носителя (FDD, CD-ROM). Предполагается, что носитель форматирован в соответствии с требованиями процедуры Crisis Boot и содержит файл с образом BIOS и утилиту программирования FlashIt
07 Shadow system BIOS
Перенос системного BIOS в оперативную память
Код BIOS переносится из буфера временного хранения в закрепленную за ним область в оперативной памяти. Сбои при выполнении операции носят фатальный характер, поэтому выполнение загрузки прекращается, а на системный динамик выводится звуковой сигнал
08 Checksum System BIOS ROM
Верификация контрольной суммы системного BIOS
Если контрольная сумма BIOS в оперативной памяти верная, выполнение загрузочного блока завершается, и управление передается следующей процедуре Normal Boot. В противном случае управление передается на процедуру восстановления BIOS - Crisis Boot и сопровождается звуковым сигналом
09 Proceed with Normal Boot
Запуск процедуры POST
Управление загрузкой передаётся процедуре POST (код 10). Для этого исполняемый код POST перемещается из области временного хранения в область выполнения, затирая код Boot Loader
0A Proceed with Crisis boot
Запуск процедуры восстановления Flash ROM с накопителя FDD
Штатный режим выполнения загрузочного блока переходит в фазу восстановления BIOS. Перед этим проверяется сам факт наличия кризисного кода и его достоверность. Обнаруженные ошибки препятствуют дальнейшему выполнению, а на системный динамик выводится последовательность длинных и коротких звуковых сигналов
0B Initialize Clock Sythesizer
Инициализация синтезатора частот
Программная инициализация частотного синтезатора сопровождается выводом диагностического кода только на некоторых платформах и не всегда выполняется на раннем этапе старта
0C Halt at Crisis boot
Завершение процедуры восстановления BIOS
Выполняется остановка процедуры Crisis Boot, если в ходе её выполнения возникли следующие ситуации, препятствующие восстановлению BIOS: * неисправен или отсутствует накопитель FDD * отсутствует носитель в приводе FDD * ошибка чтения FDD * формат данных на дискете не соответствует требованиям Crisis Boot
0D Alternate Crisis boot
Альтернативная процедура восстановления Flash ROM с FDD
Индикация кода 0D характерна для ранних реализаций Boot Loader. Его выполнение аналогично процедуре восстановления BIOS (Crisis Boot) и в настоящее время не используется
0F Fatal Error
Остановка в случае возникновения фатальной ошибки
Неисправимая ошибка, препятствующая дальнейшему выполнению загрузочного блока. Если не обнаружена оперативная память, выводится код F0 и последовательность коротких звуковых сигналов. Если обнаружена ошибка оперативной памяти, выводится код F1 и последовательность коротких звуковых сигналов, завершающаяся длинным
60 Read SPD from DIMM
Переход в режим Big Real Mode
Для чтения информации Serial Presence Detect (SPD) устанавливается режим Big Real Mode и выполняются процедуры конфигурирования SMBus контроллера. Процедура может выполняться по одному из следующих алгоритмов: * абсолютная адресация DIMM-модулей, когда SPD каждого из них вычитывается по уникальному адресу; * инвариантная адресация применяется в случае, когда доступ к SPD разных модулей выполняется по одному и тому же адресу, а выбор устройства осуществляется путем коммутации сигнала DRAM Enable контроллером SIO
61 Store SPD in CMOS
Инициализация SM Bus, данные SPD сохраняются в CMOS
Доступ к SPD по SMBus завершился успешно. Данные SPD сохраняются в неиспользуемых системой ячейках CMOS для того, чтобы дальнейший их анализ выполнялся без участия аппаратных средств платформы
88 ACPI Initialization Complete
Разрешение функций ACPI
Начальная инициализация функций ACPI - формирование доступа к портам SMBus-контроллера и разрешение форвардинга LPC для диапазонов адресов COM-, LPT- и FDC-портов
99 Error during returning from suspend to RAM
Ошибка при выходе из режима STR
Если в процессе раннего старта установлено, что система находится в Suspend to RAM, но выход из этого состояния невозможен по каким-либо причинам, выполняется стандартная процедура инициализации. В диагностический порт выводится значение 99, а управление передается в точку, с которой начинается инициализация системной логики
A0 Check SPD
Чтение и анализ полей SPD, ранее сохраненных в CMOS
Для каждого модуля DIMM выполняется чтение и анализ полей его SPD, ранее сохраненных в CMOS. Код A0 выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
A1 Set up CAS Latency
Инициализация контроллера памяти
Контроллер памяти инициализирован значениями CAS Latency для каждого модуля DIMM в зависимости от результатов, полученных из соответствующих SPD. Запускается процедура инициализации регистров контроллера, расположенных в пространстве памяти. Если в процессе работы возникнут фатальные ошибки, приводящие к прекращению POST, диагностический порт отобразит код A1, как последнее записанное значение
A2 Detecting a Number of Logical Banks
Определение логических банков модуля DIMM
Анализ параметров SPD из образа, ранее сохраненного в Extended CMOS: * количество логических банков модуля DIMM * разрядность адреса строки * разрядность адреса столбца Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A3 Programming DRAM Row Boundary
Программирование регистров DRB (DRAM Row Boundary)
Программирование регистров контроллера памяти DRAM Row Boundary, управляющих базовыми адресами и размерами физических банков памяти. Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A4 Programming DRAM Row Attributes
Программирование регистров DRA (DRAM Row Attributes)
Программирование регистров контроллера памяти DRAM Row Attributes, управляющих размерами страниц памяти (Row Page Size). Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A5 Check Number of Columns and Rows Выбор очередного модуля DIMM для анализа его организации. Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A6 Check Number of Columns and Rows (continue) Подготовка к анализу организации модулей DIMM по информации из SPD. Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A7 Check Number of Columns and Rows (continue) Определение количества адресных линий по столбцам и строкам на основании информации, полученной из SPD и хранящейся в CMOS. Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
A8 Check Number of Columns and Rows (continue) Анализ организации очередного DIMM модуля завершен. Код выводится в диагностический порт столько раз, сколько в системе установлено модулей DIMM
AE Warning: ECC not supported!
В системе обнаружены модули DIMM, которые разнятся между собой функциями Error Correcting Codes (ECC)
В системе обнаружены модули DIMM, которые разнятся между собой в смысле функциональности ECC. Код AE выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
AF Initialization Memory Mapped Registers Complete
Первичная инициализация регистров контроллера памяти,отображаемых в пространстве памяти
Первичная инициализация регистров контроллера памяти, отображаемых в пространстве памяти, завершена. В отличие от регистров, находящихся в пространстве портов ввода-вывода, Memory Mapped регистры требуют блокировку доступа к ним на финальном этапе инициализации с тем, чтобы скрыть их наличие от стандартных процедур PCI PnP
BB Early Initialization Complete
Ранняя инициализация LPC SIO
Ранняя инициализация состоит из поиска и идентификации контроллера SIO, а на современных платформах дополняется процедурой, определяющей тип шинного интерфейса, которым он подключён: ISA или LPC. Затем выбирается источник тактирования и выполняется разрешение тактирования. В режиме конфигурирования осуществляется настройка регистров контроллера ввода-вывода и управление передается на код 00
CC Start Crisis Recovery procedure
Стартовая точка начала восстановления Flash ROM
В процедуру восстановления BIOS управление передается после выполнения кода 0Ah. Сама процедура к этому моменту распаковывается из Boot Block в оперативную память и сопровождается настройкой регистров системной логики для работы в ограниченном режиме mini-OS
E1 SPD not found
Модуль DIMM не оснащен микросхемой SPD
Выполнение загрузочной процедуры прекращается, если модуль DIMM не оснащен микросхемой SPD либо чтение её содержимого закончилось неудачей. Существует 2 алгоритма чтения, каждый из которых связан с аппаратными особенностями платформы. В одном случае доступ к SPD выполняется по адресу на шине SMB, в другом - путем манипуляций с сигналом DRAM Data Select (DRAMENA). Код выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
E2 Installed Memory Type not supported
Тип модуля DIMM не соответствует требованиям системы
В процессе анализа SPD установлено, что тип модуля DIMM не соответствует требованиям системы. Например, если платформа поддерживает DDR память, а установлен модуль SDRAM. Код выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
EA DIMM is not OK for this system
Min время между активацией DIMM-модуля и переходом в состояние регенерации не соответствует системным требованиям
Не соответствует системным требованиям время между активацией строк DIMM модуля и переходом в состояние регенерации. В эту точку управление передается также и в том случае, если модуль не в состоянии обеспечить min паузу между выдачей сигналов Raw Access Strobe (RAS) и Column Access Strobe (CAS). Код выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
EC Registered DIMM not supported
Регистровые модули DIMM не поддерживаются
Ошибка возникает, если используются повторители, буферные регистры или FET-ключи для сигналов DIMM. Код выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
ED DIMM has bad latency parameter
Проверка режимов CAS Latency
Проверка поддержки хотя бы одного из режимов CAS Latency: * для модулей SDR - 3 или 2; * для модулей DDR - 2.5, 2 или 1.5. Код выводится в диагностический порт дважды и, как правило, дублируется в параллельный порт
EE Early Initialization Failed
Модуль DIMM не поддерживается системной платой
Организация модуля DIMM не поддерживается аппаратной реализацией системной платы - количество адресных линий, обеспечивающих доступ по строкам и столбцам, не соответствует техническим требованиям. Выполнение POST прекращается после того, как в служебной таблице не найдена организация одного или нескольких банков памяти.
F0 Fatal Error: No RAM
Неисправимая ошибка: нет оперативной памяти
Неисправимая ошибка в случае, если оперативная память не обнаружена. На системный динамик выводится последовательность коротких звуковых сигналов.
F1 Fatal Error: RAM test failed
Неисправимая ошибка: не пройден тест оперативной памяти
Если обнаружена ошибка оперативной памяти, этот код выводится в диагностический порт, а на системный динамик посылается последовательность коротких звуковых сигналов, завершающаяся длинным сигналом. Такая ошибка становится фатальной, и дальнейшее выполнение загрузочного блока прекращается.

Звуковые сигналы

Логика формирования диагностических звуковых сигналов прозрачна и очевидна:


код ошибки уве­ли­чи­ва­ет­ся на единицу
и разбивается на 2 группы по 3 бита в каждой

На­при­мер, так:

**07** -> **08** = 001 - 000

На основании полученного кода строится аудиосообщение, в котором нули за­ме­ща­ют­ся короткими звуковыми сигналами, единицы - длинными, а раз­де­ли­тель между группами становится паузой:

**07** = ККД пауза ККК пауза

, где К - короткие звуковые сигналы, Д - длинные.

# код описание
0 ККК ККД Ошибка доступа к DMA-регистрам
1 ККК КДК Ошибка схем регенерации памяти
2 ККК КДД Ошибка контрольной суммы BIOS
3 ККК ДКК Ошибка CMOS-памяти
4 ККК ДКД Сбои DMA-контроллера
5 ККК ДДК Сбои PIC-контроллера
6 ККК ДДД Сбои контроллера клавиатуры
7 ККД ККК VGA-адаптер не обнаружен
8 ККД ККД Оперативная память не обнаружена

InsydeH2O (EFI BIOS)

POST-коды

Флагманский продукт Insyde Software - InsydeH2O пришёл на смену обычному БИОСу MobilePRO в конце 2003-начале 2004 гг. и получил широкое распространение на бюджетных ноутбуках HP, Toshiba, Acer, большинство из которых используют мобильные платформы про­из­вод­ства Arima, Compal, Inventec или Quanta.

Важным фактом стало распространение InsydeH2O на рынке деск­топ­ных компьютеров, в частности - на платформах Intel (таких, как D201GLY или DH61AG). Согласно информации, размещённой на сайте Insyde Software, новая UEFI-версия с успехом используется и на серверных платформах.

Запуск InsydeH2O в соответствии со спецификацией EFI выполняется со стар­то­вой фазы SEC (Security Code Module). В за­ви­си­мос­ти от установки параметра NO_EVICTION_MODE_DEBUG, разрешающего ге­не­ра­цию POST-кодов, выбирается тот или иной сценарий старта платформы пос­ле подачи питающих напряжений, либо в связи с отработкой сигнала системного сброса. Из этого следует, что на тех платформах, где Debug-режим запрещен, по старту диагностическая плата не сможет зарегистрировать POST-коды, воз­ни­ка­ю­щие в SEC-фазе.

Кроме того, в отличие от классического перечня контрольных точек, ко­то­рый может как дополняться, так и сокращаться, существует семантическая за­ви­симость значений диагностических POST-кодов от производителя центрального про­цессора. Сегодня мож­но с уверенностью сказать, что решения на AMD тяготеют к выдаче диагностических кодов, начинающихся со значения C0, на 80-й порт, тогда как Intel-платформы используют новую ко­ди­фи­ка­цию, на­чи­на­ю­щу­ю­ся с POST-кода 01.

Для того чтобы избежать дезинформации, приводим оба сценария вы­пол­не­ния BIOS в стартовой SEC-фазе, условно называя их классическим и об­нов­лен­ным подходами к диагностике систем.

00 01 02 03 04 05 06 07 08 09 0A 0B
10 1F
C0 C1 C2 C3 C4 C5
D0 D1
FF
services/tech-info/post-code/insyde.txt · Последние изменения: 2012/11/20 17:47 (внешнее изменение)