下表按 POST 代码的生成顺序列出了对 POST 代码的描述。POST 代码显示为一个四位数的字符串,该字符串由主 I/O 端口 80 的两位数输出和辅助 I/O 端口 81 的两位数输出组成。在下面列出的 POST 代码中,前两位数来自端口 81,后两位数来自端口 80。
Post 代码 |
描述 |
---|---|
D0 |
早期启动捆绑处理器 (Boot Strap Processor, BSP) 初始化,例如微代码更新、频率和其他 CPU 关键初始化。早期芯片组初始化已经完成。 |
Before D1 |
早期芯片组初始化已经完成。早期超级 I/O 初始化(包括 RTC 和键盘控制器初始化)已经完成。已禁用 NMI。 |
D1 |
早期超级 I/O 初始化(包括 RTC 和键盘控制器初始化)已经完成。此时,如果调试需要,则启用串行端口。已禁用 NMI。执行键盘控制器 BAT 测试。将加电 CPUID 值保存在可擦写 CMOS 中。转至具有 4GB 限制的平面模式 (flat mode) 并启用 GA20。 |
D2 |
验证引导块校验和。如果校验和出错,则系统将挂起。 |
Before D3 |
HT 将链路频率和宽度设置为其终值。为了使最终(最佳)HT 链路频率和宽度生效,而生成了热复位。 |
D3 |
在检测内存之前禁用 CACHE。执行完整的内存大小调整模块。如果未执行内存大小调整模块,则启动内存刷新并在引导块代码中调整内存大小。执行附加芯片组初始化。重新启用 CACHE。验证是否已启用平坦模式。 |
07 |
内存 DQS Training 和 DRAM ECC 初始化。启用了在 ECC 之后首次内存清理。根据在 "BIOS Setup" 菜单中选择的值,设置最终的 ECC 清理速率。 |
D4 |
测试基本的 512KB 内存。调整策略并缓存前 8MB。设置堆栈。 |
D5 |
引导块代码将从 ROM 复制到低层系统内存,同时移交控制权。现在 BIOS 从 RAM 中执行。将压缩的引导块代码复制到内存中的相应段。将 BIOS 从 ROM 复制到 RAM 以加快访问速度。执行主 BIOS 校验和并相应地更新恢复状态。 |
D6 |
检查键序和特定于 OEM 的方法,以确定是否已强制执行 BIOS 恢复。如果必须执行 BIOS 恢复,则控制权交给检查点 E0。 |
D7 |
将 CPUID 值重新恢复到寄存器中。引导块-运行时接口模块将移至系统内存,同时移交控制权。确定是否执行串行快闪。 |
D8 |
运行时模块将被解压缩到内存中。CPUID 信息将存储在内存中。 |
D9 |
存储已解压缩的指针,以便将来在 PMM 中使用。将主 BIOS 复制到内存中。保留低于 1MB 读写的所有 RAM(包括 E000 和 F000 阴影区域),但关闭 SMRAM。 |
DA |
将 CPUID 值重新恢复到寄存器中。将控制权交给 BIOS POST。 |
03 |
在执行实际 BIOS POST 之前的全局初始化。将 BIOS 数据区 (BIOS Data Area, BDA) 变量初始化为其默认值。初始化 POST 数据变量。已禁用 NMI、奇偶校验、EGA 视频和 DMA 控制器。 |
4203 |
南桥早期初始化-初始化南桥 I/O 解码范围。 |
5003 |
OEM 早期初始化代码-如果设置了跳线,则清除管理员/用户密码。 |
6003 |
早期 HyperTransport 初始化-初始化 HyperTransport FIFO 指针优化寄存器。检查 HyperTransport Sync Flood 并报告错误。 |
04 |
检查 CMOS 诊断字节以确定电池电量是否充足以及 CMOS 校验和是否正确。通过读取存储区域手动验证 CMOS 校验和。如果 CMOS 校验和出错,则使用加电默认值对 CMOS 进行更新并清除密码。初始化状态寄存器 A。初始化那些基于 CMOS 设置问题的数据变量。初始化系统中的两个 8259 兼容 PIC。 |
05 |
初始化中断控制硬件(一般为 PIC)和中断向量表。 |
06 |
初始化 8254 计时器-对 CH-2 计数寄存器进行 R/W 测试。将 CH-0 初始化为系统计时器。安装 POSTINT1Ch 处理程序。为系统计时器中断启用 PIC 中的 IRQ-0。捕获指向 "POSTINT1ChHandlerBlock" 的 INT1Ch 向量。 |
8601 |
初始化 BMC 接口。禁用 BMC 监视程序计时器。将 BMC 系统事件日志计时器初始化为 RTC 时钟中设置的时间。 |
DEB4 |
检查 BMC 事件日志区域是否有效/已满,并在无效或已满时显示错误。 |
08 |
禁用所有 CPU 的高速缓存 |
C0 |
早期 CPU 初始化启动-初始化本地 APIC |
C1 |
设置启动捆绑处理器信息 |
C2 |
为 POST 设置启动捆绑处理器。这包括频率计算、装入 BSP 微代码,以及针对 GART 错误报告设置问题应用用户请求的值。 |
C3 |
将勘误表解决方法应用于 BSP |
C5 |
枚举并设置应用程序处理器。这包括微代码装入和勘误表解决方法。 |
C6 |
重新启用启动捆绑处理器的高速缓存,并在 BSP 中应用勘误表解决方法(如果适用)。如果是混合的 CPU 步进,则查找并记录错误,同时查找并应用适合于所有 CPU 的频率。注:AP 保持 CLI - HLT 状态。 |
0B |
检测是否有 PS/2 鼠标。 |
0C |
检测 KBC 端口是否连接了键盘。 |
0E |
对各种输入设备进行测试和初始化,并更新内核变量。捕获 INT09h 向量,使 POST INT09h 处理程序获得对 IRQ1 的控制权。解压缩所有可用语言、BIOS 徽标和无交互的徽标模块。 |
13 |
在早期 POST 时初始化 PM 寄存器和 PM PCI 寄存器。如果系统支持多主机网桥,则对其进行初始化。在清除内存前设置 ECC 选项。REDIRECTION 会使已修正的数据立即写入 RAM。CHIPKILL 提供 x4 类型内存的 4 位错误检测/纠正。启用装在 8131 中的 PCI-X 时钟。 |
4113 |
在早期 POST 时,根据安装配置初始化 NB 设备。根据安装配置初始化 H2PCI 网桥寄存器。 |
42C1 |
初始化南桥设备寄存器。 |
20 |
将所有 CPU 重定位到唯一的 SMBASE 地址。BSP 的入口点将被设置为 A000:0。如果板上的 CPU 插槽少于 5 个,则后续的 CPU 入口点要相距 8000h 字节。如果有 4 个以上 CPU 插槽,则入口点相距 200h 字节。CPU 模块将负责将 CPU 重定位到正确的地址。注:AP 保持 INIT 状态。 |
24 |
解压缩并初始化任何特定于平台的 BIOS 模块。 |
30 |
初始化系统管理中断。 |
2A |
通过 DIM 初始化各种设备。 |
2C |
初始化各种设备。检测并初始化安装在配有可选 ROM 的系统中的视频适配器。 |
2E |
初始化所有输出设备。 |
31 |
为 ADM 模块分配内存并将其解压缩。将控制权交给 ADM 模块以进行初始化。初始化 ADM 的语言模块和字体模块。激活 ADM 模块。 |
33 |
初始化无提示引导模块。设置窗口以显示文本信息。 |
37 |
显示登录消息、CPU 信息、设置密钥消息和任何特定于 OEM 的信息。 |
DEBD |
显示 Sun 产品名称。 |
4137 |
显示北桥信息。 |
4237 |
显示南桥信息。 |
DEB8 |
显示刀片序列号和服务处理器固件版本号。 |
38 |
通过 DIM 初始化各种设备。 |
DEB1 |
将 CPU、BIOS 版本和 DIMM 信息发送到服务处理器。 |
39 |
初始化 DMAC-1 和 DMAC-2。 |
3A |
初始化 RTC 日期/时间。 |
DEBD |
对系统中安装的总内存进行测试。此外,检查 Del 键或 Esc 键以限制内存测试。显示系统中的总内存。 |
3C |
至此,RAM 读/写测试已经完成,设定内存空洞或进行任何与 NB 相关的 RAM 大小调整。测试 HT 模块是否找到了 MP 环境的引导块和 CPU 兼容性错误。 |
40 |
检测成功安装在系统中的各种设备(并行端口、串行端口以及 CPU 中的协处理器),并更新 BDA 和 EBDA。 |
50 |
如果需要,对内存空洞或需要调整系统 RAM 大小的各种实现进行设定。 |
52 |
根据内存测试中找到的内存来更新 CMOS 内存大小。从基本内存中为扩展的 BIOS 数据区分配内存。 |
60 |
初始化 NUM-LOCK 状态并设定 KBD 击键速率。 |
75 |
初始化 Int-13 并准备 IPL 检测。 |
78 |
初始化由 BIOS 和选项 ROM (Option ROM) 控制的 IPL 设备。 |
7A |
初始化其余选项 ROM (Option ROM)。 |
7C |
生成 ESCD 内容并将其写入 NVRAM。 |
84 |
记录 POST 期间出现的错误。 |
85 |
向用户显示错误,并获得用户对错误的响应。 |
87 |
如果需要或要求,则执行 BIOS 设置程序。 |
8C |
所有设备初始化完毕之后,设定所有与 NB/SB 相关的用户可选参数(例如计时参数、不可缓存区域和阴影 RAM 高速缓存能力),并执行任何其他在后期 POST 期间所需的特定于 NB/SB/PCIX/OEM 的设定。DRAM 以及 L1 和 L2 高速缓存的后台清理将根据安装配置进行设置。计算每个节点的 DRAM 清理限制。在此应用勘误表 #101 的解决方法。 |
DEB1 |
设定 PCI 子系统供应商和设备 ID。 |
8D |
生成 ACPI 表(如果支持 ACPI) |
8E |
设定外围设备参数。根据所做选择启用/禁用 NMI。 |
8600 |
如果设置中禁用了 BMC 监视程序计时器,则重新启用它。 |
90 |
对系统管理中断的后期 POST 初始化。 |
A0 |
如果安装了引导密码,则对其进行检查。 |
A1 |
引导到 OS 之前所需的清理工作。 |
A2 |
为各种 BIOS 模块准备运行时映像。用 0FFh 段中的数据填充 F00h 段中的空闲区。初始化 Microsoft IRQ 路由表。准备运行时语言模块。如果需要,禁用系统配置显示。 |
A4 |
初始化运行时语言模块。 |
A7 |
显示系统配置屏幕(如果已启用)。引导前初始化 CPU,包括设定 MTRR。 |
A8 |
为 OS 引导准备 CPU,包括设定 MTRR 终值。 |
A9 |
如果需要,在显示配置屏幕时等待用户输入。 |
AA |
卸载 POST INT1Ch 向量和 INT09h 向量。取消对 ADM 模块的初始化。 |
AB |
为 Int 19 引导准备 BBS。 |
AC |
在 POST 结尾且刚好在将控制权交给用于引导到 OS 的运行时代码之前,需要进行的特定于任一种芯片组 (NB/SB0) 的设定。已设定系统 BIOS(0F0000h 阴影 RAM)高速缓存能力。通过移植来进行在 POST 结尾所需的任何特定于 OEM 的设定。将特定于 OEM 的数据从 POST_DSEG 复制到 RUN_CSEG。 |
00 |
BIOS POST 的结尾。通过将 BSP 的所有上下文复制到现有的所有应用程序处理器,来为引导到 OS 准备 CPU。注:AP 保持 CLI - HLT 状态。 |