使用管理引擎的部件更新的制作方法

文档序号:6496019阅读:216来源:国知局
使用管理引擎的部件更新的制作方法
【专利摘要】本发明公开用于使用管理引擎来应用部件更新的系统和方法的实施例。在一些实施例中,该方法可包括将包含对于计算装置的部件的更新的可启动图像存储在安全存储器位置中并且配置该计算装置以从可启动图像启动。这样的配置可包括配置计算装置用于对可启动图像的集成装置电子设备重定向(IDE-R)。
【专利说明】使用管理引擎的部件更新
【背景技术】
[0001]大部分的计算装置包括固件,其包括控制计算装置的部件的内部装置功能的程序和数据结构。固件通常存储在例如可擦除可编程只读存储器(EPROM)等可闪存存储器装置(flashable memory device)上。利用可闪存存储器装置通过在存储器装置上闪存新固件而允许更新固件,同时在没有电力源可用时保存现有的固件。更新固件的过程可称为“部件更新”或“平台更新”,其中平台指计算装置的部件中的一个或多个。在固件更新期间,被更新的部件通常必须是不能操作的。因为部件没有对它的固件的访问权,部件不能执行它的基本功能。
[0002]许多计算装置包括在计算装置正运行它的操作系统(OS)时无法被更新的固件(或其他软件)。通过示例,因为OS典型地存储在硬盘驱动器上并且该硬盘驱动器不能在它的固件被更新时检索数据,计算装置无法在正常OS环境中管理对硬盘驱动器的固件更新。这样的固件更新必须在正常OS环境外部完成。一般,这通过将可启动图像交付给计算装置而完成。该可启动图像可包含独立OS环境,例如盘操作系统(DOS)环境,其允许计算装置操作并且应用固件更新而不访问正常OS环境。
[0003]传统地,用于这样的固件更新的可启动图像必须经由软盘、USB棒或其他便携式介质而在物理上交付给每个计算装置。交付的另一个已知方法是经典集成装置电子设备重定向(IDER),其中包含固件更新的可启动图像存储在远程服务器上。具有网络连接并且预先配置成访问该远程服务器的计算装置然后可从远程可启动图像启动来应用固件更新。
【专利附图】

【附图说明】
[0004]本文描述的本发明通过示例而非限制的方式在附图中图示。为了图示的简单和清楚起见,在图中图示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可相对于其他元件扩大。此外,在认为适当的地方,标号在图之中重复来指示对应或类似元件。
[0005]图1是配置成管理对计算装置的部件的更新的系统的一个实施例的简化框图;
图2是图1的计算装置的软件环境的一个实施例的简化框图;
图3是使用图1和2的更新服务器来封装并且交付可启动图像的方法的一个实施例的简化流程图;
图4是使用图1和2的更新管理器来管理更新的方法的一个实施例的简化流程图;
图5A和5B是使用图1和2的管理引擎来应用更新的方法的一个实施例的简化流程
图;
图6是使用图1和2的基本输入/输出系统(BIOS)来启动计算装置的方法的一个实施例的简化流程图。
【具体实施方式】
[0006]尽管本公开的概念易受各种修改和备选形式影响,其特定示范性实施例通过图中的示例示出并且将在本文中详细描述。然而应该理解没有将本公开的概念限制于公开的特别形式的意图,而相反,意图是要涵盖所有落入如由附上的权利要求限定的本发明的精神和范围内的所有修改、等同和备选。
[0007]在下面描述中,阐述例如逻辑实现、操作码、指定操作数的手段、资源划分/共享/复制实现、系统部件的类型和相互关系以及逻辑划分/集成选择等许多具体的细节以便提供对本公开更加透彻的理解。然而,本领域内技术人员将意识到可实践本公开的实施例而无需这样的具体细节。在其他实例中,为了不混淆本公开,可未详细地示出控制结构、门级电路和完整的软件指令序列。本领域内技术人员利用所包括的描述将能够实现适当的功能性而无需过度的实验。
[0008]在说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用指示描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。此外,这样的短语不一定指相同的实施例。此外,当特定特征、结构或特性连同实施例描述时,认为连同其他实施例(无论其是否被明确描述)实现这样的特征、结构或特性,这在本领域内技术人员所知的范围内。
[0009]本发明的一些实施例可采用硬件、固件、软件或其任何组合来实现。在计算装置中实现的本发明的实施例可包括部件之间的一个或多个基于总线的互连和/或部件之间的一个或多个点到点互连。本发明的实施例还可作为存储在一个或多个非暂时性机器可读介质上的指令实现,其可由一个或多个处理器和/或控制器读取并执行。非暂时性机器可读介质可包括用于采用机器(例如,计算装置)可读的形式存储或传送信息的任何有形机构。例如,非暂时性机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器装置;和其他。
[0010]现在参考图1,示出系统100,其配置成管理对计算装置102的部件的更新。该系统100包括计算装置102、固件更新服务器104和网络106,其使计算装置102通信地耦合于固件更新服务器104。网络106可体现为任何类型的有线和/或无线网络,例如局域网、广域网、公开可用全球网(例如,因特网)和/或其他网络。另外,网络106可包括便于计算装置102与固件更新服务器104 (例如路由器、交换机、介入计算机及类似物)之间的通信的任何数量的额外装置。
[0011]固件更新服务器104可体现为与计算装置102分离的任何类型的计算装置或多个任何类型的计算装置。例如,固件更新服务器104可体现为一个或多个个人计算机、工作站、便携式计算机、手持计算机、移动互联网装置、蜂窝电话、个人数据助理、电话装置、网络家电、虚拟装置、存储控制器或其他基于计算机的装置,其配置成通过网络106与计算装置102通信。尽管在图1中仅说明性地示出一个计算装置102和一个固件更新服务器104,系统100可包括任何数量的计算装置102和任何数量的固件更新服务器104。
[0012]固件更新服务器104可包括数据库108或用别的方式通信地耦合于数据库108。数据库108可体现为存储在适合的数据结构和位置(例如关系数据库、平面文件数据库)中的数据,或存储在固件更新服务器存储器(未示出)中的数据。数据库108包括可启动图像110,其包含更新。在一个说明性实施例中,可启动图像110可包含要应用于计算装置102的部件的固件更新。在其他实施例中,可启动图像110可包含要应用于计算装置102的多个部件的多个固件更新。在再其他实施例中,可启动图像110可另外或备选地包含要应用于计算装置102的软件更新。[0013]计算装置102可体现为能够执行本文描述的功能的任何类型的电子装置。例如,计算装置102可体现为个人计算机、工作站、便携式计算机、手持计算机、移动互联网装置、蜂窝电话、个人数据助理、电话装置、网络家电、虚拟装置、存储控制器或其他基于计算机的装置。在图1的说明性实施例中,计算装置102包括主处理器112、主存储器120、芯片集122、一个或多个外围装置132、数据存储装置134和通信电路138。在一些实施例中,前述的部件中的若干个可包含在计算装置102的母板上,而其他部件可经由例如外围端口而通信地耦合于母板。此外,应该意识到计算装置102可包括其他部件、子部件,和通常在计算机和/或计算装置中存在的装置,其为了描述的清楚性而未在图1中图示。
[0014]计算装置102的主处理器112可体现为能够执行软件/固件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器或类似物。主处理器112说明性地图示为具有处理器核114的单核处理器。然而,在其他实施例中,主处理器112可体现为具有多个处理器核的多核处理器。另外,计算装置102可包括额外的主处理器112,其具有一个或多个处理器核114。主处理器112 —般负责执行软件栈,其可包括驻存在计算装置102上的OS和各种应用、程序、库和驱动器。作为软件栈的一部分,主处理器112可执行更新管理器116,其将在下文参考图2进一步描述。
[0015]计算装置102的芯片集122可包括存储器控制器中枢(MCH或“北桥”)、输入/输出控制器中枢(ICH或“南桥”)和固件装置。该固件装置可体现为用于存储基本输入/输出系统(B10S)124和/或其他信息的存储器存储装置。然而,在其他实施例中,可使用具有其他配置的芯片集。例如,在一些实施例中,芯片集122可体现为平台控制器中枢(PCH)。在这样的实施例中,MCH可包含在主处理器112中或用别的方式与主处理器112关联,并且主处理器112可直接与主存储器120通信(如由图1中的虚线示出的)。
[0016]处理器112经由若干信号路径而通信地耦合于芯片集122。这些信号路径(和在图1中图示的其他信号路径)可体现为能够方便计算装置102的部件之间的通信的任何类型的信号路径。例如,信号路径可体现为任何数量的导线、电缆、光导、印刷电路板迹线、通孔、总线、介入装置和/或类似物。
[0017]芯片集122还可包括管理引擎126,其与主处理器112截然不同并且一般独立于主处理器112操作。管理引擎126可体现为任何数量的硬件、固件和/或软件模块,其配置成执行安全、加密和/或验证功能,如在下文更详细描述的。尽管管理引擎126说明性地在图1中示出为集成到芯片集122内,管理引擎126可另外或备选地包括设置在一个或多个扩充板(其经由若干信号路径而通信地耦合于芯片集122)上的独立电路。管理引擎126可经由芯片集122或在其他实施例中经由若干独立信号路径而通信地耦合于计算装置102的各种部件(例如,主处理器112、主存储器120、等等)。
[0018]在图1的说明性实施例中,管理引擎126包括辅助处理器130,其允许管理引擎126独立于主处理器112操作。该辅助处理器130可体现为能够执行软件/固件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器或类似物,其包括具有一个或多个处理器核(未示出)的一个或多个处理器。在说明性实施例中,管理引擎126还包括安全存储器128,其能被辅助处理器130访问但不能被主处理器112访问。该安全存储器128可体现为一个或多个存储器装置或数据存储位置,其包括例如动态随机存取存储器装置(DRAM)、同步动态随机存取存储器装置(SDRAM)、双数据速率同步动态随机存取存储器装置(DDR SDRAM)、闪速存储器装置和/或其他存储器装置。安全存储器128可存储各种数据,以及能被辅助处理器130执行的软件/固件。在一些实施例中,管理引擎126还可包括额外的内置部件,例如专用通信电路。
[0019]在一些说明性实施例中,管理引擎126可使用Intel?主动管理技术(Intel?AMT)、使用Intel? AMT的一部分、使用Intel?管理引擎(Intel? ME)或使用Intel? vPro技术(Intel? vPro)来实现,这些技术都可从加利福尼亚州圣克拉拉市的Intel公司获得和/或在由Intel公司销售的芯片集内。Intel AMT?嵌入式平台技术实现了对存储在每个终点装置上的非易失性存储器中的硬件和软件信息的带外访问,从而消除对起作用的操作系统和在其他管理工具中存在的许多软件代理的需要。
[0020]计算装置102的主存储器120可体现为一个或多个存储器装置或数据存储位置,其包括例如DRAM、SDRAM、DDR SDRAM、闪速存储器装置和/或其他存储器装置。主存储器120经由若干信号路径而通信地耦合于芯片集122。各种数据和软件可存储在主存储器120中。例如,构成由主处理器112执行的软件栈的一个或多个操作系统、应用、程序、库和驱动器可在执行期间驻存在主存储器120中。此外,作为存储器管理操作的一部分,存储在主存储器120中的软件和数据可在主存储器120和数据存储装置134之间交换。
[0021]在一些实施例中,主存储器120可包括安全存储器118,其能被芯片集122 (其包括管理引擎126)访问但不能被主处理器112访问。安全存储器118可体现为主存储器120的一部分,其通过芯片集122使用存储器隔离机制而与主处理器112隔离,从而阻止恶意软件访问安全处理器118的能力。在一些实施例中,安全存储器118可体现为上部存储器地址(UMA)。在存在的情况下,安全存储器118可用作对于管理引擎126 (作为对安全存储器128的补充或代替安全存储器128)的额外存储器空间。
[0022]计算装置102还可包括一个或多个外围装置132、数据存储装置134和通信电路138。在这样的实施例中,芯片集122也通信地耦合于该一个或多个外围装置132、数据存储装置134和通信电路138。该一个或多个外围装置132可包括任何数量的外围装置,其包括输入装置、输出装置和其他接口装置。例如,外围装置132可包括计算装置102的显示器、鼠标、键盘和外部扬声器。包括在外围装置132中的特定装置可取决于例如计算装置102的规定使用。通信电路138可体现为用于实现通过网络106在计算装置102与固件更新服务器104之间的通信的任何数量的装置和电路。例如,通信电路138可体现为一个或多个有线和/或无线网络接口卡(NIC)或其他网络通信卡、模块或电路。
[0023]数据存储装置134可体现为被配置用于数据的短期或长期存储的任何类型的装置或多个任何类型的装置,例如存储器装置和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储装置。如在图1中示出的,数据存储装置134包括固件136,其控制数据存储装置134的内部装置功能(例如,将数据从数据存储装置134读出所需要的物理硬件操纵)。固件136可以是包含在上文论述的可启动图像110上的更新的目标。在对固件136的更新期间,存储在数据存储装置134上的数据可能不能被计算装置102的其他部件访问。尽管计算装置102图示为仅包括一个数据存储装置134,将意识到计算装置102可包括任何数量的数据存储装置134,每个包括它自有的固件136。
[0024]在计算装置102的一些说明性实施例中,主处理器112为了从数据存储装置134检索数据而做出的请求可使用集成装置电子设备(IDE)总线(有时也称为集成驱动电子设备总线)来处理。在这样的实施例中,管理引擎126可配置成对这样的请求执行IDE重定向(IDE-R)。在IDE-R期间,管理引擎126监视芯片集122的IDE总线并且拦截主处理器112为了从数据存储装置134检索数据而做出的请求。这些请求然后重定向到另一个存储器装置,其包括但不限于安全存储器118或安全存储器128。在再其他实施例中,管理引擎126可配置成以相似的方式执行通用串行总线重定向(USB-R)。
[0025]现在参考图2,图示用于管理对计算装置102的部件的更新的软件环境200。该软件环境200包括在计算装置102、固件更新服务器104和网络106中的一个或多个上执行、存储和/或传送的软件和固件模块。如此,计算装置102、固件更新服务器104和网络106的软件环境在图2中图示(使用与图1的相同的标号)。将意识到软件环境200可包括其他模块、应用、程序和/或数据,其为了描述的清楚性而未在图2中图示。
[0026]固件更新服务器104的软件环境包括可启动图像110,其包含更新。如上文论述的,在一些实施例中,可启动图像Iio可包含对于计算装置102的一个或多个固件更新和/或软件更新。例如,可启动图像110可包含对计算装置102的数据存储装置134的固件136的更新。可启动图像110还可包括与计算装置102的正常OS环境分隔而能由计算装置102执行的独立OS环境。例如,在一些实施例中,可启动图像110可包含盘操作系统(DOS)环境或类似物。一旦计算装置102在该独立OS环境中操作,该更新可安装在计算装置102的适当部件(例如,数据存储装置134)上。如将在下文更详细描述的,包含该更新的可启动图像110可为了安全目的而被固件更新服务器104数字签名。固件更新服务器104的若干说明性操作将在下文参考图3进一步描述。
[0027]计算装置102的软件环境包括更新管理器116、BIOS 124、管理引擎126、数据存储固件136和安全存储器202。如参考图1论述的,安全存储器202可驻存在主存储器120的形成安全存储器118的一部分中和/或在安全存储器128 (其驻存在芯片集122中)中。在任一实施例中,安全存储器202能直接被管理引擎126访问(但不能被软件环境200的其他软件/固件模块访问),如在图2中示出的。
[0028]更新管理器116包括若干软件/固件模块,其可被计算装置102的主处理器112执行。除其他操作外,更新管理器116可与固件更新服务器104通信来确定对于计算装置102的部件的更新是否可用,并且如果是这样的话则从固件更新服务器104接收包含更新的可启动图像110。更新管理器116然后可向管理引擎126提供接收的可启动图像110。更新管理器116还可能够从正常OS环境请求计算装置102的重启。在一些实施例中,更新管理器116还可关于部件更新是否成功来与固件更新服务器104通信。更新管理器116的若干说明性操作将在下文参考图4进一步描述。
[0029]如在图2中示出的,管理引擎126包括若干软件/固件模块,其可被计算装置102的辅助处理器130执行。如上文论述的,管理引擎126能够独立于计算装置102的主处理器112操作。在从更新管理器116接收包含更新的可启动图像110时,管理引擎126可将可启动图像110的本地副本204存储在安全存储器202上。在一些实施例中,管理引擎126可证实接收的可启动图像110和/或存储在安全存储器202上的本地副本204的真实性。管理引擎126可配置BIOS 124来执行IDE-R(或USB-R)启动并且可通过从安全存储器202检索数据来调停(mediate) IDE-R (或USB-R)请求。管理引擎126还可与更新管理器116通信来请求计算装置102的重启并且将部件更新是否成功告知更新管理器116。管理引擎126的若干说明性操作将在下文参考图5A和5B进一步描述。
[0030]BIOS 124包括若干软件/固件模块,其可被计算装置102的芯片集122执行。BIOS124可在计算装置102的每个启动或重启期间被执行来初始化并且识别计算装置102的部件并且装载OS环境。例如,在正常启动序列期间,BIOS 124可与数据存储装置134的固件136通信来装载正常的OS环境。然而,响应于从管理引擎126接收的一个或多个配置参数,BIOS 124可备选地从IDE-R装置或位置启动计算装置102。在这样的实施例中,BIOS 124可使用存储在安全存储器202中的本地副本204来装载可启动图像110的独立OS环境。BIOS 124的若干说明性操作将在下文参考图6进一步描述。
[0031]现在参考图3,封装并且交付可启动图像110 (其包含更新)的方法300图示为简化流程图。在一些实施例中,该方法300可牵涉准备可启动图像110,其包含对于计算装置102的数据存储装置134的固件更新。通过示例,原始设备制造商(OEM)可利用方法300来传播对它的部件的固件更新。方法300可由例如固件更新服务器104连同系统100的其它部件(其包括计算装置102)执行。
[0032]方法300以框302开始,其中固件更新服务器104生成可启动图像110,其包含更新。包含更新的可启动图像110可通过任何已知的自动或手动编程和/或编译规程而生成。在已经创建可启动图像110后,方法300继续到框304,其中固件更新服务器104使用OEM密钥对可启动图像110签名。该OEM密钥允许可启动图像110的接收者证实可启动图像110是真实的(如在下文进一步描述的)。在一些实施例中,OEM密钥可以是利用Rivest、Shamir和Adleman (RSA)加密算法所生成的固件签名密钥(FWSK)。
[0033]在框304后,方法300继续到框306,其中固件更新服务器104通过网络106通知一个或多个计算装置102该更新可用。在一些实施例中,框306可牵涉通知连接到网络106的所有计算装置102该更新可用。在框306后,方法300继续到框308,其中固件更新服务器104等待来自一个或多个计算装置102的响应,其指示一个或多个计算装置102准备接收更新。
[0034]一旦固件更新服务器104在框308从计算装置102接收响应,方法300继续到框310,其中固件更新服务器104通过网络106将包含更新的可启动图像110传送到响应计算机装置102。一旦包含更新的可启动图像110已经传送(在框310),接收计算装置102将尝试在本地应用更新,如在下文参考图4-6进一步描述的。在尝试应用更新后,计算装置102将指示更新是否成功应用于计算装置102的目标部件的适当消息传送到固件更新服务器104。
[0035]如此,在框310后,方法300继续到框312,其中固件更新服务器104等待来自计算装置102的响应,其指示是否成功应用更新。如果消息指示计算装置102可能未成功应用更新,方法300返回框306,其中固件更新服务器104重新通知计算装置102该更新可用。尽管图3图示对于包含更新的单个可启动图像110的方法300,预想固件更新服务器104可同时封装多个可启动图像110并且将其交付给一个或多个计算装置102。
[0036]现在参考图4,管理包含在可启动图像110中的更新的方法400图示为简化流程图。一般,方法400牵涉从固件更新服务器104接收可启动图像110、向管理引擎126提供可启动图像110以及重启计算装置102,如由管理引擎126来请求。在一些实施例中,方法400还可牵涉将关于是否成功应用更新的反馈提供给固件更新服务器104。方法400可由例如更新管理器116连同计算装置102的其他部件(其可与系统100的其他部件交互)执行。
[0037]方法400以框402开始,其中更新管理器116经由网络106等待来自固件更新服务器104的更新可用的通知。在接收更新可用的通知时,更新管理器116可确定更新是否能适用于计算装置102的部件以及计算装置102是否准备接收更新。在满足这些条件的情况下,更新管理器116向固件更新服务器104提供它准备接收包含更新的可启动图像110的通知。
[0038]在框402后,方法400继续到框404,其中更新管理器116通过网络106从固件更新服务器104接收包含更新的可启动图像110。在一些实施例中,当在框404接收可启动图像110时,更新管理器116可将可启动图像110存储在主存储器120和/或数据存储装置134中。在框404接收包含更新的可启动图像110后,方法400(以及图5A-B的方法500和图6的方法600)可在不考虑计算装置102的能力的情况下继续通过网络106与固件更新服务器104通信。也就是说,除了对固件更新服务器104的反馈的可选预备(例如,下文论述的,在框410和418中)外,计算装置102可应用更新而未进一步与固件更新服务器104通信。
[0039]在框404后,方法400继续到框406,其中更新管理器116向管理引擎126提供包含更新的可启动图像110。一旦可启动图像110已经提供给管理引擎126 (在框406),管理引擎126将尝试证实可启动图像110的真实性、将可启动图像110的本地副本204存储在安全存储器202中、配置BIOS 124用于IDE-R启动以及请求计算装置102重启,如在下文参考图5A进一步描述的。
[0040]在框406后,方法400继续到框408,其中更新管理器116等待来自管理引擎126的关于包含更新的可启动图像110的真实性是否已经被证实的通知。如果可启动图像110无法被证实并且管理引擎126向更新管理器116返回错误,方法400继续到框410。在框410,更新管理器116将更新未被成功应用通知固件更新服务器104 (假定计算装置102能够在那时通过网络106与固件更新服务器104通信)。在框410将未成功尝试应用更新通知固件更新服务器104后,方法400可继续到框420,其中更新管理器116请求从OS (当前正在计算装置102上运行)的热重启。
[0041]如果在框408期间,更新管理器116相反从管理引擎126接收指示可启动图像110已经被证实的消息,方法400继续到框412 (而不是框410)。在框412,更新管理器116等待来自管理引擎126的为了重启计算装置102的请求。一旦从管理引擎126接收这样的请求,方法400继续到框414,其中更新管理器116请求从OS(当前正在计算装置102上运行)的热重启。在框414的重启(假设管理引擎126已经配置BIOS 124用于IDE-R启动)后,管理引擎126将证实可启动图像110的本地副本204的真实性、调停对安全存储器202的IDE-R请求以及将是否成功应用更新告知更新管理器116,如在下文参考图5B进一步描述的。
[0042]在框414后,方法400继续到框416,其中更新管理器116等待来自管理引擎126的关于更新是否被成功应用的通知。如果管理引擎126向更新管理器116返回错误,方法400继续到框410。在框410,更新管理器116将更新未被成功应用通知固件更新服务器104(假定计算装置102能够在那时通过网络106与固件更新服务器104通信)。在框410将未成功尝试应用更新通知固件更新服务器104后,方法400可继续到框420,其中更新管理器116请求从OS (当前正在计算装置102上运行)的热重启。
[0043]如果在框416期间,更新管理器116相反从管理引擎126接收指示更新被成功应用的消息,方法400继续到框418 (而不是框410)。在框418中,更新管理器116将更新被成功应用通知固件更新服务器104 (假定计算装置102能够在那时通过网络106与固件更新服务器104通信)。在框418将成功尝试应用更新通知固件更新服务器104后,方法400可继续到框420,其中更新管理器116请求从OS(当前正在计算装置102上运行)的热重启。
[0044]现在参考图5A和5B,应用包含在可启动图像110中的更新的方法500图示为简化流程图。一般,在图5A中示出的方法500的部分牵涉证实可启动图像110的真实性、将可启动图像110的本地副本204存储在安全存储器202中、配置BIOS 124用于IDE-R启动以及请求计算装置102的重启。一般,在图5B中示出的方法500的部分牵涉证实可启动图像110的本地副本204的真实性、调停对安全存储器202的IDE-R请求以及将更新是否被成功应用告知更新管理器116。方法500可由例如管理引擎126连同计算装置102的其他部件(其可与系统100的其他部件交互)执行。
[0045]方法500以框502开始,其中管理引擎126从更新管理器116接收包含更新的可启动图像110 (如在上文参考方法400的框406论述的)。在框502接收可启动图像110后,方法500继续到框504,其中管理引擎126证实可启动图像110的真实性。在一些实施例中,框504可牵涉管理引擎126使用存储在管理引擎126中(例如,存储在安全存储器128中)的加密/解密密钥来证实在可启动图像110上被数字签名的OEM密钥。
[0046]在框504后,方法500继续到框506,其中管理引擎126确定是否继续应用包含在可启动图像110中的更新。如果可启动图像110的真实性在框504未被证实,方法500继续到框508,其中管理引擎126将指示可启动图像110还未被证实的消息发送到更新管理器116。如果在框506期间,管理引擎126相反确定可启动图像110的真实性已经被证实,方法500继续到框510 (而不是框508),并且管理引擎126将指示可启动图像110已经被证实的消息发送到更新管理器116。
[0047]在框510,管理弓丨擎126将包含更新的可启动图像110的本地副本204存储在安全存储器202中。如上文论述的,在一些实施例中,框510可牵涉管理引擎126将可启动图像110的本地副本204存储在主存储器120的形成安全存储器118的一部分中和/或在安全存储器128 (其驻存在芯片集122中)中。
[0048]在框510后,方法500继续到框512,其中管理引擎126可配置BIOS 124来实施IDE-R启动。在一些实施例中,框512可牵涉管理引擎126设置BIOS 124的一个或多个配置参数以便从IDE-R装置或位置启动计算装置102。在框512后,方法500继续到框514,其中管理引擎126设置一个或多个内部参数使得下一个IDE-R启动的位置是安全存储器202的存储可启动图像110的本地副本204的部分(而不是网络106上的远程驱动器的位置)。在框514后,方法500继续到框516,其中管理引擎126设置内部标志(例如,“UPDATE_BOOT”)以在下一个启动时通知它自己要应用固件更新。在计算装置102的下一个启动时,框512-516具有配置BIOS 124和管理引擎126来执行可启动图像110的本地副本204以及应用包含在其中的更新的组合效应。在框516后,方法500继续到框518,其中管理引擎126请求从更新管理器116的热重启(如在上文参考方法400的框412论述的)。
[0049]方法500继续(如在图5B中示出的)框520,其中管理引擎126等待由更新管理器116重启计算装置102 (如在上文参考方法400的框414论述)。在重启计算装置102时,方法500继续到框522,其中管理引擎126确定在当前启动期间是否应用固件更新。在一些实施例中,框522可牵涉管理引擎126确定是否设置内部标志(例如,“UPDATE_BOOT”)。如果在框522期间,管理引擎126确定没有准备要应用更新,方法500继续到框524,其中管理引擎126继续它的正常启动序列。如果在框522期间,管理引擎126相反确定准备要应用更新,方法500继续到框526 (而不是框524)。
[0050]在框526期间,管理引擎126证实存储在安全存储器202中的可启动图像110的本地副本204的真实性。在一些实施例中,框526可牵涉管理引擎126证实在可启动图像110的本地副本204上被数字签名的OEM密钥。在框526后,方法500继续到框528,其中管理引擎126确定是否继续应用包含在可启动图像110的本地副本204中的更新。如果本地副本204的真实性未在框526被证实,方法500继续到框530,其中管理引擎126将指示可启动图像110还未被证实的消息发送到更新管理器116。如果在框528期间,管理引擎126相反确定本地副本204的真实性已经被证实,方法500继续到框532 (而不是框530),并且管理引擎126将指示可启动图像110的本地副本204已经被证实的消息发送到更新管理器116。
[0051]在框532期间,管理引擎126检查在框514设置的一个或多个内部参数来确定当前启动期间的IDE-R请求是应被引导到存储可启动图像110的本地副本204的安全存储器202还是到网络106上的远程驱动器。如果在框532期间,管理引擎126确定IDE-R请求应被发送到远程驱动器,方法500继续到框534,其中管理引擎126执行IDE-R序列(即,将IDE总线读请求重定向到网络106上的远程驱动器)。如果在框532期间,管理引擎126相反确定IDE-R请求应在本地被引导到安全存储器202,方法500继续到框536 (而不是框534)。
[0052]在框536期间,管理引擎126通过将来自BIOS 124和/或计算装置102的主处理器112的IDE总线读请求重定向到存储在安全存储器202上的可启动图像110的本地副本204而调停IDE-R序列。使用该规程,主处理器112在框536期间应用包含在可启动图像110的本地副本204中的更新。在一个说明性实施例中,从可启动图像110的本地副本204启动可允许主处理器112更新数据存储装置134的固件136。如在框538中示出的,管理引擎126同时监视框536的进程来确定何时应用更新。
[0053]在管理引擎126确定更新完成(在框538)后,方法500继续到框540,其中管理引擎126重设内部标志(例如,“UPDATE_B00T”)以在下一个启动时告知它自己已经应用固件更新。在方法500的一些实施例中,框540还可牵涉管理弓丨擎126使可启动图像110无效来防止在后续启动时更新被再次应用到计算装置102。在框540后,方法500继续到框542,其中管理引擎126发送来自更新管理器116的指示更新被成功应用的消息(如在上文参考方法400的框416论述的)。
[0054]现在参考图6,启动计算装置102的方法600图示为简化流程图。一般,方法600牵涉确定计算装置102的当前启动是否应该是IDE-R启动以及根据适当的启动序列来启动计算装置102。方法600可由例如BIOS 124连同计算装置102的其他部件(其可与系统100的其他部件交互)执行。
[0055]方法600在框602开始,其中BIOS 124检查它的配置参数中的一个或多个,其指示计算装置102的当前启动是否应从IDE-R装置或位置。如上文论述的(参考方法500的框512),管理引擎126可设置BIOS 124的一个或多个配置参数来指示应执行IDE-R启动。在框602后,方法600继续到框604,其中BIOS 124确定是继续正常启动序列还是IDE-R启动序列。如果在框602检查的一个或多个配置参数未指示应执行IDE-R启动,方法600继续到框606,其中由BIOS 124执行正常启动序列(例如,BIOS 124从数据存储装置134装载正常OS环境)。如果在框604期间,BIOS 124相反确定计算装置102的当前启动应从IDE-R装置或位置,方法600继续到框608 (而不是框606)。
[0056]在框608期间,BIOS 124将向管理引擎126发送读请求,该管理引擎126将根据它自己的内部参数使这些读请求重定向到适当的IDE-R装置或位置。在管理引擎126配置成将来自BIOS 124的IDE-R请求重定向到存储在安全存储器202中的可启动图像110的本地副本204 (如在上文参考方法500的框536论述的)的情况下,方法600将包括框610。在这些情形下,BIOS 124将使用包含要应用于计算装置102的更新的可启动图像110的本地副本204来启动计算装置102。响应于被执行,可启动图像110将更新应用于计算装置102的相应部件。在一些实施例中,可启动图像可包括促使计算装置102在成功完成更新时重启的指令。在这样的实施例中,更新管理器116在成功完成更新后可不请求重启(B卩,方法400的框420可未被更新管理器116执行)。
[0057]尽管本公开在图和前面的描述中详细图示和描述,这样的图示和描述要认为在性质上是示范性的而不是限制性的,应理解仅示出和描述说明性的实施例,并且期望要保护落入本公开的精神内的所有改变和修改。
【权利要求】
1.一种方法,包括: 在计算装置上接收可启动图像,其包含对于所述计算装置的部件的更新; 将所述可启动图像存储在所述计算装置的本地安全存储器位置中; 配置所述计算装置来从所述可启动图像启动; 重启所述计算装置;以及 响应于所述计算装置的重启而对所述部件应用所述更新。
2.如权利要求1所述的方法,其中接收所述可启动图像包括从更新服务器接收数字签名的可启动图像。
3.如权利要求2所述的方法,其进一步包括在存储所述可启动图像之前证实所述可启动图像已经被所述更新服务器数字签名。
4.如权利要求1所述的方法,其中存储所述可启动图像包括将所述可启动图像存储在所述计算装置的管理引擎的专用存储器位置中,所述专用存储器位置不能被所述计算装置的主处理器访问。
5.如权利要求1所述的方法,其中存储所述可启动图像包括将所述可启动图像存储在上部存储器区域(UMA)位置中。
6.如权利要求5所述的方法,其中将所述可启动图像存储在上部存储器区域(UMA)位置中包括将所述可启动图像存储在所述计算装置的主存储器的UMA位置中。
7.如权利要求1所述的方法,其中配置所述计算装置以从所述可启动图像启动包括配置所述计算装置的基本输入/输出系统(BIOS)用于集成装置电子设备重定向(IDE-R)。
8.如权利要求7所述的方法,其中对所述部件应用所述更新包括使用所述可启动图像对IDE-R请求做出响应。
9.如权利要求8所述的方法,其中对所述IDE-R请求做出响应包括采用所述计算装置的管理引擎从所述BIOS接收IDE-R请求并且采用所述管理引擎利用所述可启动图像的数据对所述IDE-R请求做出响应。
10.如权利要求1所述的方法,其中对所述部件应用所述更新包括: 采用所述计算装置的管理引擎接收集成装置电子设备重定向(IDE-R)请求;以及 使用所述可启动图像对所述IDE-R请求做出响应。
11.如权利要求1所述的方法,其中对所述部件应用所述更新包括更新所述部件的固件。
12.如权利要求1所述的方法,其中对所述部件应用所述更新包括对硬盘驱动器应用所述更新。
13.如权利要求1所述的方法,其进一步包括在所述更新已经应用于所述部件后将所述可启动图像指示为无效。
14.一个或多个非暂时性机器可读介质,其包括多个指令,所述多个指令响应于被执行而促使计算装置: 将可启动图像存储在所述计算装置的本地、安全存储器位置中,所述可启动图像包含对于所述计算装置的部件的更新; 配置所述计算装置以从所述可启动图像启动; 使用所述可启动图像来重启所述计算装置;以及响应于所述计算装置的重启而对所述部件应用所述更新。
15.如权利要求14所述的一个或多个非暂时性机器可读介质,其中配置所述计算装置以从所述可启动图像启动包括配置所述计算装置的基本输入/输出系统(BIOS)用于集成装置电子设备重定向(IDE-R)。
16.如权利要求15所述的一个或多个非暂时性机器可读介质,其中对所述部件应用所述更新包括使用所述可启动图像对IDE-R请求做出响应。
17.如权利要求16所述的一个或多个非暂时性机器可读介质,其中对所述IDE-R请求做出响应包括采用所述计算装置的管理引擎从所述BIOS接收IDE-R请求并且采用所述管理引擎利用所述可启动图像的数据对所述IDE-R请求做出响应。
18.如权利要求14所述的一个或多个非暂时性机器可读介质,其中对所述部件应用所述更新包括: 采用所述计算装置的管理引擎接收集成装置电子设备重定向(IDE-R)请求;以及 使用所述可启动图像对所述IDE-R请求做出响应。
19.如权利要求14所述的一个或多个非暂时性机器可读介质,其中对所述部件应用所述更新包括更新所述部件的固件。
20.如权利要求14所述的一个或多个非暂时性机器可读介质,其中对所述部件应用所述更新包括对硬盘驱动器应用所述更新。
21.一种计算装置,包括: 启动装置; 主处理器,用于对所述启动装置做出启动请求; 本地存储器装置,其具有安全存储器位置,包含对于所述计算装置的部件的更新的可启动图像存储在所述安全存储器位置中;以及 管理引擎,其包括辅助处理器,所述管理引擎通过将所述主处理器的启动请求从所述启动装置重定向到所述可启动图像而应用所述更新。
22.如权利要求21所述的计算装置,其中应用所述更新包括配置所述计算装置的基本输入/输出系统(BIOS)用于集成装置电子设备重定向(IDE-R)。
23.如权利要求21所述的计算装置,其中所述启动装置是硬盘驱动器并且所述更新是对于所述硬盘驱动器的固件的更新。
24.如权利要求21所述的计算装置,其中所述管理引擎包括用于在应用所述更新之前通过证实所述可启动图像已经被已授权实体数字签名而使所述可启动图像有效的管理引擎。
25.如权利要求21所述的计算装置,其中所述管理引擎包括用于响应于所述更新被应用而将所述可启动图像指示为无效的管理引擎。
【文档编号】G06F9/06GK103917949SQ201280037467
【公开日】2014年7月9日 申请日期:2012年7月2日 优先权日:2011年7月2日
【发明者】I.沙罗尼, N.迪亚曼特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1