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的所有部分(如果有)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sui创始团队在竞速环节中的快问快答

在Sui Basecamp活动期间,Sui区块链的最初贡献者在Oracle红牛赛车模拟器上展示了他们的技术能力,在驾驶圈时回答了有关Sui的问题。 Evan Cheng(又名Revvin’ Evan)在解释Mysticeti创下区块链最终性记录的同时保持着他的驾驶线路。…

Java | Leetcode Java题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; class Solution {void dfs(char[][] grid, int r, int c) {int nr grid.length;int nc grid[0].length;if (r < 0 || c < 0 || r > nr || c > nc || grid[r][c] 0) {return;}grid[r][c] 0;dfs(grid, r - 1, c);dfs(grid, r…

go Channel原理 (三)

Channel 设计原理 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存。 在主流编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信&#xff0c;同时也提供了一种不同的并发模型&#xff0c;即通…

【嵌入式——FreeRTOS】任务

【嵌入式——FreeRTOS】任务 任务创建和删除动态方式创建任务静态方式创建任务 删除任务任务切换调度器任务切换流程 任务挂起任务恢复相关API函数 任务创建和删除 动态方式创建任务 任务的任务控制块以及任务的栈空间所需的内存&#xff0c;均由freeRTOS从freeRTOS管理的堆中…

c#asp.net中字典的使用

字典是一个键值对&#xff0c;可以用来保存数据&#xff0c;再查询&#xff1b; 下面是一个案例&#xff1a;依据多个学号查询多个学生的姓名&#xff0c;只能到数据库查询一次数据&#xff01;&#xff01;&#xff01; 先在数据库查询学号对应的学生&#xff0c;把数据保存在…

mysql8.0.19安装zip版本

下载地址https://downloads.mysql.com/archives/community/ 下载版本 下载后解压&#xff0c;不包括data 和my.ini文件。其中data 文件是自动生成的【mysqld --initialize --console】&#xff0c;my.ini需要自己编写设置。 新建my.ini文件 需要自己设置 basedirG:\soft\mysql…

内网服务器时间校正

新购买的云服务器发现内网机器和可以访问外网的机器时间慢了三分钟&#xff0c;导致有些访问会报错&#xff0c;那么我们配置一下ntp校正一下时间。外网配置起来比较简单&#xff0c;直接下载ntp执行校正命令即可。 比当前时间慢了三分钟 注意当前服务器是可以访问外网的机器这…

【gitee使用教程】(创建项目仓库并上传代码简易版)

gitee使用教程&#xff0c;创建项目仓库并上传代码简易版 1.在码云上创建一个仓库2.将代码克隆到本地1.复制仓库地址2.找到你想要放置的文件位置&#xff0c;右键点击更多选项&#xff0c;选择Git Clone3.将复制的仓库地址填入URL 3. IDEA结合GIT和Gitee的简单使用idea需要识别…

【python】最新版抖音s逆向拿到数据,非常详细教程(附完整代码)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

Excel 宏录制与VBA编程 ——VBA编程技巧篇一 (Union方法、Resize方法、Cells方法、UseSelect方法、With用法)

Uniom方法 使用Union方法可以将多个非连续区域连接起来成为一个区域&#xff0c;从而可以实现对多个非连续区域一起进行操作。 Resize方法 使用Range对象的Resize属性调整指定区域的大小&#xff0c;并返回调整大小后的单元格区域。 Cells方法 Cells属性返回一个Range对象。 Us…

Domino应用中的HTML5

大家好&#xff0c;才是真的好。 在xpages多年不见有效更新&#xff0c;前景不明的时候&#xff0c;Domino传统Web应用开发方式还是受到了应有的青睐。毕竟&#xff0c;在Nomad Web时代&#xff0c;连最传统的Notes CS原生应用也突然焕发了勃勃生机一样。 但&#xff0c;对有…

什么是strcmp函数

目录 开头1.什么是strcmp函数2.strcmp函数里的内部结构3.strcmp函数的实际运用(这里只列举其一)脑筋急转弯 结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们要来认识一下C语言中的strcmp函数。 1.什么是strcmp函数 strcmp函数来自于C语言中的头文件<str…

ARP 原理详解 一

ARP 原理 ARP&#xff08;Address Resolution Protocol&#xff09;地址解析协议&#xff0c;是根据 IP 地址获取物理地址的一个 TCP/IP 协议。 OSI 网络七层模型中&#xff0c;IP 地址在 OSI 模型第三层&#xff0c;MAC 地址在第二层&#xff0c;彼此不直接通信。 在通过以…

Spring Cloud Alibaba AI 大模型使用示例

1 pom.xml, 注意版本(jdk17) &#xff0c;仓库地址&#xff0c;排除的依赖&#xff08;日志错误&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www…

性能测试中的场景设计和测试执行

假设一个内部系统要求响应时间在 3s 以内&#xff0c;支持最大用户数为4万。根据二八原则&#xff0c;80%用户在20%时间使用系统(4w80%)/(24h20%)≈1.9点击/秒。并发数TPS&#xff08;运行时间思考时间&#xff09;1.9&#xff08;30.50.330.50.30.53&#xff09;21。 注意&am…

Flutter循序渐进==>数据结构(列表、映射和集合)和错误处理

导言 填鸭似的教育确实不行&#xff0c;我高中时学过集合&#xff0c;不知道有什么用&#xff0c;毫无兴趣&#xff0c;等到我学了一门编程语言后&#xff0c;才发现集合真的很有用&#xff1b;可以去重&#xff0c;可以看你有我没有的&#xff0c;可以看我有你没有的&#xf…

毫米波雷达深度学习技术-1.7训练一个神经网络

1.7 训练一个神经网络 对于训练神经网络&#xff0c;有两个步骤&#xff0c;即前向传递和误差反向传播。 1.7.1 前向传播和反向传播 在前向传递中&#xff0c;输入被馈送到模型并与权重向量相乘&#xff0c;并为每一层添加偏差以计算模型的输出。密集层或全连接层第l层的输入、…

SQL面试题练习 —— 查询前2大和前2小用户并有序拼接

目录 1 题目2 建表语句3 题解 1 题目 有用户账户表&#xff0c;包含年份&#xff0c;用户id和值,请按照年份分组&#xff0c;取出值前两小和前两大对应的用户id&#xff0c;需要保持值最小和最大的用户id排首位。 样例数据 ------------------------- | year | user_id | v…

网络基础-RIP协议

RIP&#xff08;Routing Information Protocol&#xff09;是一个基于距离矢量的动态路由协议&#xff0c;常用于小型到中型网络。RIP是较早的路由协议之一&#xff0c;具有简单易用的特点。以下是关于RIP协议的详细介绍&#xff1a; RIP的主要特点 ①使用跳数&#xff08;ho…

非标设备行业的数智化项目管理

近年来&#xff0c;中国制造快速发展&#xff0c;企业迫切需要加快转型升级。与传统制造业相比&#xff0c;高端制造业具有明显的优势&#xff1a;高技术、高附加值、低污染、低排放、竞争优势强。一方面&#xff0c;企业对于生产效率和自动化水平的要求不断提高&#xff0c;期…