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

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

Blog Author

深入分析 VPD Write 命令(续)


VPD Write 命令进一步说明

概述:

VPD Write 命令 允许通过指定的 Data Offset (DOFST)Data Length (DLEN) 更新 Vital Product Data (VPD),也就是设备的关键信息数据。该命令通常用于设备的配置和管理。命令的作用是将新数据写入 VPD,但需要注意若数据超出可写范围或数据格式错误时,命令会返回错误响应。

详细命令结构:

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) 指定写入数据的字节长度

写入行为与限制:

  1. Data Offset (DOFST) 和 Data Length (DLEN)
  2. DOFST 表示写入的起始位置。如果 DOFST 超过了设备的 FRU 信息设备 最大大小,系统会返回错误。
  3. 如果 DOFST 小于 FRU 信息设备 的最大大小,而 DOFSTDLEN 的总和超过了最大大小,则系统会因为数据超限而返回错误。

  4. 数据写入过程:

  5. 在执行 VPD Write 命令时,不应同时进行 VPD Read 操作,因为这可能导致读取的数据不一致。
  6. 如果 DOFST 字段超出可写数据范围,或者 DLEN 指定的长度超出设备可支持的最大数据,系统会返回 Invalid Parameter Error Response,并在 PEL 字段中指示错误字段。

  7. 错误响应:

  8. Invalid Parameter Error:如果 DOFSTDLEN 的值不在有效范围内,响应会包含一个错误码,指示无效字段。

  9. 命令成功条件:

  10. 如果 DOFSTDLEN 的值有效,且数据成功写入,则 VPD Write 命令会成功执行,并且设备上的 VPD 数据会被更新。

执行时注意事项:

  • 数据写入时的同步问题:命令执行时应避免读取正在写入的 VPD 数据,因为此时读取的 VPD 数据可能会是部分更新的内容,导致数据不一致。
  • 写入超限错误:如果写入的偏移量或长度超出 FRU 信息设备的最大支持范围,命令将会返回错误,提醒请求的数据超出了可写的范围。

总结:

命令 用途 关键字段 错误处理
VPD Write 更新设备的 Vital Product Data DOFST, DLEN 如果 DOFSTDLEN 超限,返回 Invalid Parameter Error

通过上述命令,设备管理者可以更新设备的 VPD 数据,确保硬件配置的准确性。需要特别注意,执行命令时要避免数据读取和写入冲突,确保更新成功。

如果您有进一步的问题或需要更详细的帮助,请随时告知!