CN106030526B - 装置、更新器、控制装置的方法、及控制更新器的方法 - Google Patents

装置、更新器、控制装置的方法、及控制更新器的方法 Download PDF

Info

Publication number
CN106030526B
CN106030526B CN201380082049.XA CN201380082049A CN106030526B CN 106030526 B CN106030526 B CN 106030526B CN 201380082049 A CN201380082049 A CN 201380082049A CN 106030526 B CN106030526 B CN 106030526B
Authority
CN
China
Prior art keywords
mode
loading device
interface
loading
firmware data
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.)
Active
Application number
CN201380082049.XA
Other languages
English (en)
Other versions
CN106030526A (zh
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.)
Razer Asia Pacific Pte Ltd
Original Assignee
Razer Asia Pacific Pte 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 Razer Asia Pacific Pte Ltd filed Critical Razer Asia Pacific Pte Ltd
Publication of CN106030526A publication Critical patent/CN106030526A/zh
Application granted granted Critical
Publication of CN106030526B publication Critical patent/CN106030526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

根据各种实施例可提供一种装置。该装置可包括:启动加载器;存储器,被配置为存储用于控制该装置的固件数据;处理器,被配置为以装置操作模式或以启动加载器模式操作;以及界面。装置操作模式可以是其中处理器控制启动加载器载入存储在存储器中的固件数据的模式。启动加载器模式可以是其中处理器控制启动加载器使用界面发送装置的识别符、使用界面接收固件数据且将固件数据存储在存储器中的模式。

Description

装置、更新器、控制装置的方法、及控制更新器的方法
技术领域
各种实施例大体上涉及装置、更新器、控制装置的方法、以及控制更新器的方法。
背景技术
装置可能需要固件以便控制其操作。这种固件可以期望被更新。
发明内容
根据各种实施例,可提供一种装置。该装置可包括:启动加载器;存储器,被配置为存储用于控制装置的固件数据;处理器,被配置为以装置操作模式或以启动加载器模式操作;以及界面。装置操作模式可以是其中处理器控制启动加载器载入存储在存储器中的固件数据的模式。启动加载器模式可以是其中处理器控制启动加载器使用界面发送装置的识别符、使用界面接收固件数据且将固件数据存储在存储器中的模式。
根据各种实施例,可提供一种更新器。该更新器可包括:接收器,被配置为从处于启动加载器模式的装置接收装置的识别符;以及发送器,被配置为基于所接收的识别符将固件数据发送至装置。
根据各种实施例,可提供一种控制装置的方法。该方法可包括:控制启动加载器;控制存储器以存储用于控制装置的固件数据;控制处理器以装置操作模式或以启动加载器模式操作;以及控制界面。装置操作模式可以是其中处理器控制启动加载器以载入存储在存储器中的固件数据的模式。启动加载器模式可以是其中处理器控制启动加载器使用界面发送装置的识别符、使用界面接收固件数据且将固件数据存储在存储器中的模式。
根据各种实施例,可提供一种控制更新器的方法。该方法可包括:控制接收器从处于启动加载器模式的装置接收装置的识别符;以及控制发送器基于所接收的识别符将固件数据发送至装置。
附图说明
在附图中,在全部不同视图中,相同参考符号大体上指相同部件。附图未必按比例绘制,相反,重点通常是关注对本发明原理的例示。各种特征或元素的尺寸可出于清晰度任意地扩展或缩减。在以下描述中,本发明的各种实施例参考所附附图来描述,其中:
图1示出了根据实施例的装置和更新器的系统;
图2示出了根据实施例的装置;
图3示出了根据实施例的装置;
图4示出了根据实施例的更新器;
图5示出了例示根据实施例的控制装置的方法的流程图;
图6示出了例示根据实施例的控制更新器的方法的流程图;
图7示出了例示根据实施例的控制装置的方法的流程图;
图8示出了例示根据实施例的控制更新器的方法的流程图;
图9示出了根据实施例的存储器映射;
图10示出了根据实施例的数据存储;以及
图11示出了根据实施例的存储器映射。
具体实施方式
以下具体实施方式引用了通过图示的方式示出的、可实践本发明的特定细节及实施例的附图。这些实施例被足够详细地描述,以使本领域技术人员可实践本发明。可利用其他实施例,并且可进行结构及逻辑改变而不脱离本发明的范畴。各种实施例不需要互相排斥,诸如一些实施例可与一个或多个其他实施例组合以形成新的实施例。
为使本发明可易于理解并投入到实践效果中,将以举例且非限制的方式并参考图描述特定实施例。
装置可包括存储器,该存储器例如用于由装置进行的处理。更新器可包括存储器,该存储器例如用于由更新器进行的处理。用于实施例中的存储器可以是易失存储器,例如DRAM(动态随机访问存储器),或非易失存储器,例如PROM(可程序化只读存储器)、EPROM(可擦除PROM)、EEPROM(电子可擦除PROM),或者快闪存储器,例如浮动栅极存储器、电荷捕捉存储器、MRAM(磁阻随机存取存储器)或PCRAM(相变随机存取存储器)。
在实施例中,“电路”可理解为任何种类的逻辑实施实体,该逻辑实施实体可以是执行存储在存储器中的软件、固件或其任何组合的专用目的的电路或处理器。因此,在实施例中,“电路”可以是硬连线逻辑电路或可程序化逻辑电路,诸如可程序化处理器,例如微处理器(例如复杂指令集计算机(CISC)处理器或精简指令集计算机(RISC)处理器)。“电路”也可以是执行软件的处理器,该软件例如任何种类的计算机程序,例如使用虚拟机代码的计算机程序,诸如,例如Java。将在以下更详细地描述的各自功能的任何其他种类的实行方案也可根据替代实施例理解为“电路”。将被理解的是,此处以不同名称(例如“电路A”及“电路B”)描述为电路的内容也可提供于如以上所述的实体电路中。
提供了装置的各种实施例,且提供了方法的各种实施例。将被理解的是,装置的基本性质也适用于方法,且反之亦然。因此,为简洁起见,可省略这种性质的重复描述。
将被理解的是,此处对特定装置描述的任何性质也可适用于此处所述的任何装置。将被理解的是,此处对特定方法描述的任何性质也可适用于此处所述的任何方法。此外,将被理解的是,对于此处所述的任何装置或方法而言,不是所描述的所有组件或步骤都必须纳入装置或方法中,而是可以仅纳入一些(但不是所有)组件或步骤。
装置可能需要固件以便控制其操作。这种固件可以期望被更新。
图1示出了根据实施例的装置102及更新器104的系统100。装置102可包括可被用于操作该装置的固件数据。装置102可期望接收更新了的固件数据。装置102可经由连接106从更新器104接收更新了的固件数据。
图2示出了根据实施例的装置200。装置200可包括启动加载器202(例如启动加载器电路)。装置200可进一步包括存储器204,该存储器204被配置为存储用于控制装置200的固件数据。装置200可进一步包括处理器206,该处理器206被配置为以装置操作模式或以启动加载器模式操作。装置200可进一步包括界面208(例如与将在以下描述的更新器,例如图4的更新器400连接的界面),例如界面电路。装置操作模式可以是其中处理器206控制启动加载器202载入存储在存储器204中的固件数据的模式。启动加载器模式可以是其中处理器206控制启动加载器202使用界面208发送装置200的识别符(例如发送至更新器)、使用界面208接收固件数据(例如从更新器接收)且将固件数据存储在存储器204中的模式。启动加载器202、存储器204、处理器206和界面208可经由连接210(或多个分开的连接)连接,该连接210例如电气连接或光学连接、例如任何种类的电缆或总线。
装置200可包括或可以是输入装置和/或输出装置。
固件数据可包括或可以是用于控制输入装置和/或输出装置的数据。
启动加载器模式可以是其中处理器206不控制启动加载器202载入存储在存储器204中的固件数据的模式。
界面208可包括或可以是以下至少一个:通用串行总线(USB)界面、火线界面、PS/2界面、霹雳界面、局域网(LAN)界面、蓝牙界面、红外线界面、无线局域网(WLAN)界面、和无线移动通信界面。
启动加载器可使用存储在存储器的固定部分中的数据。
图3示出了根据实施例的装置300。类似于图2的装置200,装置300可包括启动加载器202。类似于图2的装置200,装置300可进一步包括存储器204。类似于图2的装置200,装置300可进一步包括处理器206。类似于图2的装置200,装置300可进一步包括界面208。装置300可进一步包括如将在以下描述的接收器302(例如接收器电路)。装置300可进一步包括如将在以下描述的有效性检验器304(例如有效性检验电路)。装置300可进一步包括如将在以下描述的模式变换器306(例如模式变换电路)。启动加载器202、存储器204、处理器206、界面208、接收器302、有效性检验器304、和模式变换器306可经由连接308(或多个分开的连接)连接,该连接308例如电气连接或光学连接,例如任何种类的电缆或总线。
接收器302可被配置为接收从装置操作模式变换至启动加载器模式的指令。接收器302可被配置为使用界面208接收指令。
接收器302可被配置为接收从启动加载器模式变换至装置操作模式的指令。接收器302可被配置为使用界面208接收指令。
有效性检验器304可被配置为检验存储在存储器204中的固件数据是否有效。模式变换器306可被配置为当确定存储在存储器204中的固件数据无效时,从装置操作模式变换至启动加载器模式。
装置300可进一步被配置为确定在启动装置300时以何种模式操作。
图4示出了根据实施例的更新器400。更新器400可包括接收器402(例如接收器电路),该接收器402被配置为从处于启动加载器模式的装置(例如从图2的装置200或图3的装置300)接收装置的识别符。更新器400可进一步包括发送器404(例如发送器电路),该发送器404被配置为基于所接收的识别符将固件数据发送至装置。接收器402和发送器404可经由连接406(或多个分开的连接)连接,该连接406例如电气连接或光学连接,例如任何种类的电缆或总线。
发送器404可进一步被配置为将用于变换至启动加载器模式的指令发送至不处于启动加载器模式的装置。
发送器404可进一步被配置为将用于变换至装置操作模式的指令发送至处于启动加载器模式的装置。
图5示出了例示根据实施例的控制装置的方法的流程图500。在502,可控制启动加载器。在504,可控制存储器存储用于控制装置的固件数据。在506,可控制处理器以装置操作模式或以启动加载器模式操作。在508,可控制界面。装置操作模式可以是其中处理器控制启动加载器载入存储在存储器中的固件数据的模式。启动加载器模式可以是其中处理器控制启动加载器使用界面发送装置的识别符、使用界面接收固件数据且将固件数据存储在存储器中的模式。
装置可包括或可以是输入装置和/或输出装置。
固件数据可包括或可以是用于控制输入装置和/或输出装置的数据。
启动加载器模式可以是其中处理器不控制启动加载器载入存储在存储器中的固件数据的模式。
界面可包括或可以是以下至少一个:通用串行总线界面、火线界面、PS/2界面、霹雳界面、局域网界面、蓝牙界面、红外线界面、无线局域网界面、和无线移动通信界面。
启动加载器可使用存储在存储器的固定部分中的数据。
该方法可进一步包括控制接收器接收从装置操作模式变换至启动加载器模式的指令。
接收器可使用界面接收指令。
该方法可进一步包括控制接收器接收从启动加载器模式变换至装置操作模式的指令。
接收器可使用界面接收指令。
该方法可进一步包括:控制有效性检验器检验存储在存储器中的固件数据是否有效;以及控制模式变换器当确定存储在存储器中的固件数据无效时,从装置操作模式变换至启动加载器模式。
装置可确定在启动装置时以何种模式操作。
图6示出了例示根据实施例的控制更新器的方法的流程图600。在602,可控制接收器从处于启动加载器模式的装置接收装置的识别符。在604,可控制发送器基于所接收的识别符将固件数据发送至装置。
发送器可将用于变换至启动加载器模式的指令发送至不处于启动加载器模式的装置。
发送器可将用于变换至装置操作模式的指令发送至处于启动加载器模式的装置。
根据各种实施例,可提供固件启动加载器和更新器。
根据各种实施例,可提供确定遭遇固件更新失败的装置的标识并且使该装置自动复活的机制。
常用更新器可以是通用的并且可能将错误的固件快闪存储到装置中。此外,固件更新失败可致使装置不可用。
根据各种实施例,可提供启动加载器使得固件失败可以使装置将自身展示为启动加载器装置。根据各种实施例,目标硬件ID(识别符)可通过启动加载器被暴露。根据各种实施例,可以构建可包括软件的监视器装置(其可称为更新器)以检测处于启动加载器模式的装置,并且自动使用匹配固件对该装置快闪存储。
一旦启动加载器被设计为暴露自身且宣告何者是目标PID(产品ID),监视器装置(即更新器)即可能够检测固件更新失败且自动地以适用于该装置的固件(换言之∶固件数据)快闪存储。正常操作时,更新器现在可确定处于启动加载器模式的装置的标识,且因此可确保仅有匹配的固件被快闪存储到装置中。
根据各种实施例,可提供更新器以使匹配的固件自动地快闪存储到装置中。
在先前使用的启动加载器中,可能不可以确定处于启动加载器模式的装置的标识。可以确定存在需要更新的装置,但不可以确定实体上为何种装置。可能必须依赖于用户为其装置选取正确的固件更新器。一旦发生固件更新失败,即需要用户再次请求人工地运作固件更新器。
根据各种实施例,可不需要这种用户介入,且装置可自动地复活。
以下将描述装置与操作系统(OS)间的通讯。
根据各种实施例,各种装置可具有若干启动区块和启动加载器需求。术语“启动区块”可以指受保护固件,其可包括被执行直至启动区块准备将控制移交至不受保护固件的最首段代码。术语“启动加载器”可以指更新不受保护固件的功能,该启动加载器可完全容纳于启动区块中。
就固件而言,启动加载器的设计可在产品与产品之间变化,例如基于装置MCU(微控制器单元)而变化,但也支持装置具有的特殊存储需求。启动加载器可在固件更新事件期间保护制造数据、可变存储、宏数据、和启动区块自身。
就软件而言,启动加载器特征、命令和功能可以在产品与产品之间相同。
以下将参考Freescale和NXP设计描述启动加载器实行方案的细节。
例如,根据各种实施例的固件更新可提供以下:
从重置向量至装置固件交递的受保护固件执行;
在更新程序中的任何点处从减损功率恢复;
在无用户介入的情况下进入启动加载器模式;
验证装置处于启动加载器模式中;
防止装置用错误的固件程序化;
在即使装置用错误的固件程序化时恢复;
在更新后自动断开装置的启动加载器;
验证装置处于正常模式;
制造数据保护(序列号、校准数据等);
可变存储保护(配置文件、配置文件Idx、照明、云控制等);以及
宏信息保护(宏目录和宏数据结构)。
以下将描述固件更新事件。
以下将描述固件更新器(可以是或可包括专用装置或基于PC的应用程序)和启动加载器(可以是或可包括受保护固件)如何一起工作以允许装置固件(“装置固件”或“固件数据”可以指执行产品的主要功能的固件;例如鼠标固件可处置所有按钮和移动事件)在字段中更新。
根据各种实施例的启动加载器设计的基本前提是确保无论在固件更新时发生何种情况,都不可能使得装置功能永久损失。所有可能的错误条件和电力中断条件都可以恢复。
图7示出了例示根据实施例的控制装置的方法的流程图700。在启动加载器固件至装置固件流程图700中,将描述启动加载器固件(其也可称为启动加载器)和装置固件(其也可称为固件数据)的处理。
图7示出了启动加载器和装置固件加电流程。启动加载器固件可受保护且不变化,且装置固件可在处于启动加载器模式中时是更新的目标。
在启动时(例如在加电之后),可在702执行MCU(微控制器单元)重置,且在704启动加载器可检查用户强制启动启动加载器模式,或检查无效装置固件签名706。若存在这些条件中的一个,则加电流程可前往在720枚举的启动加载器装置,而替代在714枚举的目标装置。就系统而言,可存在是附接的启动加载器(无鼠标、键盘、耳机等)的非HID装置。
更详细地,在704,可检验用户是否正强制启动启动加载器模式。若是,则处理可在718进行;若否,则处理可在706进行。在706,可检验固件是否有效,例如检验固件签名是否有效。若否,则处理可在718进行;若是,则处理可在708进行。在708,处理可跳跃至装置固件。在718,可执行USB初始化。
一旦处于启动加载器模式,装置即可以等待来自固件更新器(FWU)应用程序(也可称为更新器)的快闪存储命令。在732,FWU可擦除、程序化、和验证快闪区块。更详细地,在主回路722,可在724中检验数据区块是否就绪。若是,则处理可在732进行;若否,则处理可在726进行。在726,可检验是否退出启动加载器。若是,则处理可在728进行;若否,则处理可在722进行。启动加载器可保护对固件更新器应用程序透明的所需区域。换言之,FWU应用程序可请求从地址0开始擦除存储器区块,且启动加载器可根据哪个区域受保护来允许或阻断此动作。
一旦对FWU确保装置固件已被成功地程序化,仅在此后FWU才发出退出启动加载器命令,由此,在728启动加载器固件最终化目标装置固件更新校验和、以及签名,且随后其可在730中强制MCU重置,从而可触发加电起动流程图。若固件更新成功,则装置可启动且枚举为具有相关功能的目标装置。随后,启动加载器配置可被完全禁止。
在710,可在装置固件中执行MCU初始化。在712,装置可被初始化。在716,可执行主回路。
图8示出了例示根据实施例的控制更新器的方法的流程图800。在固件更新器流程图800中,示出了固件更新事件的处理,其可涉及固件更新器应用程序和目标装置的固件二者。为完成,也可存在用于协议(其可用于传达至装置)和用于启动加载器(可用于传达至启动加载器)二者的驱动程序。固件更新器可作为独立应用程序或作为“云端”引擎支持的部分启动。
当启动固件更新器时,其始终具有指定的VID/PID(供应商识别符/产品识别符),因为其具有的固件仅可以与特定装置固件相关联。程序在802初始化后,一旦VID/PID被验证,即提取固件版本号且在804中检验以查看固件是否已更新至相同程度,或者若装置固件实际上比欲被程序化的固件更新则对用户预警。
经由协议,装置可在808被置于启动加载器模式,从而在812中可强制装置重置且在814中重新枚举(例如被操作系统,例如被视窗重新枚举)为启动加载器装置。此外,MCU可在810清除固件签名。在816,可确定是否存在正确的装置PID。若是,则处理可在818中进行;若否,则处理可在806进行。FWU可在继续之前等待直至启动加载器装置已被检测到。FWU随后可在818读取新固件文件,且可将装置程序化以进行匹配(例如在820擦除、在822程序化、和在824验证),且一旦完成,其即可在826发出“退出启动加载器”命令。退出启动加载器命令可完成固件更新过程,且可强制进行另一次重置并且在828中重新枚举,以允许装置再次被操作系统(例如视窗)检测为具有相关功能的目标装置。在830,可验证目标装置。若是,可在832显示成功操作的指示。若否,可在806进行处理。在806,可显示失败的指示。在806或832之后,可退出FWU。
将在下文中描述启动加载器的设计细节。
启动区块可以是小的但功能完整的USB装置,其可枚举为具有如表1所示的USB描述符的“未知装置”。
表1∶启动区块USB装置描述符
此USB描述符可包括目标装置的DEVICE_PID,其可在即使装置已处于启动加载器模式时允许对装置的验证。
USB串描述符可重新改换目标以将关于存储器映射的类型或启动加载器意图就如何继续进行更新而传达的其他特殊变化的一些信息给予固件更新器。
表2示出了启动区块USB串描述符。
表2∶启动区块USB串描述符
由于固件空间极为有限,所以仅可存在少量启动加载器装置作出响应的标准USB命令。可存在另一同样小的命令集以处置固件更新、验证、和切换回正常装置操作模式。
以下将描述根据各种实施例的快闪数据存储。
装置可被期望管理和保护最少三个不同的快闪区域∶制造数据、可变存储、启动区块、和宏信息(可选)。
制造数据可以是仅可在工厂更新、且可期望在装置的寿命期间被维持的区块。制造数据可包括诸如以下的信息∶序列号、键盘布局、三色LED校准值等。在Freescale设计中,制造数据可以仅是另一快闪页(Flash page),因此,其可以任意放置。
图9示出了根据实施例的存储器映射900,例如MC9S08JM60存储器映射。
图10示出了根据实施例的数据存储1000,例如NXP制造数据存储。
图11示出了根据实施例的存储器映射1100,例如NXP LPC1343存储器映射。
在图11所示的示例中,制造数据可已附注于部分页的0x1960-0x1A00中。因为待存储的制造数据不多,所以以Freescale JM60设计处理制造数据可以是有效的方法。该图还示例位于0x2A00-0x5A00地址之间的宏存储。存储宏和一个以上的配置文件可以是产品选项。根据各种实施例的各种装置和方法可依赖于云端服务以在“云端”存储宏和其他配置文件,且因此可不需要额外的启动加载器快闪保护。
然而,对其中所有快闪页均可以是4K大小的NXP设计而言,这可能是实行制造数据存储的极为浪费的方式。因此,可替代地将制造数据存储在启动区块的未使用部分中,如图10所示。不同于Freescale方法,该实行方案可仅更新有限的时间集。如上所示,制造数据区块可写入启动区块的未被程序化后端中,且随后在写入新的版本的数据时予以作废。这可以持续到直至除最后一个区块外的所有区块已作废,该最后一个区块可允许例如约20次更新。
可变存储可作为一组连续快闪页(至最近页)在两个处理器上实行。在Freescale设计中,由于快闪效率的原因,可变存储可不存储在存储器映射的顶部,因为存在如中断向量的无法移动的Freescale结构。如上所示,可见0x10B0-0x17FF之间的快闪区块是用于可变存储的理想空间。同样在NXP设计中,中断向量可在底部,且因此存储器映射的顶部可以是存储可变存储的效率最高处,可从示出了NXP存储器映射的图中看到相同情况。
除了其可以是较大快闪区块之外,宏信息可遵循可变存储思路。只保持80个宏的目录信息条目就可能需要4K快闪。宏目录条目可包括宏ID、宏数据开始和结束地址、和宏名称(20个万国码字符,NULL终止)∶
这可以允许宏数据在任何字节上开始和结束而与快闪页边界无关。然而,管理此类型的宏目录结构可能需要所有宏数据在每次宏删除之后进行碎片整理。这可以将最大的未使用部分留下用于宏数据存储。所有未使用的宏存储可予以擦除而非被程序化,从而允许宏数据在来自协议命令时直接写入快闪。
以下将描述向启动加载器模式的切换。
根据各种实施例的用于NXP处理器和Freescale处理器两者的各种装置和方法可切换至启动加载器模式和返回,而不涉及制造数据或可变存储。这种隔离可以是所期望的,因为装置的字段将陷于启动加载器模式中,例如因为在可变存储更新事件期间电力遭移除。可变存储更新事件可隐密地执行,以使用户可以不知道当下为拔下装置或将系统关机的不佳时间。
启动加载器的基本要求可以仍然是能够在电力中断发生时且在固件更新器程序期间的任何点恢复。为满足此要求,可存在快闪标志,在每次启动时检验该快闪标志以确定装置是否应重新进入启动加载器模式。
根据各种实施例,装置码的最后字节可以是启动加载器状态标志。两个处理器之间的实行方案可由于不同的快闪能力而稍有变化。NXP快闪可能够将“1”位与“0”位进行与运算(AND)以产生不同变量而不擦除完整页∶
#定义DFU_SIGNATURE 0x12305670//输入DFU模式签名值
#定义STD_SIGNATURE 0x12345678//标准装置签名值
NXP装置固件中的最后变量(在可变存储之下-参见如上所述的NXP LPC1343存储器映射)可设置成STD_SIGNATURE,装置码将STD_SIGNATURE与DFU_SIGNATURE进行与运算以切换至启动加载器模式。在固件更新过程期间,STD_SIGNATURE可擦除至0xFFFFFFFF,但下一次启动可直至0xFFFFFFFF重新程序化至STD_SIGNATURE时才可去往装置固件。
Freescale快闪设计可以仅允许任何快闪位置在一旦擦除快闪页事件之后被重新程序化。这可由变量可采取的两个值而提出额外的挑战,该两个值中的一个一定是0xFF,其可以是擦除快闪页事件发生之后的精确相同值:
#定义DFU_SIGNATURE 0xF8//输入DFU模式签名值
#定义STD_SIGNATURE 0xFF//标准装置签名值
因此,STD_SIGNATURE可被STD_SIGNATURE变量的相同快闪页中的另一个变量限定,该另一变量始终被固件定义为0xAA。标准模式可仅在限定变量是0xAA且STD_SIGNATURE是0xFF时有效。再次地,这可以保证启动标志设置成BOOTLOADER_MODE直至固件的最后字节被程序化。
以下将描述存储更新。
作为此增强过程的部分,不同存储类型中每一个的更新可以逻辑上隔离。这可以有助于保证在状态偶然变化的情况下,状态可以是正确的,因为更新的意图得以保存。单发定时器可用于允许多个协议变化在单次快闪更新事件中集中到一起,以替代相继发出的许多命令中的每一个具有与之相对应的快闪更新事件。此外,可变存储的更新可不发生,除非正被写入的数据实际上不同于当前存储在快闪区中的数据。可常常要求装置存储与在上一次启动时要求这些装置存储的数据相同的数据。
以下将描述freescale快闪更新注解。当地址从.S19文件转换至要擦除的快闪页时,通常可以使用开始地址与0xFE00进行与运算以确定要擦除的快闪页。Freescale JM60部分可具有两个感兴趣部分快闪页,这些部分快闪页可在指定要擦除的页面时期望管理(care)。第一部分快闪页可以是页面中的从0x10B0至0x11FF,其可允许页面以0x1000地址擦除,从而配合用于确定擦除地址的以上方案。第二部分快闪页可以是页面中的从0x1960至0x19FF,其可仅允许0x1960的地址对其擦除(以0xFE00进行与运算=0x1800的0x1960的地址将不可用)。应当注意的是,对Freescale固件而言,装置固件的最后字节可保持未定义,从而强制中断直接在启动区块之前的.S19输出文件。固件可不支持跨于未受保护和受保护的快闪区域的区块程序。
以下将描述NXP快闪更新注解。因为可存在更多一些的可用于启动区块中的代码空间以支持NXP处理器上的启动加载器,所以该代码可将Freescale类型的程序化转化成匹配NXP处理器的需要的支持。例如,NXP可期望一次性最少写入256个字节。也可期望256个字节写在256-字节边界上。
Freescale类型的程序化可以认为快闪页为每一512字节地址,而不是每一4096字节地址,因此NXP码可检验页面是否已擦除且可跳过后续请求。Freescale类型的程序化可设法每次程序化8字节。NXP码可将所有写入内容对准至256字节边界,且可缓冲数据直至最小量的数据可用于写入。
若未达成这种仿真增强,则固件更新器将载送用于每个处理器的不同的程序化算法。
以下将描述32位启动加载器支持。
各种装置可不再限于64K的地址空间,且因此16位地址可不再足以允许固件被适当地更新。根据各种实施例,可提供32位格式,其向后与16位启动加载器相容,因此跨于所有装置仅需要使用一个固件更新器应用程序。
第一变换可以是:USB串描述符“bType”值可设置成0x05,指示32位地址空间、连同4K擦除扇区的大小、256字节程序对准要求、和256个字节的程序化区块大小。当前,0x04的“bType”值可以是16位地址空间、4K擦除扇区、对准的256字节、和256字节大小的程序化区块。如以下更详细的描述,命令可变换以在16位和32位启动加载器两者上工作,且该命令实际上可在先前版本的启动加载器上工作而无需任何变换。然而,仍可存在一个原因使得FWU应用程序必须读取此USB串描述符“bType”值,且可获知将装置程序化继续至何种程度(在输入为二进制文件的情况下尤其如此,其中在一些状况下,若码图像被编译/链接过程外部的一些工具操纵,则一定如此)。
32位增强可以能够向后兼容,因为USB设置标头封包可以呈小端读取格式(Little-Endian format),且结束地址值可以从未使用。
表3示出了16位启动加载器USB设置标头。
表3∶16位启动加载器USB设置标头
以下将描述根据各种实施例的启动加载器装置。当装置置于启动加载器模式时,可重新枚举为启动加载器装置。此启动加载器装置可在其功能上受限制,且可以仅支持最小命令集以通过USB枚举且随后处理固件更新。此装置可以不再是支持增强协议的装置。
一旦已发出进入启动加载器模式的协议命令且已过去适当量的时间以允许装置经历重置和重新枚举,固件更新器即可使用VID和PID验证装置处于启动加载器模式(例如0x1532、0x110D)。因为多个装置可在任一时间附接至系统(且所有装置可以处于启动加载器模式中,这种情况不见得存在但却有可能),所以固件更新器可读取启动加载器装置描述符中的原始DEVICE_PID值,并且可以将其与期望目标装置相比较。
作为启动加载器装置,可以支持以下最小USB命令集∶
-GET_STATUS(0x00);
-SET_ADDRESS(0x05);
-GET_DESCRIPTOR(0x06);
-GET_CONFIRURATION(0x08);以及
-SET_CONFIGURATION(0x09)。
固件更新器应用程序可使用USB控制转移以发出启动加载器装置命令。
表4示出了启动加载器USB设置标头。
表4∶启动加载器USB设置标头
如表4所示,USB设置标头用法可以已改变为以极为简单的方式发出32位兼容启动加载器命令(参见以上表3)。受支持的启动加载器命令可如下∶
-PROGRAM(0x81)-开始地址、长度和数据;
-ERASE_PAGE(0x82)-页面地址;
-EXIT_BOOTLOADER(0x84)-执行USB和装置重置;
-VERIFY(0x87)-开始地址、长度和数据;以及
-GET_RESULT(0x8F)-0x01=成功,0xFF=错误。
如先前注解,NXP启动加载器支持可以更复杂一些,且可仿效更受约束的Freescale启动加载器支持。Freescale启动加载器支持可以期望:ERASE_PAGE命令始终处于快闪页边界(快闪大小为0x0200个字节),其中有两个例外。参看以上FreescaleMC9S08JM60的存储器映射,可见由于置放寄存器/RAM的Freescale而存在两个部分快闪页。这些快闪页可在0x10B0-0x11FF和0x1960-0x19FF处,并且可能需要通过给予那些页面的开始地址(0x10B0和0x1960)来擦除。所有其他擦除可以在快闪边界开始(示例性擦除序列可以是∶0x10B0、0x1200、0x1400、0x1600、0x1960、0x1A00、0x1C00、......0xFE00)。
擦除序列可以包括:ERASE_PAGE(start_address)、接着GET_RESULT命令、其可返回成功(0x01)或失败(0xFF)。以下如表5所示的ERASE_PAGE示例可擦除2M字节部分的最后4K区块(0x001FF000)。表6示出了GET_RESULT命令。
字节# 0 1 2 3 4 5 6 7
值(hex) 40 82 00 F0 1F 00 00 00
表5∶ERASE_PAGE命令
表6∶GET_RESULT命令
程序化和验证循环可在相同地址处同等地取用相同数据,从而在各个命令之后获得结果。程序数据可不跨越于未受保护区域和受保护区域(被启动加载器保护且在擦除和程序化循环期间保存);因此,.S19或.HEX文件可以是经由发送16个字节的线路的剖析线。因为线路的大小,所以可不利于发送较大数据块。可以构建.S19和.HEX文件以使受保护快闪页与不受保护快闪页之间始终存在线路中断。
程序化序列可包括∶16个字节数据的PROGRAM(start_address)封包、返回成功(0x01)或失败(0xFF)的GET_RESULT。以下PROGRAM(表7)和VERIFY(表8)的示例可作用于2M字节部分的最后16个字节(0x001FFFF0)。
字节# 0 1 2 3 4 5 6 7
值(hex) 40 81 F0 FF 1F 00 10 00
表7∶PROGRAM命令
字节# 0 1 2 3 4 5 6 7
值(hex) 40 87 F0 FF 1F 00 10 00
表8∶VERIFY命令
将要发出的最后命令可以是EXIT_BOOTLOADER命令(例如,如下面表9所示),其可以使装置再一次重新枚举,以再一次作为处于装置操作模式的装置呈现。
字节# 0 1 2 3 4 5 6 7
值(hex) 40 84 00 00 00 00 00 00
表9∶EXIT_BOOTLOADER命令
可存在快闪标志,该快闪标志可指示装置处于启动加载器模式。此标志可以仅在成功程序化之后才清除。可在每一次装置启动时检验此标志,且若设置该标志,则装置可进入启动加载器模式。此机制可以允许在任何时间移除(包括在擦除循环之后立即移除)电力,且允许通过辨识出装置处于启动加载器模式且随后检验原始DEVICE_PID而恢复装置。
也可以存在用户恢复机制。若错误的固件已成功地程序化到装置中且其不再回应协议命令,则用户可拔下装置,可在将装置插回时保持按下一些键/按钮组合(例如对鼠标而言∶左、中、右按钮;例如对键盘而言=Fn键或其他特定键)。固件更新器应用程序可以如上所述使用原始DEVICE_PID值检测哪个装置附接且需要固件更新。
虽然本发明已参考特定实施例被具体地示出和描述,但是本领域技术人员应理解,可在不脱离所附权利要求所定义的本发明的精神和范畴的情况下进行形式和细节方面的各种改变。本发明的范畴由所附权利要求指示,且因此落入权利要求的等效物的含义和范围内的所有改变均被包含。

Claims (24)

1.一种用于更新固件数据的系统,包括:
更新器;
要被更新的多个装置,其中所述多个装置中的每个装置包括:
启动加载器;
存储器,被配置为存储用于控制所述装置的所述固件数据;
处理器,被配置为以装置操作模式或以启动加载器模式操作;
界面;
有效性检验器,被配置为检验存储在所述存储器中的所述固件数据是否有效;以及
模式变换器,被配置为当确定存储在所述存储器中的所述固件数据无效时,从所述装置操作模式变换至所述启动加载器模式;
其中,所述装置操作模式是其中所述处理器控制所述启动加载器载入存储在所述存储器中的所述固件数据的模式;
其中,所述启动加载器模式是其中所述处理器控制所述启动加载器使用所述界面发送所述装置的识别符、使用所述界面从更新器基于所述识别符自动接收匹配固件数据且将所述匹配固件数据存储在所述存储器中的模式;
其中,所述启动加载器被配置为在所述处理器以所述启动加载器模式操作时设置快闪标志,其中,所述快闪标志仅在被存储的固件数据被程序化之后被清除;
其中,所述装置被配置为在启动所述装置的时刻在检测到设置了所述装置的所述快闪标志时,以所述启动加载器模式操作;
其中,所述更新器被配置为检测所述多个装置、和从所述多个装置中确定处于所述启动加载器模式的至少一个装置,并且自动使用匹配固件数据对处于所述启动加载器模式的所述至少一个装置快闪存储;
其中,每个装置包括输入装置和输出装置中的至少一个;并且
其中,所述识别符是所述装置的产品ID。
2.根据权利要求1所述的系统,其中,所述固件数据包括用于控制所述输入装置和所述输出装置中的所述至少一个的数据。
3.根据权利要求1所述的系统,其中,所述启动加载器模式是其中所述处理器不控制所述启动加载器载入存储在所述存储器中的所述固件数据的模式。
4.根据权利要求1所述的系统,其中,所述界面包括以下至少一个:通用串行总线界面、火线界面、PS/2界面、霹雳界面、局域网界面、蓝牙界面、红外线界面、无线局域网界面、和无线移动通信界面。
5.根据权利要求1所述的系统,其中,所述启动加载器使用存储在所述存储器的固定部分中的数据。
6.根据权利要求1所述的系统,其中每个装置进一步包括:
接收器,被配置为接收从所述装置操作模式变换至所述启动加载器模式的指令。
7.根据权利要求6所述的系统,其中,所述接收器被配置为使用所述界面接收所述指令。
8.根据权利要求1所述的系统,其中每个装置进一步包括:
接收器,被配置为接收从所述启动加载器模式变换至所述装置操作模式的指令。
9.根据权利要求8所述的系统,其中,所述接收器被配置为使用所述界面接收所述指令。
10.一种更新器,包括:
接收器,被配置为从处于启动加载器模式的至少一个装置接收所述至少一个装置的识别符;以及
发送器,被配置为基于接收到的所述识别符向所述至少一个装置发送匹配固件数据;
其中,所述启动加载器模式是其中所述至少一个装置的处理器控制所述至少一个装置的启动加载器使用所述至少一个装置的界面发送所述至少一个装置的所述识别符、使用所述界面从所述更新器自动接收所述匹配固件数据且将所述匹配固件数据存储在所述至少一个装置的存储器中的模式;
其中,所述至少一个装置被配置为在所述至少一个装置以所述启动加载器模式操作时设置快闪标志,其中,所述快闪标志仅在被存储的固件数据被程序化之后被清除;
其中,所述至少一个装置被配置为在启动所述至少一个装置的时刻在检测到设置了所述至少一个装置的所述快闪标志时,以所述启动加载器模式操作;
其中,所述更新器被配置为检测要被更新的多个装置、和从所述多个装置中确定处于所述启动加载器模式的至少一个装置,并且自动使用匹配固件数据对处于所述启动加载器模式的所述至少一个装置快闪存储;并且
其中,所述识别符是所述至少一个装置的产品ID。
11.根据权利要求10所述的更新器,其中,所述发送器进一步被配置为将用于变换至所述启动加载器模式的指令发送到不处于所述启动加载器模式的至少一个装置。
12.根据权利要求10所述的更新器,其中,所述发送器进一步被配置为将用于变换至装置操作模式的指令发送到处于所述启动加载器模式的所述至少一个装置;并且
其中,所述装置操作模式是其中所述至少一个装置的处理器控制所述至少一个装置的启动加载器载入存储在所述存储器中的固件数据的模式。
13.一种控制系统的方法,所述方法包括:
将用于控制所述系统中的要被更新的多个装置中的至少一个装置的固件数据存储在所述至少一个装置的存储器中;
控制所述至少一个装置的处理器以装置操作模式或以启动加载器模式操作;
控制所述至少一个装置的有效性检验器检验存储在所述存储器中的所述固件数据是否有效;
控制所述至少一个装置的模式变换器在确定存储在所述存储器中的所述固件数据无效时,从所述装置操作模式变换至所述启动加载器模式;并且
控制更新器检测所述要被更新的多个装置、和从所述多个装置中确定处于所述启动加载器模式的至少一个装置,并且自动使用匹配固件对处于所述启动加载器模式的所述至少一个装置快闪存储;
其中,所述装置操作模式是其中所述处理器控制所述至少一个装置的启动加载器载入存储在所述存储器中的所述固件数据的模式;
其中,所述启动加载器模式是其中所述处理器控制所述启动加载器使用所述至少一个装置的界面发送所述至少一个装置的识别符、使用所述界面从更新器基于所述识别符自动接收匹配固件数据且将所述匹配固件数据存储在所述存储器中的模式;
其中,所述启动加载器被配置为在所述处理器以所述启动加载器模式操作时设置快闪标志,其中,所述快闪标志仅在被存储的固件数据被程序化之后被清除;
其中,所述至少一个装置被配置为在启动所述至少一个装置的时刻在检测到设置了所述至少一个装置的所述快闪标志时,以所述启动加载器模式操作;
其中,每个装置包括输入装置和输出装置中的至少一个;并且
其中,所述识别符是所述至少一个装置的产品ID。
14.根据权利要求13的方法,其中,所述固件数据包括用于控制所述输入装置和所述输出装置中的所述至少一个的数据。
15.根据权利要求13的方法,其中,所述启动加载器模式是其中所述处理器不控制所述启动加载器载入存储在所述存储器中的所述固件数据的模式。
16.根据权利要求13的方法,其中,所述界面包括以下至少一个:通用串行总线界面、火线界面、PS/2界面、霹雳界面、局域网界面、蓝牙界面、红外线界面、无线局域网界面、和无线移动通信界面。
17.根据权利要求13的方法,其中,所述启动加载器使用存储在所述存储器的固定部分中的数据。
18.根据权利要求13的方法,进一步包括:
控制所述至少一个装置的接收器接收从所述装置操作模式变换至所述启动加载器模式的指令。
19.根据权利要求18的方法,其中,所述接收器使用所述界面接收所述指令。
20.根据权利要求13的方法,进一步包括:
控制所述至少一个装置的接收器接收从所述启动加载器模式变换至所述装置操作模式的指令。
21.根据权利要求20的方法,其中,所述接收器使用所述界面接收所述指令。
22.一种控制更新器的方法,所述方法包括:
控制所述更新器的接收器从处于启动加载器模式的至少一个装置接收所述至少一个装置的识别符;以及
控制所述更新器的发送器基于所接收的所述识别符将匹配固件数据发送至所述至少一个装置;
其中,所述启动加载器模式是其中所述至少一个装置的处理器控制所述至少一个装置的启动加载器使用所述至少一个装置的界面发送所述至少一个装置的所述识别符、使用所述界面从所述更新器自动接收所述匹配固件数据且将所述匹配固件数据存储在所述至少一个装置的存储器中的模式;
其中,所述至少一个装置被配置为在所述至少一个装置以所述启动加载器模式操作时设置快闪标志,其中,所述快闪标志仅在被存储的固件数据被程序化之后被清除;
其中,所述至少一个装置被配置为在启动所述至少一个装置的时刻在检测到设置了所述至少一个装置的所述快闪标志时,以所述启动加载器模式操作;
其中,所述更新器被配置为检测要被更新的多个装置、和从所述多个装置中确定处于所述启动加载器模式的至少一个装置,并且自动使用匹配固件数据对处于所述启动加载器模式的所述至少一个装置快闪存储;并且
其中,所述识别符是所述至少一个装置的产品ID。
23.根据权利要求22的方法,其中,所述发送器将用于变换至所述启动加载器模式的指令发送至不处于所述启动加载器模式的至少一个装置。
24.根据权利要求22的方法,其中,所述发送器将用于变换至装置操作模式的指令发送至处于所述启动加载器模式的所述至少一个装置;且
其中,所述装置操作模式是其中所述至少一个装置的处理器控制所述至少一个装置的启动加载器载入存储在所述存储器中的固件数据的模式。
CN201380082049.XA 2013-12-13 2013-12-13 装置、更新器、控制装置的方法、及控制更新器的方法 Active CN106030526B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/074848 WO2015088544A1 (en) 2013-12-13 2013-12-13 Devices, updaters, methods for controlling a device, and methods for controlling an updater

Publications (2)

Publication Number Publication Date
CN106030526A CN106030526A (zh) 2016-10-12
CN106030526B true CN106030526B (zh) 2019-01-18

Family

ID=53371636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380082049.XA Active CN106030526B (zh) 2013-12-13 2013-12-13 装置、更新器、控制装置的方法、及控制更新器的方法

Country Status (6)

Country Link
US (1) US10209999B2 (zh)
EP (1) EP3080693B1 (zh)
CN (1) CN106030526B (zh)
AU (1) AU2013407292B2 (zh)
TW (1) TWI661305B (zh)
WO (1) WO2015088544A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6548636B2 (ja) * 2014-05-16 2019-07-24 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、および電子機器
US10331459B2 (en) * 2015-03-30 2019-06-25 Sony Corporation Apparatus and method
US10747366B2 (en) 2015-11-23 2020-08-18 Hewlett-Packard Development Company, L.P. Calibration data identification
CN109923528B (zh) * 2017-09-25 2021-04-09 华为技术有限公司 一种数据访问的方法和装置
US11157613B2 (en) * 2018-05-17 2021-10-26 Arm Ip Limited Systems and methods for monitoring power consumption
KR20200087557A (ko) * 2019-01-11 2020-07-21 주식회사 엘지화학 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
CN109918124A (zh) * 2019-03-15 2019-06-21 盛科网络(苏州)有限公司 SOC启动早期载入用户配置的方法及系统、Bootloader镜像配置方法
US11321451B2 (en) * 2019-05-15 2022-05-03 Blackberry Limited Method and system for detection of post compilation modification of binary images
CN111142907B (zh) * 2019-12-25 2022-07-29 声耕智能科技(西安)研究院有限公司 离线关键词识别系统分区升级方法
CN111796848A (zh) * 2020-07-08 2020-10-20 中国第一汽车股份有限公司 Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
TWI749658B (zh) * 2020-07-22 2021-12-11 旺玖科技股份有限公司 具自動更新韌體功能的usb集線裝置及具有該usb集線裝置的主機系統
CN113971146A (zh) * 2020-07-22 2022-01-25 旺玖科技股份有限公司 具自动更新固件功能的usb集线装置及具有该usb集线装置的主机系统
US11467822B2 (en) 2021-03-15 2022-10-11 Google Llc Methods for optics module firmware in-field upgrade
CN113590143B (zh) * 2021-08-03 2023-11-17 北京北航天宇长鹰无人机科技有限公司 基于usb的mcu程序下载方法、电子设备及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314455B1 (en) * 1999-02-24 2001-11-06 International Business Machines Corporation Data processing system and method for permitting a server to remotely initiate a client's boot block recovery
US20030106052A1 (en) * 2001-12-03 2003-06-05 Morrison John A. System and method for high availability firmware load
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7844367B2 (en) * 2003-12-23 2010-11-30 Rain Bird Corporation Code replacement for irrigation controllers
US7197634B2 (en) * 2004-01-16 2007-03-27 Dell Products L.P. System and method for updating device firmware
US7809836B2 (en) * 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
US20050262337A1 (en) 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
US7487343B1 (en) * 2005-03-04 2009-02-03 Netapp, Inc. Method and apparatus for boot image selection and recovery via a remote management module
US20080002758A1 (en) * 2006-06-28 2008-01-03 Infineon Technologies Ag Communications device and method for changing utilization data
US8007771B2 (en) * 2006-07-07 2011-08-30 The Procter & Gamble Company Flavors for oral compositions
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
CN100456246C (zh) * 2007-01-23 2009-01-28 北京映翰通网络技术有限公司 一种固件程序升级的方法与装置
US8065510B2 (en) * 2007-07-30 2011-11-22 Hewlet-Packard Development Company, L.P. System and methods of retrieving firmware between network locations
CN101447015B (zh) * 2008-12-30 2011-12-28 飞天诚信科技股份有限公司 对ccid设备固件程序进行二次开发的方法及装置
TWI386847B (zh) * 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
CN101674267B (zh) 2009-06-30 2012-05-30 中兴通讯股份有限公司 一种家庭网关及其实现usb设备驱动的方法
US9152492B2 (en) * 2009-10-07 2015-10-06 Hewlett-Packard Development Company, L.P. Performing recovery of a headless computer
EP2513781A4 (en) * 2009-12-18 2013-11-20 Hewlett Packard Development Co METHODS AND APPARATUS FOR UPDATING A COMPONENT FIRMWARE USING A FIRMWARE UPDATE APPLICATION
US8769525B2 (en) * 2011-01-31 2014-07-01 Digi International Inc. Remote firmware upgrade device mapping
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US8819661B2 (en) * 2011-11-28 2014-08-26 Echostar Technologies L.L.C. Systems and methods for determining times to perform software updates on receiving devices
CN102681871A (zh) * 2012-04-25 2012-09-19 广州致远电子股份有限公司 一种基于通信接口的固件升级系统
US9110754B2 (en) 2012-05-31 2015-08-18 Microsoft Technology Licensing, Llc Computing device update control
CN102945177B (zh) * 2012-11-16 2015-09-02 深圳市汇川控制技术有限公司 Plc固件升级系统及方法
US9389873B2 (en) * 2013-05-13 2016-07-12 Google Inc. Kiosk application mode for operating system
US9667074B2 (en) * 2014-03-28 2017-05-30 Symbol Technologies, Llc Apparatus and method for updating remote standalone firmware

Also Published As

Publication number Publication date
TW201523259A (zh) 2015-06-16
CN106030526A (zh) 2016-10-12
WO2015088544A1 (en) 2015-06-18
US20170024221A1 (en) 2017-01-26
EP3080693B1 (en) 2019-07-24
US10209999B2 (en) 2019-02-19
AU2013407292A1 (en) 2016-06-23
AU2013407292B2 (en) 2016-10-27
EP3080693A4 (en) 2017-11-01
TWI661305B (zh) 2019-06-01
EP3080693A1 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
CN106030526B (zh) 装置、更新器、控制装置的方法、及控制更新器的方法
CN105573800B (zh) 一种基于zynq的单板或多板系统及在线更新方法
CN102855151B (zh) 不打断业务的光模块固件在应用升级方法
US9858084B2 (en) Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9240924B2 (en) Out-of band replicating bios setting data across computers
CN105579953B (zh) 灵活引导程序代码架构
US9448889B2 (en) BIOS failover update with service processor
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
CN101815988A (zh) 固件映像更新和管理
US20120311240A1 (en) Information processing apparatus, information processing method, and storage medium
CN103729220A (zh) 一种利用ec rom恢复bios rom的方法及装置
US9747240B2 (en) Dynamic connection of PCIe devices and functions to an array of hosts
CN111176739A (zh) 一种系统启动方法、装置、设备及存储介质
US20170293448A1 (en) Systems and methods for bios emulation of pcie device
CN106484549A (zh) 一种交互方法、NVMe设备、HOST及物理机系统
CN103761129A (zh) 一种在Bootloader层实现SDIO接口驱动的方法
CN107766097B (zh) 基于端点装置提供的启动指令执行启动操作的电子装置
US20210072977A1 (en) Systems and methods for hosting multiple firmware images
CN104035757A (zh) 基于MIPS处理器的u-boot移植的实现方法
CN103905631A (zh) 移动终端及其medom及linux芯片统一下载的方法
CN103092648A (zh) 一种镜像升级方法、系统及用户设备和个人计算机
CN109426511A (zh) 软核更新方法和系统
KR20150072963A (ko) 다중시스템 및 이의 부팅 방법
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
US20130263159A1 (en) Information processing apparatus, information processing method, and recording medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant