掌桥专利:专业的专利平台
掌桥专利
首页

经由网络的组件固件替换

文献发布时间:2024-04-18 19:58:53


经由网络的组件固件替换

背景技术

计算装置包括用于实现硬件组件相关功能的固件。常见的情况是,计算装置是由许多不同的制造方或销售方提供的硬件组件构成的。这样的各方还可以提供与所提供的硬件相伴的组件固件。

附图说明

图1是具有组件固件恢复指令的示例非暂时性机器可读介质的框图,所述指令检测讹误的(corrupted)组件固件,并从网络地址获取替换件并进行安装。

图2是示例计算装置的框图,其参考映射来针对讹误的组件固件获取和安装替换件。

图3是组件固件标识符到替换组件固件的网络地址的示例映射的表格。

图4是示例恢复服务器的框图,其响应于请求而提供替换组件固件的网络地址。

图5是针对被检测为讹误的组件固件获取替换组件固件的示例方法的流程图。

图6是安装替换组件固件以替换被检测为讹误的组件固件的示例方法的流程图。

图7是针对被检测为讹误的组件固件获取替换组件固件并安装该替换组件固件的示例方法的流程图。

具体实施方式

组件固件可能变得讹误,这可能导致计算装置的性能下降、数据丢失、死机或其他重大故障。

替换组件固件通常是终端用户或服务技术人员的工作。常见的情况是,一个人手动下载和安装新的组件固件来替换讹误的版本。

组件固件的备份拷贝可以存储在计算装置上,以在发生讹误的情况下充当替换件。然而,这会占用存储空间,并且如果不频繁更新,这样的备份拷贝可能会过时失效。

其他方法依赖于计算装置的操作系统(OS)来检测和替换讹误的组件固件。然而,这要求OS来启动,但是严重的组件固件讹误可能会使OS无法启动检测和替换。此外,基于OS的固件恢复是OS特定的,并且可能需要针对不同的操作系统和其版本来实现。

因此,如这里讨论的,如果组件固件变得讹误,则可以参考组件固件的映射,并且可以从远程来源(诸如硬件组件制造方的服务器、集中管理服务器或类似来源)下载讹误的组件固件的替换件。所述映射可以由计算机的制造方或提供方与计算机远程地维护。所述映射可以表示计算机的组件固件的各元件的最知名配置(best known configuration,BKC),并且可针对不同的计算机型号、组件固件版本、基本输入/输出系统(BIOS)版本等而不同。所述映射可以维护在恢复服务器处,使得各种计算装置的BKC可以在一个位置保持统一且当前现行。

BIOS可以执行对讹误的组件固件的检测和替换。检测和替换可以在计算装置的预引导期间执行。这样,OS不需要参与组件固件恢复。通过避免直到恢复完成才启动OS,这可以提高效率并加速恢复。

图1示出了具有组件固件恢复指令102的示例非暂时性机器可读介质100,指令102检测讹误的组件固件,并从网络地址获取替换件并进行安装。

非暂时性机器可读介质100可以是诸如台式计算机、笔记本计算机、一体化(AIO)计算机、服务器或类似装置之类的计算装置的一部分。

非暂时性机器可读介质100可以包括非易失性存储器,诸如只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)或闪存,它们与诸如计算装置的中央处理单元(CPU)之类的处理器协作,以执行所述指令。非暂时性机器可读介质100可以包括编码有实现这里讨论的功能的指令102的电子、磁性、光学或其他物理存储装置。

恢复指令102可以是直接执行的,诸如二进制代码或机器代码,和/或恢复指令102可以包括可经附加处理才执行的可解译代码、字节代码、源代码或类似指令。所有此类示例都可以视为可执行指令。

恢复指令102检测已安装的组件固件的指令的讹误。多组指令可以安装在计算装置的非易失性存储器中,以实现支持该计算装置的不同硬件组件的多个不同组件固件。在各种示例中,组件固件的每个元件支持一个硬件组件,并且每个组件固件可由该硬件组件的制造方或供应方供应。硬件组件的示例包括:串行总线控制器(如通用串行总线(USB

讹误检测可以通过恢复指令102从硬件装置接收诸如硬件中断之类的信号来执行。硬件组件可以向处理器发出信号以指示错误,该错误可源自组件固件讹误。处理器以及因此的指令102可例如通过状态寄存器的方式得到中断、硬件销售方提供的协议、或其他信号。由处理器执行的指令102可以将该信号标识为指示固件讹误。在其他示例中,指令102可以计算固件的哈希值、循环冗余校验(CRC)或其他值,然后对照已接受值检查这样的值,以确定该组件固件是否发生了讹误。

在该示例中,为第一组件固件提供第一已安装指令104并且为第二组件固件提供第二已安装指令106。指令104、106称为“已安装指令”是因为它们已安装在计算装置处以支持相关联的硬件组件。第一已安装指令104向计算装置提供第一功能,诸如初始化硬件组件和/或提供硬件组件的驱动程序。第二已安装指令106提供不同的第二功能,诸如初始化不同的硬件组件和/或提供不同的硬件组件的驱动程序。可以提供任何数量的指令集104、106,以支持任何合适数量的硬件组件,这里讨论两个只是为了简洁。

恢复指令102检测第一和第二已安装指令104、106的讹误。讹误检测可以固有地标识讹误的源头。例如,硬件中断可以标识硬件组件并从而标识固件。

如果第一已安装指令104被检测为讹误,则恢复指令102从第一网络地址110请求第一替换指令108。在网络地址110处的计算装置用该计算装置接收到的第一替换指令108做出响应。然后恢复指令102用接收到的第一替换指令108来替换第一已安装指令104。在安装之后,第一替换指令108成为新的第一已安装指令,以实现第一组件固件的功能。

类似地,如果第二已安装指令106被检测为讹误,则恢复指令102从第二网络地址114请求第二替换指令112。在第二网络地址114处的计算装置用该计算装置接收到的第二替换指令112做出响应。然后恢复指令102用接收到的第二替换指令112来替换第二已安装指令106。在安装之后,第二替换指令112成为新的第二已安装指令,以实现第二组件固件的功能。

恢复指令102可以包括用于初始化和操作计算装置的网络接口的指令,从而允许访问网络地址110、114,以针对任何讹误的组件固件获取相应的替换指令108、112。

网络地址110、114可以存储在恢复指令102可访问的映射中,该映射将组件固件与网络地址相关联。组件固件可以通过硬件装置类型、硬件装置类型提供方/制造方、组件固件版本、计算装置型号、BIOS版本和类似信息来唯一地标识。该映射可以针对此类信息的各种组合定义组件固件的最知名配置。该映射可以存储在计算装置处,诸如在介质100中,或者可以远程存储。

指令102可以构成BIOS的一部分,BIOS可以在计算装置的OS执行之前初始化、控制或操作包含介质100的计算装置。包括在BIOS内的指令可以包括定义或控制BIOS的功能或操作的软件、固件、微代码或其他编程。在一些示例中,BIOS可以使用诸如计算装置的平台固件之类的处理器可执行指令来实现,所述处理器诸如计算装置的中央处理单元(CPU)。BIOS可以在计算装置的OS执行之前操作或执行。BIOS可以初始化、控制或操作诸如计算装置的硬件组件之类的组件,并且可以加载或引导计算装置的OS。

在一些示例中,BIOS可以在计算装置的硬件装置或平台固件与计算装置的OS之间提供或建立接口,计算装置的OS可以经由该接口来控制或操作计算装置的硬件装置或平台固件。在一些示例中,BIOS可以实现统一可扩展固件接口(UEFI)规范或者用于初始化、控制或操作计算装置的另一规范或标准。

指令102可以在计算装置预引导期间执行,诸如在UEFI引导序列的驱动程序执行环境(DXE)阶段期间。因此,可以在OS启动前检测组件固件讹误。在各种示例中,在替换组件固件之后,指令102可以重置计算装置,并在随后的预引导中替换组件固件。然后,可以随后在没有讹误的组件固件的情况下启动OS。这样,可以将OS排除在讹误的组件固件的恢复之外,由于没有花费启动OS所需的时间,因此这可以减少恢复所需的时间。由于预期讹误检测的附加循环,重置计算装置还允许指令102验证替换组件固件未讹误。

图2是示例计算装置200的框图,其参考映射来针对讹误的组件固件获取和安装替换件。

计算装置200包括处理器202、存储器204、非暂时性机器可读介质100、芯片组206、网络接口208、以及多个硬件装置210、212、214。

处理器202可以包括中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或能够执行指令的类似装置。

存储器204可以包括随机存取存储器(RAM)或供处理器202使用的类似工作存储器。

芯片组206可以包括在处理器202、存储器204、介质100、芯片组206、网络接口208和硬件装置210、212、214之间进行连接并管理其之间的数据流的一个或多个集成电路。

网络接口208可以包括诸如网络适配器卡、网络接口控制器或具有网络功能的芯片组之类的硬件,并且还可以包括诸如固件之类的指令。网络接口208允许在计算装置200与计算机网络216之间传送数据,计算机网络216诸如局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、互联网或者可以包括有线和/或无线路径的类似网络。

硬件装置210、212、214包括相应的组件固件220、222、224。硬件装置210、212、214的示例包括USB控制器、摄像头、存储卡读卡器等等,如这里其他地方讨论的。每个组件固件220、222、224包括用于初始化相应的硬件装置210、212、214和/或提供相应的硬件装置210、212、214的驱动程序的指令。

介质100可以存储供处理器202执行的BIOS 226。BIOS 226可以包括组件固件恢复指令228,其可以包括上文关于指令102讨论的功能。BIOS 226还可以包括标识恢复服务器232的映射网络地址230,恢复服务器232托管将替换组件固件与网络地址相关联的映射234。映射234可以与计算装置200远程地维护,并且恢复指令228可以经由网络216查询映射234。

恢复服务器232可以是将映射234托管在统一资源定位符(URL)处的计算装置,该URL标识映射234的协议或方案、域和路径。映射234可以是数据文件、文件目录、可对查询做出响应的数据库、或能存储并提供信息的类似数据结构。

映射网络地址230是可在网络216上得到映射234的地址,并且因此可以是URL表达式。映射网络地址230可以标识文件结构或数据库,其提供使得可经由网络216在组件固件服务器236、238、240上得到替换组件固件240、242、244的网络地址。映射网络地址230可由计算装置200的制造方或提供方或者由计算装置200的用户配置。

在一些示例中,唯一地标识每个组件固件的信息被安排在目录结构中,使得符合以下结构的映射网络地址230唯一地标识文件:

https://www.example.com/model/BIOSversio/hw/FWversion/

其中,“model”替换为计算装置的型号标识符(例如Notebook_Model_1),

“BIOSversion”替换为BIOS的版本标识符(例如00.01.00),

“hw”替换为硬件标识符(例如Camera_A),并且

“FWversion”替换为硬件的组件固件的版本标识符(例如1.02)。

这样,下面的特定映射网络地址230可以是包含文件的目录,该文件包含了相应替换组件固件的网络地址:

https://www.example.com/Notebook_Mode_1/00.01.00/Camera_A/1.02/

位于该位置处的文件可以包含所请求的替换组件固件240、242、244的网络地址,例如:

https://www.example1.com/Camera_A_1-02.dat

位于上面的网络地址的该文件可以是替换组件固件240、242、244本身。

在其他示例中,映射网络地址230可以标识对参数化查询做出响应的数据库,诸如:

https://www.example.com/?model=Notebook_Model_1&BIOSversion=00.01.00&hw=Camera_A&FWversion=1.02

恢复服务器224可以对照数据库解析和执行这样的查询,该数据库包含替换组件固件240、242、244的网络地址表。

因此,用映射网络地址230做出的结构化请求返回替换组件固件240、242、244的网络地址。恢复服务器232因此充当可存储在组件固件服务器246、248、250上的替换组件固件240、242、244的中央目录。

恢复服务器232可以由制作、销售或服务计算装置200的组织来管理。组件固件服务器246、248、250可以由制作、销售或服务硬件装置210、212、214的组织来管理。这样,服务器232、246、248、250可以在分离的域中,并且可以彼此独立地操作。可以使用任何合适数量的恢复服务器232和组件固件服务器246、248、250。

恢复指令228可以监控和检测安装在计算装置200处的组件固件220、222、224的讹误。响应于检测到讹误,指令228例如通过硬件名称/类型和组件固件版本来标识讹误的组件固件,然后使用诸如计算装置200的型号和BIOS 226的版本之类的信息来构造关于映射网络地址230的查询。所述指令然后可以经由网络接口208和网络216将这样的查询送往恢复服务器232。

响应于从计算装置200接收到指示讹误的组件固件的查询,恢复服务器232然后通过参考组件固件240、242、244的标识符到网络地址的映射234来确定对应的替换组件固件240、242、244的网络地址。恢复服务器232然后经由网络216向计算装置200传输网络地址的指示(例如URL)。

恢复指令228接收网络地址的指示并从相应的服务器246、248、250请求对应的替换组件固件240、242、244。然后恢复指令228下载并安装替换组件固件240、242、244。

为了安装替换组件固件240、242、244,恢复指令228可以将替换组件固件240、242、244存储在介质100处,并设置指示新的替换组件固件240、242、244可用的标志。然后指令228可以重置计算装置200。在重置之后,在随后的预引导期间,BIOS 226检测到该标志,从而检测到存在替换组件固件240、242、244,并安装替换组件固件240、242、244。

图3示出了组件固件标识符到替换组件固件的网络地址的示例映射300。为便于理解,映射300被图示为表格。映射300可以实现为数据库表、目录结构或类似的数据结构,如这里其他地方讨论的。映射300是这里讨论的其他映射(诸如映射234)的示例。

该映射将计算装置型号302、BIOS版本304、硬件组件/装置306和组件固件版本308的各种组合关联到可唯一地定义的下载路径310。每个下载路径310标识可用于替换讹误的组件固件的组件固件。

例如,映射300将由硬件组件306和固件版本308标识的第一组件固件的第一替换指令与被存储为具体下载路径310的第一网络地址312相关联。类似地,映射300将由硬件组件306和固件版本308标识的不同的第二组件固件的第二替换指令与被存储为另一具体下载路径310的第二网络地址314相关联。网络地址312、314可以处于分离的域,并且可以根据不同的协议来操作,所述协议诸如超文本传输协议(HTTP)、HTTP安全(HTTPS)和文件传输协议(FTP)。

映射300可以随着具有新/不同组件306的新型号302的发布而更新。映射300可以随着新BIOS版本304和组件固件版本308的发布而更新。可以保留较旧的信息,使得可以支持较旧的计算装置。

由相应的下载路径310标识的一组给定的组件固件可以被视为是针对对应的BIOS版本304和型号302的最知名配置。虚线框316处示出了最知名配置的示例。

图4示出了示例恢复服务器400,其响应于来自计算装置(如图2的计算装置200)的请求而提供替换组件固件的网络地址。恢复服务器400可以用作图2的恢复服务器232。

恢复服务器400是包括处理器402、存储器404、芯片组406、网络接口408和非暂时性机器可读介质410的计算装置。不在此重复的这些组件的细节可以在这里关于具有类似名称的组件的其他地方找到。

介质410可以存储指引指令412和映射414。

指令412经由网络接口408从远程计算装置接收讹误的组件固件的指示,并参考映射414来确定替换组件固件的对应网络地址。指令412还经由网络接口408向远程计算装置传输所述网络地址的指示。

映射414将组件固件的标识符416关联到网络地址418。这样,从远程计算装置接收的讹误的组件固件的指示可以用于获取网络地址418,另一服务器将由标识符416指示的对应的替换组件固件托管在该网络地址418处。

组件固件标识符416可以包括讹误的组件固件的版本、远程计算装置的型号、和/或这里其他地方讨论的类似的标识数据。可以从请求替换组件固件的网络地址418的计算装置接收类似的数据。

指令412还可以从诸如硬件制造方或销售方之类的替换组件固件来源处接收网络地址418的指示。这样的指示可以通过该来源可经由网络得到的表格或其他用户接口元素来提供。因此,指令412可以随着组件固件的新版本的发布或随着组件固件的存储位置的更改而更新映射414。

指令412和映射414可以通过脚本和数据库、目录结构或类似技术来实现。

图5示出了针对被检测为讹误的组件固件获取替换组件固件的示例方法500。方法500可以实现为计算装置的处理器可执行指令,诸如BIOS指令。

在框502,启动BIOS 502并接管对计算装置的控制。BIOS的执行可以包括预EFI初始化(PEI)阶段和DXE阶段。

在框504,BIOS通过例如硬件中断、销售方定义的协议或类似信令机制来检测讹误的组件固件。这可发生于DXE阶段期间。

如果没有标识出讹误的组件固件,则在框506,BIOS执行引导装置选择(BDS)并完成其执行。随后在框508,启动OS。这就完成了正常启动,并且方法500结束。

如果检测到讹误的组件固件,则在框510,通过例如计算装置型号、硬件装置标识符、组件固件版本和/或这里其他地方讨论的其他数据来标识该讹误的组件固件。可以将标识数据添加到恢复列表512。标识数据还可以包括相应的硬件装置的标识符或地址,供后续替换组件固件时参考。

通过框514,可以针对计算装置的所有组件固件重复框504和510,从而将任何检测到的讹误的组件固件的标识符添加到恢复列表512。

在针对讹误考虑了所有组件固件之后,诸如通过BIOS到达特定执行点,在框516确定网络连接是否可用。

如果网络连接不可用,则在框518,BIOS输出用户警报。示例用户警报包括对话框或其他用户接口通知,以向用户警告检测到了讹误的组件固件。可以向用户显示恢复列表512的内容。然后在框506,BIOS完成执行。

如果网络连接可用,则在框520,标识对应于讹误的组件固件的替换组件固件。这可以包括:经由网络向托管了组件固件标识符到网络地址的映射522的服务器传输标识符,并作为响应,接收讹误的组件固件的特定标识符的特定网络地址的指示。这可以针对恢复列表512上的讹误的组件固件的每个元件进行。

然后,在框524,从通过所获得的网络地址标识的组件固件服务器526下载替换组件固件。这可以针对在框520针对每个讹误的组件固件项获取的每个网络地址进行。可以访问不同的服务器526。

在框528,将下载的替换组件固件存储在非易失性存储器中。恢复列表512也可以存储在非易失性存储器中,以便在下次执行期间向BIOS指示哪个组件固件有要安装的替换组件固件。替代地,可以在非易失性存储器中设置简单标志以向BIOS通知检查为替换组件固件保留的非易失性存储器位置。

然后,在框530,BIOS触发计算装置的重置。

图6示出了安装替换组件固件以替换被检测为讹误的组件固件的示例方法600。方法600可以实现为计算装置的处理器可执行指令,诸如BIOS指令。

在框502,启动BIOS 502,并接管对计算装置的控制,如关于方法500讨论的。

在框602,检测任何替换组件固件的存在。这可以包括检查非易失性存储器中的替换组件固件和/或恢复列表512。替代地,可以检查标志。如果未发现存在替换组件固件,则在框506和508,BIOS执行完成并启动OS,如关于方法500讨论的。

如果检测到替换组件固件,则在框604,执行恢复。恢复可以包括将替换组件固件拷贝到与相应硬件装置相关联的非易失性存储装置。这样的存储装置可以是该硬件装置的一部分。可以参考恢复列表512以标识相应的硬件装置。

通过框604,针对恢复列表512上的每个元件执行恢复。

在安装了替换组件固件的所有元件之后,然后从非易失性存储器删除替换组件固件的所下载的拷贝。还删除恢复列表512。替代地,可以清除标志。这防止在下次执行框602时进行冗余的检测。

然后,可以在框610发出用户通知。可以向用户显示对话框或类似的用户接口元素,以向用户通知组件固件和/或底层硬件装置的受影响项和恢复。然后,在框506和508,BIOS执行完成,并启动OS。

检测和获取替换组件固件的方法500和安装所获取的替换组件固件的方法600可以在BIOS中或计算装置的另一指令集中一起实现。在各种示例中,方法500、600的执行可以配合,使得在执行检测之前通过先前获取的替换组件固件来替换讹误的组件固件。

图7示出了针对被检测为讹误的组件固件获取替换组件固件并安装该替换组件固件的示例方法。方法700可以实现为计算装置的处理器可读指令,诸如BIOS指令。这里不再重复讨论已解释过的细节,并且可以参考类似编号的框的上述描述。

在框502,开始BIOS执行。

在框602,当检测到替换组件固件时,在框702参考恢复列表512执行恢复。框702可以实现上面讨论的框604、606、608和610。

接下来,在框504,当检测到讹误的组件固件时,在框704参考组件固件标识符到网络地址的映射522从一个或多个服务器526获取替换组件固件。可以生成恢复列表512。框704可以实现上面讨论的框510、514、516、520、524和528。

在框704之后,在框530重置计算装置,以便重复方法700。在方法700的下一次执行期间,框602检测到替换组件固件并执行恢复。此外,框504很可能将不会检测到另外的讹误的组件固件,因此,在框506和508,BIOS将完成执行并且OS将启动。如果框504确实检测到了另外的讹误的组件固件,则方法700可以继续获取替换组件固件并重置计算装置的另一次循环。可以限制循环次数,以防止无限循环,并且如果超出限制则可以发出用户警报。

考虑到上述内容应显而易见的是,可以在没有用户或OS干预的情况下恢复讹误的组件固件。可以改善用户体验,因为用户不需要自己手动恢复讹误的组件固件、联系服务技术人员或等待OS启动来更正讹误的组件固件。此外,不需要安装支持基于OS的恢复的特定OS。包括基于云的操作系统在内的其他操作系统与这里讨论的技术兼容。此外,通过避免本地存储组件固件的备份拷贝,可以节省计算装置处的非易失性存储空间。另外,映射的集中化和替换组件固件的分布式来源是高度可扩缩的,且保持更新相对简单,使得可以容易地维护计算装置的许多不同配置的BKC。

应当认识到,上面提供的各种示例的特征和方面可以结合成也落入本公开范围内的另外的示例。此外,附图未按比例绘制,并可出于图示的目的而夸大大小和形状。

相关技术
  • 半导体装置、半导体装置的制造方法以及半导体封装的制造方法
  • 等离子体处理装置、半导体制造装置及半导体装置的制造方法
  • 金属互连,制造金属互连的方法,半导体装置和制造半导体装置的方法
  • 树脂组合物、树脂膜、半导体层叠体、半导体层叠体的制造方法及半导体装置的制造方法
  • 树脂组合物、树脂膜、半导体层叠体、半导体层叠体的制造方法及半导体装置的制造方法
  • 半导体光发射装置的制造方法、半导体光发射装置、半导体装置的制造方法、半导体装置、一种装置的制造方法、以及一种装置
  • 氮化物半导体层叠物、半导体装置、氮化物半导体层叠物的制造方法、氮化物半导体自支撑基板的制造方法以及半导体装置的制造方法
技术分类

06120116515956