G
gogochen
Guest
微星主板UEFI BIOS诊断代码
dongfang-M 发表于 2013-5-5
微星主板现已全面采用UEFIBIOS。UEFI既与传统BIOS不一样,又和传统BIOS相似,BIOS的启动过程还类似传统BIOS。可以分成四个阶段:
◆ SEC阶段(安全阶段)- 开始低级初始化。
◆ PEI 阶段(EFI前期初始化) -内存初始化(类似传统BIOS的启动块功能)。
◆ DXE阶段(驱动执行环境)-主要硬件初始化(类似传统BIOS的POST功能)。
◆ BDS阶段(选择启动设备)-系统设置,OS前期用户接口以及选择一个可启动额的设备(CD/DVD,HDD,USB,Network,Shell等)。
这四个阶段可以参考下面的流程图。
UEFI的每一个过程阶段都会有一组状态代码,这些代码表示这个阶段的进程。这些状态代码一般是输出到80h IO端口,也可以说每一个状态代码表示了一个检验点,当该检验点无误通过,就会进入下一个,如果有故障就会停在这个检验点。
本文描述的代码引自AMI公司的AMI_Aptio_4.x_Status_Codes_PUB 113。
下面的状态代码有助于分析系统的故障原因。
检验点范围
状态代码范围 说明
0x01 – 0x0B 执行SEC(低级初始化)
0x0C – 0x0F SEC(低级初始化)错误
0x10 – 0x2F 执行PEI(EFI前期初始化)直到内存检测
0x30 – 0x4F 内存检测后的执行PEI(EFI前期初始化)
0x50 – 0x5F PEI(EFI前期初始化)错误
0x60 – 0x8F 执行DXE(驱动执行环境)到BDS(选择启动设备)
0x90 – 0xCF 执行BDS(选择启动设备)
0xD0 – 0xDF DXE(驱动执行环境)错误
0xE0 – 0xE8 S3重返(PEI)
0xE9 – 0xEF S3重返错误(PEI)
0xF0 – 0xF8 恢复(PEI)
0xF9 – 0xFF 恢复错误(PEI)
这是各阶段状态代码简表
标准检验点
SEC 阶段
状态代码 说明
0x00 未使用
进程代码
0x01 加电复位型检测(软件/硬件)
0x02 微代码加载前AP初始化
0x03 微代码加载前北桥初始化
0x04 微代码加载前南桥初始化
0x05 微代码加载前OEM初始化
0x06 微代码加载
0x07 微代码加载后AP初始化
0x08 微代码加载后北桥初始化
0x09 微代码加载后南桥初始化
0x0A 微代码加载后OEM初始化
0x0B Cache初始化
SEC错误代码
0x0C – 0x0D 保留给以后的AMI错误代码
0x0E 没有找到微代码
0x0F 没有加载微代码
SEC 报警音代码
无
PEI 阶段
状态代码 说明
进程代码
0x10 PEI代码开始
0x11 前期内存 CPU初始化开始
0x12 前期内存 CPU初始化(CPU规格)
0x13 前期内存 CPU初始化(CPU规格)
0x14 前期内存 CPU初始化(CPU规格)
0x15 前期内存 北桥初始化开始
0x16 前期内存 北桥初始化(北桥规格)
0x17 前期内存 北桥初始化(北桥规格)
0x18 前期内存 北桥初始化(北桥规格)
0x19 前期内存 南桥初始化开始
0x1A 前期内存 南桥初始化(南桥规格)
0x1B 前期内存 南桥初始化(南桥规格)
0x1C 前期内存 南桥初始化(南桥规格)
0x1D – 0x2A 内存初始化代码
0x2B 内存初始化 读SPD
0x2C 内存初始化 检测安插的内存条
0x2D 内存初始化 内存时序信息编程
0x2E 内存初始化 配置内存
0x2F 内存初始化(其他)
0x30 为ASL保留(见下面ASL状态代码一节)
0x31 安装内存
0x32 CPU Post内存初始化开始
0x33 CPU Post内存初始化,Cache初始化
0x34 CPU Post内存初始化,应用处理器(AP)初始化
0x35 CPU Post内存初始化,启动带处理器(BSP)选择
0x36 CPU Post内存初始化,系统管理模式(SMM)初始化
0x37 Post内存 北桥初始化开始
0x38 Post内存 北桥初始化(北桥模块规格)
0x39 Post内存 北桥初始化(北桥模块规格)
0x3A Post内存 北桥初始化(北桥模块规格)
0x3B Post内存 南桥初始化(南桥模块规格)
0x3C Post内存 南桥初始化(南桥模块规格)
0x3D Post内存 南桥初始化(南桥模块规格)
0x3E Post内存 南桥初始化(南桥模块规格)
0x3F-0x4E OEM Post内存初始化代码
0x4F DXE IPL开始
PEI 错误代码
0x50 内存初始化错误,无效内存类型或矛盾的内存速度
0x51 内存初始化错误,读SPD失败
0x52 内存初始化错误,无效内存容量或模块不匹配
0x53 内存初始化错误,不能检测内存
0x54 非规格内存初始化错误
0x55 内存不能安装
0x56 无效CPU类型或速度
0x57 CPU不匹配
0x58 CPU自检失败或Cache错误
0x59 CPU微代码没有找到或微代码更新失败
0x5A CPU内部错误
0x5B 不能PPI复位
0x5C-0x5F 保留给未来的AMI错误代码
S3 复原进程代码
0xE0 S3复原开始(由DXE IPL调用S3复原PPI)
0xE1 执行S3启动脚本
0xE2 视频重新POST
0xE3 调用OS S3复原向量
0xE4-0xE7 保留给未来的AMI进程代码
S3 恢复错误代码
0xE8 S3复原失败
0xE9 S3复原PPI没找到
0xEA S3启动脚本错误
0xEB S3 OS唤醒错误
0xEC-0xEF 保留给未来的AMI错误代码
复原进程代码
0xF0 由固件触发复原条件(自动唤醒)
0xF1 由用户触发复原条件(强制唤醒)
0xF2 开始复原
0xF3 找到复原固件映像
0xF4 加载复原固件映像
0xF5-0xF7 保留给未来的AMI进程代码
复原错误代码
0xF8 不能获得复原PPI
0xF9 复原包没有找到
0xFA 无效复原包
0xFB-0xFF 保留给未来的AMI错误代码
PEI 报警音代码
提示音
1 没有安装内存
1 内存安装两次(PEI代码中InstallPeiMemory规则叫两次)
2 开始复原
3 DXEIPL没找到
3 DXE代码固件值没找到
4 复原失败
4 S3复原失败
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 保留给未来的AMI DXE代码
0x80-0x8F OEM DXE初始化代码
0x90 启动设备选择(BDS)阶段开始
0x91 驱动器连接开始
0x92 PCI总线初始化开始
0x93 PCI总线热插拔控制器初始化
0x94 PCI总线列举
0x95 PCI总线需求资源
0x96 PCI总线分配资源
0x97 控制台输出设备连接
0x98 控制台输入设备连接
0x99 超级IO初始化
0x9A USB初始化开始
0x9B USB复位
0x9C USB检测
0x9D USB允许
0x9E-0x9F 保留给未来的AMI代码
0xA0 IDE初始化开始
0xA1 IDE复位
0xA2 IDE探测
0xA3 IDE允许
0xA4 SCSI初始化开始
0xA5 SCSI复位
0xA6 SCSI探测
0xA7 SCSI允许
0xA8 进入BIOS设置验证密码
0xA9 开始BIOS设置
0xAA 为ASL保留(见下面ASL代码段)
0xAB 等待设置输入
0xAC 为ASL保留(见下面ASL代码段)
0xAD 准备启动事件
0xAE 传统启动事件
0xAF 退出启动服务事件
0xB0 Runtime Set虚拟地址MAP开始
0xB1 Runtime Set虚拟地址MAP结束
0xB2 传统可选ROM初始化
0xB3 系统复位
0xB4 USB热插拔
0xB5 PCI总线热插拔
0xB6 NVRAM清零
0xB7 配置重置(重置NVRAM设置)
0xB8-0xBF 保留给未来的AMI代码
0xC0-0xCF OEM BDS初始化代码
DXE错误代码
0xD0 CPU初始化错误
0xD1 北桥初始化错误
0xD2 南桥初始化错误
0xD3 某些架构协议不能获得
0xD4 PCI资源分配错误。超出资源范围
0xD5 没有传统可选ROM空间
0xD6 没有控制台输出设备
0xD7 没有控制台输入设备
0xD8 无效密码
0xD9 加载启动选项错误(加载映像返回错误)
0xDA 启动选项失败(启动映像返回错误)
0xDB Flash更新失败
0xDC 复位协议不能获得
DXE报警音代码
提示音 说明
1 无效密码
4 某些架构协议不能获得
5 没有控制台输出设备
5 没有控制台输入设备
6 Flash更新失败
7 复位协议不能获得
8 平台PCI资源需求没有遇到
ACPI/ASL 检验点
状态代码 说明
0x01 系统进入S1睡眠状态
0x02 系统进入S2睡眠状态
0x03 系统进入S3睡眠状态
0x04 系统进入S4睡眠状态
0x05 系统进入S5睡眠状态
0x010 系统从S1睡眠状态唤醒
0x020 系统从S2睡眠状态唤醒
0x030 系统从S3睡眠状态唤醒
0x040 系统从S4睡眠状态唤醒
0xAC 系统进入ACPI模式。中断控制器在PIC模式
0xAA 系统进入ACPI模式。中断控制器在APIC模式
OEM保留检验点范围
状态代码 说明
0x05 微代码加载前,OEM SEC初始化
0x0A 微代码加载后,OEM SEC初始化
0x1D-0x2A OEM pre内存初始化代码
0x3F-0x4E OEM PEI post内存初始化代码
0x80-0x8F OEM DXE初始化代码
0xC0-0xCF OEM EDS初始化代码
dongfang-M 发表于 2013-5-5
微星主板现已全面采用UEFIBIOS。UEFI既与传统BIOS不一样,又和传统BIOS相似,BIOS的启动过程还类似传统BIOS。可以分成四个阶段:
◆ SEC阶段(安全阶段)- 开始低级初始化。
◆ PEI 阶段(EFI前期初始化) -内存初始化(类似传统BIOS的启动块功能)。
◆ DXE阶段(驱动执行环境)-主要硬件初始化(类似传统BIOS的POST功能)。
◆ BDS阶段(选择启动设备)-系统设置,OS前期用户接口以及选择一个可启动额的设备(CD/DVD,HDD,USB,Network,Shell等)。
这四个阶段可以参考下面的流程图。
UEFI的每一个过程阶段都会有一组状态代码,这些代码表示这个阶段的进程。这些状态代码一般是输出到80h IO端口,也可以说每一个状态代码表示了一个检验点,当该检验点无误通过,就会进入下一个,如果有故障就会停在这个检验点。
本文描述的代码引自AMI公司的AMI_Aptio_4.x_Status_Codes_PUB 113。
下面的状态代码有助于分析系统的故障原因。
检验点范围
状态代码范围 说明
0x01 – 0x0B 执行SEC(低级初始化)
0x0C – 0x0F SEC(低级初始化)错误
0x10 – 0x2F 执行PEI(EFI前期初始化)直到内存检测
0x30 – 0x4F 内存检测后的执行PEI(EFI前期初始化)
0x50 – 0x5F PEI(EFI前期初始化)错误
0x60 – 0x8F 执行DXE(驱动执行环境)到BDS(选择启动设备)
0x90 – 0xCF 执行BDS(选择启动设备)
0xD0 – 0xDF DXE(驱动执行环境)错误
0xE0 – 0xE8 S3重返(PEI)
0xE9 – 0xEF S3重返错误(PEI)
0xF0 – 0xF8 恢复(PEI)
0xF9 – 0xFF 恢复错误(PEI)
这是各阶段状态代码简表
标准检验点
SEC 阶段
状态代码 说明
0x00 未使用
进程代码
0x01 加电复位型检测(软件/硬件)
0x02 微代码加载前AP初始化
0x03 微代码加载前北桥初始化
0x04 微代码加载前南桥初始化
0x05 微代码加载前OEM初始化
0x06 微代码加载
0x07 微代码加载后AP初始化
0x08 微代码加载后北桥初始化
0x09 微代码加载后南桥初始化
0x0A 微代码加载后OEM初始化
0x0B Cache初始化
SEC错误代码
0x0C – 0x0D 保留给以后的AMI错误代码
0x0E 没有找到微代码
0x0F 没有加载微代码
SEC 报警音代码
无
PEI 阶段
状态代码 说明
进程代码
0x10 PEI代码开始
0x11 前期内存 CPU初始化开始
0x12 前期内存 CPU初始化(CPU规格)
0x13 前期内存 CPU初始化(CPU规格)
0x14 前期内存 CPU初始化(CPU规格)
0x15 前期内存 北桥初始化开始
0x16 前期内存 北桥初始化(北桥规格)
0x17 前期内存 北桥初始化(北桥规格)
0x18 前期内存 北桥初始化(北桥规格)
0x19 前期内存 南桥初始化开始
0x1A 前期内存 南桥初始化(南桥规格)
0x1B 前期内存 南桥初始化(南桥规格)
0x1C 前期内存 南桥初始化(南桥规格)
0x1D – 0x2A 内存初始化代码
0x2B 内存初始化 读SPD
0x2C 内存初始化 检测安插的内存条
0x2D 内存初始化 内存时序信息编程
0x2E 内存初始化 配置内存
0x2F 内存初始化(其他)
0x30 为ASL保留(见下面ASL状态代码一节)
0x31 安装内存
0x32 CPU Post内存初始化开始
0x33 CPU Post内存初始化,Cache初始化
0x34 CPU Post内存初始化,应用处理器(AP)初始化
0x35 CPU Post内存初始化,启动带处理器(BSP)选择
0x36 CPU Post内存初始化,系统管理模式(SMM)初始化
0x37 Post内存 北桥初始化开始
0x38 Post内存 北桥初始化(北桥模块规格)
0x39 Post内存 北桥初始化(北桥模块规格)
0x3A Post内存 北桥初始化(北桥模块规格)
0x3B Post内存 南桥初始化(南桥模块规格)
0x3C Post内存 南桥初始化(南桥模块规格)
0x3D Post内存 南桥初始化(南桥模块规格)
0x3E Post内存 南桥初始化(南桥模块规格)
0x3F-0x4E OEM Post内存初始化代码
0x4F DXE IPL开始
PEI 错误代码
0x50 内存初始化错误,无效内存类型或矛盾的内存速度
0x51 内存初始化错误,读SPD失败
0x52 内存初始化错误,无效内存容量或模块不匹配
0x53 内存初始化错误,不能检测内存
0x54 非规格内存初始化错误
0x55 内存不能安装
0x56 无效CPU类型或速度
0x57 CPU不匹配
0x58 CPU自检失败或Cache错误
0x59 CPU微代码没有找到或微代码更新失败
0x5A CPU内部错误
0x5B 不能PPI复位
0x5C-0x5F 保留给未来的AMI错误代码
S3 复原进程代码
0xE0 S3复原开始(由DXE IPL调用S3复原PPI)
0xE1 执行S3启动脚本
0xE2 视频重新POST
0xE3 调用OS S3复原向量
0xE4-0xE7 保留给未来的AMI进程代码
S3 恢复错误代码
0xE8 S3复原失败
0xE9 S3复原PPI没找到
0xEA S3启动脚本错误
0xEB S3 OS唤醒错误
0xEC-0xEF 保留给未来的AMI错误代码
复原进程代码
0xF0 由固件触发复原条件(自动唤醒)
0xF1 由用户触发复原条件(强制唤醒)
0xF2 开始复原
0xF3 找到复原固件映像
0xF4 加载复原固件映像
0xF5-0xF7 保留给未来的AMI进程代码
复原错误代码
0xF8 不能获得复原PPI
0xF9 复原包没有找到
0xFA 无效复原包
0xFB-0xFF 保留给未来的AMI错误代码
PEI 报警音代码
提示音
1 没有安装内存
1 内存安装两次(PEI代码中InstallPeiMemory规则叫两次)
2 开始复原
3 DXEIPL没找到
3 DXE代码固件值没找到
4 复原失败
4 S3复原失败
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 保留给未来的AMI DXE代码
0x80-0x8F OEM DXE初始化代码
0x90 启动设备选择(BDS)阶段开始
0x91 驱动器连接开始
0x92 PCI总线初始化开始
0x93 PCI总线热插拔控制器初始化
0x94 PCI总线列举
0x95 PCI总线需求资源
0x96 PCI总线分配资源
0x97 控制台输出设备连接
0x98 控制台输入设备连接
0x99 超级IO初始化
0x9A USB初始化开始
0x9B USB复位
0x9C USB检测
0x9D USB允许
0x9E-0x9F 保留给未来的AMI代码
0xA0 IDE初始化开始
0xA1 IDE复位
0xA2 IDE探测
0xA3 IDE允许
0xA4 SCSI初始化开始
0xA5 SCSI复位
0xA6 SCSI探测
0xA7 SCSI允许
0xA8 进入BIOS设置验证密码
0xA9 开始BIOS设置
0xAA 为ASL保留(见下面ASL代码段)
0xAB 等待设置输入
0xAC 为ASL保留(见下面ASL代码段)
0xAD 准备启动事件
0xAE 传统启动事件
0xAF 退出启动服务事件
0xB0 Runtime Set虚拟地址MAP开始
0xB1 Runtime Set虚拟地址MAP结束
0xB2 传统可选ROM初始化
0xB3 系统复位
0xB4 USB热插拔
0xB5 PCI总线热插拔
0xB6 NVRAM清零
0xB7 配置重置(重置NVRAM设置)
0xB8-0xBF 保留给未来的AMI代码
0xC0-0xCF OEM BDS初始化代码
DXE错误代码
0xD0 CPU初始化错误
0xD1 北桥初始化错误
0xD2 南桥初始化错误
0xD3 某些架构协议不能获得
0xD4 PCI资源分配错误。超出资源范围
0xD5 没有传统可选ROM空间
0xD6 没有控制台输出设备
0xD7 没有控制台输入设备
0xD8 无效密码
0xD9 加载启动选项错误(加载映像返回错误)
0xDA 启动选项失败(启动映像返回错误)
0xDB Flash更新失败
0xDC 复位协议不能获得
DXE报警音代码
提示音 说明
1 无效密码
4 某些架构协议不能获得
5 没有控制台输出设备
5 没有控制台输入设备
6 Flash更新失败
7 复位协议不能获得
8 平台PCI资源需求没有遇到
ACPI/ASL 检验点
状态代码 说明
0x01 系统进入S1睡眠状态
0x02 系统进入S2睡眠状态
0x03 系统进入S3睡眠状态
0x04 系统进入S4睡眠状态
0x05 系统进入S5睡眠状态
0x010 系统从S1睡眠状态唤醒
0x020 系统从S2睡眠状态唤醒
0x030 系统从S3睡眠状态唤醒
0x040 系统从S4睡眠状态唤醒
0xAC 系统进入ACPI模式。中断控制器在PIC模式
0xAA 系统进入ACPI模式。中断控制器在APIC模式
OEM保留检验点范围
状态代码 说明
0x05 微代码加载前,OEM SEC初始化
0x0A 微代码加载后,OEM SEC初始化
0x1D-0x2A OEM pre内存初始化代码
0x3F-0x4E OEM PEI post内存初始化代码
0x80-0x8F OEM DXE初始化代码
0xC0-0xCF OEM EDS初始化代码