NVMe解读---Boot Partition(write篇)

     Boot Partition的内容可以用下载固件image或者固件写入的方式进行改变。

     以下是更新Boot Partition的步骤:

     ① 主控发出一个下载image下载命令来将Boot Partition的内容下载到controller之中。这个过程中也许有多个Boot Partition的部分需要下载,因此每个Boot Partition部分的偏移地址会在Image Download Cmd中被指定。主控软件将发送Boot Partition image来按序从Boot Partition的基地址启动;

     ② 解锁Boot Partition;

      主控提交一个带有110b的Firmware Commit command,以此来指定所下载的Image需要在Boot Partition ID区域里替换的内容;

      控制器完成Firmware Commit command,host将会采取以下错误应对方案:

         a. 如果因为Boot Partition没能成功写入的原因而导致固件激活失败,控制器会报Boot Partition Write Prohibited

     主控读取Boot Partition中的内容来验证他们的正确性。主控软件通过提交Firmware Commit command(with a Commit Action of 111b)更新Boot Partition ID的激活状态。

      ⑥ 主控锁Boot Partition访问权限来防止额外的改动。

 

     如果发生断电、重启或其它内部错误造成下载image中断,那么Boot Partition内可能会存在新、旧内容混合存在的状况。故而在激活Boot Partition之前需要Host对其内容进行验证。

你可能感兴趣的:(协议解读)