【NVMe2.0b 14-5】Firmware Download/Commit command

5.12Firmware Commit command

注意:此命令在 1.2 版之前的 NVM Express Base Specification revisions 中称为“Firmware Activate”。

Firmware Commit 命令用于修改 firmware image 或 Boot Partitions。

修改 firmware image 时,Firmware Commit 命令验证是否已下载有效的 firmware image 并将该修改版提交到特定firmware slot。作为该命令的一部分,主机可以选择 firmware image 以在下一次Controller Level Reset 时激活。主机可以通过检查Figure 275 中 Identify Controller data structure 中的 Firmware Revision 字段来确定当前执行的固件版本。主机可以通过检查 Firmware Slot Information log page 来确定要在下一次 Controller Level Reset 时执行的固件版本。Domain中的所有控制器共享firmware slot,并且相同的 firmware image 应用于该domain中的所有控制器(NVM 子系统中的所有控制器(如果不支持多个域)或该域中的所有控制器(如果支持多个域)) .

firmware image的激活可能会导致发生主机不期望的控制器行为更改(例如,UUID List 中的不兼容更改(请参阅第 8.25.2 节))。在这种情况下,如果 Commit Action 字段设置为 011b,则控制器应中止命令,状态码为 Firmware Activation Requires Conventional Reset。

修改 Boot Partitions 时,主机可以选择 Boot Partition 标记为激活或替换。Boot Partition 只能在unlock时写入(请参阅第 8.2 节)。

Firmware Commit 命令使用 Command Dword 10 字段。保留所有其他命令特定字段。

Figure 181: Firmware Commit – Command Dword 10

在这里插入图片描述

5.12.1Command Completion

完成 Firmware Commit 命令后,控制器将完成队列条目发布到 Admin Completion Queue,指示命令的状态。

对于指定在下一次Controller Level Reset(即,CA 字段设置为 001b 或 010b)时激活新 firmware image 并完成状态代码值为 0h 的 Firmware Commit 命令,由第 3.7.2 节中定义的方法启动 Controller Level Reset 会激活指定的固件。

如果控制器检测到多个 firmware image 和/或 Boot Partition 出现重叠的firmware/boot partition image update command sequences(参考1.5.23)或使用多个控制器 和/或 Management Endpoint 更新单个 firmware image,然后如Figure 182 中定义的那样,在完成队列条目的 Dword 0 中报告该检测的结果。请参阅第 3.11 节和第 8.2.2 节。

Figure 182: Firmware Commit – Completion Queue Entry Dword 0

在这里插入图片描述

Firmware Commit 命令特定状态值在Figure 183 中定义。

Figure 183: Firmware Commit – Command Specific Status Values

在这里插入图片描述
在这里插入图片描述

5.13Firmware Image Download command

Firmware Image Download命令用于下载全部或部分image,以便将来更新到控制器。当Admin Submission Queue 或 I/O Submission Queues 上的其他命令未完成时,可能会提交Firmware Image Download命令。Firmware Image Download命令将新image(全部或部分)下载到控制器。

image可以由多个片段构成,这些片段通过单独的Firmware Image Download命令单独下载。每个Firmware Image Download命令都包含一个 Dword Offset 和 Number of Dwords,用于指定一个 dword 范围。主机软件应确保image片段没有重叠的Dword范围,并且 NUMD 字段和 OFST 字段满足 FWUG 字段中指示的对齐和粒度要求(参见Figure 275)。固件部分可能会乱序提交给控制器。更新Boot Partition 时,主机软件应按顺序提交image部分。如果范围重叠,控制器可能会返回 Overlapping Range 错误。

新firmware image不会作为 Firmware Image Download命令的一部分激活。有关固件更新过程的详细信息,请参阅第 3.11 节。固件更新过程不会修改 Boot Partition 的内容。有关Boot Partition更新过程的详细信息,请参阅第 8.2.2 节。

主机软件不应与 Boot Partitions 和/或firmware image的更新命令序列重叠(请参阅第 3.11 节和第 8.2.2 节)。

下载 image 后,主机软件会在下载另一个 image 之前发出Firmware Commit交命令。在完成 Firmware Commit 命令后处理第一个 Firmware Image Download 命令将导致控制器丢弃下载的image所有剩余部分(如果有)。如果在firmware download和Firmware Commit命令完成之间发生Reset,则控制器应丢弃所有image下载的部分(如果有)。

Firmware Image Download命令使用 Data Pointer、Command Dword 10 和Command Dword 11 字段。保留所有其他命令特定字段。

Figure 184: Firmware Image Download – Data Pointer

在这里插入图片描述

Figure 185: Firmware Image Download – Command Dword 10

在这里插入图片描述

Figure 186: Firmware Image Download – Command Dword 11

在这里插入图片描述

5.13.1Command Completion

完成 Firmware Image Download 命令后,控制器将完成队列条目发布到 Admin Completion Queue。Firmware Image Download 命令特定状态值在Figure 187 中定义。

Figure 187: Firmware Image Download – Command Specific Status Values

在这里插入图片描述

如果控制器检测到多个 firmware image 和/或 Boot Partition 出现重叠的firmware/boot partition image update command sequences(请参阅第 1.5.23 节)或使用多个控制器 和/或 Management Endpoint 更新单个 firmware image,那么应该在完成队列条目的 Dword 0 中报告该检测的结果,如Figure 182 中定义的那样。请参阅第 3.11 节和第 8.2.2 节。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值