CN114968315A - 固件升级/降级方法及其存储设备 - Google Patents

固件升级/降级方法及其存储设备 Download PDF

Info

Publication number
CN114968315A
CN114968315A CN202210010424.0A CN202210010424A CN114968315A CN 114968315 A CN114968315 A CN 114968315A CN 202210010424 A CN202210010424 A CN 202210010424A CN 114968315 A CN114968315 A CN 114968315A
Authority
CN
China
Prior art keywords
firmware
storage device
version number
package
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210010424.0A
Other languages
English (en)
Inventor
王朋飞
李跃鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Manbu Information Technology Co ltd
Original Assignee
Shanghai Manbu Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Manbu Information Technology Co ltd filed Critical Shanghai Manbu Information Technology Co ltd
Priority to CN202210010424.0A priority Critical patent/CN114968315A/zh
Publication of CN114968315A publication Critical patent/CN114968315A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了电子设备固件更新方法与存储设备。所提供的电子设备的固件更新方法,包括:响应于要用待安装固件包对电子设备固件进行升级,获取待安装固件包的版本号(Version’)、待安装固件包的引导固件上次变更版本号(VsLastChange’)与待安装固件包的主固件升级上界版本号(Vuplimit’),以及还获取存储设备的固件的版本号(Version);若待安装固件包的主固件升级上界版本号(Vuplimit’)不大于存储设备的固件版本号(Version),且待安装固件包的引导固件上次变更版本号(VsLastChange’)不大于存储设备的固件版本号(Version),从待安装固件包中提取主固件安装在存储设备中。

Description

固件升级/降级方法及其存储设备
技术领域
本申请涉及存储技术,特别地,涉及提高存储设备的固件自动选择性升级/降级的方法及其存储设备。
背景技术
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口、介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储设备存储了主固件与引导固件。控制部件104加载并执行固件来处理IO命令以及实施存储设备的其他功能。固件是例如存储设备104的处理器运行的软件。引导固件存储在例如存储设备104的NOR闪存(未示出)。控制部件上电后从NOR闪存的指定地址加载并执行引导固件。执行引导固件来初始化存储设备的各部件,以及加载主固件。主固件存储在例如NVM芯片。为提高可靠性,NVM芯片中存储了多份主固件的镜像或副本。响应于加载了主固件,引导固件将控制权移交给主固件。
存储设备还包括超级块(图1未示出)。超级块记录存储设备的配置信息与上下文信息。配置信息记录了例如存储设备的容量、所使用的NVM芯片的型号与工作参数、NVM芯片的排布方式等;上下文信息包括诸如非易失的FTL表、工作日志等信息,其代表了存储设备的工作状态,并且在存储设备工作中可频繁改变。超级块通常存储在一个或多个NVM芯片中。存储设备工作期间,超级块会被更新。
为了升级、管理、维护等目的,存储设备的主固件、引导固件和/或超级块可被外部地更新。这种更新不是因存储设备的工作而引起,而是由管理员、存储设备的供应商或其他人员实施。在更新过程中,使用“固件包”来容纳待安装到存储设备的主固件、引导固件与超级块。可以理解地,固件包可包括其他数据(统称为可选的配置信息),例如,用于存储设备的电源管理单元的固件、加密数据的公钥、版本号、所适用的存储设备的型号等。
为了简单的目的,将存储设备使用的主固件、引导固件、超级块、附加配置信息等统称为固件。
图2展示了现有技术的固件包的结构。
固件包是文件、数据块或数据库中的数据记录,用于为存储设备的固件更新提供所需的数据。可以理解地,诸如手机、路由器等多种电子设备都需要更新固件,固件包也可用于这些电子设备。
图2中,固件包包括超级块、引导固件、主固件与可选的附加配置信息。固件包的超级块是存储设备初始状态的超级块,或特定工作状态的超级块,其同使用中的存储设备的超级块的内容存在差异。超级块、引导固件、主固件与可选的附加配置信息都可能在对存储设备的固件中被使用。将这些信息打包为固件包,使得交付和使用单一的固件包来简化对存储设备的固件更新的过程。在一个例子中,固件包对应于单一型号的产品与该产品的单一版本的固件。在另一个例子中,固件包容纳了多种型号产品的固件,和/或产品的多个版本的固件。
图3展示了用待安装固件包更新存储设备的固件的示意图。
有多种固件更新方式。通过向存储设备发送携带了固件包的固件更新命令,来更新存储设备的固件。固件更新命令包括例如普通固件更新命令、选择性固件更新命令等。响应于普通固件更新命令,将待安装固件包中的超级块、引导固件、主固件以及可选的附加配置信息都安装到存储设备中,存储设备中的固件都被更新。响应于选择性固件更新命令,在命令中指示待安装固件包中的超级块、引导固件、主固件以及可选的附加配置信息的一种或多种,将选择出的部分安装到存储设备,以替换存储设备的固件的对应部分。
固件包具有版本。由例如版本号(Version)标识固件包的版本。通常,同一固件包中的超级块、引导固件、主固件以及可选的附加配置信息彼此兼容,能协同工作。从而普通固件更新命令被执行后,更新了固件的存储设备通常能正常工作。而在选择性固件更新命令被执行后,安装到存储设备的超级块、引导固件、主固件以及可选的附加配置信息各自可能属于具有不同版本号的固件包,由于这些固件之间的兼容性,使得更新了固件的存储设备可能无法工作。固件包中的超级块、引导固件、主固件以及可选的附加配置信息各自也具有版本。
发明内容
由于不同版本固件之间存在不兼容的可能,在更新存储设备的固件时,需要用户知晓存储设备上的固件各部分(超级块、引导固件、主固件和/或附加配置信息)的版本,以及待安装固件包中固件各部分的版本,并且提前确认更新后的存储设备上的固件各部分是否兼容,再决定是否执行固件更新命令。若更新的固件存在不兼容,则可能导致存储设备上已经存储的数据被破坏,并且难以恢复。在存在多种型号的存储设备、多种版本的固件包以及固件各部件也各自具有多种版本的情况下,知晓固件各部分之间的兼容关系变得困难,这增加了固件更新过程中破坏存储设备的既有数据的风险。而且需要在选择性固件更新命令中描述要更新的各固件部分,以及提供获取存储设备中的各固件部分的版本的能力或命令,这也增加了复杂度,并限制了对存储设备固件更新的使用范围。希望解决上述问题的一种或多种。
根据本申请的第一方面,提供了根据本申请第一方面的第一电子设备的固件更新方法,包括:响应于要用待安装固件包对电子设备固件进行升级,获取待安装固件包的版本号(Version’)、待安装固件包的引导固件上次变更版本号(VsLastChange’)与待安装固件包的主固件升级上界版本号(Vuplimit’),以及还获取存储设备的固件的版本号(Version);若待安装固件包的主固件升级上界版本号(Vuplimit’)不大于存储设备的固件版本号(Version),且待安装固件包的引导固件上次变更版本号(VsLastChange’)不大于存储设备的固件版本号(Version),从待安装固件包中提取主固件安装在存储设备中。
根据本申请第一方面的第一电子设备的固件更新方法,提供了根据本申请第一方面的第二电子设备的固件更新方法,还包括:若待安装固件包的引导固件上次变更版本号(VsLastChange’)晚于或数值上大于存储设备的固件版本号(Version),还用待安装固件包的引导固件更新存储设备的引导固件。
根据本申请第一方面的第一或第二电子设备的固件更新方法,提供了根据本申请第一方面的第三电子设备的固件更新方法,还包括:若待安装固件包的主固件升级上界版本号(Vuplimit’)大于存储设备的固件版本号(Version),终止本次固件升级和/或产生本次固件升级可能导致故障的提示。
根据本申请第一方面的第二电子设备的固件更新方法,提供了根据本申请第一方面的第四电子设备的固件更新方法,还包括:响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
根据本申请第一方面的第一至第四电子设备的固件更新方法之一,提供了根据本申请第一方面的第五电子设备的固件更新方法,还包括:响应于待安装固件包的版本号(Version’)大于存储设备的的固件版本号(Version),识别出要用待安装固件包的固件对存储设备的固件进行升级。
根据本申请第一方面的第一至第五电子设备的固件更新方法之一,提供了根据本申请第一方面的第六电子设备的固件更新方法,还包括:响应于要用待安装固件包对电子设备固件进行降级,获取待安装固件包的版本号(Version’),以及还获取存储设备的固件版本号(Version)、存储设备的引导固件上次变更版本号(VsLastChange)与存储设备的主固件降级下界版本号(Vdownlimit);若存储设备的主固件降级下界版本号(Vdownlimit)不大于待安装固件包的版本号(Version’),且存储设备的引导固件上次变更版本号(VsLastChange)不大于待安装固件包的固件版本号(Version’),从待安装固件包中提取主固件安装在存储设备中。
根据本申请第一方面的第六电子设备的固件更新方法,提供了根据本申请第一方面的第七电子设备的固件更新方法,还包括:若存储设备的引导固件上次变更版本号(VsLastChange)晚于或数值上大于待安装固件包的固件版本号(Version’),还用待安装固件包的引导固件更新存储设备的引导固件。
根据本申请第一方面的第七电子设备的固件更新方法之一,提供了根据本申请第一方面的第八电子设备的固件更新方法,还包括:响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
根据本申请第一方面的第六至第八电子设备的固件更新方法之一,提供了根据本申请第一方面的第九电子设备的固件更新方法,还包括:若存储设备的主固件降级下界版本号(Vdownlimit)大于待安装固件包的固件版本号(Version’),终止本次固件升级和/或产生本次固件升级可能导致故障的提示。
根据本申请第一方面的第六至第九电子设备的固件更新方法之一,提供了根据本申请第一方面的第十电子设备的固件更新方法,还包括:响应于待安装固件包的版本号(Version’)小于存储设备的固件版本号(Version),识别出要用待安装固件包的固件对存储设备的固件进行降级。
根据本申请第一方面的第一至第十电子设备的固件更新方法之一,提供了根据本申请第一方面的第十一电子设备的固件更新方法,还包括:通过固件升级命令将待安装固件包发送给电子设备;根据所述固件升级命令识别要用待安装固件包对电子设备固件进行升级还是降级,并基于识别结果利用所述待安装固件对所述电子设备固件进行更新。
根据本申请的第二方面,提供了根据本申请第二方面的第一电子设备的固件更新方法,包括:响应于要用待安装固件包对电子设备固件进行降级,获取待安装固件包的版本号(Version’),以及还获取存储设备的固件版本号(Version)、存储设备的引导固件上次变更版本号(VsLastChange)与存储设备的主固件降级下界版本号(Vdownlimit);若存储设备的主固件降级下界版本号(Vdownlimit)不大于待安装固件包的版本号(Version’),且存储设备的引导固件上次变更版本号(VsLastChange)不大于待安装固件包的固件版本号(Version’),从待安装固件包中提取主固件安装在存储设备中。
根据本申请第二方面的第一电子设备的固件更新方法,提供了根据本申请第二方面的第二电子设备的固件更新方法,还包括:若存储设备的引导固件上次变更版本号(VsLastChange)晚于或数值上大于待安装固件包的固件版本号(Version’),还用待安装固件包的引导固件更新存储设备的引导固件。
根据本申请第二方面的第二电子设备的固件更新方法,提供了根据本申请第二方面的第三电子设备的固件更新方法,还包括:响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
根据本申请第二方面的第一至第三电子设备的固件更新方法之一,提供了根据本申请第二方面的第四电子设备的固件更新方法,还包括:若存储设备的主固件降级下界版本号(Vdownlimit)大于待安装固件包的固件版本号(Version’),终止本次固件升级和/或产生本次固件升级可能导致故障的提示。
根据本申请第二方面的第一至第四电子设备的固件更新方法之一,提供了根据本申请第二方面的第五电子设备的固件更新方法,还包括:响应于待安装固件包的版本号(Version’)小于存储设备的固件版本号(Version),识别出要用待安装固件包的固件对存储设备的固件进行降级。
根据本申请的第三方面,提供了根据本申请第三方面的存储设备,包括存储器、处理器、NVM芯片及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现根据本申请第一方面与第二方面的电子设备的固件更新方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1展示了固态存储设备的框图;
图2展示了现有技术的固件包的结构;
图3展示了用待安装固件包更新存储设备的固件的示意图;
图4展示了根据本申请实施例的固件包;
图5展示了根据本申请实施例用待安装固件包对存储设备的已安装固件进行更新的示意图;
图6展示了根据本申请实施例用待安装固件包对存储设备进行升级的流程图;
图7展示了根据本申请实施例用待安装固件包对存储设备进行降级的流程图;以及
图8展示了根据本申请实施例用待安装固件包对存储设备进行更新的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图4展示了根据本申请实施例的固件包。
根据本申请的实施例,图4的固件包包括超级块、引导固件与主固件。可以理解地,图4的固件包仅作为举例。可选地,固件包可包括更多或更少的固件部件,其由使用固件包的存储设备决定。依然可选地,根据本申请实施例的固件包也可以应用于其他电子设备。
固件包还包括多种版本标识信息。在图4的例子中,固件包还包括版本号(Version),引导固件上次变更版本号(VsLastChange)、主固件升级下界版本号(Vdownlimit)与主固件降级上界版本号(Vuplimit)。
可选地,从安装了本申请实施例的固件包的存储设备中能获取其正在使用的固件包的版本号。依然可选地,一些存储设备无法提供其正在使用的固件包的版本号,则需要借助外部数据库或类似的信息管理系统来记录各存储设备所正在使用的固件包的版本号。
根据本申请的实施例,可选地,虽然存储设备使用的固件包括诸如超级块、引导固件与主固件等多个部件,并且这些固件部分来自不同版本号的固件包,但在存储设备中仅针对正在使用的固件维护一份版本号(Version),引导固件上次变更版本号(VsLastChange)、主固件降级下界版本号(Vdownlimit)与主固件升级上界版本号(Vuplimit),从而简化了复杂性。
在图4的实施例中,版本号(Version)标识当前固件包的版本。可选地,随着固件包的每次更新,递增版本号(Version)来标识新的版本。从而根据版本号,识别版本的早或晚,更小的版本号代表更早发布的版本,而更大的版本号代表更晚发布的版本。可选地,无论更新的是超级块、引导固件与主固件的一种或多种,版本号(Version)都相应更新。引导固件上次变更版本号(VsLastChange)指示当前版本的固件包中的引导固件被首次引入固件包时的固件包版本号,或者当前固件包的引导固件上一次发生改变时的固件包版本号。
主固件降级下界版本号(Vdownlimit),指示安装了当前固件包的存储设备,在被进行固件降级时,所适用的最早待安装固件包版本号。对于图4的固件包版本号(待安装固件包版本号)早于已安装的固件包的主固件降级下界版本号(Vdownlimit)的情况,若用图4的固件包进行降级,将可能导致存储设备的数据损坏以及升级失败。对于图4的固件包版本号不早于已安装的固件包的主固件降级下界版本号(Vdownlimit)的情况,若用图4的固件包进行降级,则图4的固件包确保存储设备的数据不会因更新的固件而被破坏。
主固件升级上界版本号(Vuplimit),指示当前固件包的主固件,在对存储设备进行升级时,所适用的存储设备所安装的最早的固件包版本号。对于已安装的固件包版本号早于图4的主固件升级上界版本号(Vuplimit)的存储设备,若用图4的固件包进行升级,将可能导致存储设备的数据损坏以及升级失败。对于已安装的固件包版本号不早于图4的主固件升级上界版本号(Vuplimit)的存储设备,若用图4的固件包进行升级,则图4的固件包确保存储设备的数据不会因更新的固件而被破坏。
图5展示了根据本申请实施例用待安装固件包对存储设备的已安装固件进行更新的示意图。
需要注意的,待安装的固件包与存储设备中已安装或在使用的固件各自都具有版本号、引导固件上次变更版本号、主固件降级下界版本号与主固件升级上界版本号。为了加以区分,将要更新固件包的存储设备上,已安装或在使用的固件的版本号、引导固件上次变更版本号、主固件降级下界版本号与主固件升级上界版本号分别标记为Version、VsLastChange、Vdownlimit与Vuplimit,而将待安装固件包的版本号、引导固件上次变更版本号、主固件降级下界版本号与主固件升级上界版本号分别标记为Version’、VsLastChange’、Vdownlimit’与Vuplimit’。
参看图5,根据本申请的实施例,提供例如3种固件包更新命令,分别记为自动选择固件升级命令、自动选择固件降级命令以及自动选择固件更新命令。
在用户知晓当前待安装固件包相对于存储设备是进行升级还是降级的情况下,使用对应的自动选择固件升级命令、自动选择固件降级命令将固件包提供给存储设备。可选地,在提供给存储设备的自动选择固件升级命令、自动选择固件降级命令中还携带版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)。依然可选地,自动选择固件升级命令、自动选择固件降级命令中不携带版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’),而由存储设备在处理自动选择固件升级命令、自动选择固件降级命令时从所接收的待安装固件包中提取这些信息。
在用户不知晓或不关心当前待安装固件包相对于存储设备是进行升级还是降级的情况下,使用自动选择固件更新命令将固件包提供给存储设备。
更新控制单元分析待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’),与存储设备中已安装或正在使用的固件的版本号(Version)、引导固件上次变更版本号(VsLastChange)、主固件降级下界版本号(Vdownlimit)与主固件升级上界版本号(Vuplimit),并确定是否用待安装固件包中的固件部分来替换存储设备中的固件部分。
可选地,更新控制单元由连接存储设备的主机实现,或者由存储设备的控制部件实现,或者由主机与存储设备的控制部件协同实现。
依然可选地,存储设备中的已安装固件有多个副本,以在某副本发生故障时提供容错能力。在更新已安装固件时,将其多个副本一并更新或分别地更新。
依然可选地,存储设备中还包括多个版本的已安装部件。在更新存储设备的已安装固件时,可以指定更新某个版本的已安装部件;或者多个版本的已安装固件中,某个版本的固件是当前在使用的固件或主固件,在更新存储设备的已安装固件时,可以不指定要更新的已安装固件版本,而默认更新当前在使用的固件或主固件。
图6展示了根据本申请实施例用待安装固件包对存储设备进行升级的流程图。
通过处理例如携带了待安装固件包的自动选择固件升级命令,尝试对存储设备进行升级。可选地,自动选择固件升级命令中还指示待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)。从待安装固件包的例如指定位置,可获得其版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)。
参看图6,为处理自动选择固件升级命令,获取待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)与主固件升级上界版本号(Vuplimit’),以及还获取存储设备已安装或在使用的固件的版本号(Version)。
首先比较待安装固件包的版本号(Version’)与存储设备的已安装或在使用的固件版本号(Version),仅当待安装固件包的版本号(Version’)晚于或数值上大于存储设备的已安装或在使用的固件版本号(Version)的情况下,要进行的升级才是有意义的。否则升级无法执行(因为事实上是对存储设备的固件的降级)。
接下来,比较待安装固件包的主固件升级上界版本号(Vuplimit’)与存储设备的已安装或在使用的固件版本号(Version)。若待安装固件包的主固件升级上界版本号(Vuplimit’)大于存储设备的已安装或在使用的固件版本号(Version),意味着存储设备的无法支持待安装固件包的主固件。此时,若用待安装固件包的主固件替换存储设备的主固件,可能导致存储设备无法启动、数据丢失、甚至损坏等故障。以及相应地终止本次固件升级。可选地,此时对固件升级的终止是可选地,作为替代,通过提示用户并经用户确认后,依然用待安装固件包的主固件替换存储设备的主固件,因为一些情况下,用户知晓存储设备上的既有数据可被放弃。
若待安装固件包的主固件升级上界版本号(Vuplimit’)不大于存储设备的已安装或在使用的固件版本号(Version),意味着储设备的能够支持待安装固件包的主固件。接下来继续比较待安装固件包的引导固件上次变更版本号(VsLastChange’)与存储设备的已安装或在使用的固件版本号(Version)。若待安装固件包的引导固件上次变更版本号(VsLastChange’)晚于或数值上大于存储设备的已安装或在使用的固件版本号(Version)的情况下,表明存储设备的已安装或在使用固件的引导固件无法支持待安装固件包的主固件,此时需要额外地用待安装固件包的引导固件更新存储设备的引导固件。若待安装固件包的引导固件上次变更版本号(VsLastChange’)不大于存储设备的已安装或在使用的固件版本号(Version),表明存储设备的已安装或在使用固件的引导固件能够支持待安装固件包的主固件,从而确定待安装固件包的主固件可被安装于存储设备。以及将从待安装固件包中提取主固件,将提取的主固件写入存储设备的NVM芯片。从而实现将待安装固件包中的主固件安装在存储设备中,以实现对存储设备的主固件的升级。
可选地,响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
可选地,响应于用待安装固件包的主固件更新存储设备的主固件,还用待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)与主固件降级下界版本号(Vdownlimit’)替换存储设备的固件的版本号(Version)、引导固件上次变更版本号(VsLastChange)与主固件降级下界版本号(Vdownlimit)。
依然可选地,响应于用待安装固件包更新了存储设备的固件,待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)也连同固件包被记录在存储设备中,从而再次尝试更新存储设备的固件时,从存储设备的固件获取的版本号(Version)、引导固件上次变更版本号(VsLastChange)与主固件降级下界版本号(Vdownlimit)是该待安装固件包中的相关内容。
从而,在处理自动选择固件升级命令期间,主机和/或存储设备自动分析待安装固件包与存储设备的已安装或在使用的固件包的版本兼容性,并执行适当的固件更新。无需用户来分析待安装固件包与存储设备的已安装或在使用的固件包是否兼容。减轻了用户的负担,也降低了用户失误导致的存储设备数据丢失或损坏的风险。
图7展示了根据本申请实施例用待安装固件包对存储设备进行降级的流程图。
通过处理例如携带了待安装固件包的自动选择固件降级命令,尝试对存储设备进行降级。可选地,自动选择固件降级命令中还指示待安装固件包的版本号(Version’)。从待安装固件包的例如指定位置,可获得其版本号(Version’)。可选地,为处理自动选择固件降级命令,无需从待安装固件包中获取引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)。
参看图7,为处理自动选择固件降级命令,获取待安装固件包的版本号(Version’),以及还获取存储设备已安装或在使用的固件的版本号(Version)、引导固件上次变更版本号(VsLastChange)与主固件降级下界版本号(Vdownlimit)。
首先比较待安装固件包的版本号(Version’)与存储设备的已安装或在使用的固件版本号(Version)。仅当待安装固件包的版本号(Version’)早于或数值上小于存储设备的已安装或在使用的固件版本号(Version)的情况下,要进行的降级才是有意义的。否则降级无法执行(因为事实上是对存储设备的固件的升级)。
接下来,比较存储设备的已安装或在使用的固件的主固件降级下界版本号(Vdownlimit)与待安装固件包的固件版本号(Version’)。若存储设备的已安装或在使用的主固件降级下界版本号(Vdownlimit)大于待安装固件包的固件版本号(Version’),意味着存储设备的无法支持待安装固件包的主固件。以及相应地终止本次固件降级。可选地,此时对固件升级的降级是可选地,作为替代,通过提示用户并经用户确认后,依然用待安装固件包的主固件替换存储设备的主固件。
若存储设备的已安装或在使用的主固件降级下界版本号(Vdownlimit)不大于待安装固件包的固件版本号(Version’),意味着储设备的能够支持待安装固件包的主固件。接下来继续比较存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)与待安装固件包的固件版本号(Version’)。若存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)晚于或数值上大于待安装固件包的固件版本号(Version’),表明存储设备的已安装或在使用固件的引导固件无法支持待安装固件包的主固件,此时需要额外地用待安装固件包的引导固件更新存储设备的引导固件。若存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)不大于待安装固件包的固件版本号(Version’),表明存储设备的已安装或在使用固件的引导固件能够支持待安装固件包的主固件,从而确定待安装固件包的主固件可被安装于存储设备。以及将从待安装固件包中提取主固件,将提取的主固件写入存储设备的NVM芯片。从而实现将待安装固件包中的主固件安装在存储设备中,以实现对存储设备的主固件的降级。
可选地,响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
可选地,响应于用待安装固件包的主固件更新存储设备的主固件,还用待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)与主固件降级下界版本号(Vdownlimit’)替换存储设备的固件的版本号(Version)、引导固件上次变更版本号(VsLastChange)与主固件降级下界版本号(Vdownlimit)。
依然可选地,响应于用待安装固件包更新了存储设备的固件,待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)也连同固件包被记录在存储设备中。
从而,在处理自动选择固件降级命令期间,主机和/或存储设备自动分析待安装固件包与存储设备的已安装或在使用的固件包的版本兼容性,并执行适当的固件更新。无需用户来分析待安装固件包与存储设备的已安装或在使用的固件包是否兼容。减轻了用户的负担,也降低了用户失误导致的存储设备数据丢失或损坏的风险。
图8展示了根据本申请实施例用待安装固件包对存储设备进行更新的流程图。
通过处理例如携带了待安装固件包的自动选择固件更新命令,尝试对存储设备的固件进行更新。可选地,自动选择固件更新命令中还指示待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)与主固件升级上界版本号(Vuplimit’)。从待安装固件包的例如指定位置,可获得其版本号(Version’)、引导固件上次变更版本号(VsLastChange’)与主固件升级上界版本号(Vuplimit’)。可选地,为处理自动选择固件更新命令,无需从待安装固件包中获取主固件降级下界版本号(Vdownlimit’)。
参看图8,为处理自动选择固件更新命令,获取待安装固件包的版本号(Version’),以及还获取存储设备已安装或在使用的固件的版本号(Version)、引导固件上次变更版本号(VsLastChange)与主固件降级下界版本号(Vdownlimit)。
首先比较待安装固件包的版本号(Version’)与存储设备的已安装或在使用的固件版本号(Version),来识别待安装固件包的固件相对于存储设备的固件是升级还是降级。若待安装固件包的版本号(Version’)大于存储设备的已安装或在使用的固件版本号(Version),则是要对存储设备进行升级;若待安装固件包的版本号(Version’)小于存储设备的已安装或在使用的固件版本号(Version),则是要对存储设备进行降级。
若要对存储设备的固件进行升级,比较待安装固件包的主固件升级上界版本号(Vuplimit’)与存储设备的已安装或在使用的固件版本号(Version)。若待安装固件包的主固件升级上界版本号(Vuplimit’)大于存储设备的已安装或在使用的固件版本号(Version),意味着存储设备的无法支持待安装固件包的主固件。相应地终止本次固件升级。作为替代,通过提示用户并经用户确认后,依然用待安装固件包的主固件替换存储设备的主固件。若待安装固件包的主固件升级上界版本号(Vuplimit’)不大于存储设备的已安装或在使用的固件版本号(Version),意味着存储设备能够支持待安装固件包的主固件。接下来继续比较待安装固件包的引导固件上次变更版本号(VsLastChange’)与存储设备的已安装或在使用的固件版本号(Version)。若待安装固件包的引导固件上次变更版本号(VsLastChange’)晚于或数值上大于存储设备的已安装或在使用的固件版本号(Version)的情况下,表明存储设备的已安装或在使用固件的引导固件无法支持待安装固件包的主固件,此时需要额外地用待安装固件包的引导固件更新存储设备的引导固件。若待安装固件包的引导固件上次变更版本号(VsLastChange’)不大于存储设备的已安装或在使用的固件版本号(Version),表明存储设备的已安装或在使用固件的引导固件能够支持待安装固件包的主固件,从而确定待安装固件包的主固件可被安装于存储设备。以及将待安装固件包中的主固件安装在存储设备中,以实现对存储设备的主固件的更新。
若要对存储设备的固件进行降级,比较存储设备的已安装或在使用的固件的主固件降级下界版本号(Vdownlimit)与待安装固件包的固件版本号(Version’)。若存储设备的已安装或在使用的主固件降级下界版本号(Vdownlimit)大于待安装固件包的固件版本号(Version’),意味着存储设备的无法支持待安装固件包的主固件。以及相应地终止本次固件降级。可选地,作为替代,通过提示用户并经用户确认后,依然用待安装固件包的主固件替换存储设备的主固件。若存储设备的已安装或在使用的主固件降级下界版本号(Vdownlimit)不大于待安装固件包的固件版本号(Version’),意味着存储设备能够支持待安装固件包的主固件。接下来继续比较存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)与待安装固件包的固件版本号(Version’)。若存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)晚于或数值上大于待安装固件包的固件版本号(Version’),表明存储设备的已安装或在使用固件的引导固件无法支持待安装固件包的主固件,此时需要额外地用待安装固件包的引导固件更新存储设备的引导固件。若存储设备的已安装或在使用的固件的引导固件上次变更版本号(VsLastChange)不大于待安装固件包的固件版本号(Version’),表明存储设备的已安装或在使用固件的引导固件能够支持待安装固件包的主固件,从而确定待安装固件包的主固件可被安装于存储设备。以及将从待安装固件包中提取主固件,将提取的主固件写入存储设备的NVM芯片。从而实现将待安装固件包中的主固件安装在存储设备中,以实现对存储设备的主固件的更新。
可选地,响应于用待安装固件包更新了存储设备的固件,待安装固件包的版本号(Version’)、引导固件上次变更版本号(VsLastChange’)、主固件降级下界版本号(Vdownlimit’)与主固件升级上界版本号(Vuplimit’)也连同固件包被记录在存储设备中。
从而,在处理自动选择固件更新命令期间,主机和/或存储设备自动分析待安装固件包与存储设备的已安装或在使用的固件的版本兼容性,并执行适当的固件更新。无需用户来分析待安装固件包与存储设备的已安装或在使用的固件包是否兼容。减轻了用户的负担,也降低了用户失误导致的存储设备数据丢失或损坏的风险。
可选地,自动选择固件更新命令的形式同现有技术的普通固件更新命令相同。而由存储设备在处理普通固件更新命令(即本申请实施例的自动选择固件更新命令)时获取所需的版本信息,并自动检查待安装固件包与存储设备的已安装或在使用固件的版本兼容性。从而可使用现有的固件更新工具将待安装固件包通过普通固件更新命令发送给存储设备,进一步省去了开发用于选择性固件更新的专用命令的负担。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种电子设备的固件更新方法,包括:
响应于要用待安装固件包对电子设备固件进行升级,获取待安装固件包的版本号(Version’)、待安装固件包的引导固件上次变更版本号(VsLastChange’)与待安装固件包的主固件升级上界版本号(Vuplimit’),以及还获取存储设备的固件的版本号(Version);若待安装固件包的主固件升级上界版本号(Vuplimit’)不大于存储设备的固件版本号(Version),且待安装固件包的引导固件上次变更版本号(VsLastChange’)不大于存储设备的固件版本号(Version),从待安装固件包中提取主固件安装在存储设备中。
2.根据权利要求1所述的方法,还包括:
若待安装固件包的引导固件上次变更版本号(VsLastChange’)晚于或数值上大于存储设备的固件版本号(Version),还用待安装固件包的引导固件更新存储设备的引导固件。
3.根据权利要求1或2所述的方法,还包括:
若待安装固件包的主固件升级上界版本号(Vuplimit’)大于存储设备的固件版本号(Version),终止本次固件升级和/或产生本次固件升级可能导致故障的提示。
4.根据权利要求1-3之一所述的方法,还包括:
响应于待安装固件包的版本号(Version’)大于存储设备的的固件版本号(Version),识别出要用待安装固件包的固件对存储设备的固件进行升级。
5.根据权利要求1-4之一所述的方法,还包括:
响应于要用待安装固件包对电子设备固件进行降级,获取待安装固件包的版本号(Version’),以及还获取存储设备的固件版本号(Version)、存储设备的引导固件上次变更版本号(VsLastChange)与存储设备的主固件降级下界版本号(Vdownlimit);
若存储设备的主固件降级下界版本号(Vdownlimit)不大于待安装固件包的版本号(Version’),且存储设备的引导固件上次变更版本号(VsLastChange)不大于待安装固件包的固件版本号(Version’),从待安装固件包中提取主固件安装在存储设备中。
6.根据权利要求5所述的方法,还包括:
响应于用待安装固件包的引导固件更新存储设备的引导固件,还用待安装固件包的引导固件上次变更版本号(VsLastChange’)替换存储设备的引导固件上次变更版本号(VsLastChange)。
7.根据权利要求5或6所述的方法,还包括:
若存储设备的主固件降级下界版本号(Vdownlimit)大于待安装固件包的固件版本号(Version’),终止本次固件升级和/或产生本次固件升级可能导致故障的提示。
8.根据权利要求5-7之一所述的方法,还包括:
响应于待安装固件包的版本号(Version’)小于存储设备的固件版本号(Version),识别出要用待安装固件包的固件对存储设备的固件进行降级。
9.根据权利要求1-8之一所述的方法,还包括:
通过固件升级命令将待安装固件包发送给电子设备;
根据所述固件升级命令识别要用待安装固件包对电子设备固件进行升级还是降级,并基于识别结果利用所述待安装固件对所述电子设备固件进行更新。
10.一种存储设备,包括存储器、处理器、NVM芯片及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~9之一的电子设备的固件更新方法。
CN202210010424.0A 2022-01-05 2022-01-05 固件升级/降级方法及其存储设备 Pending CN114968315A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210010424.0A CN114968315A (zh) 2022-01-05 2022-01-05 固件升级/降级方法及其存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210010424.0A CN114968315A (zh) 2022-01-05 2022-01-05 固件升级/降级方法及其存储设备

Publications (1)

Publication Number Publication Date
CN114968315A true CN114968315A (zh) 2022-08-30

Family

ID=82974764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210010424.0A Pending CN114968315A (zh) 2022-01-05 2022-01-05 固件升级/降级方法及其存储设备

Country Status (1)

Country Link
CN (1) CN114968315A (zh)

Similar Documents

Publication Publication Date Title
KR101959359B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US11042365B2 (en) Firmware updating method and electronic device using the same
CN113282434B (zh) 一种基于封装后修复技术的内存修复方法及相关组件
US20110283274A1 (en) Firmware image update and management
CN103455354A (zh) 一种防止固件升级失败的方法和设备
CN102855146A (zh) 固件更新系统及方法
CN103150231A (zh) 计算机开机的方法与计算机系统
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN104424044A (zh) 伺服器系统
TWI420308B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
CN110333876A (zh) 一种数据清除方法及控制设备
CN113672270A (zh) 升级方法,计算机系统和远端升级设备
CN113778739B (zh) 一种一体机的系统修复方法、系统、设备及存储介质
US20060026415A1 (en) Method of updating a portion BIOS
CN111352641B (zh) 借助批处理的自动打包方法、装置、计算机设备及存储介质
CN109491951B (zh) 一种配置数据的方法以及计算设备
CN114968315A (zh) 固件升级/降级方法及其存储设备
WO2020113421A1 (zh) 一种挂载文件系统的方法、终端设备及存储介质
CN115599299A (zh) 一种存储桶管理方法、装置及电子设备和存储介质
CN114968630A (zh) 提高存储设备可用性的故障管芯管理方法
CN111045710B (zh) 一种基于IPMI命令的SAS-Expander固件升级的方法、设备及介质
US20200151119A1 (en) Method and apparatus for performing access control between host device and memory device
US11809314B2 (en) Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management
CN112445650B (zh) 用来提升增量备份的速度的方法、桥接装置以及储存系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination