使用可扩展固件接口的持久性存储器操作的制作方法

文档序号:6520559阅读:135来源:国知局
专利名称:使用可扩展固件接口的持久性存储器操作的制作方法
技术领域
本发明涉及使用可扩展固件接口(EFI)操作持久性存储器的系统和方法。
背景技术
图1图示了一种典型的计算系统100,它包括BIOS(基本输入输出系统)110、CPU(中央处理单元)120以及盘130。当BIOS 110接收比如START(开始)信号的信号时,它可被赋予引导计算系统100的任务。引导计算系统100可包括定位盘130上的操作系统,并开始其在CPU 120上的运行。另外,引导计算系统100可包括各种预引导活动,像定位硬件(例如盘130)、定位软件(例如操作系统加载程序)、执行各种诊断(例如检查存储器)等等。
在一段时间,系统100可能已经包括了存储在ROM(只读存储器)中的BIOS 110。在此实例中,改变BIOS 110(例如安装新版本)可能涉及人工移去其中存储了BIOS 110的ROM,并安装新的ROM。这要求一些专门技能,并要求系统100断开和接通。
在后来的一段时间,系统100可能已经包括了存储在EEPROM(电可擦除可编程ROM)中的BIOS 110。EEPROM是一种可通过将其暴露在电荷中来擦除的PROM(可编程ROM)。然后,PROM可被重新编程。就像其它的ROM,EEPROM可在系统电源断开时保持其内容,这使其适于存储BIOS。在此实例中,改变BIOS 110可包括电擦除其中存储了BIOS 110的PROM,并对其重新编程。在一个实例中,这可能涉及移去PROM并重新烧制该PROM。在另一实例中,这可能涉及对PROM重新编程,并不将其从系统100移去。但是,对PROM重新编程可包括一个字节一个字节地写入PROM,这会是一个耗时的过程。即使在基于EEPROM的系统中,改变BIOS110可能也要求专门技能,并且可能要求人工断开和接通系统。
最近,变得流行的是将与计算系统关联的BIOS存储在闪速存储器中。闪速存储器是这样一种EEPROM它可以块为单位而不是一个字节一个字节的进行擦除和重新编程,因此使其一般比传统的EEPROM的重新编程更快。当BIOS存储在闪速存储器中时,它可被称为闪速BIOS。同样也是最近,在尝试更新引导处理时,开发了在操作系统和平台固件之间的接口。一个实例接口是EFI(可扩展固件接口),它包括例如包含平台相关信息的数据表、引导服务、操作系统可用的运行期服务、操作系统加载程序等等。EFI尝试提供一种标准环境,用于引导操作系统和/或运行预引导应用。
图2图示了配置有EFI 220的系统200的高级图解。BIOS 230逻辑上可存在于操作系统加载程序210和一组硬件240之间。EFI 220可便于对接操作系统加载程序210和BIOS 230。在某些例子中,EFI220可包括EFI外壳(shell),通过该EFI外壳,技术人员可执行某些任务,比如用新系统固件重新编程BIOS 230。这种重新编程可要求用户采取行动,例如包括起动EFI外壳、定位和安装EFI分区、拷贝文件(例如二进制输入文件、配置文件)到新安装的EFI分区、重新启动系统并重新启动EFI外壳、定位和输入文件所拷贝到的文件夹、运行EFI外壳级实用程序并向其提供变元、遵循实用程序提供的一组指令、再次重新启动系统以及检验按所要求的方式完成了更新。这种常规方法考验一般PC用户的技术认知程度和耐性。

发明内容
根据本发明的方法包括在配置为在没有操作系统支持的预引导时间操作的可扩展固件接口(EFI)级逻辑中,从配置为在具有操作系统支持的后引导时间操作的用户级逻辑接收第一信号,以操作可操作上连接到配置有EFI级逻辑和用户级逻辑的系统的持久性存储器,持久性存储器配置为存储系统固件;选择性地从EFI级逻辑操作持久性存储器;以及从EFI级逻辑向用户级逻辑提供关于持久性存储器操作的第二信号。
根据本发明的系统包括集成电路,配置为存储系统级固件;第一逻辑,配置为确定是否请求更新系统级固件,第一逻辑可从用户应用访问,第一逻辑配置为请求更新系统级固件;更新逻辑,配置为响应于来自第一逻辑的请求,便于更新系统级固件,更新逻辑可从预引导应用访问;可扩展固件接口(EFI)逻辑,配置为便于调用可由更新逻辑执行的功能,第一逻辑配置为通过EFI变量与更新逻辑传递配置数据;可安装的EFI分区,配置为存储与可由更新逻辑执行的功能有关的一个或多个可执行程序和替换固件的二进制映象,其中更新逻辑可在预引导时间通过用替换固件的二进制映象的一个或多个部分替换所述固件的一个或多个部分来执行所述固件的更新。


结合在说明书中并构成说明书一部分的附示了各种实例系统、方法等等,附示了本发明各方面的各种实例实施例。应该理解,图中图示的元件边界(例如框、多组框或其它形状)表示边界的一个实例。本领域普通技术人员将理解,一个元件可设计为多个元件,或者多个元件可设计为一个元件。显示为另一元件的内部部件的元件可实现为外部部件,反之亦然。此外,元件不一定按比例绘制。
图1图示了一个配置有BIOS的计算系统。
图2图示了一个配置有EFI的实例系统。
图3图示了一个与操作持久性存储器有关的实例方法。
图4图示了一个与操作持久性存储器有关的实例系统。
图5图示了一个用于操作持久性存储器的实例系统。
图6图示了另一个用于操作持久性存储器的实例系统。
图7图示了一个与操作持久性存储器有关的实例方法。
图8图示与从操作系统中管理级刷新系统固件有关的实例方法。
图9图示了一个EFI使能系统中的逻辑流程。
图10图示可操作本文图示的实例系统和方法的实例计算环境。
图11图示可操作本文图示的实例系统和方法的实例成像装置。
图12图示了一个实例应用编程接口(API)。
图13图示了一个与图形用户界面(GUI)有关的实例方法。
具体实施例方式
本文描述的实例系统和方法关于刷新存储在可重编程的持久性存储器中的系统固件。该刷新可由与比如EFI的固件接口交互作用的用户级过程发起。系统固件例如可以是BIOS,并且可存储在像闪速存储器的持久性存储器中。持久性存储器可存储在例如母板、单元板、节点板等上。用户级过程和固件接口可交互作用,例如通过对用户级过程和EFI级过程均可见的固件接口变量(例如EFI变量)来传递参数、错误代码等来进行。
代替人工移去存储了BIOS的芯片,或调用EFI外壳并执行各种技术任务,用户可从用户级应用发起固件刷新。用户级应用可以赋予以下任务例如检查与系统有关的当前固件、确定不同的(例如改进的、更新近的)固件是否可用于系统,以及传递固件刷新数据到EFI级应用。用户级应用可调用EFI级应用,该EFI级应用能通过例如建立更新工具作为将由引导EFI运行的应用来重新配置EFI。更新工具可包括和/或配置为定位固件,用该固件,可重编程持久性存储器将被刷新。所以,EFI进行的预引导动作可以定位并运行更新工具,该更新工具又将尝试用期望的固件重新编程持久性存储器。成功或失败可通过EFI变量报告回用户应用。
以下包括本文采用的所选术语的定义。定义包括各种实例和/或由落在术语范围之内并且可用于实现的部件构成。这些实例并不旨在限制。单数和复数形式的术语都可在该定义范围之内。
在此应用中,术语“计算机部件”指的是与计算机有关的实体,可以是硬件、固件、软件、它们的组合或者在运行的软件。例如,计算机部件可以是(但不限于)在处理器上运行的过程、处理器、对象、可执行程序、运行的线程、程序和计算机。作为图示,在服务器上运行的应用和服务器都可以是计算机部件。一个或多个计算机部件可存在于过程和/或运行的线程内,并且计算机部件可定位在一个计算机上和/或分布在两个或更多个计算机之间。
本文采用的“计算机通信”指的是两个或更多个计算装置之间的通信(例如计算机、个人数字助理、蜂窝式电话),并且可以是例如网络传输、文件传输、小应用程序传输、电子邮件、超文本传输协议(HTTP)传输等等。计算机通信可发生在例如无线系统上(例如IEEE 802.11、IEEE 802.15)、以太网系统(例如IEEE 802.3)、令牌环系统(例如IEEE 802.5)、局域网(LAN)、广域网(WAN)、点到点系统、电路交换系统、分组交换系统及其组合等等。
本文所用的“计算机可读媒体”指的是直接或间接参与提供信号、指令和/或数据的媒体。计算机可读媒体可采取包括但不限于以下形式非易失性媒体、易失性媒体和传输媒体。非易失性媒体可包括例如光盘或磁盘等等。易失性媒体可包括例如光盘或磁盘、动态存储器等等。传输媒体可包括同轴电缆、铜线、光纤电缆等等。传输媒体还可采取电磁辐射的形式,就像在无线电波和红外线数据通信期间产生的那些,或采取一组或多组信号的形式。计算机可读媒体的共同形式包括但不限于软盘、柔性盘、硬盘、磁带、其它磁介质、CD-ROM、其它光学介质、穿孔卡、纸带、带孔图案的其它物理媒体、RAM、ROM、EPROM、闪速EPROM或其它存储器芯片或卡片、存储条、载波/脉冲以及计算机、处理器或其它电子装置可读的其它媒体。用于在比如因特网的网络上传播指令或其它软件的信号可以视为一种“计算机可读媒体”。
本文所用的“数据存储”指的是可储存数据的物理和/或逻辑实体。数据存储例如可以是数据库、表格、文件、列表、队列、堆阵、存储器、寄存器等等。数据存储可存在于一个逻辑和/或物理实体中,和/或可以分布在两个或更多个逻辑和/或物理实体之间。
本文所用的“逻辑”包括但不限于硬件、固件、软件和/或它们的组合,用于执行功能或动作,和/或引起来自另一逻辑、方法和/或系统的功能或动作。例如,根据期望的应用或需要,逻辑可包括受软件控制的微处理器、如专用集成电路(ASIC)的离散逻辑、编程逻辑装置、包含指令的存储器件等等。逻辑可包括一个或多个逻辑门、逻辑门的组合或其它电路元件。逻辑还可完全实施为软件。在描述多个逻辑上的逻辑时,有可能将多个逻辑上的逻辑合并到一个物理逻辑中。类似地,在描述单一逻辑上的逻辑时,有可能将单个逻辑上的逻辑分布在多个物理逻辑之间。
“可操作的连接”或实体被“操作上连接”的连接是其中可发送和/或接收信号、物理通信和/或逻辑通信的连接。一般地,可操作的连接包括物理接口、电接口和/或数据接口,但是应当注意,可操作的连接可包括足以实现可操作控制的这些或其它类型连接的不同组合。例如,两个实体可通过能够彼此直接或通过比如处理器、操作系统、逻辑、软件或其它实体的一个或多个中间实体传递信号来操作上连接。逻辑和/或物理通信信道可用于建立可操作的连接。
本文所用的“信号”包括但不限于一个或多个电或光信号、模拟或数字信号、数据、一个或多个计算机或处理器指令、消息、位或位流或其它可被接收、传送和/或检测的部件。
本文所用的“软件”包括但不限于一个或多个可被读取、解释、编译和/或执行的并使计算机、处理器或其它电子装置以期望方式执行功能、动作和/或行为的计算机或处理器指令。该指令可实施为各种形式,像例行程序、算法、模块、方法、线程和/或包括来自动态和/或静态链接库的单独应用或代码的程序。软件还可以实现为各种可执行和/或可加载的形式,包括但不限于独立程序、函数调用(本地和/或远程的)、servelet、小应用程序、存储在存储器中的指令、操作系统的一部分或其它类型的可执行指令。本领域的普通技术人员应该理解,软件形式例如可取决于,对期望应用的要求、软件运行的环境和/或设计者/程序员的期望等等。还应该理解,计算机可读和/或可执行指令可位于一个逻辑中和/或分布在两个或更多个通信、合作和/或并行处理逻辑之间,从而可被加载和/或以串行、并行、整体并行及其它方式执行。
用于实现本文描述的实例系统和方法的各种部件的适当软件可使用编程语言和工具产生,像Java、Pascal、C#、C++、C、CGI、Perl、SQL、API、SDK、汇编、固件、微码和/或其它语言及工具。不论是整个系统还是系统部件,软件都可实施为一件制品,并保持或提供为之前定义的计算机可读媒体的一部分。软件的另一种形式可包括经网络或其它通信媒体将软件程序代码发送到接收方的信号。因此,在一个实例中,计算机可读媒体具有信号的形式,该信号表示从网络服务器下载到用户的软件/固件。在另一实例中,计算机可读媒体具有保持在网络服务器上的软件/固件形式。还可使用其它形式。
本文所用的“用户”包括但不限于一个或多个个人、软件、计算机或其它装置或它们的组合。
依据存储器内有关数据位的算法和运算符号表示来给出下面详细说明的一些部分。这些算法描述和表示法都是本领域技术人员采用来向其他人传达其工作实质的方式。算法在这里通常构思为产生结果的操作序列。操作可包括对物理量的物理操纵。通常,但并非必需,物理量采取能够存储、传输、组合、比较和在逻辑中操作等的电或磁信号的形式。
已经证明有时是便利的,主要出于公共用途的考虑,将这些信号表示为二进制数字、值、单元、符号、字符、项、数字等等。然而,应该记住,这些及类似术语要与适当的物理量相联系,并且仅仅作为应用到这些量的便利标记。除非具体说明,否则应该理解,在整个说明书中,类似处理、计算、核算、确定、显示等术语指的是计算机系统、逻辑、处理器或操作和变换表示为物理(电子)量的数据的类似电子装置的动作和过程。
实例方法可参考图3、7和8的流程图来更好地理解。虽然为了简化说明的目的,图示的方法显示和描述为一系列块,但应该理解,这些方法不受这些块的顺序的限制,因为一些块可与所显示和描述的顺序不同的顺序进行,和/或与其它块同时进行。此外,可以要求少于所有图示块来实现实例方法。此外,附加和/或备选方法可采用附加的、未图示的块。
在流程图中,块表示可用逻辑实现的“处理块”。处理块可表示方法步骤和/或用于执行方法步骤的设备单元。流程图不描述任何特定编程语言的语法、方法或风格(例如程序上的、面向对象的)。相反,流程示的是本领域技术人员可用于开发逻辑以执行图示处理的功能信息。应该理解,在某些实例中,没有显示像临时变量、例程循环等程序单元。还应该理解,电子和软件应用可涉及动态而灵活的过程,以便图示的块可用不同于显示顺序的其它顺序执行,和/或块可以组合或拆分为多个部件。应该理解,过程可用各种编程方法实现,像机器语言、程序上的、面向对象的和/或人工智能技术。
图3图示了与操作持久性存储器有关的实例方法300。如在本文中使用的,“持久性存储器”指的是例如电可擦除可编程只读存储器(EEPROM)、闪速存储器等的集成电路。持久性存储器可配置为存储系统固件,如可参与引导计算系统的BIOS。因此,实例系统和方法可涉及操作计算系统中的存储器芯片。本文所用的“操作存储器芯片”指的是通话动作,比如对存储在如存储器芯片的持久性存储器中的代码(固件)的擦除、编辑、替换等。
因此,方法300可包括,在310,在配置为在没有操作系统支持的预引导时间操作的可扩展固件接口(EFI)级逻辑中接收第一信号。计算系统可具有配置为在各种逻辑级操作的可执行程序。例如,EFI级可存在于操作系统级和用户级以下。EFI级可编程为在已经载入操作系统之前的时间操作,该时间可称为预引导时间。操作系统级可存在于EFI级和用户级之间。操作系统可便于用户级逻辑与系统资源交互作用等。用户级可存在于操作系统和EFI级之上。一般来说,用户级逻辑不会直接和/或间接地与EFI级逻辑通信。此外,EFI操作传统上从EFI外壳执行,而不是从用户级逻辑执行。
可从用户级逻辑接收第一信号,该用户级逻辑配置为在具有操作系统支持的后引导时间操作。第一信号可以是操作持久性存储器的一个指示,该持久性存储器可操作上连接到配置有EFI级逻辑和用户级逻辑的系统。在一个实例中,可由用户级逻辑通过EFI变量将第一信号提供给EFI级逻辑。EFI变量可以是用户级逻辑、操作系统过程、EFI级逻辑等看得见的,因此使它们作为在各种级之间传送信息的候选。可由第一信号在用户级逻辑和EFI级逻辑之间传送的信息例如可包括存储在要操作的持久性存储器中的第一系统固件的标识符、替换第一系统固件的第二系统固件的标识符、要操作的持久性存储器的标识符、用于操作持久性存储器的可扩展固件接口(EFI)级预引导过程的标识符以及第二系统固件位置的标识符。因此,用户级逻辑可指定,更新过程的某一版本被赋予用存储在计算系统上某处的替换BIOS替换某一持久性存储器中的现有BIOS的任务。所以,应该理解,本文所述的实例系统和方法的各种实例可用在计算系统配置中,包括但不限于单处理器/单持久性存储器/单BIOS系统、多处理器/多持久性存储器/多BIOS系统等。
持久性存储器可配置为存储系统固件,如BIOS。因此,用户级逻辑可检查存储在持久性存储器中的系统固件,并确定想要较新的版本并且应该安装较新的版本。与传统的进行将芯片拉出或使用EFI外壳方法更新系统固件的动作相反,用户级逻辑可传递设计为控制EFI级逻辑的信息,以用较新版本的系统固件自动操作(例如替换)现有的系统固件。
因此,方法300可包括,在310,从EFI级逻辑选择性地操作持久性存储器。与操作持久性存储器有关的实例动作参考图7和8进行描述。
方法300还可包括,在320,从EFI级逻辑向用户级逻辑提供关于持久性存储器操作的第二信号。第二信号可以是例如错误码、成功码、识别安装在持久性存储器中的当前系统固件的代码等。因此,一般提供给EFI外壳层的信息可由用户级逻辑使用。与第一信号可从用户级逻辑通过EFI变量提供到EFI级逻辑一样,第二信号也可从EFI级逻辑通过EFI变量提供到用户级逻辑。
在一个实例中,方法实现为在计算机可读媒体上提供的处理器可执行指令和/或操作。因此,在一个实例中,计算机可读媒体可存储操作上用于执行方法的处理器可执行指令,该方法包括在配置为在没有操作系统支持的预引导时间运行的EFI级逻辑中,从配置为在具有操作系统支持的后引导时间运行的用户级逻辑,通过EFI变量,接收第一信号,以便操作闪速存储器,该闪速存储器可操作上连接到配置有EFI级逻辑和用户级逻辑的系统。第一信号可包括的数据包括但不限于例如存储在闪速存储器中的第一BIOS的标识符、替换第一BIOS的第二BIOS的标识符、要操作的闪速存储器的标识符、用于操作闪速存储器的EFI级过程的标识符以及第二BIOS位置的标识符。该方法还可包括选择性地从EFI级操作闪速存储器,并响应于对闪速存储器的操作,从EFI级逻辑通过EFI变量向用户级逻辑提供关于闪速存储器操作的第二信号。鉴于上述方法300的各种过程及备选过程,应该理解,方法300的一个实施例可包括在配置为在没有操作系统支持的预引导时间操作的可扩展固件接口(EFI)级逻辑,从配置为在具有操作系统支持的后引导时间操作的用户级逻辑接收第一信号,以操作持久性存储器,该持久性存储器可操作上连接到配置有EFI级逻辑和用户级逻辑的系统,持久性存储器配置为存储系统固件;从EFI级逻辑选择性地操作310持久性存储器;以及从EFI级逻辑向用户级逻辑提供320关于持久性存储器操作的第二信号。方法300的另一实施例可包括在配置为在没有操作系统支持的预引导时间运行的可扩展固件接口(EFI)级逻辑中,从配置为在具有操作系统支持的后引导时间运行的用户级逻辑,通过EFI变量,接收第一信号,以操作闪速存储器,该闪速存储器可操作上连接到配置有EFI级逻辑和用户级逻辑的系统,第一信号包括以下标识符中的一个或多个存储在闪速存储器中的第一基本输入输出系统(BIOS)的标识符、替换第一BIOS的第二BIOS的标识符、要操作的闪速存储器的标识符、用于操作闪速存储器的EFI级过程的标识符以及第二BIOS位置的标识符;选择性地从EFI级逻辑操作310闪速存储器;以及从EFI级逻辑通过EFI变量向用户级逻辑提供320关于闪速存储器操作的第二信号。
虽然上述方法描述为提供在计算机可读媒体上,但应该理解,本文所述的其它实例方法也可提供在计算机可读媒体上。
图4图示了与操作持久性存储器440有关的实例系统,该持久性存储器440配置为存储系统固件430,其中该操作可通过EFI过程来执行。系统可包括通信逻辑400,它配置为接收操作持久性存储器440的请求。持久性存储器440可以是例如EEPROM、闪速存储器等。系统固件430可以是例如BIOS。
通信逻辑400可配置为通过EFI 410接收信号。信号可从配置为在具有操作系统支持的后引导时间运行的用户级逻辑420接收。在一个实例中,用户级逻辑420可配置为自动运行,无需用户的输入,由此便于系统的远程更新。在另外的实例中,用户级逻辑420可提供图形用户界面给用户显示信息,比如有关系统中当前安装的BIOS的信息、有关可用于替换当前安装的BIOS的BIOS的信息等。因此,系统可便于为不太熟练的用户提供基于在线和/或电话的支持。
通信逻辑400还可配置为向用户级逻辑420提供关于持久性存储器440的操作的响应。例如,通信逻辑400可报告更新系统固件430的成功/失败。
系统还可包括更新逻辑450,该逻辑可操作上连接到通信逻辑400。更新逻辑450可配置为选择性地操作持久性存储器440,作为EFI预引导过程的一部分。例如,在系统启动时,所安装的EFI分区可提供可在操作系统被载入之前运行的各种预引导过程。这些预引导过程之一可与更新逻辑450进行交互作用,并被赋予操作持久性存储器440的任务。例如,存储在持久性存储器440中的系统固件430可由更新的固件替代。
图5图示一个实例系统,用于操作配置了系统固件530的持久性存储器540。在一个实例中,该操作涉及使用EFI 510。和图4所述系统一样,图5所示系统可包括EFI级通信逻辑500和EFI级更新逻辑550。通信逻辑500可从用户级逻辑520经EFI 510接收信号。同样地,通信逻辑500可经EFI 510将信号发送到用户级逻辑520。
除这些单元以外,系统还可包括可安装的EFI系统分区560,它可由更新逻辑550访问。可安装的EFI系统分区560可安装在计算系统中,以便在发生系统复位时,EFI系统分区560被引导,而不是操作系统分区被引导。所以,在载入操作系统之前,与EFI系统分区560相关的可执行程序可得到在预引导时间期间运行的机会。这样做可便于例如替换存储在持久性存储器540中的系统固件530。
可安装的EFI系统分区560可配置为存储像替换系统固件的数字映象那样的项。固件的数字映象可称为二进制表示,并图示为二进制表示570。EFI系统分区560还可存储像更新过程的可执行映象的项。过程的可执行映象可认为是实用程序,并图示为更新实用程序580。
为便于通信逻辑500和用户级逻辑520之间的通信,EFI 510可包括一组EFI变量(未示出),这组EFI变量是通信逻辑500和用户级逻辑520都能看见的。因此,关于操作哪个持久性存储器的信息、哪个版本的BIOS存入选择的持久性存储器中的信息、哪个更新逻辑用于执行更新的信息等等都可通过与EFI 510相关的EFI变量从用户级逻辑520传递到EFI级逻辑(通信逻辑500、更新逻辑550)。
系统还可包括引导逻辑590,该逻辑配置为选择性地调用常驻在可安装的EFI系统分区560上的EFI预引导过程。在断言计算系统电源的电源正常信号时,引导逻辑590可接收对计算系统的控制,从而可便于安装EFI系统分区560并用更新逻辑550重新编程持久性存储器540。预引导过程例如可操作EFI变量、调用更新逻辑550来操作持久性存储器540等等。作为图解,更新逻辑550可配置为通过用二进制表示570替换系统固件530来采用更新实用程序580执行对持久性存储器540的操作。二进制表示570例如可以是BIOS。持久性存储器540例如可以是闪速存储器。
图6图示了用于使用EFI刷新系统固件的另一实例系统。该系统包括集成电路650,该集成电路配置为存储系统级固件。集成电路650可以是例如EEPROM、闪速存储器等等。系统级固件可以是例如控制程序、上电自检测程序、盘存程序、BIOS等等。
系统可包括像用户级应用600的第一逻辑,它配置为确定是否请求对系统级固件的更新。如果用户级应用600决定要请求更新,则用户级应用600可请求更新。请求更新例如可包括使用例如EFI变量630通过操作系统610和EFI 620将数据传递到与平台硬件640相关的可执行程序。
系统可包括像更新实用程序672那样的更新逻辑,该逻辑配置为响应于来自用户级应用600的请求来便于更新系统级固件。更新实用程序672可从像与可安装的EFI系统分区670相关的那些那样的预引导应用进行访问。在某些实例中,可采用不同的更新实用程序来执行不同的系统固件升级。因此,更新实用程序672例如可从存储各种如更新实用程序662那样的可执行程序的操作系统分区660进行拷贝。
除了存储更新实用程序672,可安装的EFI分区670例如可存储操作系统加载程序674。因此,当用户级应用600请求系统固件更新时,更新实用程序672可在系统复位时运行。但是,如果用户级应用600没请求系统固件更新,则可运行操作系统加载程序674,以便于引导与操作系统分区660相关的操作系统。判定运行更新实用程序672而不是操作系统加载程序674可至少部分取决于存储在EFI变量中的值。例如,EFI变量BootNext可以用预引导可执行程序的地址进行编程,以在预引导EFI时间期间执行的处理期间运行。
可安装的EFI分区670还可存储替换固件的二进制映象。因此,更新逻辑可在预引导时间通过用存储在EFI系统分区670中的二进制映象替换固件来更新存储在集成电路650中的固件。来自用户级应用600的不同更新请求可导致不同的固件二进制表示被拷贝到集成电路650。因此,操作系统分区660可存储可拷贝到EFI系统分区670的各种固件二进制表示664。
虽然图示的是单个EFI系统分区670和单个操作系统分区660,但应该理解,系统可包括多个分区。类似的,虽然图示的是单个集成电路650和单个用户级应用600,但应该理解,可响应于来自多个用户级应用的请求而操作多个集成电路。
图7图示与操作持久性存储器有关的实例方法700。操作持久性存储器可包括例如刷新存储在持久性存储器中的系统固件。该操作例如可包括使用EFI传递数据、调用预引导过程、载入二进制表示等。
方法700可包括,在710,接收操作持久性存储器的信号。该信号例如可从用户级应用接收。在一个实例中,可作为用户通过图形用户界面指示一个动作的结果而接收信号。
方法700还可包括,在720,将可引导EFI分区安装到配置有用户级逻辑、EFI系统和比如EEPROM或闪速存储器的可重编程持久性存储器的系统中。安装EFI分区可使EFI分区能在系统后来复位时启动。
方法700还可包括,在730,将与执行操作过程相关的可执行程序从安装在系统中的操作系统分区拷贝到安装的EFI分区。例如,可执行程序可以是配置为便于将二进制表示从EFI分区拷贝到要操作的持久性存储器中的刷新工具。在一个实例中,刷新工具可包括第二系统固件的二进制型式。在另一实例中,刷新工具可包括有关在哪可检索到第二系统固件的二进制型式的信息。
方法700还可包括,在740,更新像BootNext变量那样的EFI变量,以指示应该在下次系统复位时从安装的EFI分区执行刷新工具。因此,从用户级应用接收的信号可能已导致系统重新配置,以便将发生EFI预引导活动。这些活动之一可运行刷新工具,而不是运行操作系统加载程序。
安装了EFI分区并重新配置了系统以运行刷新实用程序后,方法700可包括,在750,重新启动系统,以便安装EFI分区并执行刷新工具。所以,在760,启动EFI系统,并在770,运行刷新工具。更常见的是,刷新工具可被称为操作过程。如上所述,操作可包括对存储在持久性存储器中的固件进行擦除、重新编程、编辑等等。因此,方法700可包括,作为在770动作的一部分,将第二系统固件的二进制表示拷贝到持久性存储器。持久性存储器可要求擦除、写、重写、编辑等不同的动作。因此,在一个实例中,将第二系统固件的二进制表示拷贝到持久性存储器可包括将持久性存储器重新配置为可写入的,将二进制表示写入持久性存储器,以及将持久性存储器重新配置为不可写入的。
拷贝可正常进行,在这种情况下,EFI系统可希望通知成功接收起动信号的用户级应用。或者,拷贝可能没有成功进行,在这种情况下,EFI系统可能希望通知用户级应用这种出错的情况。所以,在770运行刷新工具可包括,在EFI变量中存储错误代码,其中错误代码关于将二进制表示拷贝到持久性存储器的状态。
在执行了操作之后,系统可再一次重新启动。在一个实例中,由于EFI系统被引导并跟随一个位于BootNext变量中指向刷新实用程序的指针,该指针现在可能过期了,因此没再跟随后续的重新启动。这便于EFI在后续重新启动时运行操作系统加载程序。
所以,方法700可包括,在790,重新启动系统。重新启动系统可包括重新启动提供在710接收的起动信号的用户级应用。因此,方法700可包括,在799,将信号提供到用户级应用。该信号可包括例如成功/错误代码、指向存储成功/错误代码的EFI变量的指针、更新的固件信息等等。
鉴于以上所述,应该理解,方法700的一个实施例可包括在配置为在没有操作系统支持的预引导时间运行的可扩展固件接口(EFI)级逻辑中,从配置为在具有操作系统支持的后引导时间运行的用户级逻辑,通过EFI变量,接收710第一信号,以操作可操作上连接到配置有EFI级逻辑和用户级逻辑的系统的闪速存储器,第一信号包括以下标识符中的一个或多个存储在闪速存储器中的第一基本输入输出系统(BIOS)的标识符、替换第一BIOS的第二BIOS的标识符、要操作的闪速存储器的标识符、用于操作闪速存储器的EFI级过程的标识符以及第二BIOS的位置的标识符;安装720可扩展固件接口(EFI)分区到系统中;将与执行操作过程相关的可执行程序从安装在系统中的操作系统分区拷贝730到安装的EFI分区,其中可执行程序包括第二基本输入输出系统(BIOS)的二进制型式;操作740 EFI BootNext变量,以指向安装的EFI分区上的可执行程序的拷贝;重新启动750系统;调用770操作过程;将第二BIOS的二进制表示拷贝到闪速存储器,其中将第二BIOS的二进制表示拷贝到闪速存储器包括将闪速存储器重新配置为可写入的;将二进制表示写入闪速存储器;以及将闪速存储器重新配置为不可写入的;在EFI变量中存储错误代码,其中错误代码关于将二进制表示拷贝到闪速存储器的状态;重新启动790系统;以及从EFI级逻辑向用户级逻辑通过EFI变量提供799关于操作闪速存储器的第二信号。
方法700中图示的动作可以是描述为操作持久性存储器的方法300(图3)中的动作320的一个实例。
图8图示了操作系统中与从管理级刷新系统固件有关的实例方法800。方法800包括,在810,从用户级应用接收信号。该信号可指示某一系统固件将被刷新。刷新系统固件可包括用新的二进制表示重新编程闪速存储器。因此,在820,进行关于期望的二进制表示是否可用的判定。如果判定为否,则过程可结束,否则过程可在830继续。
方法800可包括,在830,从像操作系统分区那样的第一位置将更新工具和二进制表示拷贝到像可安装的EFI系统分区那样的第二位置。因此,预引导EFI过程也许能在预引导时间执行更新工具,以拷贝二进制表示并因此刷新系统固件。
方法800可包括,在840,例如通过操作指针或记录以便定位和执行在830拷贝的更新工具,从而更新EFI。在850,可重新启动系统。因此,拷贝到安装的EFI系统分区的更新工具可以运行,这将导致在860系统固件(例如BIOS)被刷新。
刷新可能成功,也可能不成功。因此,在870,进行关于它是否成功的判定。如果判定为否,则在882,可建立错误代码。这例如可包括将一个值写入对EFI系统和用户级应用都可见的EFI变量中。如果判定为是,则在880,可同样建立一个成功代码。
尝试刷新之后,在890,系统可以重新启动,这又导致在892引导EFI。由于EFI已经运行了一次更新工具,因此它将不会在这次重新启动中运行更新工具,相反,将在894进行引导操作系统。由于用户级应用采取了启动方法800的行动,因此,在896,用户级应用可以重新启动。然后,用户级应用可检查在880建立的成功代号或在882建立的错误代码。
图9图示了EFI使能系统中的逻辑流程900。可在910进行平台初始化,比如检测复位信号或PowerGood(电源正常)信号。在920,可发生EFI映象加载,这可包括与EFI驱动程序960和/或EFI应用970进行交互作用。一个EFI应用970可被赋予执行固件更新过程950的任务。逻辑流程是进行到固件更新过程950还是进行到EFI操作系统加载程序载入过程930例如可通过位于比如BootNext变量的EFI变量中的地址来确定。如果逻辑流程进行到950,则新的二进制表示可被写入持久性存储器中,以向系统提供例如新的BIOS。如果逻辑流程进行到930,那么EFI引导代码980可执行各种预引导任务。
在非固件更新过程配置中,逻辑流程900将在930进行到EFI操作系统加载程序载入过程,于是引导服务将在940终止,并将调用操作系统加载程序990。
图10图示一个计算机1000,它包括处理器1002、存储器1004和输入/输出端口1010,它们通过总线1008可操作上连接。在一个实例中,计算机1000可包括EFI刷新系统1030,它配置为便于操作持久性存储器并因此刷新系统固件。因此,EFI刷新系统1030,不论在计算机1000中实现为硬件、固件、软件和/或它们的组合,都可提供用于在配置为在具有操作系统支持的后引导时间运行的用户级应用与配置为在没有操作系统支持时运行的可扩展固件接口(EFI)预引导应用之间传递配置数据的构件。EFI刷新系统1030还可提供用于选择性地调用期望的EFI预引导应用以及用于执行对配置为存储系统级固件的持久性存储器进行选择性操作的构件。在一个实例中,选择性操作可通过配置为期望的EFI预引导应用的EFI预引导更新过程来执行。EFI预引导更新过程可至少部分地根据配置数据来操作持久性存储器。
处理器1002可以是各种不同的处理器,包括双微处理器以及其它多处理器体系结构。存储器1004可包括易失性存储器和/或非易失性存储器。非易失性存储器可包括但不限于ROM、PROM、EPROM、EEPROM等等。易失性存储器可包括例如RAM、同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)以及直接RAM总线RAM(DRRAM)。
盘1006可操作上经例如输入/输出接口(例如卡、装置)1018和输入/输出端口1010连接到计算机1000。盘1006可包括但不限于如磁盘驱动器、固态盘驱动器、软盘驱动器、磁带驱动器、压缩(Zip)驱动器、闪速存储卡和/或存储条等装置。此外,盘1006可包括如CD-ROM、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)和/或数字视频ROM驱动器(DVD ROM)等光学驱动器。存储器1004可存储例如过程1014和/或数据1016。盘1006和/或存储器1004可存储控制和分配计算机1000资源的操作系统。
总线1008可以是单个内部总线互连体系结构和/或其它总线或网格体系结构。虽然图示的是单个总线,但应该理解,计算机1000可使用其它未示出的总线(例如PCIE、SATA、Infiniband、1394、USB、以太网)与各种装置、逻辑和外设进行通信。总线1008可以是各种类型,包括但不限于存储器总线或存储控制器、外设总线或外部总线、纵横开关和/或局部总线。局部总线的种类包括但不限于工业标准结构(ISA)总线、微通道结构(MSA)总线、扩充型ISA(EISA)总线、外设部件互连(PCI)总线、通用串行(USB)总线以及小型计算机系统接口(SCSI)总线。
计算机1000可经I/O接口1018及输入/输出端口1010与输入/输出装置进行交互作用。输入/输出装置可包括但不限于键盘、麦克风、指示和选择装置、照相机、视频卡、显示器、盘1006、网络装置1020等等。输入/输出端口1010可包括但不限于串行端口、并行端口以及USB端口。
计算机1000可在网络环境中工作,因此可经I/O接口1018和/或I/O端口1010连接到网络装置1020。通过网络装置1020,计算机1000可与网络交互作用。通过网络,计算机1000可在逻辑上连接到远程计算机。计算机1000可与其交互作用的网络包括但不限于局域网(LAN)、广域网(WAN)以及其它网络。网络装置1020可连接到LAN的技术包括但不限于光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网(IEEE 802.3)、令牌环(IEEE 802.5)、无线计算机通信(IEEE 802.11)、蓝牙(IEEE 802.15.1)、Zigbee(IEEE802.15.4)等等。类似的,网络装置1020可连接到WAN的技术包括但不限于点到点链路、比如综合业务数字网(ISDN)的电路交换网、分组交换网以及数字用户线(DSL)。尽管描述了各个网络类型,但应理解,经过、越过和/或通过网络的通信可包括通信的组合和混合。
图11图示一个实例成像装置1100,它包括类似于本文所述实例系统的EFI刷新系统1110。EFI刷新系统1110可包括这样的逻辑它配置为执行像本文所述那样的可执行方法。EFI刷新系统1110可以永久地和/或可移动地附于成像装置1100上。
成像装置1100可接收要再现的打印数据。因此,成像装置1100还可包括存储器1120,该存储器配置为存储打印数据或更一般地用于图像处理。成像装置1100还可包括再现逻辑1130,该逻辑配置为从打印数据产生打印机就绪图像。再现根据所涉及数据的格式以及成像装置的种类而改变。一般来说,再现逻辑1130将高级数据转换成用于显示或打印的图形图像(例如打印就绪图像)。例如,一种形式是光线跟踪,它取得三维对象或场景的数学模型,并将其转换为位像。另一实例是将HTML转换成用于显示/打印的图像的过程。应该理解,成像装置1100可接收不需要再现的打印机就绪数据,因此再现逻辑1130可不出现在某些成像装置中。
成像装置1100还可包括成像机构1140,其配置为从打印就绪图像产生印刷媒体上的图像。成像机构1140可根据成像装置1100的种类改变,并且可包括激光成像机构、其它基于调色剂的成像机构、喷墨机构、数字成像机构或其它成像重现引擎。可以包括处理器1150,该处理器1150用逻辑实现,以控制成像装置1100的操作。在一个实例中,处理器1150包括能够执行Java指令的逻辑。成像装置1100的其它部件没有在本文中描述,但是可以包括媒体处理和存储机构、传感器、控制器及成像过程所涉及的其它部件。
现在参考图12,图示了一个应用编程接口(API)1200,它能够访问系统1210,用于操作配置有系统固件的持久性存储器。例如程序员1220和/或过程1230可使用API 1200进入由系统1210所执行的处理。例如,程序员1220可写入一个程序来访问系统1210(例如调用其操作、监视其操作、控制其操作),其中写入程序由于有API1200的存在而变得更为方便。无需程序员1220必须了解系统1210的内部,程序员1220仅仅必须知道到系统1210的接口。这便于在展示系统1210的功能性时封装该功能性。
同样,API 1200可用于向系统1210提供数据值,和/或从系统1210检索数据值。例如,检查二进制表示的过程1230可通过例如使用在API 1200中提供的调用、经API 1200向系统1210提供二进制码。因此,在API 1200的一个实例中,一组应用编程接口可存储在计算机可读媒体上。接口可由程序员、计算机部件、逻辑等用来进入系统1210,以便操作配置有系统固件的持久性存储器。接口可包括但不限于,传递二进制码(例如替换系统固件)的第一接口1240和传递可便于表征二进制码的固件数据的第二接口1250。例如,固件数据可包括大小、版本、日期和其它识别和/或表征数据。
图13图示了一个与持久性存储器操作和图形用户界面有关的实例方法1300。方法1300可以在具有包括显示器和选择装置的图形用户界面的计算机系统中执行。方法1300可包括在显示器上提供一组数据项并从中进行选择。在一个实例中,方法1300可包括,在1310,检索一组数据项,其中数据项表示持久性存储器操作动作操作,像指定持久性存储器将通过替换存储在其中的系统固件进行操作等。方法1300还可包括,在1320,在显示器上显示该组数据项,并在1330,接收表示选择装置选择一个被选数据项的数据项选择信号。可响应于例如鼠标点击、按键、语音命令等接收数据项选择信号。在1340,响应于数据项选择信号,方法1300可包括发起与被选数据项有关的持久性存储器操作,其中操作将通过可扩展固件接口(EFI)预引导过程执行。在一个实例中,在1350进行判定有关另外的数据项选择信号是否将被处理。如果判定为是,则过程回到1330,否则方法1300可完成。
虽然已经通过描述实例说明了实例系统、方法等,并且虽然实例已经描述得非常详细,但申请人并不旨在将所附权利要求书的范围限制或以任何方式限制到这样的细节。当然,不可能描述每个想得到的部件或方法的组合来描述本文所述的系统、方法等等。附加的优点和修改对本领域技术人员将是显而易见的。所以,本发明不限于所显示和描述的特定细节、代表性的设备以及说明性的实例。因此,本申请旨在包括落在所附权利要求书的范围内的变化、修改和变型。此外,之前的描述并不意味着对本发明范围的限制。相反,本发明的范围由所附权利要求书及其等效物限定。
至于术语“包括”被用于详细描述或权利要求书中,它规定为在该术语当用于权利要求中的过渡用词的情况下被解释时,类似于术语“包含”的方式包括在内。此外,术语“或”被用于详细描述或权利要求书中(例如A或B),它用来表示“A或B或者两者”。当申请人想要表示“仅仅A或B而不是两者”时,则将采用术语“仅仅A或B而不是两者”。因此,本文所用的术语“或”是包括在内的而不是排外的使用。参见Bryan A.Garner,现代法律应用词典624(2d.Ed.1995)。
权利要求
1.一种方法(300),包括在配置为在没有操作系统支持的预引导时间操作的可扩展固件接口(EFI)级逻辑中,从配置为在具有操作系统支持的后引导时间操作的用户级逻辑接收(310)第一信号,以操作可操作上连接到配置有所述EFI级逻辑和所述用户级逻辑的系统的持久性存储器,所述持久性存储器配置为存储系统固件;选择性地从所述EFI级逻辑操作(320)所述持久性存储器;及从所述EFI级逻辑向所述用户级逻辑提供(330)关于所述持久性存储器操作的第二信号。
2.如权利要求1所述的方法(300),由所述用户级逻辑通过EFI变量将所述第一信号提供给所述可扩展固件接口(EFI)级逻辑,并从所述可扩展固件接口(EFI)级逻辑通过EFI变量将所述第二信号提供(330)给所述用户级逻辑。
3.如权利要求2所述的方法(300),所述第一信号包括以下标识符中的一个或多个存储在要操作的持久性存储器中的第一系统固件的标识符、替换所述第一系统固件的第二系统固件的标识符、要操作的持久性存储器的标识符、用于操作所述持久性存储器的可扩展固件接口(EFI)级预引导过程的标识符以及所述第二系统固件的位置的标识符。
4.如权利要求3所述的方法(300),其中选择性地操作(320)所述持久性存储器包括将可引导的可扩展固件接口(EFI)分区安装(720)到所述系统中;从安装在所述系统中的操作系统分区向所述安装的EFI分区拷贝(730)与执行操作过程有关的可执行程序;重新启动(750)所述系统;调用(770)所述操作过程;将所述第二系统固件的二进制表示拷贝(830)到所述持久性存储器;在EFI变量中存储(880、882)错误代码,其中所述错误代码关于将所述二进制表示拷贝到所述持久性存储器的状态;以及重新启动(790)所述系统。
5.如权利要求4所述的方法(300),包括操作(740)可扩展固件接口(EFI)变量,以指向与所述安装的EFI分区上的操作过程有关的所述可执行程序的拷贝,并且其中与执行操作过程有关的所述可执行程序包括所述第二系统固件的二进制型式。
6.如权利要求5所述的方法(300),其中将所述第二系统固件的二进制表示拷贝(830)到所述持久性存储器包括将所述持久性存储器重新配置为可写入的;将所述二进制表示写入所述持久性存储器;以及将所述持久性存储器重新配置为不可写入的。
7.一种计算机可读媒体,存储可操作上执行(300)一种方法的处理器可执行指令,所述方法包括在配置为在没有操作系统支持的预引导时间运行的可扩展固件接口(EFI)级逻辑中,从配置为在具有操作系统支持的后引导时间运行的用户级逻辑,通过EFI变量接收(310)第一信号,以操作可操作上连接到配置有所述EFI级逻辑和所述用户级逻辑的系统的闪速存储器,所述第一信号包括以下标识符中的一个或多个存储在闪速存储器中的第一基本输入输出系统(BIOS)的标识符、替换所述第一BIOS的第二BIOS的标识符、要操作的闪速存储器的标识符、用于操作所述闪速存储器的EFI级过程的标识符以及所述第二BIOS的位置的标识符;选择性地从所述EFI级操作(320)所述闪速存储器;以及从所述EFI级逻辑向所述用户级逻辑通过EFI变量提供(330)关于所述闪速存储器刷新的第二信号。
8.一种系统,包括通信逻辑(400),配置为通过可扩展固件接口(EFI)(410),从配置为在具有操作系统支持的后引导时间运行的用户级逻辑(420),接收对于操作配置为存储系统固件(430)的持久性存储器(440)的请求,所述通信逻辑(400)还配置为向所述用户级逻辑(420)提供关于所述操作的响应;以及更新逻辑(450),可操作上连接到所述通信逻辑(400),所述更新逻辑(450)配置为选择性地操作所述持久性存储器(440),作为EFI预引导过程的一部分。
9.如权利要求8所述的系统,包括可安装的可扩展固件接口(EFI)系统分区(560),可由所述更新逻辑(450)访问,所述可安装的可扩展固件接口(EFI)系统分区(560)配置为存储替换系统固件的数字映象(570)以及更新过程的可执行映象(580),所述更新逻辑(450)配置为采用所述更新过程的所述可执行映象(580)来执行所述持久性存储器(440)的操作;一组EFI变量,其对所述通信逻辑(400)和所述用户级逻辑(420)是可见的;以及引导逻辑(590),配置为选择性地调用驻于所述可安装的系统分区(560)上的一个或多个EFI预引导过程,其中预引导过程可操作所述组EFI变量的一个或多个成员,并可调用所述更新逻辑(450)来操作所述持久性存储器(440)。
10.一种系统,包括集成电路(650),配置为存储系统级固件;第一逻辑,配置为确定是否请求更新所述系统级固件,所述第一逻辑可从用户应用(600)访问,所述第一逻辑配置为请求更新所述系统级固件;更新逻辑,配置为响应于来自所述第一逻辑的请求便于更新所述系统级固件,所述更新逻辑可从预引导应用访问;可扩展固件接口(EFI)逻辑(620),配置为便于调用可由所述更新逻辑执行的功能,所述第一逻辑配置为通过EFI变量(630)与所述更新逻辑传递配置数据;可安装的EFI分区(670),配置为存储与可由所述更新逻辑执行的功能有关的一个或多个可执行程序(672)以及替换固件的二进制映象,其中所述更新逻辑可在预引导时间,通过用所述替换固件的所述二进制映象的一个或多个部分替换所述系统级固件的一个或多个部分,来执行所述系统级固件的更新;以及操作系统分区(660),配置为存储与可由所述更新逻辑执行的功能有关的一个或多个可执行程序(662),其中所述一个或多个可执行程序(662)可拷贝到所述可安装的可扩展固件接口(EFI)分区(670),所述操作系统分区(660)还配置为存储替换固件的一个或多个二进制映象(664),其中所述一个或多个二进制映象(664)可拷贝到所述可安装的EFI分区(670),作为所述替换固件。
全文摘要
描述了与使用可扩展固件接口执行持久性存储器的操作相关的系统、方法、媒体以及其它实施例。一个例示性方法(300)实施例包括接收(310)关于刷新持久性存储器的信号,从EFI级应用选择性地刷新(320)持久性存储器,以及向用户级应用提供(330)关于持久性存储器刷新的信号。
文档编号G06F9/445GK1783004SQ20051002280
公开日2006年6月7日 申请日期2005年12月5日 优先权日2004年12月3日
发明者J·B·麦菲尔德, K·J·吉尔, C·D·希塞尔 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1