数据结构读取与响应格式 - 页码132
NVMe-MI 1 min read

数据结构读取与响应格式 - 页码132

Blog Author

深入分析 VPD Write 命令


VPD Write 命令

用途

VPD Write 命令 用于更新 Vital Product Data (VPD),即设备的关键信息。更新后的 VPD 将反映在 FRU 信息设备 中,或者在 VPD Read 命令执行时返回新的数据。此命令通常用于设备配置或维护过程中,允许修改和更新硬件信息。

命令流程

  1. 数据传输:VPD Write 命令通过 Request Data 字段传递要写入的新 VPD 数据。写入的数据将覆盖现有的 VPD 内容。
  2. 写入成功:命令处理完成后,如果没有错误,通过 VPD Read 命令读取 VPD 时,将返回更新后的内容。
  3. 写入次数限制:VPD 内容的更新次数是有限的,通常至少可以更新 8 次。如果 VPD Write Cycles Remaining 字段值小于 100,则会设置 VPD Write Cycle Remaining Valid 位为 1。

数据结构

VPD Write 命令 使用 NVMe Management Dwords 0 和 Dword 1 字段来传递必要的数据。

NVMe Management Dword 0 格式(见 Figure 131):

字节范围 字段 说明
31:16 Reserved 保留字段
15:00 Data Offset (DOFST) 指定 VPD 数据的偏移量,表示从哪个位置开始写入数据。

NVMe Management Dword 1 格式(见 Figure 132):

字节范围 字段 说明
31:16 Reserved 保留字段
15:00 Data Length (DLEN) 指定要写入的 VPD 数据的长度(字节数)。

命令执行成功

  • Data Length (DLEN) 为 0h 时,表示没有数据传输,命令仍然有效并返回 Success Response
  • Data Offset (DOFST) 指定了数据写入的位置。如果偏移量超过了 VPD 数据的最大大小,系统会返回 Invalid Parameter Error Response
  • VPD Write Cycles:如果 VPD Write Cycles Remaining 字段值小于 100,则表示剩余写入次数有限,且 VPD Write Cycle Remaining Valid 位会被设置为 1。

错误处理

  • 如果命令无法成功更新 VPD 数据,系统将返回 Generic Error Response 并指明是 VPD Writes Exceeded 状态错误。

总结

命令 用途 关键字段
VPD Write 更新 VPD 数据,即设备的关键信息 DOFST, DLEN
  • VPD Write 允许更新设备的 Vital Product Data。需要提供 Data OffsetData Length 来指定数据的起始位置和大小。
  • 如果没有数据或长度为 0,命令仍然有效,但不会实际写入任何数据。

如果您有任何进一步的问题或需要更多细节,请随时提问!