数据结构读取与响应格式 - 页码132
深入分析 VPD Write 命令
VPD Write 命令
✅ 用途:
VPD Write 命令 用于更新 Vital Product Data (VPD),即设备的关键信息。更新后的 VPD 将反映在 FRU 信息设备 中,或者在 VPD Read 命令执行时返回新的数据。此命令通常用于设备配置或维护过程中,允许修改和更新硬件信息。
✅ 命令流程:
- 数据传输:VPD Write 命令通过 Request Data 字段传递要写入的新 VPD 数据。写入的数据将覆盖现有的 VPD 内容。
- 写入成功:命令处理完成后,如果没有错误,通过 VPD Read 命令读取 VPD 时,将返回更新后的内容。
- 写入次数限制: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 Offset 和 Data Length 来指定数据的起始位置和大小。
- 如果没有数据或长度为 0,命令仍然有效,但不会实际写入任何数据。
如果您有任何进一步的问题或需要更多细节,请随时提问!