可按 JEDEC 字节寻址且以能源为支持的功能类的 _DSM 接口(功能接口 1)
本部分介绍 设备特定方法 (_DSM) 接口,该接口旨在映射到 JEDEC 字节可寻址能源支持接口标准,以最大程度地降低 BIOS 的复杂性。 它提供了报告设备功能 & 功能的通用基础,使 OS 软件可以通过相同的机制与各种实现进行交互。 此外,它还允许通过访问 I2C 寄存器来支持特定于供应商的功能。
符合字节可寻址能量支持函数类_DSM接口 (函数接口 1) 的平台可以支持实现 JEDEC 字节可寻址能量支持接口 规范的 NVDIMM-N, (函数类0x01和函数接口0x01) 。 有关详细信息,请参阅 JEDEC 字节可寻址能量支持接口规范 (文档JESD245) 。
GUID 定义
JEDEC 字节可寻址能量支持函数类的 GUID _DSM 接口为 1EE68B36-D4BD-4a1a-9A16-4F8E53D46E05
。
必需函数和字段
本部分中定义的_DSM函数应在 NVDIMM ACPI 命名空间设备对象中实现。 术语 “必需” 是指函数是否必须返回有效数据。
下表指定了必需的函数和字段,其中“ESP”代表“能源策略”。
功能索引 | 函数名称 | 对于 Device-Managed ESP 是必需的 | 对于 Host-Managed ESP 是必需的 |
---|---|---|---|
0 | 查询实现的功能(功能索引 0) | 是 | 是 |
1 | 获取 NVDIMM-N 标识(功能索引 1) | 是 | 是 |
2 | 获取保存操作要求(功能索引 2) | 是 | 是 |
3 | 获取能量源标识(功能索引 3) | 是 | 是 |
4 | 获取上次备份信息(功能索引 4) | 是 | 是 |
5 | 获取 NVM 阈值(功能索引 5) | 是 | 是 |
6 | 设置 NVM 生存期百分比警告阈值(功能索引 6) | 是 | 是 |
7 | 获取能量源阈值(功能索引 7) | 是 | 否 |
8 | 设置能量源生存期警告阈值(功能索引 8) | 是 | 否 |
9 | 设置能量源温度警告阈值(功能索引 9) | 是 | 否 |
10 | 获取关键的运行状况信息(功能索引 10) | 是 | 是 |
11 | 获取 NVDIMM-N 运行状况信息(功能索引 11) | 是 | 是 |
12 | 获取能量源运行状况信息(功能索引 12) | 是 | 否 |
13 | 获取操作统计信息(功能索引 13) | 是 | 是 |
14 | 获取供应商日志页大小(功能索引 14) | 是 | 是 |
15 | 获取供应商日志页(功能索引 15) | 是 | 是 |
16 | 查询错误注入状态(功能索引 16) | 是 | 是 |
17 | 注入错误(功能索引 17) | 是 | 是 |
18 | 获取注入的错误(功能索引 18) | 是 | 是 |
19 | 擦除 NVM 图像(功能索引 19) | 是 | 是 |
20 | Arm NVDIMM-N(功能索引 20) | 是 | 是 |
21 | 重置为出厂默认设置(功能索引 21) | 是 | 是 |
22 | 启动固件更新(功能索引 22) | 是 | 是 |
23 | 发送固件更新数据(功能索引 23) | 是 | 是 |
24 | 完成固件更新(功能索引 24) | 是 | 是 |
25 | 选择固件映像槽(功能索引 25) | 是 | 是 |
26 | 获取固件信息(功能索引 26) | 是 | 是 |
27 | I2C 读取(功能索引 27) | 是 | 是 |
28 | I2C 写入(功能索引 28) | 是 | 是 |
29 | 读取类型化数据(功能索引 29) | 是 | 是 |
30 | 写入类型化数据(功能索引 30) | 是 | 是 |
31 | 设置内存错误计数器(功能索引 31) | 是 | 是 |
_DSM方法输入
所有函数的 Arg3 都是 Package 值。 如果该函数不采用输入参数,则 Package 值不包含任何数据。 如果函数采用输入参数,则 Package 值包含缓冲区。
如果函数不采用输入参数且 Arg3 不是空包,则该函数应返回无效输入参数的 常规状态代码 。
_DSM 方法输出
所有方法都将返回长度大于或等于 4 个字节的缓冲区。 返回缓冲区的前 4 个字节的结构如下:
字段 | 字节长度 | 字节偏移量 | 描述 |
---|---|---|---|
常规状态代码 | 2 | 0 | 常规状态代码。 请参见下面可能的值。 |
Function-Specific 错误代码 | 1 | 2 | 特定于调用的函数的错误代码。 如果 常规状态代码 等于 特定于函数的错误代码,则此字段仅包含有效信息。 |
供应商特定的错误代码 | 1 | 3 | 特定于供应商的状态代码。 如果 常规状态代码 等于 特定于供应商的错误代码,则此字段仅包含有效信息。 |
下面是 常规状态代码的可能值。
值 | 含义 |
---|---|
0 | 成功 |
1 | 不支持 |
2 | 无效的输入参数 |
3 | I2C 通信错误 |
4 | Function-Specific 错误代码 |
5 | 供应商特定的错误代码 |
6 | 0xFFFF – 保留 |
任何非零的 常规状态代码 都指示函数失败。 此版本的规范中定义的函数不应返回“不支持的常规状态代码”。 所有必需函数应返回有效数据或指示运行时错误的错误代码。 非强制函数可能会返回 Function-Specific 错误代码,以指示没有要返回的有效数据。
所有保留位和字节的值应为 0。 除非另有说明,否则所有多字节字段应以 little-endian 的方式表示。
注意
对字节可寻址 Energy-Backed 接口寄存器的引用描述了此接口中指定的函数的许多返回字段。 这些字段应与 Byte-Addressable Energy-Backed 接口规范的“字节可寻址能量支持接口,版本 1.0,JEDEC 标准 No. 2233-22”修订版中定义的寄存器相同。 规范版本在获取 NVDIMM-N 标识 (函数索引 1) 函数返回的规范修订字段中报告。
某些返回字段引用有关能源 (ES) 的信息。 当 ES 策略由设备管理时,平台应读取字段说明中指定的硬件寄存器,以检索所有与 ES 相关的信息。 当 ES 策略由主机管理时,平台应通过特定于平台的机制获取与 ES 相关的信息。 在这种情况下,所有与 ES 相关的信息应以与字段说明中指定的硬件寄存器相同的二进制布局呈现。