CN105745617A - 用于预启动固件更新的选择性功率管理 - Google Patents

用于预启动固件更新的选择性功率管理 Download PDF

Info

Publication number
CN105745617A
CN105745617A CN201380080001.5A CN201380080001A CN105745617A CN 105745617 A CN105745617 A CN 105745617A CN 201380080001 A CN201380080001 A CN 201380080001A CN 105745617 A CN105745617 A CN 105745617A
Authority
CN
China
Prior art keywords
computing device
firmware
mobile computing
nextport
hardware component
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.)
Granted
Application number
CN201380080001.5A
Other languages
English (en)
Other versions
CN105745617B (zh
Inventor
M·布卢苏
K·K·贾内桑
V·J·齐默
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105745617A publication Critical patent/CN105745617A/zh
Application granted granted Critical
Publication of CN105745617B publication Critical patent/CN105745617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • 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
    • G06F8/656Updates while running
    • 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
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

用于在预启动环境中更新固件的技术包括具有固件环境和操作系统的移动计算设备。在该预启动环境中,该移动计算设备从之前由该操作系统生成的封装体中提取固件更新并根据固件更新确定硬件组件的功耗设置。该移动计算设备基于该功耗设置来配置该硬件组件并响应于配置该硬件组件而应用该固件更新。该固件更新可包括在该固件环境中可执行的固件驱动器。该硬件组件可包括该移动计算设备的设备控制器或外围设备。该移动计算设备可根据该固件更新确定功率策略,并根据该功率策略确定该功耗设置。描述和要求保护了其他实施例。

Description

用于预启动固件更新的选择性功率管理
背景技术
计算设备通常包括负责硬件初始化、低等级硬件管理和管理启动过程的固件。可根据统一可扩展固件接口(“UEFI”)规范来实现负责启动计算设备的主要平台固件,该规范具有由统一EFI论坛发布的多个版本。该UEFI规范指定了计算设备的固件和计算设备的操作系统之间的接口。除了该平台固件之外,计算设备还可包括用于控制器芯片、外围设备或其他组件的专用固件。
固件在运行时间和在启动期间通常是只读的,但在专门的固件更新过程期间可以被更新。更新的固件可提供额外的特征以及稳定性和安全性改进。现代的操作系统可能将固件更新过程委托给预启动固件。然而,典型的预启动固件在完全操作功率状态(例如,“S0”状态)中与计算设备的所有组件一起执行。因此,应用预启动固件更新可能具有高能量需求,这对于电池供电的移动计算设备来说是一个重要的考虑因素。
附图说明
本文中描述的概念在附图中通过示例并且不是通过限制来说明。为了说明的简洁和清晰起见,在附图中说明的元件并不需要按比例绘制。在被认为合适之处,附图标记已经在附图中重复出现以指示对应的或类似的元素。
图1是在预启动固件更新期间用于选择性功率管理的移动计算设备的至少一个实施例的简化的框图;
图2是图1的移动计算设备的环境的至少一个实施例的简化的框图;
图3是可由图1和2的移动计算设备执行的用于更新固件的方法的至少一个实施例的概略图;
图4是可由图1和2的移动计算设备执行的用于更新固件的方法的至少一个实施例的简化的流程图;以及
图5是可由图1和2的计算设备执行的在预启动固件更新期间用于选择性功率管理的方法的至少一个实施例的简化的流程图。
具体实施方式
虽然本公开的概念易受各种修改和备选形式的影响,但在附图中已经通过示例示出其特定实施例并将在本文进行具体描述。然而,应当理解并不打算将本公开的概念限制为公开的特定形式,恰恰相反,意图的覆盖与本公开和所附的权利要求一致的所有的修改、等效物以及替换物。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示描述的实施例可包括特定的特征、结构或特性,然而每个实施例可以或可以并不必须包括该特定的特征、结构或特性。此外,这样的短语并不必须是指相同的实施例。此外,当与实施例相联系描述特定的特征、结构或特性时,认为在本领域技术人员的知识范围内与无论是否明确描述的其他实施例相联系而影响这样的特征、结构或特性。此外,应当意识到,包含在以“至少一个A,B和C”的形式的列表中的项目可意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A,B和C)。相似地,以“A,B或C的至少一个”的形式列出的项目可意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A,B和C)。
公开的实施例在某些情况下可以以硬件、固件、软件或其任何组合来实现。公开的实施例还可实现为由暂时性或非暂时性机器可读(例如计算机可读)存储介质携带或存储的指令,它可由一个或多个处理器读取和执行。机器可读存储介质可体现为任何存储设备、机制、或用于存储或发送由机器可读形式的信息的其他物理结构(例如,易失性或非易失性存储器,媒体光盘或其他媒体设备)。
在附图中,一些结构或方法特征可以以特定布置和/或顺序示出。然而,应当意识到可能不需要这样的特定布置和/或顺序。相反,在某些实施例中这样的特征可能以与在说明性附图中所示的不同的方式和/或顺序进行布置。此外,在特定附图中包括的结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在某些实施例中,可能并不被包括或可能与其他特征组合。
现在参考图1,说明性的移动计算设备100在预启动固件更新过程期间应用选择性功率管理至其组件。在使用中,如下文所描述的,该移动计算设备100的操作系统例如从由设备制造商维护的远程服务器接收一个或多个固件更新。该操作系统升级(stage)将在下一启动周期中更新的固件更新,并重置该系统。在重新启动时,该操作系统加载器检测升级的固件更新,将该固件更新作为封装体传递给该平台固件,并以更新封装体模式重置该系统。在进一步重新启动时,该平台固件从该封装体中提取该固件更新并应用该固件更新。当应用该固件更新时,该平台固件选择性地功率管理该移动计算设备100的组件;也就是,该平台固件上电或启用被要求应用该固件的组件并掉电或禁用不被要求应用该固件更新的组件。在应用该固件更新后,该平台固件又再次重置该系统,并且该移动计算设备100使用最新更新的固件重新启动。
公开的技术允许在固件更新期间减少的功率使用,这对于电池供电的设备和在有限功率预算上操作的其他设备来说是重要的,诸如高密度数据中心服务器。对于电池供电的设备,减少功率使用降低了在固件更新期间可能丢失功率的风险。此外,利用减少的功率使用,固件可能更频繁地更新,这可提高设备稳定性和/或安全性。
移动计算设备100可实施为用于执行本文中描述的功能的任何类型的设备。例如,该移动计算设备100可实施为,但不限于,智能手机、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、移动电话、手持送受话器、通信设备、车辆远程信息处理设备、分布式计算系统、多处理器系统、消费者电子设备和/或配置为执行本文中描述的功能的任何其他计算设备。如图1中所示,说明性的移动计算设备100包括处理器120、输入/输出子系统122、存储器124、数据存储设备126以及固件存储装置128。当然,在其他实施例中,该移动计算设备100可包括其他或额外组件,诸如在便携式计算机中常见的那些组件(例如,各种输入/输出设备)。此外,在一些实施例中,说明性组件中的一个或多个可结合在另一组件中,或者以其它方式形成为另一组件的一部分。例如,在某些实施例中,存储器124,或其部分,可结合在处理器120中。此外,虽然说明为移动计算设备100,但是应当理解,下面的公开可同等地应用于基本上固定的计算设备,诸如桌面型计算机、工作站或服务器计算机。
处理器120可实施为能够执行本文中描述的功能的任何类型的处理器。例如,处理器120可实施为一个或多个单个或多个核心的处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。相似地,存储器124可实施为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器124可存储在移动计算设备100的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器124通过I/O子系统122通信地耦合至处理器120,该子系统可实施为促进与处理器120、存储器124以及移动计算设备100的其他组件进行输入/输出操作的电路和/或组件。例如,该I/O子系统122可实施为,或者以其它方式包括,存储器控制器集线器、输入/输出控制中心、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板布线等)和/或促进该输入/输出操作的其他组件和子系统。在某些实施例中,该I/O子系统122可形成片上系统(SoC)的一部分并与处理器120、存储器124和移动计算设备100的其他组件一起结合在单个集成电路芯片上。
数据存储设备126可实施为配置用于短期或长期数据的存储的任何类型的设备或多个设备,诸如,例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其他数据存储设备。该数据存储设备126可包括存储用于移动计算设备100的数据和固件代码的系统分区。该数据存储设备126还可包括存储用于移动计算设备100的操作系统的数据文件和可执行文件的操作系统分区。
该移动计算设备100进一步包括固件存储装置128。该固件存储装置128可实施为配置用于永久存储移动计算设备100的平台固件的任何设备。平台固件可包括用于初始化硬件、管理基本输入/输出、保持预启动执行环境并选择和起动一个或多个操作系统的低等级指令或软件。该固件存储装置128可实施为,例如,与电池备用耦合的小量的互补金属氧化物半导体(“CMOS”)存储器或闪存芯片。在某些实施例中,固件存储装置128的部分或全部可实施为驻留在数据存储设备126上的固件卷。在某些实施例中,该固件存储装置128可结合进移动计算设备100的一个或多个其他组件中,诸如结合进I/O子系统122中。
移动计算设备100进一步包括通信电路130,它可实施为任何通信电路、设备或其合集,能够使能移动计算设备100和远程计算设备之间的通信。该通信电路130可配置为使用任何一个或多个通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、WiMAX等)来实现这样的通信。通信电路130可实施为网络适配器,包括无线网络适配器。
在某些实施例中,移动计算设备100可包括可管理性引擎132。该可管理性引擎132实施为支持移动计算设备100的配置、控制或管理的设备。在某些实施例中,该可管理性引擎132可能能够独立于移动计算设备100的其余部分的状态而操作,包括当移动计算设备100关机或正执行预启动环境时。为了支持这样的独立操作,该可管理性引擎132可包括与移动计算设备100的主处理器120分离并且不同的带外处理器。此外,在某些实施例中,该可管理性引擎132还能够独立于移动计算设备100的状态(例如,独立于主处理器120的状态)而使用通信电路130进行通信,也被称为“带外”通信。该可管理性引擎132可执行或访问专用固件134。在某些实施例中,固件134可结合在可管理性引擎132中或专用于可管理性引擎132。另外地或备选地,该可管理性引擎132可执行或访问存储在固件存储装置128中的固件。在某些实施例中,该可管理性引擎132可结合进I/O子系统122中或者以其它方式形成I/O子系统122的一部分。
移动计算设备100进一步包括多个设备控制器136。设备控制器136中的每个配置为与移动计算设备100的硬件组件对接和/或以其它方式控制该移动计算设备100的硬件组件。设备控制器136中的每个可选择性的功率管理。也就是说,移动计算设备100可设置设备控制器136中的每个的功耗等级。可能的功耗等级包括完全掉电、完全上电以及中间的功率等级(诸如挂机或待机)。设备控制器136可包括输入/输出控制器(诸如串行外设接口(“SPI”)控制器、键盘和系统控制器(“KSC”)、(EC)控制器、或者通用串行总线(“USB”)控制器;磁盘控制器;网络控制器;显示控制器;或者用于移动计算设备100的任何其他硬件组件的控制器。设备控制器136可实施为分立芯片或可与移动计算设备100的另一组件诸如I/O子系统122结合或封装。设备控制器136中的每个可包括专用固件138。固件138可实施为闪速存储器、电可擦除只读存储器(“EEPROM”)、或嵌入或耦合至设备控制器136的其他非易失性存储器。
移动计算设备100进一步包括多个外围设备140。这些外围设备140可包括任何数量的额外的输入/输出设备、接口设备和/或其他外围设备。例如,在某些实施例中,外围设备140可包括摄像头、声卡、显示器、键盘、扬声器系统和/或其他输入/输出设备、接口设备和/或外围设备。移动计算设备100可对外围设备140的一些或每个进行选择性的功率管理。在某些实施例中,可通过设备控制器136中的一个或多个对外围设备140进行控制-包括功率管理。例如,移动计算设备100可命令设备控制器136使得所有附连的外围设备140掉电。
现在参考图2,在说明性的实施例中,移动计算设备100在操作期间创建环境200。该说明性的环境200包括操作系统加载器202、操作系统204、以及更新模块208。虽然说明性的实施例200包括单个操作系统204,但是在其他实施例中该环境200可包括本地或以虚拟方式执行的多于一个操作系统204。环境200的各种模块可实施为硬件、固件、软件或它们的组合。
操作系统加载器202配置为从预启动环境中起动操作系统204。操作系统加载器202还配置为确定操作系统204是否已经升级要在启动期间应用的一个或多个固件更新。如果是这样,操作系统加载器202可传递升级的固件更新至更新模块208。
在很多其他事情之中,操作系统204配置为升级要在启动过程期间应用的固件更新。可从外部服务器诸如与设备制造商(未示出)相关联的网络服务器接收该固件更新。正如下面进一步描述的,固件更新可被引导至存储在固件存储装置128中的平台固件、存储在固件134中的可管理性引擎固件、或者存储在固件138中的设备控制器固件。操作系统204可在升级该固件更新后触发重新启动。在某些实施例中,那些功能可通过子模块执行,诸如通过更新管理器模块206。
更新模块208配置为提取由操作系统204生成的一个或多个固件更新并在预启动环境中应用该固件更新。该固件更新可作为封装体从操作系统204传输至更新模块208,该封装体是存储器中数据块。可使用诸如UEFI规范中定义的UpdateCapsule()函数传输该封装体。当应用该固件更新时,更新模块208基于一组平台功率策略214来调整移动计算设备100的硬件组件的功耗设置。该平台功率策略214是基于特定固件更新定义功耗设置的一组规则。一般来说,平台功率策略214定义需要应用特定固件更新的硬件组件要被上电,而不需要的硬件组件要被掉电。该平台功率策略214还可定义中间功耗设置诸如睡眠或待机模式。更新模块208可向操作系统204指示固件更新的状态(例如,成功或失败)。在某些实施例中,更新模块208的功能可通过一个或多个子模块执行,诸如通过封装体管理模块210或功率管理模块212。
现在参考图3,移动计算设备100可执行方法300以更新设备100的固件。在图3中方法300被说明为下文关于图4描述的更特定的方法400的概览。如图3中所示出的,方法300可由移动计算设备100跨多个重新启动周期执行。方法300始于块302,其中移动计算设备100正常启动操作系统204,并且操作系统204升级用于下一启动周期的固件更新。在块304,移动计算设备100正常重新开始。在重新开始后,在块306,移动计算设备100基于升级的固件更新准备封装体。在块308,移动计算设备执行热重新开始到特定更新封装体模式中。在该更新封装体模式中,在块310该移动计算设备基于之前准备的封装体更新该固件。在更新该固件后,在块312,移动计算设备100再次正常重新开始。
现在参考图4,方法300的一个特定实施例被示出为方法400,它可由移动计算设备100执行以更新固件。方法400在块402开始,其中移动计算设备100在预启动环境中初始化平台硬件。例如,移动计算设备100可初始化执行平台固件所需的特定组件,例如存储器124和I/O子系统122。该平台硬件可被初始化为移动计算设备100的初始启动的一部分,例如当用户为该设备上电时,或者响应于如下文所述的平台重置时。
在块404,移动计算设备100确定该平台是否已经以更新封装体模式启动。如下文进一步所描述的,移动计算设备100可以编程方式触发系统的重置。当触发该重置时,移动计算设备100可指定启动模式。例如,移动计算设备100可将该启动模式指定为在UEFI规范中定义的ResetSystem()函数的参数。为了确定该启动模式,移动计算设备100可检查预定义或创建的易失性或非易失性存储器位置。例如,移动计算设备100可检查平台非易失性存储中的一个或多个固件变量的值。移动计算设备100可在完全初始化组件诸如存储器124之前,较早在启动过程中检查该启动模式,以避免清除稍后在启动过程中可能使用的信息。如果以更新封装体模式启动,则该方法400分支至块428以处理该封装体,如下文所述。如果没有以更新封装体模式启动(例如,如果以普通模式启动),则方法400前进至块406。
在块406,移动计算设备100加载并开始固件映像,它可包括固件驱动器和/或固件应用。该固件映像完成平台初始化,安装固件协议接口并为移动计算设备100执行其他预启动操作。固件映像可实施为存储在数据存储设备126的系统分区中的二进制图像,如由UEFI规范所详述的那样。要加载的该特定驱动器和应用是平台依赖的并可在移动计算设备100的固件变量中枚举。
在块408,移动计算设备100选择并加载启动设备。该启动设备是将由移动计算设备100加载并开始的固件应用,并且在说明性实施例中是操作系统加载器202。在某些实施例中,该启动设备可包括诊断、维护或管理应用。选择的该特定启动设备可在移动计算设备100的全局变量中指定。在某些实施例中,启动设备可由移动计算设备100的用户通过菜单或由移动计算设备100呈现的其他部件进行选择。
在块410,移动计算设备100确定是否已经由操作系统204升级了用于更新的封装体。这个确定可由操作系统加载器202执行。如下文所述,操作系统204可通过将文件存储在数据存储设备126上的定义的位置上来升级用于更新的封装体。那个位置可在数据存储设备126的任何固件卷之外,例如在操作系统204的系统根目录中。因此,操作系统加载器202可搜索该数据存储设备126的那个位置以确定是否已经升级了用于更新的封装体。在块412,移动计算设备100确定是否升级了封装体。如果升级了封装体,则方法400分支至块424,将在下文描述。如果没有升级,则方法400前进到块414。
在块414,移动计算设备100正常启动操作系统204。操作系统加载器202将移动计算设备100的控制从固件的预启动环境传递至操作系统204。例如,操作系统加载器202可调用由UEFI规范定义的ExitBootServices()函数。
在块416,移动计算设备100确定是否更新固件。固件更新可能自动发起,例如当移动计算设备100使用通信电路130从可信源下载更新的固件时。在某些实施例中,固件更新可由用户发起,例如通过交互式硬件管理设施。如果不更新固件,则方法400分支至块418。在块418,移动计算设备100执行标准操作,诸如执行用户应用。在块418后,方法400循环返回块416以继续监视固件更新。返回参见块416,如果移动计算设备100确定更新固件,则方法400前进至块420。
在块420,移动计算设备100升级用于下一启动周期中的封装体。如上文所述,为了升级该封装体,操作系统204可将该封装体存储在数据存储设备126上的明确定义的位置中。该封装体可实施为可被用于将数据从运行时的操作系统传递至预启动固件环境的数据结构。该封装体通常以头部段开始,然后为可包括代码和/或数据段的任意二进制信息。因此,一个或多个固件更新可被编码并封装进单个封装体中。在某些实施例中,操作系统204可在运行时完整地编码该封装体,并将编码的封装体升级在数据存储设备126上。另外地或备选地,操作系统204可将固件更新升级在数据存储设备126上,并且该封装体可由操作系统加载器202生成,如下文所述。该封装体可格式化为如由UEFI规范所定义的EFI_UPDATE_CAPSULE。
在块422,移动计算设备100以正常模式重置该平台。在某些实施例中,移动计算设备100可确认保留有充足的电池功率(例如,总容量的至少25%)或移动计算设备100连接至AC功率。在重置该平台之前,移动计算设备100还可确认用户希望执行固件更新,例如,通过提示用户是否重新启动该平台。在重置该平台后,方法400循环回块402以初始化平台硬件。
返回参考块412,移动计算设备100确定是否已经升级用于固件更新的封装体。如上文所述,这个确定可由操作系统加载器202执行。如果升级了用于更新的封装体,则方法400分支至块424。在块424,移动计算设备100准备用于下一固件启动周期的更新封装体。为了这么做,移动计算设备100将该封装体载入存储器124中。如上文所述,在某些实施例中操作系统加载器202可加载并格式化一个或多个固件更新到存储器内的封装体。在某些实施例中,该封装体可使用虚拟寻址模式存储在存储器124中。在那些实施例中,移动计算设备100还可准备存储器内的表格以将虚拟存储器地址映射到由预启动固件可使用的物理地址。移动计算设备100可使用UEFI规范中定义的UpdateCapsule()函数将该封装体传递至该固件。该封装体可被标记或者以其它方式被配置以跨平台重置存留。
在块426,移动计算设备100以更新封装体模式热重置该平台。热重置使得该平台重新启动但并不清除存储器124的内容。因此,该封装体对于固件将是可用的以用于在随后重新启动时处理。移动计算设备100可通过在重置该系统时供应与该封装体相关联的重置类型来热重置该系统。例如,该移动计算设备100可调用UEFI规范的QueryCapsuleCapabilities()函数来获得该重置值。在热重置该系统后,方法400循环返回至块402以初始化平台硬件。
返回参考块404,移动计算设备100确定它是否已经以更新封装体模式启动。如上文所述,存储在易失性或非易失性存储器中的数据可指示该启动模式。如果以更新封装体模式启动,则方法400分支至块428。在块428,移动计算设备100处理更新封装体(或多个封装体)并使用平台功率策略214更新固件。进一步与下文的图5相联系来描述使用平台功率策略214更新该固件。
在块430,移动计算设备100确定固件是否成功更新。为了作出这个确定,移动计算设备100可检查存储在易失性或非易失性存储器中的数据。例如,封装体更新状态可存储在EFI系统资源表(“ESRT”)中。如果固件更新不成功,则方法400可前进至块432,其中重新运行该固件至之前存储的备份。在重新运行该固件之后,方法400前进至块434。返回参考块430,如果固件更新成功,则方法400分支至块434。
在块434,移动计算设备100以正常模式重置该平台。移动计算设备100可执行冷重置,也就是,移动计算设备100可清除存储器124的内容并完全重新初始化平台硬件。在重新启动时,移动计算设备100将执行任何新更新的固件。在重置该系统后,方法400循环回至块402以初始化平台硬件。
现在参考图5,在使用中,移动计算设备100可执行当应用固件更新时用于选择性功率管理的方法500。如上文与图4的块428相联系所描述的,当该平台已经以更新封装体模式启动时,方法500可在预启动固件环境中执行。方法500始于块502,其中移动计算设备100识别包含在该封装体中的固件更新。在处理该封装体之前,移动计算设备100可将封装体内容拷贝进物理存储器的连续段中。如上文所述,该封装体可以标准头部开始,然后是一块任意的二进制信息(“二进制块”)。二进制信息可以以由移动计算设备100可使用的任何格式格式化。例如,二进制信息可格式化为如由UEFI规范所定义的固件卷。移动计算设备100可枚举或者以其它方式解包包含在该封装体内的所有固件更新。
在块504,移动计算设备100从该封装体中检索下一固件更新。每个固件更新可包括要安装在移动计算设备100的固件设备中的代码和/或数据,并还可包括应用固件更新所需的安装或管理代码。例如,固件更新可包括要存储在固件存储装置128中的更新的平台固件,要存储在附件134中的更新的可管理性引擎固件,或者要存储在固件138中的更新的设备控制器固件。每个独立的固件更新可以是可用于更新该固件的任何格式。例如,固件更新可实施为包含代码的固件驱动器,当执行该代码时更新适当的固件设备。固件驱动器可包括入口点,也就是固件驱动器内的明确定义的位置,在该位置处移动计算设备100可开始执行代码以应用该固件更新。在某些实施例中,固件更新可参考该封装体以访问要存储在固件设备中的数据。
在块506,移动计算设备100基于平台功率策略214确定固件更新所需的平台硬件组件。移动计算设备100可确定适于特定固件更新的平台功率策略214。例如,每个固件更新可与由全局唯一标识符(“GUID”)标识的特定硬件组件相关联。确定的平台功率策略214可识别用于固件更新的所需硬件组件,包括需要的功耗设置。所需的特定硬件组件是平台特定的;因此,移动计算设备100的制造商和/或平台固件的开发者可维护平台功率策略214。
在块508,移动计算设备100基于适当的平台功率策略214来设置平台硬件组件的功率等级。该可用的功率等级是平台以及组件特定的。例如,某些硬件组件可能完全掉电或全部上电。其他硬件组件可具有多个可用的功率等级,诸如完全掉电、待机、挂机或完全上电,或者可具有可调整的参数,诸如时钟速度和/或电压。在块510,在某些实施例中移动计算设备100可为固件更新所需的硬件组件上电。例如,当更新平台固件时,移动计算设备100可为处理器120、固件存储装置128以及用于SPI总线的设备控制器136上电。作为另一示例,当更新用于可管理性引擎132的固件时,移动计算设备100可为处理器120和用于SPI总线的设备控制器136上电。作为第三示例,当更新用于外围设备140的固件时,移动计算设备100可为处理器120和外围设备140上电。在块512,在某些实施例中移动计算设备100可使固件更新不需要的硬件组件掉电。例如,移动计算设备100可使不被更新的外围设备140,或者不被更新的设备或总线的设备控制器136掉电。
在块514,移动计算设备100执行固件更新并指示更新状态。执行更新将新的固件写入适当的固件设备,例如固件存储装置128、可管理性引擎固件134或者设备控制器固件138。在其中固件更新被实施为固件驱动器的实施例中,移动计算设备100可通过在固件驱动器的入口点处开始执行来执行固件更新。移动计算设备100可通过更新EFI系统资源表来指示固件更新的状态(例如,成功或失败)。移动计算设备100还可导出或者以其它方式使状态信息对于操作系统204可用。在某些实施例中,在块516,移动计算设备100可存储之前的固件的备份,它可用于如果更新失败时重新运行固件。之前的固件可被存储在例如数据存储设备126的系统卷中。
在块518,移动计算设备100确定额外的固件更新是否保留。移动计算设备100可检查封装体的内容,如上文所述。如果额外的固件更新保留,则方法500循环回块504以检索下一更新封装体。如果没有额外的固件更新保留,则方法500完成。如上文所述,移动计算设备100随后可使用新更新的固件重新启动。
虽然已经依据移动计算设备描述了公开的技术,然而应当理解,公开的技术同样可用于其他计算设备。例如,公开的技术可结合在桌面计算机、服务器或其他主要静态的计算设备中。
示例
示例1包括用于在预启动环境中更新固件的移动计算设备,该移动计算设备包括:封装体管理模块,用于从之前由移动计算设备的操作系统生成的封装体中提取固件更新;功率管理模块,用于根据固件更新确定用于移动计算设备的硬件组件的功耗设置并基于该功耗设置配置该硬件组件;以及更新模块,用于响应于基于功耗设置的硬件组件的配置而应用该固件更新。
示例2包括示例1的主题,并且其中该固件更新包括固件驱动器;并且应用该固件更新包括执行该固件驱动器的入口点。
示例3包括示例1和2中的任何一个所述的主题,并且其中确定功耗设置包括:根据固件更新确定移动计算设备的功率策略,该功率策略用于定义移动计算设备的多个硬件组件的功率等级;并根据该功率策略确定该硬件组件和功耗设置。
示例4包括示例1-3中的任何一个所述的主题,并且其中确定该功率策略包括基于该固件更新的唯一标识符确定该功率策略。
示例5包括示例1-4中的任何一个所述的主题,并且其中该硬件组件包括该移动计算设备的外设设备。
示例6包括示例1-5中的任何一个所述的主题,并且其中该硬件组件包括该移动计算设备的设备控制器。
示例7包括示例1-6中的任何一个所述的主题,并且其中该设备控制器包括串行外设接口(“SPI”)控制器、键盘和系统控制器(“KSC”)、网络控制器、无线网络控制器、近场通信(“NFC”)控制器、扩展卡(“EC”)控制器或者通用串行总线(“USB”)控制器。
示例8包括示例1-7中的任何一个所述的主题,并且其中基于功耗设置来配置硬件组件包括相对于硬件组件的完全操作状态而减少硬件组件的功耗。
示例9包括示例1-8中的任何一个所述的主题,并且其中基于功耗设置来配置硬件组件包括相对于硬件组件的当前功耗而增加该硬件组件的功耗。
示例10包括示例1-9中的任何一个所述的主题,并且其中应用固件更新包括应用固件更新至移动计算设备的可管理性引擎。
示例11包括示例1-10中的任何一个所述的主题,并且其中应用固件更新包括应用固件更新至移动计算设备的设备控制器。
示例12包括示例1-11中的任何一个所述的主题,并且其中基于功耗设置来配置硬件组件包括相对于硬件组件的完全操作状态而减少硬件组件的功耗;以及,应用固件更新包括应用固件更新至与该硬件组件不同的该移动计算设备的另一个硬件组件。
示例13包括示例1-12中的任何一个所述的主题,并且其中该封装体管理模块进一步从该封装体中提取第二固件更新;该功率管理模块进一步:根据第二固件更新确定移动计算设备的第二硬件组件的第二功耗设置;以及基于第二功耗设置来配置第二硬件组件;以及该更新模块进一步响应于基于第二功耗设置的第二硬件组件的配置而应用第二固件更新。
示例14包括示例1-13中的任何一个所述的主题,并且其中确定第二功耗设置包括根据第二固件更新确定移动计算设备的第二功率策略;并且根据第二功率策略确定第二硬件组件和第二功耗设置。
示例15包括示例1-14中的任何一个所述的主题,并且其中第二硬件组件包括该硬件组件;并且第二功耗设置与该功耗设置不同。
示例16包括示例1-15中的任何一个所述的主题,并且其中更新模块进一步响应于应用该固件更新而指示更新状态,其中该更新状态可由操作系统访问。
示例17包括示例1-16中的任何一个所述的主题,并且其中该预启动环境包括封装体管理模块、功率管理模块以及更新模块。
示例18包括用于在预启动环境中更新移动计算设备的固件的方法,该方法包括:由移动计算设备从之前由移动计算设备的操作系统生成的封装体中提取固件更新;根据固件更新,由移动计算设备确定移动计算设备的硬件组件的功耗设置;基于该功耗设置,由移动计算设备来配置硬件组件;以及响应于基于功耗设置而配置硬件组件,由移动计算设备来应用该固件更新。
示例19包括示例18所述的主题,并且其中提取该固件更新包括提取固件驱动器;并且应用该固件更新包括执行该固件驱动器的入口点。
示例20包括示例18和19中的任何一个所述的主题,并且其中确定功耗设置包括:根据固件更新确定移动计算设备的功率策略,该功率策略定义移动计算设备的多个硬件组件的功率等级;并且根据该功率策略确定该硬件组件和功耗设置。
示例21包括示例18-20中的任何一个所述的主题,并且其中确定该功率策略包括基于该固件更新的唯一标识符来确定该功率策略。
示例22包括示例18-21中的任何一个所述的主题,并且其中该硬件组件包括该移动计算设备的外设设备。
示例23包括示例18-22中的任何一个所述的主题,并且其中该硬件组件包括该移动计算设备的设备控制器。
示例24包括示例18-23中的任何一个所述的主题,并且其中该设备控制器包括串行外设接口(“SPI”)控制器、键盘和系统控制器(“KSC”)、网络控制器、无线网络控制器、近场通信(“NFC”)控制器、扩展卡(“EC”)控制器或者通用串行总线(“USB”)控制器。
示例25包括示例18-24中的任何一个所述的主题,并且其中基于功耗设置配置硬件组件包括相对于硬件组件的完全操作状态而减少硬件组件的功耗。
示例26包括示例18-25中的任何一个所述的主题,并且其中基于功耗设置来配置硬件组件包括相对于硬件组件的当前功耗而增加该硬件组件的功耗。
示例27包括示例18-26中的任何一个所述的主题,并且其中应用固件更新包括应用固件更新至移动计算设备的可管理性引擎。
示例28包括示例18-27中的任何一个所述的主题,并且其中应用固件更新包括应用固件更新至移动计算设备的设备控制器。
示例29包括示例18-28中的任何一个所述的主题,并且其中基于功耗设置来配置硬件组件包括相对于硬件组件的完全操作状态而减少硬件组件的功耗;并且应用固件更新包括应用固件更新至与该硬件组件不同的该移动计算设备的另一个硬件组件。
示例30包括示例18-29中的任何一个所述的主题,并且进一步包括由移动计算设备从该封装体中提取第二固件更新;根据第二固件更新,由移动计算设备确定移动计算设备的第二硬件组件的第二功耗设置;基于第二功耗设置,由移动计算设备来配置第二硬件组件;以及响应于基于第二功耗设置而配置第二硬件组件,由移动计算设备来应用第二固件更新。
示例31包括示例18-30中的任何一个所述的主题,并且其中确定第二功耗设置包括根据第二固件更新确定移动计算设备的第二功率策略;并且根据第二功率策略确定第二硬件组件和第二功耗设置。
示例32包括示例18-31中的任何一个所述的主题,并且其中第二硬件组件包括该硬件组件;并且第二功耗设置与该功耗设置不同。
示例33包括示例18-32中的任何一个所述的主题,并且进一步包括响应于应用该固件更新,由移动计算设备指示更新状态,其中该更新状态可由操作系统访问。
示例34包括示例18-33中的任何一个所述的主题,并且其中提取固件更新、确定功耗设置、配置硬件组件以及应用固件更新全部发生在预启动环境中。
示例35包括计算设备,包括处理器;以及存储器,具有多个指令存储于其中,当由该处理器执行所述指令时使得该计算设备执行示例18-34中的任何一个所述的方法。
示例36包括一个或多个机器可读存储介质,包括多个指令存储其上,该指令响应于被执行而导致计算设备执行示例18-34中的任何一个所述的方法。
示例37包括计算设备,包括用于执行示例18-34中的任何一个所述的方法的部件。

Claims (25)

1.一种用于在预启动环境中更新固件的移动计算设备,所述移动计算设备包括:
封装体管理模块,用于从之前由所述移动计算设备的操作系统生成的封装体中提取固件更新;
功率管理模块,用于:
根据所述固件更新确定用于所述移动计算设备的硬件组件的功耗设置;以及
基于所述功耗设置来配置所述硬件组件;以及
更新模块,用于响应于基于所述功耗设置的所述硬件组件的配置而应用所述固件更新。
2.如权利要求1所述的移动计算设备,其中:
所述固件更新包括固件驱动器;以及
应用所述固件更新包括执行所述固件驱动器的入口点。
3.如权利要求1所述的移动计算设备,其中确定所述功耗设置包括:
根据所述固件更新确定所述移动计算设备的功率策略,所述功率策略用于定义所述移动计算设备的多个硬件组件的功率等级;以及
根据所述功率策略确定所述硬件组件和所述功耗设置。
4.如权利要求3所述的移动计算设备,其中确定所述功率策略包括基于所述固件更新的唯一标识符来确定所述功率策略。
5.如权利要求1所述的移动计算设备,其中所述硬件组件包括所述移动计算设备的设备控制器。
6.如权利要求5所述的移动计算设备,其中所述设备控制器包括串行外设接口(“SPI”)控制器、键盘和系统控制器(“KSC”)、网络控制器、无线网络控制器、近场通信(“NFC”)控制器、扩展卡(“EC”)控制器或者通用串行总线(“USB”)控制器。
7.如权利要求1所述的移动计算设备,其中基于所述功耗设置来配置所述硬件组件包括:
相对于所述硬件组件的完全操作状态而减少所述硬件组件的功耗;或者
相对于所述硬件组件的当前功耗而增加所述硬件组件的功耗。
8.如权利要求1所述的移动计算设备,其中应用所述固件更新包括应用所述固件更新至所述移动计算设备的可管理性引擎。
9.如权利要求1所述的移动计算设备,其中应用所述固件更新包括应用所述固件更新至所述移动计算设备的设备控制器。
10.如权利要求1所述的移动计算设备,其中:
基于所述功耗设置来配置所述硬件组件包括相对于所述硬件组件的完全操作状态而减少所述硬件组件的功耗;以及
应用所述固件更新包括应用所述固件更新至与所述硬件组件不同的所述移动计算设备的另一个硬件组件。
11.如权利要求1-10中的任何一项所述的移动计算设备,其中:
所述封装体管理模块将进一步从所述封装体中提取第二固件更新;
所述功率管理模块将进一步:
根据所述第二固件更新确定所述移动计算设备的第二硬件组件的第二功耗设置;以及
基于所述第二功耗设置来配置所述第二硬件组件;以及
所述更新模块将进一步响应于基于所述第二功耗设置的所述第二硬件组件的配置来应用所述第二固件更新。
12.如权利要求11所述的移动计算设备,其中确定所述第二功耗设置包括:
根据所述第二固件更新确定所述移动计算设备的第二功率策略;以及
根据所述第二功率策略确定所述第二硬件组件和所述第二功耗设置。
13.如权利要求11所述的移动计算设备,其中:
所述第二硬件组件包括所述硬件组件;以及
所述第二功耗设置与所述功耗设置不同。
14.如权利要求1-10中的任何一项移动计算设备,其中所述更新模块将进一步响应于应用所述固件更新而指示更新状态,其中所述更新状态可由所述操作系统访问。
15.如权利要求1-10中的任何一项所述的移动计算设备,其中所述预启动环境包括所述封装体管理模块、所述功率管理模块以及所述更新模块。
16.一种用于在预启动环境中更新移动计算设备的固件的方法,所述方法包括:
由所述移动计算设备从之前由所述移动计算设备的操作系统生成的封装体中提取固件更新;
根据所述固件更新,由所述移动计算设备确定所述移动计算设备的硬件组件的功耗设置;
基于所述功耗设置,由所述移动计算设备来配置所述硬件组件;以及
响应于基于所述功耗设置而配置所述硬件组件,由所述移动计算设备来应用所述固件更新。
17.如权利要求16所述的方法,其中确定所述功耗设置包括:
根据所述固件更新确定所述移动计算设备的功率策略,所述功率策略定义所述移动计算设备的多个硬件组件的功率等级;以及
根据所述功率策略确定所述硬件组件和所述功耗设置。
18.如权利要求16所述的方法,其中:
基于所述功耗设置来配置所述硬件组件包括相对于所述硬件组件的完全操作状态而减少所述硬件组件的功耗;以及
应用所述固件更新包括应用所述固件更新至与所述硬件组件不同的所述移动计算设备的另一个硬件组件。
19.如权利要求16所述的方法,进一步包括:
由所述移动计算设备从所述封装体中提取第二固件更新;
根据所述第二固件更新,由所述移动计算设备确定所述移动计算设备的第二硬件组件的第二功耗设置;
基于所述第二功耗设置,由所述移动计算设备来配置所述第二硬件组件;以及
响应于基于所述第二功耗设置而配置所述第二硬件组件,由所述移动计算设备来应用所述第二固件更新。
20.如权利要求19所述的方法,其中确定所述第二功耗设置包括:
根据所述第二固件更新确定所述移动计算设备的第二功率策略;以及
根据所述第二功率策略确定所述第二硬件组件和所述第二功耗设置。
21.如权利要求19所述的方法,其中:
所述第二硬件组件包括所述硬件组件;以及
所述第二功耗设置与所述功耗设置不同。
22.如权利要求16所述的方法,其中提取所述固件更新、确定所述功耗设置、配置所述硬件组件以及应用所述固件更新全部发生在所述预启动环境中。
23.一种计算设备,包括:
处理器;以及
存储器,所述存储器具有多个指令存储于其中,当由所述处理器执行所述指令时使得所述计算设备执行权利要求16-22中的任何一项所述的方法。
24.一个或多个机器可读存储媒体,包括多个指令存储于其上,所述指令响应于被执行而导致计算设备执行权利要求16-22中的任何一项所述的方法。
25.一种计算设备,包括用于执行权利要求16-22中的任何一项所述的方法的部件。
CN201380080001.5A 2013-10-31 2013-10-31 用于预启动固件更新的选择性功率管理 Active CN105745617B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067725 WO2015065417A1 (en) 2013-10-31 2013-10-31 Selective power management for pre-boot firmware updates

Publications (2)

Publication Number Publication Date
CN105745617A true CN105745617A (zh) 2016-07-06
CN105745617B CN105745617B (zh) 2020-07-28

Family

ID=53004826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080001.5A Active CN105745617B (zh) 2013-10-31 2013-10-31 用于预启动固件更新的选择性功率管理

Country Status (6)

Country Link
US (1) US9996142B2 (zh)
EP (1) EP3063620B1 (zh)
JP (1) JP6272991B2 (zh)
KR (1) KR101861724B1 (zh)
CN (1) CN105745617B (zh)
WO (1) WO2015065417A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175057A (zh) * 2019-05-31 2019-08-27 联想(北京)有限公司 一种数据处理方法、电子设备及服务器
CN110244960A (zh) * 2018-03-09 2019-09-17 三星电子株式会社 集成的单个fpga和固态硬盘控制器
CN112543915A (zh) * 2018-08-10 2021-03-23 株式会社电装 车辆用电子控制系统、车辆用主装置、数据储存面信息的发送控制方法以及数据储存面信息的发送控制程序

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
JP6501595B2 (ja) * 2015-04-06 2019-04-17 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
US9916165B2 (en) * 2015-08-20 2018-03-13 Dell Products L.P. Systems and methods to optimize boot for information handling system comprising persistent memory
US10389851B2 (en) 2015-09-17 2019-08-20 Intel Corporation Performing power management during a download and execute operation
CN108334372B (zh) * 2015-09-22 2021-04-09 Oppo广东移动通信有限公司 固件升级处理方法、装置和系统
US10019253B2 (en) * 2016-02-19 2018-07-10 Dell Products L.P. Systems and methods of updating hot-pluggable devices
US10423425B2 (en) * 2016-06-13 2019-09-24 Dell Products, Lp System and method for runtime update of ESRT table for hot-pluggable disks
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10860332B2 (en) 2017-09-25 2020-12-08 Qualcomm Incorporated Multicore framework for use in pre-boot environment of a system-on-chip
US10988091B2 (en) 2018-01-08 2021-04-27 Ford Global Technologies, Llc Erase-replace OTA smart power strategy
WO2019152037A1 (en) * 2018-02-01 2019-08-08 Hewlett-Packard Development Company, L.P. Instruction updates via side channels
KR102516583B1 (ko) * 2018-03-19 2023-04-03 삼성전자 주식회사 전자 장치 및 전자 장치의 업데이트 제어 방법
US11157613B2 (en) * 2018-05-17 2021-10-26 Arm Ip Limited Systems and methods for monitoring power consumption
US10732690B2 (en) 2018-05-17 2020-08-04 Arm Ip Limited Systems and methods for monitoring state transitions
CN108874451B (zh) * 2018-06-01 2022-07-12 深圳市道通智能航空技术股份有限公司 无人机电池保护方法、装置及存储介质
US10831467B2 (en) * 2018-10-25 2020-11-10 American Megatrends International, Llc Techniques of updating host device firmware via service processor
US11194589B2 (en) * 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
WO2021141606A1 (en) * 2020-01-10 2021-07-15 Hewlett-Packard Development Company, L.P. Change of firmware settings
US11314521B2 (en) 2020-01-27 2022-04-26 Dell Products L.P. System and method for managing component updates
US11429166B2 (en) 2020-01-27 2022-08-30 Dell Products L.P. System and method for managing device updates
US11237837B2 (en) 2020-01-27 2022-02-01 Dell Products L.P. System and method for managing devices during reboot
US11294691B2 (en) * 2020-02-03 2022-04-05 Dell Products L.P. Dynamic memory layouts for firmware updates based on OEM memory subsystem
US11307844B2 (en) 2020-06-18 2022-04-19 Dell Products L.P. System and method for intelligent power management of firmware updates
US20220391188A1 (en) * 2021-06-03 2022-12-08 Dell Products L.P. Systems and methods for context-aware firmware update
WO2023277881A1 (en) * 2021-06-29 2023-01-05 Hewlett-Packard Development Company, L.P. Instruction updates to hardware devices
US20230023833A1 (en) * 2021-07-20 2023-01-26 Dell Products L.P. Enforcing correct sequencing of firmware updates
US11836474B2 (en) * 2021-10-27 2023-12-05 Dell Products L.P. Applying a firmware update based on power requirement
US20230221784A1 (en) * 2022-01-07 2023-07-13 Dell Products L.P. System and method for power state enforced subscription management
US11907153B2 (en) 2022-01-07 2024-02-20 Dell Products L.P. System and method for distributed subscription management
US11947433B2 (en) 2022-01-07 2024-04-02 Dell Products L.P. System and method for subscription based solution management

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144609A1 (en) * 2003-12-12 2005-06-30 Intel Corporation Methods and apparatus to provide a robust code update
CN102103406A (zh) * 2009-12-22 2011-06-22 英特尔公司 操作系统无关的网络事件处理
US8230237B2 (en) * 2007-12-06 2012-07-24 Intel Corporation Pre-boot environment power management
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作系统(os)缺席的服务环境中供应固件的方法
US20130268922A1 (en) * 2012-04-04 2013-10-10 Prafull Tiwari System for performing firmware updates on a number of drives in an array with minimum interruption to drive i/o operations

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4076113B2 (ja) * 2000-03-24 2008-04-16 株式会社リコー 電子制御装置
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US20030070115A1 (en) 2001-10-05 2003-04-10 Nguyen Tom L. Logging and retrieving pre-boot error information
US20040267708A1 (en) 2003-06-18 2004-12-30 Rothman Michael A Device information collection and error detection in a pre-boot environment of a computer system
JP4423960B2 (ja) * 2003-12-17 2010-03-03 株式会社ニコン 電子機器および電子機器のソフトウェア更新用プログラム
US7774596B2 (en) * 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
JP4236672B2 (ja) 2006-04-05 2009-03-11 シャープ株式会社 画像処理装置
US7765393B1 (en) 2006-07-11 2010-07-27 Network Appliance, Inc. Method and system of embedding a boot loader as system firmware
JP5127511B2 (ja) * 2008-03-04 2013-01-23 キヤノン株式会社 光学装置
JP2010009474A (ja) 2008-06-30 2010-01-14 Canon Inc 周辺装置
JP5693399B2 (ja) * 2011-06-28 2015-04-01 シャープ株式会社 更新システム、画像形成装置、更新方法、コンピュータプログラム及び記録媒体
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144609A1 (en) * 2003-12-12 2005-06-30 Intel Corporation Methods and apparatus to provide a robust code update
US8230237B2 (en) * 2007-12-06 2012-07-24 Intel Corporation Pre-boot environment power management
CN102103406A (zh) * 2009-12-22 2011-06-22 英特尔公司 操作系统无关的网络事件处理
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作系统(os)缺席的服务环境中供应固件的方法
US20130268922A1 (en) * 2012-04-04 2013-10-10 Prafull Tiwari System for performing firmware updates on a number of drives in an array with minimum interruption to drive i/o operations

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110244960A (zh) * 2018-03-09 2019-09-17 三星电子株式会社 集成的单个fpga和固态硬盘控制器
CN112543915A (zh) * 2018-08-10 2021-03-23 株式会社电装 车辆用电子控制系统、车辆用主装置、数据储存面信息的发送控制方法以及数据储存面信息的发送控制程序
CN110175057A (zh) * 2019-05-31 2019-08-27 联想(北京)有限公司 一种数据处理方法、电子设备及服务器
CN110175057B (zh) * 2019-05-31 2020-12-18 联想(北京)有限公司 一种数据处理方法、电子设备及服务器

Also Published As

Publication number Publication date
CN105745617B (zh) 2020-07-28
KR20160039287A (ko) 2016-04-08
US9996142B2 (en) 2018-06-12
JP6272991B2 (ja) 2018-01-31
KR101861724B1 (ko) 2018-05-29
EP3063620A4 (en) 2017-07-19
EP3063620A1 (en) 2016-09-07
WO2015065417A1 (en) 2015-05-07
JP2016535329A (ja) 2016-11-10
EP3063620B1 (en) 2019-12-11
US20160231804A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
CN105745617A (zh) 用于预启动固件更新的选择性功率管理
US9507604B2 (en) Boot method and boot system
US10592254B2 (en) Technologies for fast low-power startup of a computing device
EP2831722B1 (en) Method and system for verifying proper operation of a computing device after a system change
US9411601B2 (en) Flexible bootstrap code architecture
CN103999041A (zh) 在设备初始化期间备份固件
CN103729210A (zh) 一种实现一个刷机包支持多种制式智能终端的方法及装置
CN107408090A (zh) 输入/输出控制器访问通道的动态配置
CN102314354A (zh) 一种嵌入式系统启动方法及嵌入式装置
CN109753299A (zh) 一种系统升级方法、装置以及计算机存储介质
CN110908733B (zh) 工作模式确定方法及装置、控制方法及装置
WO2019242133A1 (zh) 电子设备中的软件升级方法、装置及电子设备
WO2014102301A1 (en) Method to provide connectivity capabilities to a computing device
CN108121562B (zh) 固件版本切换方法、电子设备和bios芯片
US11068276B2 (en) Controlled customization of silicon initialization
CN112416886A (zh) Linux系统启动方法及装置
CN115469935A (zh) 智能终端的启动方法及相关设备
CN115291894A (zh) 设备信息管理方法、装置、电子设备及存储介质
CN113849239A (zh) 一种可用于服务器远程修改bios启动项的方法及介质
CN113867753A (zh) 一种服务器的固件更新方法及系统
CN114816565A (zh) 固件加载方法、装置及电子设备
CN114625388A (zh) 一种物联网mcu空中固件升级系统及方法

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