迅维网

查看: 12314|回复: 18
打印 上一主题 下一主题
[维修资料]

整合,几种BIOS代码表,及UEFI结构

    [复制链接]
跳转到指定楼层
1#
发表于 2016-5-21 10:17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东烟台 来自 山东烟台

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 小小学徒工 于 2016-5-21 10:36 编辑

写这个帖子是对这俩天看过的一些内容进行整理,编辑,方便后期查阅,此贴内容大部分来自网络。对不同厂商的BIOS档代码会有一定帮助,欢迎高手补充指正。

AMI AWARD 诊断卡代码表,说实话感觉这种老代码表对现在的新本意义不大了。现在的BIOS基本都采用了UEFI结构。
INTEL 原产板EFI代码表
         

                           
   


        
                                    


                                                                                    端口 80h POST 代码中的台式机主板                                                                    
                                    上次审核日期: 30-Dec-2015               
                                    文章 ID: 000005500               
               
本文定义了蜂鸣声代码、 错误消息,并与基于可扩展框架接口 (EFI) 的 BIOS 版本相关的 POST 代码。
内容 ︰
蜂鸣声代码
BIOS 错误消息
端口 80h POST 代码
显示开机自检代码
POST 代码范围
开机自检代码
典型的 POST 顺序
蜂鸣声代码
在开机自检期间,板载扬声器发出声音错误代码 (蜂鸣声代码)。并非所有英特尔® 台式机主板都包括板载扬声器。
类型模式频率
内存错误三声长时间的蜂鸣1,280 Hz
高温警告交替的四种蜂鸣声 ︰
高音,低音,高音低音
高音 ︰ 2000 Hz
较低的色调 ︰ 1600 Hz
BIOS 错误消息
错误消息解释
检测到的处理器,适合于该主板不支持。使用不受支持的处理器会导致运行故障,损坏台式机主板或处理器,或者降低的产品使用寿命。在 10 秒钟后关闭系统。所安装的处理器不兼容的台式机主板。
CMOS 电池很低电池可能正失去电源。尽快更换电池。
CMOS 校验不正确CMOS 校验不正确。CMOS 内存可能已损坏。运行安装程序重置数值。
内存大小减少从上次启动以来,内存大小减少。如果没有移除内存,则内存可能已经损坏。
没有可用的启动设备系统没有找到启动设备。
端口 80h POST 代码
在加电自检 (POST),BIOS 将进度代码 (POST 代码) 发送给 I/O 端口 80h。如果 POST 失败,最后生成的 POST 码留在 80h 端口。此代码可用于了解发生错误的原因。
显示开机自检代码
您可以显示 POST 代码,使用以下方法之一。
Post 卡 (PCI 插卡)POST 卡对端口进行解码,并在 LED 显示屏上显示的内容。POST 卡必须安装在 PCI 总线连接器 1。

                               
登录/注册后看高清大图
板载开机自检代码 LED 显示一些英特尔® 台式机主板包括板载 LED to show POST codes

                               
登录/注册后看高清大图
端口 80h POST 代码范围
下表中,所有 POST 代码和范围值都都采用十六进制格式。
范围类别/子系统
– 0F 00调试代码 ︰ 可供任何 PEIM/驱动程序用于调试
10 — — 1F主机处理器
20 – 北京国际会议中心内存/芯片组
30 — — 3F恢复
40-4 层预留以供未来使用
50 — — 5FI/O 总线 ︰ PCI,USB,ISA,ATA,等。
60-6F当前未使用
70 – 7F输出设备 ︰ 所有输出控制台
80-8 楼预留以供将来使用 (新型输出控制台代码)
90 – 9F输入设备 ︰ 键盘/鼠标
A0-弧闪预留以供将来使用 (新型输入的控制台代码)
B0-BF启动设备 ︰ 包括固定的介质和可移动媒体。
– CF C0预留以供未来使用
– DF D0引导设备选择
– FF E0E0-EE ︰ 杂项代码
F0 – FF: FF 处理器异常
端口 80h POST 代码
POST 代码POST 操作说明
-0F 00调试代码 ︰ 可供任何 PEIM/驱动程序用于调试
10-1F主机处理器
10主机处理器 (启动捆绑处理器) 开机初始化
11主机处理器高速缓存初始化 (包括 Ap)
12启动应用处理器初始化
13SMM 初始化
14LAN 初始化
15Exit early 平台初始化的驱动程序
16SMBUS 驱动程序初始化
17SMBUS 进入执行读/写
19CK505 programming 的参赛作品
1FUnrecoverable CPU error
20-北京国际会议中心内存 / 芯片组
21正在初始化芯片组组件
22从内存 Dimm 中读取 SPD
23检测内存 Dimm 存在
24内存控制器和 Dimm 中的编程时序参数
25配置内存
26优化内存设置
27内存初始化,例如 ECC 初始化
28测试的内存
2F没有检测到的内存或检测到任何可用的内存。
30-3F恢复
30根据用户请求对危机恢复已初始化
31危机恢复进行了初始化 (corrupt flash) 软件
34载入恢复包
35将控制权移交给恢复包
3F无法恢复
50-5FI/O 总线 (PCI,USB,ISA,ATA、 等等。)
50枚举 PCI 总线
51为 PCI 总线分配资源
52热插拔 PCI 控制器初始化
53-57为 PCI 总线预留
58复位 USB 总线
59为 USB 预留
5A重置 PATA/SATA 总线和所有设备
5B为 ATA 预留
5 ℃复位 SMBUS
5D为 SMBUS 预留
5FUnrecoverable I/O 的总线错误
60-6F在 60-6F range 目前没有有效的开机自检代码。
如果您看到的开机自检代码在此范围内时,它应 as B0-BF读取。(on 7 段 LED display,the 'b' 如下所示的 6)。
示例 ︰

                               
登录/注册后看高清大图

70-7F输出设备
70重置 VGA 控制器
71禁用 VGA 控制器
72启用 VGA 控制器
78复位控制台控制器
79正在禁用控制台控制器
7A启用控制台控制器
7FUnrecoverable 输出设备错误
90-9F输入的设备
90重置键盘
91禁用键盘
92检测键盘存在
93正在启用键盘
94清空键盘输入的缓冲器
95指示键盘控制器执行自检 (仅用于 PS2)
98重置鼠标
99禁用鼠标
9A检测鼠标存在
9B启用鼠标
9FUnrecoverable 输入的设备 (键盘或鼠标) 错误
-BF B0启动设备
B0重置固定的介质
B1禁用固定的介质
B2检测存在 (IDE 硬盘检测等) 固定介质
B3启用/配置固定的介质
B8重置可移动介质
B9禁用可移动介质
BA检测可移动介质是否存在 (IDE、 CD-ROM 检测等。)
卑斯省启用/配置可移动介质
BF不可恢复的引导设备错误
-DF D0引导设备选择
Dy尝试启动选择 y (y = 0 到 15)
-FF E0Miscellaneous Codes
E0开始调度 Peim (第一次报告 EFI_SW_PC_INIT_BEGIN efi_sw_pei_pc_handoff_to_next 时发出)
E2找到永久性内存
E1 E3为 PEI/Peim 预留
E4进入的 DXE 阶段
E5开始调度驱动程序
E6已开始连接驱动程序
E7等待用户反馈
E8正在检查密码
E9进入 BIOS 设置
EB调用旧选项 Rom
EFBoot/S3 resume 故障
F4进入休眠状态
F5退出休眠状态
F8调用了 EFI 启动服务 ExitBootServices ()
F9调用了 EFI 运行时服务 SetVirtualAddressMap ()
FA调用了 EFI 运行时服务 ResetSystem ()
FF处理器异常
典型端口 80h POST 顺序
在启动过程中,端口 80h 的代码值通常会增大。早期代码用于较近的处理器子系统,后期代码仅用于外设。一般情况下的初始化顺序是处理器-> 内存-> 总线-> 输出/输入设备-> 启动设备。POST 的顺序是系统而异。
POST 代码说明
21正在初始化芯片组组件
22从内存 Dimm 中读取 SPD
23检测内存 Dimm 存在
25配置内存
28测试的内存
34载入恢复包
E4进入的 DXE 阶段
12启动应用处理器初始化
                                        13SMM 初始化50枚举 PCI 总线51为 PCI 总线分配资源92检测键盘存在90重置键盘94清空键盘输入的缓冲器95键盘自检EB调用视频 BIOS58复位 USB 总线5A重置 PATA/SATA 总线和所有设备92检测键盘存在90重置键盘94清空键盘输入的缓冲器5A重置 PATA/SATA 总线和所有设备28测试的内存90重置键盘94清空键盘输入的缓冲器E7等待用户反馈01INT 1900启动准备                                    
   

        
                                                                                    - 此内容根据原文经过人力和电脑翻译合成。此内容作为一般资料信息仅供参考,不应依赖其完整性或准确性。               
                    
   


        

资料出处:http://www.chinafix.com/thread-914555-1-1.html





此代码表适合INTEL 原厂台板。
以LA-6751P 的仁宝笔记本为例,不插内存时代码为22 可以参照上面链接代码维修

以下为 Insyde代码表

完整版下载地址
Insyde H2O UEFI POSTCODE.pdf (30.49 KB, 下载次数: 19)

评分

参与人数 7下载分 +24 收起 理由
蓝天白云888 + 2
天意wx + 6 楼主总是在牛A与牛C之间徘徊
バ幸福De右岸 + 8 楼主总是在牛A与牛C之间徘徊
a305093678 + 2 楼主总是在牛A与牛C之间徘徊
杨天亦 + 2
一样一样的 + 2 淡定的男人最成功,淡定的人生不寂寞
牧之伊殇 + 2 楼主总是在牛A与牛C之间徘徊

查看全部评分

推荐
发表于 2016-5-21 11:29:41 | 只看该作者 来自: 广东深圳 来自 广东深圳
同样是维修的,我竟然看不懂,先收着,慢慢研究

回复 支持 1 反对 0

使用道具 举报

3#
发表于 2016-5-21 10:37:45 | 只看该作者 来自: 山东烟台 来自 山东烟台

        UEFI Boot Flow 系列之 SEC Phase

为什么要有SEC Phase?1. 需要用汇编语言来完成C无法处理的工作,如C语言无法处理CPU的特殊寄存器(MSR,MTRR,CRX)。
2. C语言需要Memory当成Stack来处理Local 变数,而刚开机Memory还没有被初始化,还不可用,所以需要CAR(Cache As Ram)的初始化。
3. 让CPU进入Protected Mode(Flat Mode)。
SEC Phase的任务
SEC Phase是整个UEFI Boot过程中的第一个阶段,它主要完成的任务有:
1.  系统上电/重启的入口,处理所有的平台restart events,包括开机,重启,或是各种异常条件下的启动。
2. 创建一块临时的内存区域,在系统内存初始化之前使用,比如用CAR(Cache As Ram)或SRAM。
3. 在安全方面,是信任链的根(the root of trust)。之后模块的任何安全相关的设计都必须有个根,而因为系统开机之后最初的代码实现是在SEC阶段,所以平台设计者在调用PEI Foundation之前可以在SEC阶段验证PEI Foundation的安全性。所以说SEC阶段是系统信任链的根。
4. 传送Handoff信息到PEI Foundation(这才是SEC Phase的最终目的),这些信息包括:
1>.平台的状态,
2>.BFV(Boot Firmware Volume)的位置和大小,
3>.临时RAM的位置和大小,
4>. 栈的位置和大小。
数据结构为:EFI_PEI_STARTUP_DESCRIPTOR。
typedef struct {
  UINTN                   BootFirmwareVolume;
  UINTN                   SizeOfCacheAsRam;
  EFI_PEI_PPI_DESCRIPTOR  *DispatchTable;
} EFI_PEI_STARTUP_DESCRIPTOR;
另外,还有一个PPI:EFI_SEC_PLATFORM_INFORMATION_PPI 可以用来传送Handoff信息。在SEC_PLATFORM_INFORMATION_PPI.PlatformInformation()中定义了一个EFI_HEALTH_FLAGS,它包含了Processor,hardware,and/or安腾处理器中PLA(Processor Abstract Layer)代码中关于处理器Reset上的状态信息。

                               
登录/注册后看高清大图


                               
登录/注册后看高清大图

SEC阶段代码流程图:

                               
登录/注册后看高清大图

PEI Core Entry Point 是如何确定的?
是由Build Tool来确定的。在Build出来的bin file位置0xFFFFFFE0存放。
BFV Base Address是如何确定的?
是由Build Tool来确定的。在Build出来的bin file位置0xFFFFFFFC存放。

帖子出处:http://blog.csdn.net/celiaqianhj/article/details/6782493


                        UEFI Boot Flow 系列之 PEI Phase
PEI:Pre-EFI Initialization
为什么要有PEI Phase?
1. ROM空间的问题,所有的Code都没有压缩
2. Memory还没有初始化
3. Chipset没有初始化
PEI Phase的特性:
1. 在ROM上执行
2. 都是没有被压缩的代码
3. PEI Core与硬体没有关联
PEI Phase的任务:
1. 基本的Chipset初始化
2. Memory Sizing
3. BIOS Recovery
4. S3 Resume
5. 切换Stack到Memory (Disable CAR, Enable Cache)
6. 启动DXEIPL(DXE Initial Program Loader)
PEI Phase包含的两个部分:
1. 一个PEI Foundation,存在于BFV。
2. 一个或多个PEIMs(Pre-EFI Initialize Module),存在于FVs。
一、关于PEI Foundation
PEI Foundation存在于FV0(即BFV),它是在SEC阶段被发现并通过验证的,这也就允许PEI阶段能够确定FV文件有没有被破坏掉。
PEI Foundation负责:
1. Dispatching PEIM
2. Maintaining the boot mode
3. Initialize permanent memory
4. Invoking DXEIPL
PEI Services
PEI Foundation建立了一个system table叫做PEI Services Table,它对所有的PEIM都可见。PEI Services的分类有:
二、关于PEIM(Pre-EFI Initialization Modules)
PEIM就是一些可执行的二进制代码,它封装着一些关于Processor,chipset,device或者是平台相关的一些功能。由PEI Foundation负责来Dispatch这些PEIMs。
大部分的PEIM都存在于ROM上,它们是没有被压缩的,只有极少数的PEIM为了提高性能而存在于RAM上,是被压缩的。
因为PEI Phase存在的环境只有极少的Hardware Resource可用,且PEIM大都位于ROM上,所以强烈建议PEIM只做尽可能少的,不得不做的工作来满足DXE阶段执行的要求。
PPI(PEIM to PEIM Interface)
PEIM与PEIM沟通是通过PPI,即PEIM to PEIM Interface。PPIs包含在数据结构EFI_PEI_PPI_DESCRIPTOR中,由一个GUID和一个指针组成。
一个PEIM通过PEI Service InstallPPI()和ReinstallPPI()来发布一个有效的PPI到PPI Database;
其他的PEIM通过PEI Service LocatePPI()来找到相关的PPI。
PEI Phase 代码流程图


帖子出处:http://blog.csdn.net/celiaqianhj/article/details/6793211

点评

UEFI Boot Flow 系列之 DXE PhaseDXE: Driver Execution Environment 为什么要有DXE Phase? 大部分系统的初始化工作都是在DXE 阶段实现的。 DXE Phase由以下几部分组成: 1. DXE Core  详情 回复 发表于 2016-5-21 10:39

评分

参与人数 1下载分 +2 收起 理由
蓝天白云888 + 2

查看全部评分

回复 支持 反对

使用道具 举报

4#
发表于 2016-5-21 10:39:09 | 只看该作者 来自: 山东烟台 来自 山东烟台
小小学徒工 发表于 2016-5-21 10:37
UEFI Boot Flow 系列之 SEC Phase

为什么要有SEC Phase?1. 需要用汇编语言来完成C无法处理的 ...

                        UEFI Boot Flow 系列之 DXE PhaseDXE: Driver Execution Environment
为什么要有DXE Phase?
大部分系统的初始化工作都是在DXE 阶段实现的。
DXE Phase由以下几部分组成:
1. DXE Core (DXE Foundation)
     产生一组Boot Services, Runtime Services, DXE Services。 由boot service code组成,boot到OS之后就不存在了。
2. DXE Dispatcher
    负责发现并以正确的顺序执行DXE Drivers。
3. DXE Drivers
    负责初始化CPU,Chipset,系统组件以及为Sysem Services、控制台和启动设备提供系统概要。
这几部分协同工作以完成platform的初始化,并提供启动到操作系统所要求的services.
DXE Phase与PEI Phase的关系:
可以执行DXE Phase的唯一的条件是:有一个有效的HOB List。 有很多种方式产生HOB List, PEI只是其中一种。所以DXE Phase之前并不要求一定先执行PEI Phase。
DXE Phase与BDS Phase的关系
DXE Phase与BDS Phase协同工作以建立工作台并尝试boot OS。当OS成功启动,即BDS Phase开始的时候,DXE Phase就结束了。
DXE Driver 的分类:
1. Early DXE Driver--Platform initialization Drivers
       a. 在DXE Phase最早执行的Driver
       b. 包含Dependency Expression Syntax(DEPEX) 来描述Dispatch的顺序。
       c. 典型的包含:
              Basic Services
              Processor Initialization Code
              Chipset Initialization Code
              Platform Initialization Code
       d. 产生Architectural Protocols
2. EFI Drivers that follow EFI Driver Model
        a. 初始化的过程中不会涉及到硬件
        b. Follow EFI Driver Model
        c. 典型的提供对Console Devices 和 Boot Devices的访问
        d. Abstract Bus Controller
        e. 只有Boot OS 所需要的Driver才被初始化
        f. DXE Dispather完成的时候才被呼叫
        g. 像个Driver一样被执行
        h. 需要建立控制台(Keyboard,Video)和处理EFI Boot Option(Boots OS)的时候要连接EFI Drivers
帖子出处:http://blog.csdn.net/celiaqianhj/article/details/7403335




点评

UEFI Boot Flow 系列之 BDS Phase BDS: Boot Device Select BDS阶段的任务: 1. Initialize console devices base on the ConIn, ConOut and StdErr environment variables. 2. Attempt to load  详情 回复 发表于 2016-5-21 10:40

评分

参与人数 1下载分 +2 收起 理由
蓝天白云888 + 2

查看全部评分

回复 支持 反对

使用道具 举报

5#
发表于 2016-5-21 10:39:51 | 只看该作者 来自: 湖南长沙 来自 湖南长沙
很好很强大!

回复 支持 反对

使用道具 举报

6#
发表于 2016-5-21 10:40:10 | 只看该作者 来自: 山东烟台 来自 山东烟台
小小学徒工 发表于 2016-5-21 10:39
UEFI Boot Flow 系列之 DXE PhaseDXE: Driver Execution Environment
为什么要 ...

            UEFI Boot Flow 系列之 BDS Phase    BDS: Boot Device Select
BDS阶段的任务:
1. Initialize console devices base on the ConIn, ConOut and StdErr environment variables.
2. Attempt to load all drivers listed in the Driver#### and DriverOrder environment variables.
3. Attempt to boot from the boot selections list  in the Boot#### and BootOrder environment variables.
如果BDS 阶段不能contact a console device, load a driver, or boot a boot selection, 这就要求重新调用DXE Dispatcher。 这种调用是必须的,因为通过执行这个操作可能会发现additional firmware volumes, 它们可能包含管理Console Devices和Driver Devices所必须的DXE Driver。
一旦新发现的Firmware Volume上的DXE Drivers被Dispatched之后,控制权会再次交到BDS手中 。
Console Device:
Console Device是从Simple Text Output和Simple Input Protocol中抽象出来的。 在UEFI中,能够产生这其中一种或两种Protocl的Devide都被当作是Console Device。
Console Device的几种Type:
1. VGA Adapters, produce Simple Text Output Protocol.
2. Video Adapters, produce Simple Text Output Protocol.
3.Serial Terminal, produce both Simple Text Output Protocol and Simple Input Protocol.
4.Telnet, produce both Simple Text Output Protocol and Simple Input Protocol.
5. Remote Graphical Displays(HTTP), produce both Simple Text Output Protocol and Simple Input Protocol.
Boot Device的几种Type:
1.Devices that produce the Block I/O Protocol and are formatted with a FAT file system,  Disk Devices
2.Devices that directly produce the File System Protocol
3.Devices that directly produce the Load File Protocol                                                              Network Devices
帖子出处:http://blog.csdn.net/celiaqianhj/article/details/7403714

   


评分

参与人数 1下载分 +2 收起 理由
蓝天白云888 + 2

查看全部评分

回复 支持 反对

使用道具 举报

7#
发表于 2016-5-21 10:40:24 | 只看该作者 来自: 山东德州 来自 山东德州
收藏了先.研究下

回复 支持 反对

使用道具 举报

8#
发表于 2016-5-21 10:50:42 | 只看该作者 来自: 广东阳江 来自 广东阳江
后面的都看不明白。。。。

回复 支持 反对

使用道具 举报

9#
发表于 2016-5-21 11:39:56 | 只看该作者 来自: 安徽合肥 来自 安徽合肥
收藏了先.研究下

回复 支持 反对

使用道具 举报

10#
发表于 2016-5-21 12:08:44 | 只看该作者 来自: 亚太地区 来自 亚太地区
好深度的研究,收藏了

回复 支持 反对

使用道具 举报

11#
发表于 2016-5-21 14:05:43 | 只看该作者 来自: 山东青岛 来自 山东青岛
整理的不错 很用心

回复 支持 反对

使用道具 举报

12#
发表于 2016-5-21 22:25:08 | 只看该作者 来自: 河北 来自 河北
值得收藏 研究的资料  


回复 支持 反对

使用道具 举报

13#
发表于 2016-5-21 22:32:19 | 只看该作者 来自: 上海 来自 上海
真是有心,先收藏了

回复 支持 反对

使用道具 举报

14#
发表于 2016-5-21 23:28:30 | 只看该作者 来自: 广东东莞 来自 广东东莞
还是看不明白。

回复 支持 反对

使用道具 举报

15#
发表于 2016-6-3 19:35:36 | 只看该作者 来自: 马来西亚 来自 马来西亚
搞这么半天全部都是 台式机板的  代码 代码?     

回复 支持 反对

使用道具 举报

16#
发表于 2016-6-3 20:28:46 | 只看该作者 来自: 中国 来自 中国
太高深了,一般人看不明白!

回复 支持 反对

使用道具 举报

17#
发表于 2021-7-30 21:49:50 | 只看该作者 来自: 中国 来自
华硕A88XM-E出现开机黑屏,CPU风扇转,诊断卡跑码到33或者40停止,但有时候静置一段时间又能开机进入BIOS。

回复 支持 反对

使用道具 举报

18#
发表于 2021-7-30 21:55:06 | 只看该作者 来自: 中国 来自
百度ahlCs 发表于 2021-7-30 21:49
华硕A88XM-E出现开机黑屏,CPU风扇转,诊断卡跑码到33或者40停止,但有时候静置一段时间又能开机进入BIOS。

CPU和显卡都换了,内存用的金士顿骇客神条,双通道。黑屏时多次重启也不行,有时候关机静置一段时间在开机屏幕会有显示,按照提示按F1后可以进入BIOS设置。保存退出后重启时有时候会直接卡在33或者40不再运行,表现就是黑屏。关机重启无效。

回复 支持 反对

使用道具 举报

19#
发表于 2022-6-11 23:00:02 | 只看该作者 来自: 福建 来自 福建
6666666666{:4_132:}{:4_132:}

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复