【NVMe2.0b 14-5】Firmware Download/Commit command
Firmware Download/Commit
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 字段。保留所有其他命令特定字段。
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 节。
Firmware Commit 命令特定状态值在Figure 183 中定义。
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 字段。保留所有其他命令特定字段。
5.13.1Command Completion
完成 Firmware Image Download 命令后,控制器将完成队列条目发布到 Admin Completion Queue。Firmware Image Download 命令特定状态值在Figure 187 中定义。
如果控制器检测到多个 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 节。
更多推荐
所有评论(0)