5.2.30. 平台健康评估表 (PHAT)
本节介绍平台运行状况评估表 (PHAT) 的格式,它提供了一种方法,平台可以通过该方法公开一组可扩展的平台运行状况相关遥测数据,这对于在操作系统限制内运行的软件可能很有用。这些元素通常包含在OS运行时阶段可能无法枚举的内容,例如OS之前组件的版本,或者在OS启动之前由平台执行的固件驱动程序的运行状况。预计OSPM不会对暴露的数据产生作用。
| 表 5.142 平台健康评估表 (PHAT) 格式 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 标题 | |||
| - 签名 | 4 | 0 | PHAT 平台健康评估表签名。 |
| - 长度 | 4 | 4 | 整个PHAT 的表长度(以字节为单位) |
| - 修订 | 1 | 8 | 与该表的签名字段相对应的结构的修订版。对于确认该规范修订版的PHAT,修订版为1。 |
| - 校验和 | 1 | 9 | 整个表(包括校验和字段)必须加为零才能被视为有效。 |
| - OEMID | 6 | 10 | 10 OEM 提供的字符串,用于标识 OEM。 |
| - OEM 表 ID | 8 | 16 | 16 OEM 提供的字符串,OEM 用于标识此特定数据表 |
| - OEM 修订 | 4 | 24 | OEM-提供的修订号。 |
| - 创建者ID | 4 | 28 | 28创建此表的实用程序的供应商ID。 |
| - 创建者修订 | 4 | 32 | 32创建此表的实用程序的修订版。 |
| 平台遥测记录 | – | 36 | 36平台遥测记录集 |
5.2.30.1. 平台健康评估记录格式
平台健康评估记录由包含记录类型和长度的子标头以及一组数据组成。记录布局的格式特定于记录类型。以这种方式,记录的大小仅与包含要传送的特定类型的数据所需的大小相同。
| 表 5.143 平台健康评估记录格式 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 平台健康评估记录类型 | 2 | 0 | 该值描述了平台健康评估记录的格式和内容。 |
| 记录长度 | 2 | 2 | 该值描述了平台运行状况评估记录的长度(以字节为单位)。 |
| 修订 | 1 | 4 | 如果扩展记录类型的格式,则更新该值。对平台健康评估记录布局的任何更改都必须向后兼容,因为所有先前定义的字段如果仍然适用,则必须保留,但新定义的字段允许增加平台健康记录的长度。以前定义的记录字段不得重新定义,但允许废弃。 |
| 数据 | – | 5 | 该字段的内容由平台健康评估记录类型定义定义。 |
5.2.30.2. 平台健康评估记录类型格式
下表描述了PHAT中包含的各种类型的记录及其关联的平台运行状况评估记录类型。请注意,除非另有说明,对于给定类型,PHAT中允许有多个平台遥测记录。
| 表 5.144 平台健康评估记录类型格式 记录类型值 | 类型 | 描述 |
|---|---|---|
| 0x0000 | 0x0000固件版本数据记录 | OS之前的平台运行状况评估记录,包含平台固件、选项 ROM 和其他OS之前的平台组件内组件的版本数据。 |
| 0x0001 | 0x0001固件健康数据记录 | OS之前的平台健康评估记录包含OS之前的平台组件的健康相关信息。 |
| 0x0002 – 0x0FFF | 0x0002 – 0x0FFF 保留 | 保留供ACPI规范使用。 |
| 0x1000 – 0x1FFF | 0x1000 – 0x1FFF 保留 | 保留供平台供应商使用。 |
| 0x2000 – 0x2FFF | 0x2000 – 0x2FFF 保留 | 保留供硬件供应商使用。 |
| 0x3000 – 0x3FFF | 0x3000 – 0x3FFF 保留 | 保留供平台固件供应商使用。 |
| 0x4000 – 0x4FFF | 0x4000 – 0x4FFF 保留 | 保留以供将来使用。 |
5.2.30.3. 固件版本数据记录结构
平台健康评估记录,其中包含与平台中OS之前的组件关联的版本相关信息。
| 表 5.145 PHAT 版本元素 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 组件ID | 16 | 16 0 | 与该组件关联的唯一GUID。 |
| 版本值 | 8 | 16 | 16 64 位版本值 |
| 制作人ID | 4 | 24 | ACPI 供应商 ID(例如“ABCD”): 0xFFFF – 未定义 ID 0x0000 – 无效值 |
| 表 5.146 固件版本数据记录 字段 | 字节长度 | 字节偏移 | 描述 |
| --- | --- | --- | --- |
| 平台记录类型 | 2 | 0 | 0 – 固件版本数据记录 |
| 记录长度 | 2 | 2 | 12+28*RecordCount – 该值描述版本数据记录的长度(以字节为单位)。 |
| 修订 | 1 | 4 | 1 – 本固件版本数据记录的修订。 |
| 保留 | 3 | 5 | 保留 |
| 记录数 | 4 | 8 | PHAT 版本元素计数 |
| PHAT 版本元素 | 变化 | 12 | 12 PHAT版本元素数组。第一个条目是组件的原始生产者,如果有后续条目,则意味着第二个代理以某种方式修改了原始组件,无论最后一个条目是什么,它都是该组件当前运行的实例。这允许IHV/IBV/OEM/其他建立与给定组件关联的数据记录链。 |
5.2.30.4. 固件健康数据记录结构
平台健康评估记录,其中包含与平台中OS之前的组件相关的健康相关信息。该结构旨在用于以通用方式识别OS之前组件的准系统状态。此外,设备路径可以给出平台在OS之前的位置的标准化提示,无论它是众所周知的硬件节点(例如存储控制器)还是可能挂在另一条总线上的其他供应商特定位置。
这种结构还提供了一种方法,平台可以通过该方法公开设备特定的数据,而不仅仅是简单的健康和不健康声明。
| 表 5.147 固件健康数据记录结构 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 平台记录类型 | 2 | 0 | 1 – 固件健康数据记录 |
| 记录长度 | 2 | 2 | 变化 – 该值描述健康数据记录的长度(以字节为单位)。 |
| 修订 | 1 | 4 | 1 – 修订本固件健康数据记录。 |
| 保留 | 2 | 5 | 保留 |
| 健康 | 1 | 7 | 设备是否遇到任何问题?这允许解析此记录的任何代理了解设备是否健康,而无需解析特定于设备的健康数据。任何设备运行状况都可能会暴露设备特定的数据: 0= 发现错误 1= 未发现错误 2= 未知 3= 建议 – 暴露其他设备特定数据 |
| 设备签名 | 16 | 16 8 | 与该设备关联的唯一GUID。 |
| 设备特定的数据偏移 | 4 | 24 | 从该数据记录开始到设备特定数据的偏移量。如果为 0,则没有设备特定数据。 |
| 设备路径 | 变化 | 28 | 28与唱片制作人关联的UEFI设备路径。有关EFI_DEVICE_PATH_PROTOCOL定义,请参阅UEFI规范。 |
| 设备特定数据 | 变化 | 设备特定的数据偏移 | 与特定设备关联的健康记录。它的定义特定于生成该记录的给定设备。 |