8.1 Firmware Update Process

8.1 Firmware Update Process

通过reset激活firmware 更新的过程:

  • host发出firmare下载命令,将FW image下载到控制器。FW image可能有多个部分要下载,因此FW image 下载命令中指定正在下载的FW image的每个部分的偏移量。FW image 下载命令中提供的数据应该符合Identify Controller data structure中的FWUG,否则会更新失败。
  • FW image下载到控制器后,host下一步是FW Commit 命令。FW Commit 命令验证最后下载的FW image是否有效,并将该image提交到指定的FW Slot以供使用。FW image不以0偏移开始,包含间隙或包含重叠区域,则视为无效。控制器可以采用额外的供应商特定方法(例如检验, CRC,密码三列或数字签名)来确定FW image的有效性。 FW Commit可以用于激活与先前提交的FW slot相关联的FW image。
  • 最后一步是执行reset,然后激活FW Commit 命令中FW Slot中指定的FW image。重置可以是NVM 子系统重置, Conventional Reset, Function Level Reset, or Controller Reset (CC.EN transitions from ‘1’ to ‘0’):在某些情况下,需要a Conventional Reset or NVM Subsystem Reset 来激活FW image,这个要求有FW commit 命令特定状态指出,参考 章节5.11
  • 在reset完成后,host重新初始化控制器。包括重新分配I/O提交和完成队列。参见章节7.6.1.

在没有reset的情况下激活FW更新的过程是:

  • host发出FW image 下载命令,将FW image下载到控制器。下载的FW image 可能存在多个部分,因此在FW image下载命令中指定正在下载的FW image的每个部分的偏移量。FW image下载命令中提供的数据应符合 Identify Controller data structure中的FWUG,否则FW 会更新失败。
  • host 提交具有011b的提交操作的FW Commit 命令,该命令指定应立即激活image 而不reset。下载的image 应替换FW slot中的image。如果自上次 reset或FW commit命令(即跳过第一步)以来没有下载image,则控制器应验证并激活指定slot中的image。如果控制器开始激活FW,受新FW影响的任何控制器都会向host发送FW激活启动异步事件(如果启用了固件激活通知)参见图291.
    a.FW 提交命令还可以用于激活与先前提交的FW slot相关联的FW image。

Figure 291: Asynchronous Event Configuration

BitsDescription
09Firmware Activation Notices: 该bit位确定是否向主机发送FW激活启动事件的异步事件通知(参见图149),如果此位设置为1,则当出现此情况时,FW激活启动事件会发送到host。如果此位被清除为0,则控制器不应向host发送FW激活启动事件。

Figure 149: Asynchronous Event Information – Notice

ValueDescription
01hFirmware Activation Starting: 控制器正在启动FW 激活过程,在次过程暂停命令处理。host可以通过CSTS.PP 确定命令处理何时已恢复。要清除此事件,host将读取FW slot信息日志页。
  • 控制器完成FW 提交命令。在某些错误情况下会采取以下操作:
    a. 如果FW image 无效,则控制器报告适当的错误(例如, Invalid
    Firmware Image )
    b. 如果FW 激活不成功,因为需要Controller Level Reset来激活该FW ,则控制器报告FW激活需要Controller Level Reset的错误,并且在下一次Controller Level Reset时应用该image。
    c.如果FW 激活不成功,因为需要NVM Subsystem Reset来激活该FW,则控制器报告FW激活需要NVM Subsystem Reset的错误,并且在下一次NVM Subsystem Reset是应用该image。
    d. 如果FW激活不成功,因为需要Conventional Reset来激活该FW,则控制器报告FW激活需要Conventional Reset的错误,并且在下一次Conventional Reset时应用图像。
    e. 如果FW激活不成功,因为FW激活时间将超过 Identify Controller data structure中的MTFA值,则控制器报告FW激活需要最长时间违规的错误。在这种情况下,要激活FW,需要重新发出FW 提交命令,并使用reset 激活image。

如果控制器在提交试图激活FW image的FW 提交命令之后并且在该命令完成之前转到D3cold 状态(参考PCI Express Base Specification),则控制器可以在提交FW 提交命令时激活FW image或者由该命令激活的FW image的情况下恢复操作。如果无法成功加载FW,则控制器应恢复到最近激活的FW slot中的FW image或基线只读FW image(如果可用),并将故障指示为带有FW image加载错误的异步事件。
如果host 覆盖活动FW slot中的FW,则先前活动的FW image可能不在可用。因此需要使用该FW slot的任何动作(例如: power cycling the controller)都可以使用当前在该FW Slot中的FW image。
host不应同时更新多个FW image,下载FW image后,host 会在下载其他FW image 之前发出FW 提交命令。在完成FW提交命令对第一个FW 下载命令的处理应使控制器丢弃下载image的剩余部分(如果有)。如果FW下载和FW提交命令完成之间发生reset,则控制器应丢弃下载image的所有部分(如果有)。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

煮雨小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值