AMI Aptio状态码是AMI UEFI BIOS启动阶段用于指示进度的数值。它的一个子集是检查点(Check Point)。检查点通常输出到Port 80,但Aptio 4.x内核也可以配置成从其它端口输出。由于这个状态码主要用于调试和排除故障,所以常常被称为故障诊断代码。

          在执行传统BIOS功能时,Aptio 4.0内核遵循英特尔 EFI 平台创新框架描述的固件模型。该框架引用了以下“Boot阶段”。

SEC(Security,安全性):低级初始化

PEI(Pre-EFI Initialization,Pre-EFI初始化):内存初始化

DXE(Driver Execution Environment,驱动程序执行环境):主要是硬件初始化

DBS(Boot Device Selection,启动设备选择):系统设置、Pre-OS(预操作系统)用户界面和选择可引导设备(CD/DVD、HDD、USB、网络、外壳……)

以下各表,是检查点代码、Beep代码详细说明。检查点代码范围,如下表所示 :

状态码范围 说明
0x01 – 0x0B SEC 执行
0x0C – 0x0F SEC 错误
0x10 – 0x2F PEI 执行直至并包括内存检测
0x30 – 0x4F 内存检测后PEI执行
0x50 – 0x5F PEI 错误
0x60 – 0x8F DXE 执行至 BDS
0x90 – 0xCF DBS执行
0xD0 – 0xDF DXE 错误
0xE0 – 0xE8 S3休眠恢复(PEI)
0xE9 – 0xEF S3 休眠恢复错误 (PEI)
0xF0 – 0xF8 恢复 (PEI)
0xF9 – 0xFF 恢复错误 (PEI)

标准检查点 , SEC阶段 :

状态码 说明
0x00 没有使用
进度代码
0x01 上电。复位类型侦测。(软复位还是硬复位)
0x02 加载Microcode之前AP初始化
0x03 加载Microcode之前北桥初始化
0x04 加载Microcode之前南桥初始化
0x05 加载Microcode之前OEM初始化
0x06 加载Microcode
0x07 加载Microcode之后AP初始化
0x08 加载Microcode之后北桥初始化
0x09 加载Microcode之后南桥初始化
0x0A 加载Microcode之后OEM初始化
0x0B 缓存(Cache)初始化
SEC错误代码
0x0C – 0x0D 保留给将来使用
0x0E Microcode没有找到
0x0F Microcode没有加载

SEC阶段没有Beep代码 , PEI阶段 :

状态码 说明
进度码
0x10 PEI内核已启动
0x11 内存前CPU初始化开始
0x12 内存前CPU初始化(特定于CPU模块)
0x13 内存前CPU初始化(特定于CPU模块)
0x14 内存前CPU初始化(特定于CPU模块)
0x15 内存前北桥初始化开始
0x16 内存前北桥初始化(特定于北桥模块)
0x17 内存前北桥初始化(特定于北桥模块)
0x18 内存前北桥初始化(特定于北桥模块)
0x19 内存前南桥初始化开始
0x1A 内存前南桥初始化(特定于南桥模块)
0x1B 内存前南桥初始化(特定于南桥模块)
0x1C 内存前南桥初始化(特定于南桥模块)
0x1D – 0x2A OEM内存前初始化代码
0x2B 内存初始化,SPD(Serial Presence Detect)数据读取
0x2C 内存初始化。内存存在检测
0x2D 内存初始化。编程内存时序信息
0x2E 内存初始化。配置内存
0x2F 内存初始化(其他)。
0x30 为 ASL 保留(请参阅下面的 ASL 状态代码部分)
0x31 内存已安装
0x32 内存后CPU初始化开始
0x33 内存后CPU初始化。缓存(Cache)初始化
0x34 内存后CPU初始化。应用处理器(AP)初始化
0x35 内存后CPU初始化。自举处理器 (BSP) 选择
0x36 内存后CPU初始化。系统管理模式 (SMM) 初始化
0x37 内存后北桥初始化开始
0x38 内存后北桥初始化(特定于北桥模块)
0x39 内存后北桥初始化(特定于北桥模块)
0x3A 内存后北桥初始化(特定于北桥模块)
0x3B 内存后南桥初始化开始
0x3C 内存后南桥初始化(特定于南桥模块)
0x3D 内存后南桥初始化(特定于南桥模块)
0x3E 内存后南桥初始化(特定于南桥模块)
0x3F-0x4E OEM内存后初始化代码
0x4F DXE IPL 启动
PEI错误代码
0x50 内存初始化错误。内存类型无效或内存速度不兼容
0x51 内存初始化错误。 SPD 读取失败
0x52 内存初始化错误。内存大小无效或内存模块不匹配。
0x53 内存初始化错误。未检测到可用内存
0x54 未指定的内存初始化错误。
0x55 未安装内存
0x56 CPU 类型或速度无效
0x57 CPU 不匹配
0x58 CPU 自检失败或可能CPU 缓存错误
0x59 CPU Microcode没有找到或更新失败
0x5A 内部 CPU 错误
0x5B 重置 PPI 不可用
0x5C-0x5F 保留给将来使用
S3 恢复进度代码
0xE0 S3 Resume 已启动(S3 Resume PPI 由 DXE IPL 调用)
0xE1 S3 Boot脚本执行
0xE2 视频转发
0xE3 OS S3 唤醒向量调用
0xE4-0xE7 保留给将来使用
S3恢复错误代码
0xE8 S3 恢复失败
0xE9 S3 恢复 PPI未找到
0xEA S3 恢复Boot脚本错误
0xEB S3 操作系统唤醒错误
0xEC-0xEF 保留给将来使用
恢复(Recovery)进度代码
0xF0 固件触发的恢复条件(自动恢复)
0xF1 用户触发的恢复条件(强制恢复)
0xF2 恢复(Recovery)过程开始
0xF3 找到恢复固件映像
0xF4 恢复固件映像已加载
0xF5-0xF7 保留给将来使用
恢复(Recovery)错误代码
0xF8 恢复 PPI 不可用
0xF9 Recovery capsule未找到
0xFA Recovery capsule无效
0xFB – 0xFF 保留给将来使用

PEI Beep代码 :

哔声数 说明
1 未安装内存
1 内存安装了两次(PEI Core 中的 InstallPeiMemory 例程调用了两次)
2 恢复(Recovery)开始
3 未找到 DXEIPL
3 未找到 DXE 核心固件卷
4 恢复(Recovery)失败
4 S3 Resume失败
7 重置 PPI 不可用

DXE 阶段 :

状态码 说明
0x60 DXE内核启动
0x61 NVRAM 初始化
0x62 初始化南桥Runtime服务
0x63 CPU DXE初始化开始
0x64 CPU DXE 初始化(特定于 CPU 模块)
0x65 CPU DXE 初始化(特定于 CPU 模块)
0x66 CPU DXE 初始化(特定于 CPU 模块)
0x67 CPU DXE 初始化(特定于 CPU 模块)
0x68 PCI 主机桥初始化
0x69 北桥DXE初始化开始
0x6A 北桥DXE SMM初始化开始
0x6B 北桥 DXE 初始化(特定于北桥模块)
0x6C 北桥 DXE 初始化(特定于北桥模块)
0x6D 北桥 DXE 初始化(特定于北桥模块)
0x6E 北桥 DXE 初始化(特定于北桥模块)
0x6F 北桥 DXE 初始化(特定于北桥模块)
0x70 南桥DXE初始化开始
0x71 南桥DXE SMM初始化启动
0x72 南桥设备初始化
0x73 南桥 DXE 初始化(特定于南桥模块)
0x74 南桥 DXE 初始化(特定于南桥模块)
0x75 南桥 DXE 初始化(特定于南桥模块)
0x76 南桥 DXE 初始化(特定于南桥模块)
0x77 南桥 DXE 初始化(特定于南桥模块)
0x78 ACPI 模块初始化
0x79 CSM 初始化
0x7A - 0x7F 保留给将来使用
0x80 – 0x8F OEM DXE 初始化代码
BDS阶段
0x90 启动设备选择 (BDS) 阶段
0x91 驱动连接开始
0x92 PCI 总线初始化开始
0x93 PCI 总线热插拔控制器初始化
0x94 PCI 总线枚举
0x95 PCI 总线请求资源
0x96 PCI 总线分配资源
0x97 控制台输出设备连接
0x98 控制台输入设备连接
0x99 Super IO 初始化
0x9A USB 初始化开始
0x9B USB 重置
0x9C USB 检测
0x9D USB 启用
0x9E - 0x9F 保留给将来使用
0xA0 IDE初始化开始
0xA1 IDE 重置
0xA2 IDE 检测
0xA3 IDE 启用
0xA4 SCSI 初始化开始
0xA5 SCSI 重置
0xA6 SCSI 检测
0xA7 启用 SCSI
0xA8 设置验证密码
0xA9 开始Setup
0xAA 为 ASL 保留(请参阅下面的 ASL 状态代码部分)
0xAB Setup输入等待
0xAC 为 ASL 保留(请参阅下面的 ASL 状态代码部分)
0xAD 准备Boot事件
0xAE 传统Boot事件
0xAF 退出Boot服务事件
0xB0 Runtime设置虚拟地址 MAP 开始
0xB1 Runtime设置虚拟地址 MAP 结束
0xB2 传统选项 ROM 初始化
0xB3 系统复位
0xB4 USB 热插拔
0xB5 PCI 总线热插拔
0xB6 清理 NVRAM
0xB7 配置重置(重置NVRAM 设置)
0xB8 – 0xBF 留给将来使用
0xC0 – 0xCF OEM BDS 初始化代码
DXE错误代码
0xD0 CPU初始化错误
0xD1 北桥初始化错误
0xD2 南桥初始化错误
0xD3 某些架构协议不可用
0xD4 PCI 资源分配错误。资源不足
0xD5 没有空间给传统选项 ROM
0xD6 找不到控制台输出设备
0xD7 找不到控制台输入设备
0xD8 无效的密码
0xD9 加载Boot选项时出错(加载映像返回错误)
0xDA Boot选项失败(开始运行映像返回错误)
0xDB 更新BIOS失败
0xDC 重置协议不可用

DXE Beep代码 :

Beep声数 说明
1 无效的密码
4 某些架构协议不可用
5 找不到控制台输出设备
5 找不到控制台输入设备
6 更新BIOS失败
7 重置协议不可用
8 无法满足平台 PCI 资源要求

ACPI/ASL 检查点代码 :

状态码 说明
0x01 系统进入 S1 睡眠状态
0x02 系统正在进入 S2 睡眠状态
0x03 系统正在进入 S3 睡眠状态
0x04 系统正在进入 S4 睡眠状态
0x05 系统正在进入 S5 睡眠状态
0x10 系统正在从 S1 睡眠状态唤醒
0x20 系统正在从 S2 睡眠状态唤醒
0x30 系统正在从 S3 睡眠状态唤醒
0x40 系统正在从 S4 睡眠状态唤醒
0xAC 系统已转换为 ACPI 模式。中断控制器处于 PIC 模式。
0xAA 系统已转换为 ACPI 模式。中断控制器处于 APIC 模式。

OEM 保留的检查点范围 :

状态码 说明
0x05 加载Microcode前的 OEM SEC 初始化
0x0A 加载Microcode后的 OEM SEC 初始化
0x1D - 0x2A OEM 内存前初始化代码
0x3F – 0x4E OEM PEI 内存后初始化代码
0x80 – 0x8F OEM DXE 初始化代码
0xC0 – 0xCF OEM BDS 初始化代码
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐