SMBIOS

阅读数:295 评论数:0

跳转到新版页面

分类

OS

正文

一、概述

1、SMBIOS

System Management BIOS,是主板或者系统制造厂商以标准格式显示产品信息所遵循的统一规范。每个主板厂商或者OEM(Original Equipment Manufacturer)厂商所生产的电脑,在出厂的时候都会按照smbios标准将信息写入到bios中。这些信息包括BIOS信息、系统信息、处理器信息、设备信息等。

2、DMI

DMI全称是Desktop Management Interface,DMI充当了管理工具和系统层之间接口的角色,其设计适用于任何平台和操作系统。主要部分是Management Information Format (MIF) 数据库,这个数据库包括了BIOS通过SMBIOS要传给OS的信息,所以DMI是按照SMBIOS的标准实现的。

二、SMBIOS访问方式

通过符合SMBIOS规范的计算机

可以通过SMBIOS的结构体获得系统信息,共有两种方式:

1、通过即插即用功能接口访问SMBIOS结构,从规范2.1开始不再推荐使用

2、基于表结构的方式。它先是找到Entry Point Structure (EPS)表,然后通过EPS表中的数据找到SMBIOS结构表。

(1)对于非EFI的系统,访问SMBIOS EPS表的操作过程:

从物理内存0x000f0000~0x000FFFFF之间寻找关键字SM

找到后再向后16个字节,看后面5个Byte是否是关键字DMI,如果是,EPS表即找到

(3)对于UEFI系统,可以通过搜索EFI配置表中的SMBIOS GUID(SMBIOS_TABLE_GUID),然后使用指向SMBIOS的指针来定位EPS表。

linux可以使用dmidecode这个命令查看SMBIOS信息

三、SMBIOS数据存储结构

1、EPS结构表

位置 名称 长度 描述
00H 关键字 4Byte 固定是"_SM"
04H 校验和 1Byte 用于校验数据
05H 表结构长度 1Byte EPS表长度
06H Major 版本号 1Byte 用于判断SMBIOS版本
07H Minor 版本号 1Byte 用于判断SMBIOS 版本
08H 表结构大小 2Byte 用于即插即用接口方法获得数据表结构长度
0AH EPS修正 1Byte  
0B-0FH 格式区域 5Byte 存放解释EPS 修正的信息
10H 关键字 5Byte 存放解释EPS 修正的信息
15H 校验和 1Byte Intermediate Entry Point Structure (IEPS)的校验和
16H 结构表长度 2Byte SMBIOS 结构表的长度
18H 结构表地址 4Byte SMBIOS 结构表的真实内存位置
1CH 结构表个数 2Byte SMBIOS 结构表数目
1EH Smbios BCD 修正 1Byte  

根据16H、18H、1CH的值确定SMBIOS结构表的信息。

可以参考一下edk2/MdePkg/Include/IndustryStandard/SmBios.h

2、SMBIOS结构表

(1)表汇总

0 BIOS Information
1 System Information
2 Baseboard (or Module) Information
3 System Enclosure or Chassis
4 Processor Information
5 Memory Controller Information (Obsolete)
6 Memory Module Information (Obsolete)
7 Cache Information
8 Port Connector Information
9 System Slots
10 On Board Devices Information
11 OEM Strings
12 System Configuration Options
13 BIOS Language Information
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-Bit Memory Error Information
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-Band Remote Access
31 Boot Integrity Services (BIS) Entry Point
32 System Boot Information
33 64-Bit Memory Error Information
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device Information
39 System Power Supply
40 Additional Information
41 Onboard Devices Extended Information
42 Management Controller host Interface
126 Inactive
127 End-of-Table
128-255 Available for system- and OEM- specific informatio

(2)表结构

每个表的表头都相同

位置 名称 长度 描述
00H TYPE号 1Byte 结构的TYPE号
01H 长度 1Byte 本结构的长度,就此TYPE号的结构而言
02H 句柄 2Byte 用于获得本SMBIOS结构,其值不定

每个结构都分为格式区域和字符串区域,格式区域就是一些本结构的信息,字符串区域是紧随在格式区域后的一个区域。
结构 01H 处标识的结构长度仅是格式区域的长度,字符串区域的长度是不固定的。有的结构有字符串区域,有的则没有。

以TYPE0为例,格式区域如下:

位置 名称 长度 描述
00H TYPE号 1Byte 结构的TYPE号,此处是0
01H 长度 1Byte TYPE 0格式区域长度,一般为14H,也有13H
02H 句柄 2Byte 本结构的句柄,一般为0000H
04H BIOS厂商信息 1Byte 此处是BIOS卖方信息,可能是OEM厂商名,一般为01H,代表紧随格式区域后的字符串区域的第二个字符串
05H BIOS版本 1Byte BIOS版本号,一般为02H,代表字符串区域的第二个字符
06H BIOS开始地址段 2Byte 用于计算机常驻BIOS镜像大小计算,方法为 (10000H-BIOS开始地址段) * 16
08H BIOS发布日期 1Byte 一般为03H,表示字符区第三个字符串表示字符区第三个字符串
09H BIOS rom size 1Byte 计算方法为(n +1 )*64K ,n 为此处读出数值为(n +1 )×64K ,n 为此处读出数值
0AH BIOS 特征 8Byte Bios 的功能支持特征,如PCI,PCMCIA,FLASH 等
12H BIOS 特征扩展 不定  



相关推荐

legacy BIOS在1975年由IBM提出,现在一般使用legacy表示。 1、主要作用: (1)加电自检程序,开机时对硬件检测

BIOS BIOS用于计算机硬件自检、CMOS设置、引导操作系统启动、提供硬件I/O、硬件中断等4项主要功能,因此