CN101031890A - 通过网络对固件的自监控和更新 - Google Patents

通过网络对固件的自监控和更新 Download PDF

Info

Publication number
CN101031890A
CN101031890A CNA2005800331959A CN200580033195A CN101031890A CN 101031890 A CN101031890 A CN 101031890A CN A2005800331959 A CNA2005800331959 A CN A2005800331959A CN 200580033195 A CN200580033195 A CN 200580033195A CN 101031890 A CN101031890 A CN 101031890A
Authority
CN
China
Prior art keywords
firmware
controller
computing system
data
piece
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
CNA2005800331959A
Other languages
English (en)
Other versions
CN100461128C (zh
Inventor
M·卡塔里亚
A·加夫肯
W·小斯蒂芬斯
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 CN101031890A publication Critical patent/CN101031890A/zh
Application granted granted Critical
Publication of CN100461128C publication Critical patent/CN100461128C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

实施例包括监控计算系统以确定该计算系统的固件是否被破坏、挂起或者需要自动更新。该计算系统可以随后通过网络请求固件更新数据。此外,该计算系统可以包括具有确定固件是否被破坏或挂起并通过网络请求和接收固件更新数据的能力的控制器。另外,该控制器可以具有在固件被破坏或挂起、处理器被挂起、操作系统被停止、挂起或软关机时运行的功能。另外,如果该控制器检测到固件被破坏或挂起,该控制器可以在更新固件时停止处理器。

Description

通过网络对固件的自监控和更新
技术领域
更新和恢复系统固件。
背景技术
在电子设备(例如计算系统)的初始化和/或使用期间,固件“程序”通常被用来检测、测试、初始化以及监控设备或系统硬件。例如,当一台个人计算机(PC)被打开时,通常基本输入/输出系统(BIOS,basicinput/output system)程序(例如固件)会被运行,BIOS是存储在或编程到PC主板中的只读存储器(ROM)芯片(一般称为BIOS芯片)的软件。一旦被运行,BIOS立即识别所有的板上设备(例如处理器、存储器、视频卡等)然后运行加电自检(POST,power-on self-test)以确定各个设备是否工作正常。如果所有设备都通过了POST测试,然后BIOS初始化各个设备、检测硬盘驱动器、光盘(CD-ROM)驱动器以及软盘驱动器。然后BIOS在第一引导设备(通常是硬盘驱动器或软盘驱动器)上查找加载操作系统软件所必需的文件。BIOS可以处理到键盘和显示控制器等外设控制器的低层输入/输出(I/O)。此外,BIOS将检测、测试、初始化和监控系统硬件直到操作系统接管它们。然后,BIOS将对系统的控制传给操作系统软件。如果有任何设备没有通过POST,将会有错误消息显示在屏幕上,或者有一系列“嘀嘀声”(beep)通过PC扬声器播放出来以表示有问题存在。嘀嘀声的次序(嘀嘀声代码)可以用来标识存在的问题的类型。
但是,BIOS或固件通常是被“烧制”到ROM芯片的一个部分中,并被写进或编程到ROM芯片的第二部分中。尽管“烧制”的部分可以被硬件机制(例如,紫外线辐射)“闪光(flash)”擦除,但第二部分可以由软件机制擦除或写入。因此,BIOS或固件可能被破坏、变得不准确或者被“病毒”、“蠕虫”或“黑客”修改。此外,计算系统的用户可能无意中将BIOS修改成不合需要的配置。因而,能够恢复和更新BIOS或固件以保证它正确非常重要。
附图说明
图1是通过网络自监控和更新固件的系统的结构图;
图2是通过网络更新固件的过程的流程图;
图3是通过网络更新固件的过程的流程图;
图4是通过网络自动更新固件的过程的流程图。
具体实施方式
图1是通过网络自监控和更新固件的系统的结构图。图1所示计算环境100包括通过通信链路162与网络170相连的计算系统102以及通过通信链路182与网络170相连的服务器180。计算设备102可以是客户计算机、服务器计算机、台式计算机、膝上型计算机、个人数字助理(PDA)、蜂窝电话或任何其它有操作系统和固件的数字处理器或处理系统。
如图1中所示,计算系统102包括通过网络接口160与通信链路162相连的总线150。总线150可以是计算机总线,如主板上用于接合计算机的不同部件的总线。网络接口160可以是用于连接到LAN(局域网)、Intranet(企业内部网)、Internet(互联网)的网络接口,或者另一电子设备或计算系统通信支持网络。相应地,通信链路162和网络170可以支持在这些网络上的通信。具体地说,例如,网络170可以是LAN、Intranet或Internet。还可以预期网络170可以包括多于一种类型的网络和/或技术以提供电子设备和/或计算系统之间的通信。具体地说,网络170可以包括无线通信、蜂窝通信、LAN通信以及Internet。通信链路182可以是类似于上面为通信链路162所描述的链路。服务器180可以是网络服务器、与计算机系统102类似的计算系统或者别的计算机服务器以提供这里所说明的功能。
计算系统102示出为还包括与总线150相连的键盘/鼠标接口152。键盘/鼠标接口152可以是用于将键盘和/或鼠标连接到计算机系统102以向那里提供输入的接口。还示出了监视器接口154与总线150相连。监视器接口154可以提供接口或适当的信号给与计算系统102相连的屏幕或监视器。例如,监视器接口154可以是视频或显示卡。
图1还示出了与总线150相连的存储器142。存储器142可以代表随机访问存储器(RAM)、记忆体存储器、通用串行总线(USB,UniversalSerial Bus)存储器、硬盘驱动器、CD-ROM、光盘和/或软盘。存储器142可以是机器可访问介质,例如用于包含指令的介质,所包含的指令在被处理器执行时使计算系统102执行与计算机有关的任务,包括这里所说明的那些任务,例如通过网络170与其它计算系统和/或服务器180通信。
还示出了与总线150相连的处理器140。处理器140可以是中央处理单元(CPU)、数字信号处理器或其它处理器。能够理解,处理器140可以是用于处理由存储器142提供的或存储在其中的指令的处理器,例如使计算系统102执行与计算机有关的任务,包括这里所说明的那些任务,例如通过网络170与其它计算系统和/或服务器180通信。处理器140可以执行或运行存储器142中存储的或可以从它获取的操作系统。因而,计算系统102可以是能够通过网络170访问服务器180的客户计算机或客户机系统(client system)。
图1还示出了与总线150相连的固件110。固件110可以是计算机基本输入/输出系统(BIOS),客户机系统固件(CSF)、或用于测试、初始化以及加载计算系统102的引导程序或操作系统的其它指令。固件110可以被存储在存储器中,例如只读存储器(ROM)、非易失性存储器、可擦可编程只读存储器(EPROM)、电子可擦可编程只读存储器(EEPROM)或闪存。例如,固件110可以被存储在当电源被从计算系统102移除或关闭(硬关闭)时不会被擦除的存储器中。另外,固件110可以被存储在通过暴露在紫外线中或用紫外线照射能够擦除的存储器中,以更新、恢复或用后续数据重写,例如,通过“烧制”进存储器中。还可以预期用其它过程、固件、软件和/或硬件更新固件110。
如果固件被破坏就必须要进行固件(例如BIOS和固件110)的更新和恢复。如果固件具有与计算系统的设备相比不准确的配置数据、或者导致操作系统或处理器停止(halt)、挂起或进入软关机(soft-off)状态,就可被看作是已被破坏。例如,停止可以发生在硬件停止或其它故障导致操作系统和/或处理器中止固件、软件或操作系统指令的处理时。同样,挂起可以发生在软件循环问题或其它故障导致操作系统和/或处理器中止固件、软件或操作系统指令的处理时。最后,软关机指计算系统被加电但操作系统和/或处理器因为计算系统处在节电模式或别的硬件或软件模式而中止固件、软件或操作系统指令的处理时。
固件还可以被更新或恢复以消除功能或过程中的“bug”或错误、添加功能或过程、或者增强固件的功能或过程(例如,添加新设备的配置)。此外,可能希望在固件被“病毒”、“蠕虫”或“黑客”破坏或更改后更新或恢复固件。有些情况下还可能希望在例如所选择的时间上或周期性地自动更新固件以确保固件持续准确或对这里所说明的固件提供更新。
图1还示出了与总线150相连的控制器190。控制器可以包括计算机芯片、数字信号处理器、嵌入式微控制器、固件、电路、计算机硬件和/或其中存储的计算机软件。特别地,所示控制器190具有固件FW。控制器190可以是有诸如代码、程序设计、固件FW、数据、智能和/或计算机软件等“逻辑”以执行这里所说明的任务的智能网络控制器(INC,Intelligent Network Controller)。通常,这里所说明的代码、程序设计、数据、智能、计算机软件、固件、硬件和/或计算机硬件在其具有执行关于它所说明的功能的能力的意义上可以被定义为“逻辑”。
例如,控制器190可以包括监控固件110以及与服务器180通信的逻辑。更特别地,控制器190可以包括用于跨越网络170与固件110和服务器180通信以从服务器180获取固件映像(image)从而更新固件110的逻辑。控制器190的逻辑具有在网络上请求和接收固件110的最新(updated)配置或固件数据的能力。例如,控制器190还可以具有用安全服务器会话或加密数据在网络170上与服务器180进行安全通信的能力。特别地,计算系统102和服务器180之间在通信链路162和182以及网络170上的通信可以是安全服务器会话,例如事务层安全(TSL,Transactional Layer Secure)服务器会话,和/或使用加密数据(例如RSA(Ribest-Shamir-Adleman)加密数据),或者对数据的其它公共/私有密钥加密。控制器190还可具有向固件110返回接收到的最新配置或固件数据、或者用接收到的最新配置或固件数据重写固件110的逻辑。
控制器190可以有足够的逻辑以拥有当部分120正在执行或被破坏时的功能表现。根据实施例,控制器190包括独立于固件110执行的逻辑或固件,所以控制器190即使在部分120被破坏或挂起、处理器140被暂停(held)或停止、计算系统102的操作系统被挂起、停止或软关机时、和/或计算系统102被挂起、停止或软关机时也能充分起作用。例如,当硬件或软件故障导致处理器中止固件、软件或操作系统指令的处理时,处理器140可能被暂停或停止。因而,控制器190在处理器140或计算系统102的操作系统被挂起、停止或软关机时能够充分起作用。
此外,控制器190可以有足够的逻辑与固件110通信以接收固件的有些部分被破坏的指示以及从服务器180获取原始的或最新的固件的请求。控制器190还可以具有或存储固件或存储器、修正信息、发布日期等信息。
控制器190、存储器142和/或固件110可以具有获取固件110、计算系统102的操作系统和/或计算系统102自身的标识信息、修正信息、发布日期等信息的逻辑、信息和/或机制。例如,计算系统102的标识可以是计算系统102在特定公司、特定机构或所处位置或大厦中的类似计算系统之间(例如,其它客户机系统之间)的唯一标识。特别地,控制器190可以包括与计算系统102的其它部件通信(例如,与处理器140和/或固件110通信)以根据计算系统102的标识(例如唯一标识)识别该计算系统的逻辑。
此外,控制器190可以包括逻辑来通过网络170将对固件的请求以及计算系统102的标识传递给服务器180、从服务器180接收与那些请求有关的响应、并且将接收到的响应发送到固件110和/或计算系统102的其它部件。例如,控制器190可以从部分120接收到一个“核心遭破坏”消息、请求更新数据消息或者请求更新固件消息。例如,“核心”可以被定义为固件110或其中的一部分。接着,控制器190可以将“核心遭破坏”消息、请求更新数据消息或请求更新固件消息发送到服务器180。控制器190随后可以等待并从服务器180接收固件更新数据并将固件更新数据提供给固件110。此外,控制器190可以包括逻辑,使控制器190可以重写或为服务器180提供直通(pass-through)接口以用从服务器180接收到的固件更新数据重写部分120和/或部分130。
另外,计算系统102包括芯片组125。芯片组125可以包括具有执行这里关于芯片组125所述的功能的能力的计算机芯片、数字信号处理器、固件、电路、计算机硬件和/或其中存储的计算机软件、寄存器、缓冲器、计算机逻辑、门电路,等等。在有些情况下,控制器190可以通过监控芯片组125而监控处理器140的进度以监控固件110和处理器140之间的通信。因而,芯片组125允许控制器190监控处理器140对固件110的访问,并从处理器140返回数据给固件110以检测在计算系统102的引导期间是否有错误。特别地,芯片组125可以允许控制器190监控固件110和处理器140之间的通信,以使为启动系统102的引导而对固件110的缺省地址的访问以及返回数据通过芯片组125。
图1还示出了通过通信链路162、182和网络170与计算系统102相连的服务器180。服务器180可以是计算机“控制台”,例如被信息技术(IT)管理员监控并控制以控制在某个企业、公司、位置或机构的计算机的固件配置的服务器控制台。例如,IT管理员可以是在服务器180上工作或能够访问服务器180的人,或者是运行在服务器180上或能够访问服务器180的自动化应用程序,以提供固件更新给企业、公司、位置或机构的计算机。服务器180可以具有包括计算系统(例如计算系统102)的配置数据和固件更新的记忆体储存器数据库。另外,服务器180可以包括操作系统映像。可以通过检索服务器180中的数据库访问服务器180的固件更新和操作系统映像。或者,可以由管理员(例如,能够访问服务器180的人或者运行在服务器180上或能够访问服务器180的自动化应用程序)从服务器180提供固件更新和操作系统映像,例如IT管理员手工从服务器180中的数据库选择固件和/或操作系统映像,或者将固件和/或操作系统映像加载到服务器180以通过网络170进行传播。
在一个实施例中,服务器180可以包括标识信息以及相关支持数据(例如固件数据、固件更新、固件映像、操作系统映像等)的数据库。适当的标识信息包括客户机系统标识(例如计算系统102)(例如,在一个机构的其它客户机系统之间的唯一标识)、操作系统版本、处理器版本、固件修正信息、固件发布日期等。特别地,服务器180可以查找、定位并传输对应于从控制器190接收到的客户机系统标识的支持数据(例如,对于不同的客户机系统标识,固件修正和/或固件发布日期)或提供对支持数据的访问。在有些情况下,IT管理员可以访问服务器180以使IT管理员的动作可以查找、定位和传输支持数据或提供对支持数据的访问。
图1示出了包括部分120和部分130的固件110。部分120和部分130可以是固件110的整个固件的全部或一部分。根据实施例,部分120和部分130可以被总称为“核心系统”固件,部分120是核心系统固件的部分1或“引导块”,部分130是核心系统固件的部分2或“核心”。例如,部分120可以是由基于硬件的保护和/或基于软件的保护机制进行擦除保护的固件的第一部分。同样,部分120可以是被进行了擦除保护以避免被有意或无意擦除的固件110的受擦除保护部分或一小部分,只有使用特定的硬件机制才能擦除部分120,例如用紫外线照射。根据实施例,部分120可以代表“烧制”进ROM、EPROM或EEPROM芯片的一部分中的数据。因而,部分120,即“烧制”的那部分,可以被硬件机制(例如紫外线照射)“闪光”擦除。
另外,部分120可以包括发现和识别系统平台上(如计算系统102上)控制器190的存在的逻辑。例如,部分120能够识别系统平台上控制器190的硬编码定位(hard-coded location)和/或运行时发现(run-timediscovery)。此外,部分120可以包括足够的逻辑发现固件110中被破坏的固件,例如使用基于校验和的检查、基于签名的检查和/或基于硬件的检查确定部分130是否被破坏。此外,部分120可以包括与控制器190通信的逻辑。因此,部分120可以通知控制器190部分120和/或部分130被破坏,或者请求更新。例如,部分120可以从控制器190请求部分120和/或部分130的原始或最新固件。部分120还可以包括足够的逻辑接收响应这些请求的响应、原始固件、更新固件和/或更新数据,并采取适当的动作,例如用固件或数据更新部分120和/或部分130。
固件110还包括部分130,例如可擦除的固件部分。根据实施例,部分130可以代表写入或存储到存储器、ROM、EPROM或EEPROM芯片的一部分中的数据。例如,部分130可以被写入或编程到部分120被编程进的ROM芯片的第二部分中,但部分130没有部分120的硬件或软件擦除保护。因而,部分130可以被软件机制擦除或重写。部分130在数据量上可以比部分120大得多。部分130可以设计用于部分120引起的或来自部分120的擦除、更新或恢复。部分120和部分130可以包括计算系统102的配置数据。例如,该配置数据可以包括计算系统102的设备或与其相连的设备(例如键盘/鼠标接口152和监视器接口154)的配置。预期来自固件110的数据可以用来加载计算系统102的配置寄存器,例如定义上述设备的运行参数。
因此,根据实施例,计算环境100允许固件110在挂起、被破坏时或在特定时间被更新,不管计算系统102的操作系统是否工作。例如,固件110可以是驻留在计算系统102上的客户机系统固件(CSF),客户机系统上的CSF具有内置逻辑以发现CSF是否被破坏,还具有“自治愈”或更新遭破坏的CSF的能力。
某种情况下,控制器190可以是智能连网控制器(INC),例如具有支持对遭破坏的固件进行检测并将计算系统102带到能够(如通过网络170)与服务器180交互的状态的逻辑的控制器。这个逻辑允许控制器190获取原始的或最新的固件(例如,包含提供计算系统102的固件功能和/或设备配置信息的软件或编程的代码、数据或映像)以初始写、更新、修复、自治愈、恢复和自更新固件110的所有或部分(例如部分120和/或部分130)。
同样,部分120可以是包含足够的逻辑功能以将计算系统102带到部分120能够与控制器190和服务器180(如,通过网络170)交互的状态的CSF的一角色或部分。这里,该逻辑允许部分120获取原始的或最新的固件以初始写、更新、修复、自治愈、恢复和自更新固件110的部分(如部分130)。可以配置或内置部分120的擦除保护以暂停允许部分130的恢复(例如,使用控制器190和服务器180)的逻辑。
相应地,部分130可以是包含计算系统102的部件或设备的配置数据的CSF的非安全角色或部分。例如,部分130可以是不像部分120那么安全的固件的主要部分,因为部分130没有内置与部分120类似的硬件或软件机制以保护部分130不被擦除。因而,部分130更灵活地允许对部分130的故意擦除或字段更新。但应该理解这个相同的灵活性使得部分130易受意外擦除。因而,如果部分130被意外擦除,部分120可以提供部分130的恢复。
服务器180可以是客户机系统(如计算系统102)可以用之通信以获取适当的固件和/或操作系统映像的控制台。可以通过检索服务器180上存储的数据库自动从服务器180选择固件和/或操作系统映像。或者,IT(信息技术)管理员可以通过从服务器180上的数据库选择正确的固件和/或操作系统映像并控制所选择的固件和/或操作系统映像通过网络170与计算系统102的通信而手动选择固件和/或操作系统映像。
图2是通过网络更新固件的过程200的流程图。在块202系统被引导或重置。例如,块202可以对应于打开、重置、初始化一个计算系统(如计算系统102)或启动其电源。接着,在块203,控制器被启动或初始化,与系统继续引导、初始化、运行固件、运行操作系统或处理的能力无关。例如,块203可以对应于控制器正在被启动以初始化和配置自己从而运行固件,随后不管固件110、部分120和/或部分130遭破坏或被挂起仍然运行固件。同样,控制器190可以执行上述功能而不管处理器140是否被停止或暂停;不管计算系统102的操作系统是否被停止、挂起或软关机;也不管计算系统102是否被停止、挂起或软关机。
在块205,控制器(如控制器190)被通知客户机系统启动,例如计算系统102的启动。块205可以包括发送预定信号给控制器以表明计算系统102的引导是否已经被启动(如,在计算系统102的电源被打开后或计算系统102被“重置”后)的通过硬件机制(例如,通过硬件或电路)的通知。另外,可以用软件机制通知控制器190计算系统的启动,例如向控制器190发送预定的通信消息以表示计算系统102的引导。考虑该通知可以包括通过硬件接口发送预定的通知信号或通过固件110和控制器190之间的通信接口发送预定的软件消息。
在块210,监控系统以确定固件是否被破坏。例如,控制器190可以包括内置在控制器190的固件中的方法或逻辑以监控、确定或发现部分120是否被破坏。在有些实施例中,控制器190可以使用硬件芯片组监控计算系统102的引导、初始化和/或固件执行的进度。尤其,控制器190可以监控引导或初始化期间120部分的执行以确定部分120是否被破坏或挂起。有些情况下,控制器190可以通过监控处理器140和固件110之间的芯片组而监控处理器140的进度。当计算系统102引导时,处理器140可以访问固件110中的缺省地址(例如部分120中的一个地址)并根据引导是否成功(例如,通过监控处理器140在引导期间的预期响应或通过处理器140的处理)将数据返回给固件110。参考图1,依照实施例,在计算系统102中可以包括芯片组125以允许控制器190监控固件110和处理器140之间的通信,以使对该缺省地址的访问和返回数据通过(go through)芯片组125。如果在引导期间出现了错误,处理器就发送一个错误消息(例如“FF”)作为返回数据给固件110。同样,来自处理器140的错误或其它消息(例如,来自处理器的要与预期响应值比较的响应)可以向控制器190表明内核被破坏、固件110或其中的一部分被破坏、或者固件或处理器被挂起。特别地,控制器190在引导期间或引导之后可以监控芯片组125以检测由处理器返回的表示成功引导的有效数据;或者检测表明引导失败、“内核破坏”、固件破坏或处理器挂起的错误消息。此外,控制器190可以使用计算系统102的客户机硬件(例如一个芯片组)、控制器190的固件或两者以监控客户机系统进度。
在块215,确定固件是否被破坏或挂起。例如,在块215,控制器190可以确定部分120是否被破坏,例如被擦除、有“bug”或者固件的功能或过程中有错误。判定块215可以包括根据上述针对块210的监控说明进行确定。例如,块215可以对应于控制器190监控客户机芯片组(例如,图1中的芯片组125)以根据部分120或其中的配置数据将处理器140、操作系统、启动、初始化的进度和它们的预期响应进行比较。如果预期响应与芯片组中检测到的进度不一致,部分120可以被看作是已被破坏。
此外,块215可以包括监控计算系统102的启动或初始化过程是否被挂起。特别地,如果控制器190通过计算系统102的硬件判定部分120被挂起(例如,在计算设备102的引导或重置中部分120的执行期间),那么部分120可以被看作是被挂起。
如果在块215控制器190判定部分120被破坏或挂起,处理继续到块220。在块220,控制器190可以使用逻辑、硬件和/或软件机制暂停、停止或暂停客户机系统处理器(例如,使该处理器被“暂停”)。这里,控制器190可以使系统处理器(例如处理器140、客户机系统的系统处理器或中央处理单元CPU)中止固件、软件或操作系统指令的处理。依照实施例,控制器190还可以使计算系统102的操作系统停止、挂起、或进入软关机状态。
如果在块215控制器190判定部分120没有被破坏或挂起,处理继续到块225。在块225,固件和操作系统被允许执行。例如,块225可以对应于控制器190允许部分120继续或完成在计算系统102的启动或初始化期间的执行。在块225之后,计算设备102可以被允许根据操作系统运行计算过程,例如通过将控制转让给操作系统。另外,依照实施例,在块225之后,计算设备102可以被允许运行固件110的部分130(以在将控制转让给操作系统之前完成固件110的运行)。例如,如图2中所示,在“A”,过程200可以如图3所示在“A”继续,例如,在图3中所示并针对其进行说明的块310上继续。
在块230,控制器访问它的本地数据库以访问它的客户机系统专有信息,例如计算系统102的唯一标识。在块240,控制器190使用系统标识信息在网络上向服务器请求更新数据。例如,控制器190可以发送一个包括系统标识的请求更新固件消息或“核心被破坏”消息给服务器180。特别地,控制器190可以通过网络170将一个包括客户机系统标识和问题标识(如部分120遭破坏的表示和/或对最新数据或固件的请求)的预定消息给发送服务器180(例如通过网络接口160、通信链路162和182以及网络170发送给运行在服务器180上的控制台应用程序)。
在块245确定是否存在更新数据。例如,服务器180可以从控制器190接收对最新固件数据的请求或者“核心遭破坏”消息,并检索服务器180中的数据库以确定控制器190发送的消息中的系统标识所标识的系统的固件映像是否存在。更特别地,在块245,服务器180或者在它的本地数据库中查找固件映像,或者发送消息给IT管理员以获取所标识的客户机系统(如计算系统102)的固件映像。如果服务器180在特定时间内找到了所标识的客户机的固件映像,它可以使用诸如安全通信、加密数据和/或网络分组在网络170上将一个“成功”状态消息和该固件映像发送给计算系统102。另一方面,如果服务器180没有为所标识的客户机系统定位合适的固件映像,服务器180用以上为“成功”状态消息所述的类似机制将一个“失败”状态消息发送给计算系统102。在一种情况下,服务器180可以超时查找所标识的客户机系统的合适固件映像的所选搜索时间(例如,如果服务器180的数据库中没有该客户机系统标识或其固件)。另一种情况,服务器180可以超时对IT管理员的响应的等待,以为所标识的客户机系统提供合适的固件映像。
另外,在块245,控制器可以轮询硬件以确定是否已经从服务器接收到响应。例如,控制器190可以通过网络170轮询计算系统102的硬件(如网络接口160)以确定服务器180是否已经提供了对固件更新数据请求的响应。在轮询期间,如果在特定的“超时”时间段内没有提供响应,处理可以继续到块248。
此时,运行在计算系统102中的控制器190监控网络接口160或服务器180的响应并依据响应采取适当动作。在块245,如果不存在更新数据或者轮询超时,处理继续到块248,在那里向用户通知系统固件错误。例如,如果控制器190从服务器180接收到一个失败状态消息,控制器190可以使用户可理解的消息向用户宣告用户计算系统102处在不可恢复的系统故障错误状态。例如,控制器可以使与计算系统102相连的监视器显示一个表示错误状态的消息,或者使计算系统102输出表示有错误存在的“嘀嘀”序列,或者将错误通知给用户。
或者,在块245,如果更新数据存在并且在轮询超时之前被发送给控制器,轮询处理继续到块250。在块250,更新数据被通过网络返回给控制器。这里,如上面为块245所述,服务器180将一个“成功”状态消息和固件映像发送给计算系统102,诸如使用网络170上的安全通信、加密数据和/或网络分组。
在块260,更新数据被控制器通过网络从服务器接收到。例如,控制器190可能通过网络170从服务器180接收到一个“成功”状态消息和固件更新数据。固件更新数据可以包括初始固件、固件更新数据或部分120的固件更新映像。
接着,在块270,用该更新数据更新固件。例如,如果控制器190从服务器180接收到一个成功的状态消息,控制器190可以用随该成功状态消息接收到的固件更新数据编程或覆盖部分120。
在块280,固件110被恢复,控制器190消除操作系统、计算系统102或处理器140上的任何停止或暂停。因而,在任何停止或暂停被消除之后,可以重置系统(如计算系统102)。例如,块280可以返回到过程200的块202以用更新后的、无破坏的、合适的部分120重新引导计算设备102。
此外,依照实施例,部分120可以监控部分130以确定部分130是否被破坏。部分120监控部分130的过程可以独立发生或在不包括控制器190监控部分120的系统中。但是,在这样的系统中,控制器190仍然需要向服务器180请求并从其接收部分130的固件更新数据。相反,部分120监控部分130的过程可以是包括控制器190监控部分120的上述说明的实施例,例如在那里在控制器190监控部分120之后部分120监控部分130。
例如,图3是通过网络更新固件的过程300的流程图。在块302,系统被引导或重置。例如,块302可以对应于上面对块202的说明。接着,在块303,控制器被启动或初始化,独立于系统继续引导、初始化、运行固件以及运行操作系统或处理的能力。例如,块303可以对应于上面为块203所做的说明。在块305,控制器(例如控制器190)被通知客户机系统的启动,例如计算系统102的启动。例如,块305可以对应于上面为块205所做的说明。
在块310,监控系统以确定固件是否遭到破坏。例如,部分120可以包括内置到部分120的固件中的方法或逻辑以监控、确定或发现部分130是否遭到破坏。
如上所述,还预期过程300的块310可以发生在图2中所示块225之后。因而,在过程200如图2中所示使用部分120提供了合适的引导之后,可以从块310执行过程300以确定部分130是否被破坏。
例如,在块310,部分120可以监控处理器140、运行在计算系统102上的操作系统、上述客户机芯片组(如图1的芯片组125)或其它硬件以确定部分130是否被破坏。此外,在块310,部分120可以执行基于校验和的检验、基于签名的检验和/或基于硬件的检验以确定部分130是否被破坏。块310还可以包括如上面为块210所述那样由控制器190监控芯片组125和/或监控计算系统102的操作系统以确定或检测部分130是否被破坏。
在块315,确定固件是否被破坏或挂起。例如,在块315,部分120可以判定部分130是否被破坏,例如被擦除、有“bug”或固件的功能或过程中有错误。判定块315可以包括根据上述关于块310的监控说明进行确定。例如,块315可以对应于部分120或控制器190监控客户机芯片组(如图1中的芯片组125),以根据部分130或其中的配置数据将处理器140、操作系统、启动、初始化和它们的期望响应进行比较。如果期望响应与芯片组中检测到的进度(例如,通过包括错误或“FF”消息)一致,部分130可以被看作是已遭破坏。
此外,块315可以包括确定处理器140是否被暂停或停止、确定计算系统102的启动或初始化过程是否被挂起、确定运行在计算系统102上的操作系统是否被停止、挂起或软关机、和/或确定计算系统102的固件(如固件110)是否被破坏或挂起。例如,块315可以对应于部分120执行或监控对部分130的基于校验和的检验、基于签名的检验或基于硬件的检验。
如果在块315判定部分130没有被破坏,处理继续到块325。在块325,固件和操作系统被允许执行。例如,块325可以对应于部分120和控制器190允许部分130继续或完成计算系统120的启动或初始化期间的执行。因而,块225可以对应于计算设备102被允许根据操作系统运行计算过程,例如将控制转让给操作系统。另外,依照实施例,在块225之后,计算设备102可以被允许检查自动更新(例如安排在特定时间上的或定时的更新)以更新固件110、部分120和/或部分130。例如,在“B”,如图3所示,过程200可以如图4所示在“B”上继续(例如,在如图4所示并关于图4说明的块415上继续)。
或者,在块315,如果判定部分130被破坏,处理继续到块318。在块318,初始化与控制器通信的硬件。例如,如果部分120判定部分130被破坏,部分120可以使用硬编码的系统参数初始化配置控制器190并与之通信所必须的最小硬件集合。部分120随后发送一个预定消息给控制器190,带有标识部分130被破坏的参数。同样,部分120可以发送一个预定消息到控制器190,带有请求部分120和/或130的更新或恢复的参数。部分120然后在上述由硬编码的系统参数初始化的硬件上轮询来自控制器的响应。
在块318之后,过程300继续到块330,在那里客户机系统标识被访问。块330可以对应于控制器190访问客户机系统(如计算系统102)的标识。例如,块330可以对应于上述块230。
在块330之后,处理继续到块340,在那里通过网络请求更新固件数据。例如,控制器190可以在网络170上用上面为块240所述的消息和系统标识信息,向服务器180请求部分120和/或130的更新数据。另外,在块340发送的系统标识信息可以包括为固件110的部分120和/或130请求的固件的标识。
在块340之后,处理继续到块345,在那里确定更新数据是否存在。块345可以对应于上述块245。例如,服务器180可能没有找到与所提供的系统标识对应的合适的更新固件数据,或者控制器190轮询硬件超时。
同时,运行在计算系统102中的控制器190监控为响应网络接口160或服务器180,并根据该响应采取适当动作。在判定块345,如果更新不存在,处理继续到块348,在那里向用户通知系统固件错误,如为块248所述。另外,在块348,控制器190向部分120发送表示没有获得部分130的固件的错误响应。因此,部分120可以接收到自控制器190发出的失败状态消息,并通知用户,例如通过显示器、嘀嘀声或其它计算系统102可用的方法。
在块345,如果更新数据存在,处理继续到块350,在那里更新数据被通过网络返回给控制器。块350可以对应于以上对块250的描述。处理然后在块360上继续,在那里控制器通过网络从服务器接收到更新数据。
在块360,控制器通过网络从服务器接收到更新数据。例如,控制器190可以通过网络170从服务器180接收到一个“成功”状态消息和固件更新数据。该固件更新数据可以包括原始固件、固件更新数据、部分120和/或130的固件更新映像。特别地,控制器190可以从服务器180下载部分120和/或130的更新数据,并且将该更新数据复制到系统存储器(如存储器142)中并发送一个成功状态消息给部分120。或者,控制器190可以准备一个控制台或服务器直通接口以将更新数据直接下载到部分120和/或130(例如通过用更新数据直接覆盖部分120和/或130中的当前数据)并发送成功状态消息给部分120。
接着,在块370,用该更新数据更新固件。例如,如果控制器190从服务器180接收到一个成功状态消息,控制器190可以用和该成功状态消息一起接收到的固件更新数据编程或覆盖部分120和/或130。此外,如果部分120接收到一个成功状态消息,部分120可以读取存储器(如存储器142)中存储的更新数据或者可以从上述直通接口考虑或读取数据,以将更新数据编程、写入或覆盖到部分120和/或130中。
在块380,固件110被恢复并且控制器190和/或部分120重置客户机系统。例如,部分120可以用系统专有的过程重置计算系统102。例如,块380可以返回过程300的块302以用最新的、可靠的、合适的部分130重新引导计算设备102。
因而,认为块230、240、245、248、250、260和270可以只应用于访问、请求、查询、返回、接收和更新部分130,例如由部分130控制在这些块中所采取的写或更新部分130的动作。或者,那些块可以应用于部分120和部分130,例如由控制器190在相同的动作集中控制那些动作来写或更新部分120和130。
另外,依照实施例,固件110可以被自动更新,例如通过检验并从服务器180接收更新而被在特定的时间或定时地更新(如更新部分120和/或130)。自动更新固件110的过程可以独立发生或发生在不包括控制器190监控部分120和/或部分120监控部分130的系统中。但是,在这样的系统中,控制器190仍然需要向服务器180请求并从其接收固件110的更新数据。相反,具有自动更新固件110的过程可以是包括控制器190监控部分120和/或部分120监控部分130的上述说明的实施例。
例如,图4是通过网络自动更新固件的过程400的流程图。在块402,系统被引导或重置。例如,块402可以对应于对块202的上述说明。接着,在块403,控制器被启动或初始化,独立于系统的能力以继续引导、初始化、运行固件、运行操作系统或处理。例如,块403可以对应于对块203的上述说明。在块405,控制器(如控制器190)被通知客户机系统起动,例如计算系统102的启动。例如,块405可以对应于对块205的上述说明。
在块415,监控系统以判定是否是自动更新固件110的全部或一部分的时间。依照实施例,控制器190或部分120可以包括监控时钟信号以确定是否是所选时间或自从上次自动更新或尝试已经过去的所选时间段的逻辑。因而,块415可能出现计算系统102的引导、处理器140、操作系统被或不被停止、阻塞、挂起或软关机。如果所选时间或时间段已经过去,现在就是自动更新部分120和/或部分130的时间。
如上所述,还预期过程400的块415可以发生在图3所示块325之后。因而,在过程300如图3中所示用部分130提供了适当的引导之后,可以执行从块415开始的过程400,以确定是否需要自动更新。
在块415,如果不是自动更新固件的时间,处理继续到块425。在块425固件和操作系统被允许执行。例如,块425可以对应于固件110和控制器190允许计算系统102的启动或初始化继续。块425还可以对应于计算设备102的操作系统正在运行时,因而可以允许计算设备102继续根据操作系统运行计算过程。
或者,在块415,如果是自动更新固件的时间,处理继续到块418。在块418,初始化与控制器通信的硬件。例如,如果是自动更新的时间,部分120可以使用硬编码的系统参数初始化配置控制器190并与之通信所必需的最小硬件集合。部分120随后发送一个预定消息给控制器190,带有标识到了自动更新部分120和/或部分130的时间的参数。
或者,部分120可以发送一个表示部分130被破坏和/或请求更新或恢复部分130的消息给控制器190。这种情况下,块418可以对应于对块318的上述说明。部分120然后在如上所述由硬编码的系统参数初始化的硬件上轮询来自控制器190的响应。例如,部分120可以监控网络接口160或控制器190,例如通过(经由网络接口160)轮询计算系统102的硬件以确定服务器180是否已经响应。
在块418之后,过程400继续到块430,在那里访问客户机系统标识。块430可以对应于控制器190访问客户机系统的标识(如计算系统102)和/或要自动更新的固件。例如,块430可以对应于上述230或330。此外,在块430,如果到了自动更新的时间,控制器190可以访问它的本地数据库以查找客户机系统标识以及固件110的修正信息、发布日期等。
在块440,控制器190使用系统标识信息通过网络向服务器请求更新数据。例如,控制器190可以发送一个包括系统标识的自动更新消息、请求固件更新消息或“核心遭破坏”消息给服务器180。
特别地,控制器190可以向服务器180发送一个包括客户机系统标识以及修正信息、发布日期(例如部分120和/或部分130的修正信息、发布日期等)等的预定消息。从控制器190到服务器180的消息的传递可以对应于对块240的说明。
因此,在块445,服务器180将从控制器190接收到的消息解释为自动更新请求,并在服务器180的数据库中查找比来自控制器190的消息中提供的修正信息、发布日期等更新或更晚的修正。或者,在块445,服务器180可以发送一个消息给IT管理员以请求该客户机系统的映像。
同时,运行在系统102中的控制器190为响应监控网络接口160或服务器180并根据该响应采取适当的动作。检索数据库、轮询并确定更新数据在服务器180是否存在可以对应于对块345的说明。例如,在判定块445,如果部分120的轮询判定控制器190在选择的超时时间段之前没有接收到来自服务器180的消息,处理继续到块448,在那里固件110向用户发送一个表示“网络不可用”(例如网络170)的消息,例如通过从计算系统102所显示的消息。
另外,在判定块445,如果更新不存在,例如服务器在所选超时时间段之前没有在服务器上找到匹配,服务器180向控制器190发送一个表示“无自动更新可用”的消息。然后,过程400继续到块448,在那里处理器190使用户被通知“无自动更新可用”,例如通过从计算系统102显示的消息。
此外,在块448,控制器190可以发送“无自动更新可用”消息给固件110。在固件110接收到“无自动更新可用”消息后,固件110可以使用户获得“网络不可用”的通知,例如通过从计算系统102显示的消息。在块448,在固件110接收到“无自动更新可用”或“网络不可用”消息后,固件110可以允许计算系统102继续引导、启动、初始化或运行操作系统,因为过程400是用于自动更新(例如假定固件没有被破坏或挂起)。
在块445,如果更新数据存在,处理继续到块450,在那里更新数据被通过网络返回控制器。块450可以对应于前面对块250的说明。例如,在块450,服务器180可以使用安全服务器会话、加密数据和/或网络分组返回一个“成功”状态消息以及计算系统102的固件映像的适当的后来的修正。处理随后继续到块460,在那里控制器通过网络从服务器接收到更新数据。
在块460,控制器通过网络从服务器接收到更新数据。例如,控制器190可能通过网络170从服务器180接收到一个“成功”状态消息和固件更新数据。该固件更新数据可以包含初始固件、固件更新数据、或固件110的全部或部分的固件更新映像。特别地,控制器190可以从服务器180下载固件110的更新数据并将该更新数据复制到系统存储器(如存储器142)中并发送一个成功状态消息给部分120。或者,控制器190可以准备一个控制台或服务器直通接口以将该更新数据直接下载到固件110(如通过用更新数据覆盖固件110中的当前数据)并发送一个成功状态消息给部分120。
接着,在块470,用该更新数据更新固件。例如,如果控制器190从服务器接收到一个成功状态消息,控制器190可以用和该成功状态消息一起接收到的固件更新数据编程或覆盖固件110(如部分120和部分130)。此外,如果部分120接收到一个成功状态消息,部分120可以读取存储器(如存储器142)中存储的更新固件数据或者从上述直通接口考虑或读取更新数据以用该更新数据编程、写或覆盖固件110。这里,部分120轮询硬件以获取响应,将从系统存储器(如存储器142)或通过服务器直通接口接收到该成功状态消息和更新或更晚修正的固件映像,以写或允许更新部分130。
在块480,更新固件110并且控制器190和/或部分固件110重置客户机系统。例如,部分120可以用系统专有的过程重置计算系统102。还预期块480可以返回过程400的块402,以用自动更新后的固件110重新引导计算设备102。
在前面的说明书中,描述了具体的实施例。但是,在不偏离如权利要求中所阐述的实施例的广义的精神和范围的前提下,可以进行各种改进和变化。因此,说明书和附图将被看作是说明性而非限制性的。

Claims (30)

1、一种装置,包括:
处理器,用来运行操作系统;以及
固件,具有包括配置数据的第一部分和第二部分,第一部分包括用来监控第二部分以确定第二部分是否被破坏的逻辑。
2、权利要求1的装置,其中第一部分包括固件,以监控客户机芯片组以根据配置数据比较处理器的进度和处理器的期望响应。
3、权利要求1的装置,其中第一部分与第二部分相耦合,并且包括监控第二部分以确定第二部分是否被停止或挂起的逻辑。
4、权利要求3的装置,其中第一部分包括当第二部分被破坏、停止或挂起时停止处理器的逻辑。
5、权利要求4的装置,其中第一部分包括在如果第二部分被破坏、停止或挂起时能够执行的电路或固件。
6、权利要求1的装置,其中第一部分包括监控时钟信号的逻辑,以确定是否是所选择的时间或者一段时间是否已经过去表明需要更新配置数据。
7、权利要求1的装置,其中第一部分被存储在受擦除保护的存储器中,该存储器包括硬编码的系统参数以发送表示第二部分遭破坏的预定消息给控制器。
8、权利要求7的装置,其中控制器包括嵌入式微控制器、固件和电路之一。
9、权利要求7的装置,其中第一部分包括对第二部分执行基于校验和的检查、基于签名的检查或基于硬件的检查的逻辑。
10、权利要求1的装置,其中第一部分被存储在控制器中,该控制器包括固件以便通过网络向服务器发送消息以请求最新配置数据、通过网络接收最新配置数据、并将返回的最新控制数据重写到第二部分。
11、权利要求10的装置,其中该消息包括包含该处理器和固件的计算系统的标识。
12、权利要求10的装置,其中该消息是为了从服务器的存储器中存储的数据库请求最新的配置数据。
13、权利要求10的装置,其中第一部分激活一个硬件部件以发送预定的通知信号、激活软件组件以发送预定的通信软件通知消息给控制器,以便向控制器表明计算系统的引导是否已经被启动。
14、权利要求1的装置,其中所述逻辑包括电路、固件、软件代码、数字数据和软件之一。
15、一种机器实现的方法,包括:
监控计算系统以确定该计算系统的固件是否被破坏;
如果该部分被破坏,从该计算系统通过网络请求更新数据以更新固件中被破坏的部分。
16、权利要求15的机器实现的方法,其中监控包括:
执行基于校验和的检查、基于签名的检查或基于硬件的检查。
17、权利要求15的机器实现的方法,其中监控包括:
如果固件被挂起或停止,确定固件被破坏。
18、权利要求15的机器实现的方法,还包括:
如果确定固件被破坏,使计算系统的处理器暂停处理。
19、权利要求18的机器实现的方法,其中请求更新包括:
在(1)固件被挂起或停止后或(2)处理器被暂停后请求更新。
20、权利要求19的机器实现的方法,还包括:
如果(1)固件被挂起或停止或(2)处理器被暂停,更新遭破坏的固件。
21、权利要求15的机器实现的方法,其中监控包括:
监控系统的进度;
检测根据固件的预期响应和进度之间的不一致性。
22、权利要求15的机器实现的方法,其中检测包括:
检测在计算系统的设备执行的功能和用固件中存储的设备配置确定的该设备的预期响应之间的差异。
23、一种机器实现的方法,包括:
通过网络连接接收固件更新数据;
用该固件更新数据更新计算系统的固件;
其中计算系统的固件被停止则接收和更新发生。
24、权利要求23的机器实现的方法,其中该固件包括第一部分和第二部分,并且更新包括由固件的第一部分用通过网络请求到的最新的第二部分数据更新固件的第二部分。
25、权利要求23的机器实现的方法,其中更新包括:
用通过网络请求到的最新的第一部分数据更新固件的第一部分;
由第一部分用请求到的最新的第二部分数据更新固件的第二部分。
26、权利要求23的机器实现的方法,其中更新包括:
用计算系统的唯一标识请求固件更新数据;
通过网络从服务器接收固件更新数据;
将固件更新数据返回给固件,或者将固件更新数据重写到固件。
27、权利要求23的机器实现的方法,其中更新包括更新固件以消除固件的功能或过程中的错误、向固件添加功能或过程、以及增强固件的功能或过程。
28、权利要求23的机器实现的方法,其中接收包括使用安全服务器会话或使用加密数据。
29、权利要求23的机器实现的方法,其中更新包括在所选择的时间上或者在所选择的时间间隔之后请求固件的固件更新数据。
30、权利要求29的机器实现的方法,其中所述所选择的时间或所选择的时间间隔是由管理员选择的,或者是在计算系统的部分的制造期间选择的。
CNB2005800331959A 2004-09-30 2005-09-29 通过网络对固件的自监控和更新 Expired - Fee Related CN100461128C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/957,444 2004-09-30
US10/957,444 US7376870B2 (en) 2004-09-30 2004-09-30 Self-monitoring and updating of firmware over a network

Publications (2)

Publication Number Publication Date
CN101031890A true CN101031890A (zh) 2007-09-05
CN100461128C CN100461128C (zh) 2009-02-11

Family

ID=36000845

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800331959A Expired - Fee Related CN100461128C (zh) 2004-09-30 2005-09-29 通过网络对固件的自监控和更新

Country Status (7)

Country Link
US (1) US7376870B2 (zh)
KR (1) KR100901903B1 (zh)
CN (1) CN100461128C (zh)
DE (1) DE112005002404B4 (zh)
GB (1) GB2432694B (zh)
TW (1) TWI306193B (zh)
WO (1) WO2006039593A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081534A (zh) * 2009-11-30 2011-06-01 英特尔公司 自动模块化且安全的引导固件更新
CN106199395A (zh) * 2016-07-20 2016-12-07 四川泰瑞创通讯技术股份有限公司 检测光模块固件丢失的测试方法
JP2019016218A (ja) * 2017-07-07 2019-01-31 富士通株式会社 情報処理装置、制御装置および情報処理装置の制御方法
CN117850848A (zh) * 2024-03-07 2024-04-09 四川华鲲振宇智能科技有限责任公司 一种自动识别服务器类型自动升级bios的方法

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0221638D0 (en) * 2002-09-17 2002-10-30 Ibm Device system and method for predictive failure analysis
US7401212B2 (en) * 2004-11-01 2008-07-15 Microsoft Corporation Self-contained computer servicing device
US7904518B2 (en) 2005-02-15 2011-03-08 Gytheion Networks Llc Apparatus and method for analyzing and filtering email and for providing web related services
US7596687B2 (en) * 2005-06-06 2009-09-29 Dell Products L.P. System and method for information handling system interoperable firmware storage
JP2007025933A (ja) * 2005-07-14 2007-02-01 Hitachi Ltd ストレージシステム及びそのファームウェア自動更新方法
US20070028149A1 (en) * 2005-08-01 2007-02-01 Dell Products L.P. System, method, and computer program product for reducing error causing conditions in an information handling system
JP5452836B2 (ja) * 2006-03-31 2014-03-26 日本電気株式会社 資格審査システムおよびその審査方法ならびに資格審査装置
US20070255937A1 (en) * 2006-04-26 2007-11-01 Sheng-Hsin Lo Basic input / output system (BIOS) set-value access method
US20080010519A1 (en) * 2006-06-27 2008-01-10 Quantum Corporation Front panel wizard for extracting historical event information
US7610482B1 (en) * 2006-06-28 2009-10-27 Qlogic, Corporation Method and system for managing boot trace information in host bus adapters
US8122234B1 (en) * 2006-08-22 2012-02-21 Marvell International Ltd. Flash memory backup system for network devices
KR101324187B1 (ko) * 2006-08-24 2013-11-06 삼성전자주식회사 디스플레이장치 및 그 정보갱신방법
US20080126784A1 (en) * 2006-08-28 2008-05-29 Fujitsu Limited Storage apparatus, control method, and control device
KR100782080B1 (ko) * 2006-09-07 2007-12-04 삼성전자주식회사 이동 통신 단말기 및 시스템의 펌웨어 갱신 방법
US8712567B2 (en) * 2006-12-22 2014-04-29 Aviat U.S., Inc. Manufactured product configuration
US8041444B2 (en) 2006-12-22 2011-10-18 Harris Stratex Networks Operating Corporation Intelligent production station and production method
US11316688B2 (en) 2006-12-29 2022-04-26 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US9569587B2 (en) 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
JP2008181228A (ja) * 2007-01-23 2008-08-07 Sony Corp 管理システムおよび管理方法、端末装置、管理サーバ、並びにプログラム
CN101295253B (zh) * 2007-04-28 2011-06-15 佛山市顺德区顺达电脑厂有限公司 一种更新韧体的方法
US8181245B2 (en) * 2007-06-19 2012-05-15 Microsoft Corporation Proxy-based malware scan
US8069344B2 (en) * 2007-09-14 2011-11-29 Dell Products L.P. System and method for analyzing CPU performance from a serial link front side bus
US20090075641A1 (en) * 2007-09-18 2009-03-19 Metropcs Wireless, Inc. Automated over-the-air firmware update for a wireless phone
US20090204639A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Selective content replacement for media players
TWI421765B (zh) * 2008-04-01 2014-01-01 Mstar Semiconductor Inc 可自動更新韌體之顯示控制裝置及其更新方法
US7783731B2 (en) * 2008-05-27 2010-08-24 Microsoft Corporation Firmware cache coherence
US7788351B2 (en) * 2008-05-27 2010-08-31 Microsoft Corporation Scalable transfer feedback
US20100107148A1 (en) * 2008-10-28 2010-04-29 International Business Machines Corporation Check-stopping firmware implemented virtual communication channels without disabling all firmware functions
US9098555B2 (en) * 2008-11-25 2015-08-04 Dell Products L.P. Method and system for health scoring information systems, users, and updates
JP2010140361A (ja) * 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US8543803B2 (en) * 2009-02-20 2013-09-24 Lenovo (Singapore) Pte Ltd Apparatus, system, and method for accurate automated scheduling of computer suspend and resume
TWI450095B (zh) * 2009-02-27 2014-08-21 Hon Hai Prec Ind Co Ltd 擴充裝置及具有擴充裝置之列印系統
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US9565207B1 (en) * 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US20110119473A1 (en) * 2009-10-15 2011-05-19 Nokia Corporation Virtual Platform Configuration Validation
KR101108679B1 (ko) * 2009-11-04 2012-01-25 삼성메디슨 주식회사 자가진단 및 복원기능을 갖는 초음파 진단 방법 및 시스템
GB2476931A (en) * 2010-01-12 2011-07-20 Fujitsu Serv Ltd Firmware update system using a system monitoring chip with associated memory
US8578148B2 (en) * 2010-01-22 2013-11-05 Broadcom Corporation Method and system to transmit code to a system on a chip (SOC)
US8938753B2 (en) 2010-05-12 2015-01-20 Litl Llc Configurable computer system
US9436219B2 (en) * 2010-05-12 2016-09-06 Litl Llc Remote control to operate computer system
JP5565103B2 (ja) * 2010-05-27 2014-08-06 ソニー株式会社 デバイス、撮像装置、撮像システム、デバイスの制御方法およびプログラム
US20120102414A1 (en) * 2010-10-21 2012-04-26 Hilmar Demant Distributed controller of a user interface framework for web applications
US8788883B2 (en) 2010-12-16 2014-07-22 Dell Products L.P. System and method for recovering from a configuration error
CN102750155A (zh) * 2011-04-19 2012-10-24 鸿富锦精密工业(深圳)有限公司 用于更新固件的控制板、固件更新系统及方法
JP5486628B2 (ja) * 2011-04-28 2014-05-07 キヤノン株式会社 撮像装置
KR101845512B1 (ko) * 2011-08-10 2018-04-04 삼성전자주식회사 메모리 시스템의 초기화 방법
CN103164301B (zh) * 2011-12-15 2018-01-26 富泰华工业(深圳)有限公司 便携式检测装置及其检测方法
US9405707B2 (en) 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
US9411748B2 (en) 2011-12-20 2016-08-09 Intel Corporation Secure replay protected storage
US9934044B2 (en) * 2012-03-30 2018-04-03 Lenovo (Singapore) Pte. Ltd. Methods for customizing an operating system at an information handling device
US9182970B2 (en) 2012-03-30 2015-11-10 Lenovo (Singapore) Pte. Ltd. Methods for creating device preload via manufacturing and cloud content
US9369305B1 (en) 2012-04-05 2016-06-14 IPKeys Technologies LLC Short message service (SMS)-enabled open automated demand response (OpenADR) server and related communications systems and methods
TWI485624B (zh) * 2012-04-17 2015-05-21 Asustek Comp Inc 應用程式安裝方法與行動裝置
US8972792B2 (en) * 2012-04-19 2015-03-03 Blackberry Limited Methods, apparatus, and systems for electronic device recovery
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US9110761B2 (en) 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US9015694B2 (en) 2012-10-31 2015-04-21 Aruba Networks, Inc Cloud-based firmware distribution service
TWI571801B (zh) * 2012-11-14 2017-02-21 中興保全股份有限公司 可分段更新程式之電子裝置
US9535185B2 (en) * 2012-12-04 2017-01-03 Schlumberger Technology Corporation Failure point diagnostics in cable telemetry
KR20140099757A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 전자장치 및 전자장치의 펌웨어 업그레이드 방법
TWI479421B (zh) * 2013-02-04 2015-04-01 Wistron Corp 開機方法與電子裝置
US20140258699A1 (en) * 2013-03-07 2014-09-11 Aspeed Technology Inc. Boot fault tolerant device and method thereof
US10353765B2 (en) 2013-03-08 2019-07-16 Insyde Software Corp. Method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time-window
US9032423B2 (en) 2013-06-21 2015-05-12 Microsoft Technology Licensing, Llc Dependency based configuration package activation
CN105247482B (zh) * 2013-06-28 2019-10-22 三星电子株式会社 更新应用的方法和装置
TWI496086B (zh) * 2013-08-29 2015-08-11 Aic Inc 伺服器的基本輸入輸出系統更新方法
US20150113263A1 (en) * 2013-10-23 2015-04-23 Aic Inc. Method for updating basic input/output system of server
CN104679530B (zh) * 2013-11-26 2017-12-29 英业达科技有限公司 服务器系统与固件更新方法
US9367421B2 (en) * 2013-12-20 2016-06-14 Netapp, Inc. Systems, methods, and computer programs products providing relevant correlation of data source performance
TWI607379B (zh) * 2014-02-25 2017-12-01 Insyde Software Corp Remote maintenance terminal device method, terminal device to be repaired, recording medium and program product
TWI598815B (zh) * 2014-07-01 2017-09-11 微星科技股份有限公司 用以供更新基本輸入輸出系統之橋接模組及其更新方法
KR101710888B1 (ko) * 2015-07-30 2017-02-28 한국기술교육대학교 산학협력단 태양광 발전설비의 관리 서비스 플랫폼 및 그 제공방법
US9875093B2 (en) * 2015-09-14 2018-01-23 Quanta Computer Inc. Rack server device firmware update using network switch
US10089105B2 (en) * 2015-11-23 2018-10-02 Dell Products L.P. Systems and methods for bios update optimization
US20170192796A1 (en) * 2015-12-30 2017-07-06 Robert Bosch Gmbh Methods and systems for configuring a device using a firmware configuration block
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
FI3769493T3 (fi) * 2018-03-23 2023-02-22 Signify Holding Bv Menetelmä ja laitteet langattoman siirtotien, ota, päivityksen suorittamiseksi viestinnällisesti yhdistettyjen laitteiden verkossa
JP7408937B2 (ja) * 2018-08-10 2024-01-09 株式会社デンソー センター装置,配信パッケージの生成方法及び配信パッケージ生成用プログラム
US11012853B2 (en) 2018-11-20 2021-05-18 Parallel Wireless, Inc. Secure software update in a wireless mesh radio network using peer-to-peer file sharing
TWI716767B (zh) * 2018-11-20 2021-01-21 和碩聯合科技股份有限公司 資料更新系統、嵌入式電子裝置以及資料更新方法
US11733994B2 (en) * 2019-05-03 2023-08-22 EMC IP Holding Company LLC System and method for state management
US10921871B2 (en) 2019-05-17 2021-02-16 Trane International Inc. BAS/HVAC control device automatic failure recovery
CN112241277A (zh) * 2019-07-19 2021-01-19 瑞昱半导体股份有限公司 Ic固件更新方法
TWI723477B (zh) * 2019-07-25 2021-04-01 宜鼎國際股份有限公司 電子設備、可遠端維護電子設備運作的系統及方法
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
US11579592B2 (en) 2019-08-12 2023-02-14 Battelle Energy Alliance, Llc Systems and methods for control system security
JP7266216B2 (ja) * 2020-01-31 2023-04-28 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法
US11379212B2 (en) * 2020-08-31 2022-07-05 Microsoft Technology Licensing, Llc Systems and methods for disaggregating system firmware configuration data into a management subsystem for seamless updates
KR102519132B1 (ko) * 2020-09-18 2023-04-07 한국전자기술연구원 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템 및 방법
US20230289446A1 (en) * 2022-03-09 2023-09-14 Dell Products L.P. Secure multi-bios-image system
KR102564242B1 (ko) * 2022-12-27 2023-08-09 이동휘 스마트팜시스템 및 스마트팜용 온라인 업데이트 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5938764A (en) * 1996-10-23 1999-08-17 Micron Electronics, Inc. Apparatus for improved storage of computer system configuration information
EP0934563A1 (en) 1997-05-30 1999-08-11 Koninklijke Philips Electronics N.V. Failsafe method for upgrading set-top system software from a network server
US6357021B1 (en) * 1999-04-14 2002-03-12 Mitsumi Electric Co., Ltd. Method and apparatus for updating firmware
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US6622246B1 (en) 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware
JP3881145B2 (ja) 2000-01-31 2007-02-14 株式会社リコー 画像形成装置管理システム
US6971095B2 (en) * 2000-05-17 2005-11-29 Fujitsu Limited Automatic firmware version upgrade system
US6732267B1 (en) * 2000-09-11 2004-05-04 Dell Products L.P. System and method for performing remote BIOS updates
US7194526B2 (en) * 2000-09-22 2007-03-20 Kyocera Corporation Network device management method, and network devices
US20030217357A1 (en) 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US7043664B1 (en) * 2002-10-31 2006-05-09 Microsoft Corporation Firmware recovery
US7246266B2 (en) * 2002-11-21 2007-07-17 Chris Sneed Method and apparatus for firmware restoration in modems

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081534A (zh) * 2009-11-30 2011-06-01 英特尔公司 自动模块化且安全的引导固件更新
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
CN102081534B (zh) * 2009-11-30 2015-09-02 英特尔公司 自动模块化且安全的引导固件更新
US9483246B2 (en) 2009-11-30 2016-11-01 Intel Corporation Automated modular and secure boot firmware update
CN106199395A (zh) * 2016-07-20 2016-12-07 四川泰瑞创通讯技术股份有限公司 检测光模块固件丢失的测试方法
JP2019016218A (ja) * 2017-07-07 2019-01-31 富士通株式会社 情報処理装置、制御装置および情報処理装置の制御方法
CN117850848A (zh) * 2024-03-07 2024-04-09 四川华鲲振宇智能科技有限责任公司 一种自动识别服务器类型自动升级bios的方法

Also Published As

Publication number Publication date
US20060075276A1 (en) 2006-04-06
GB0704916D0 (en) 2007-04-25
US7376870B2 (en) 2008-05-20
GB2432694B (en) 2009-09-02
GB2432694A (en) 2007-05-30
WO2006039593A2 (en) 2006-04-13
CN100461128C (zh) 2009-02-11
TWI306193B (en) 2009-02-11
TW200627140A (en) 2006-08-01
DE112005002404T5 (de) 2007-08-09
KR100901903B1 (ko) 2009-06-10
DE112005002404B4 (de) 2017-02-23
WO2006039593A3 (en) 2007-04-12
KR20070046963A (ko) 2007-05-03

Similar Documents

Publication Publication Date Title
CN101031890A (zh) 通过网络对固件的自监控和更新
US7143275B2 (en) System firmware back-up using a BIOS-accessible pre-boot partition
US9921915B2 (en) Baseboard management controller recovery
CN1191526C (zh) 用于计算机系统的可恢复软件安装方法和装置
TWI471726B (zh) 快取資料與元資料之管理
CN1118750C (zh) 初始化和重新启动操作系统
US9665469B2 (en) System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices
US8918778B2 (en) Method of fail safe flashing management device and application of the same
US7313685B2 (en) Unattended BIOS recovery
US7809985B2 (en) Offline hardware diagnostic environment
US20050223291A1 (en) Methods and apparatus to provide an execution mode transition
CN106155657A (zh) Uefi 固件的方法及其计算机系统
KR20050086494A (ko) 시스템 부팅시 하드웨어를 구성하는 동안 사용자의 상호작용을 없애기 위한 시스템 및 장치
CN102591675A (zh) 使用共享存储块管理多软件镜像的方法和系统
KR102226558B1 (ko) 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법
CN109213301A (zh) 支援省电模式的uefi壳程序方法及其电脑系统
TWI764454B (zh) 韌體損壞恢復技術
US11467849B2 (en) Systems and methods for collecting deep operating system (OS) telemetry
JP2015060411A (ja) 情報処理装置のファームウェア更新方法
KR101850275B1 (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
JP4680679B2 (ja) コンピュータ端末用記憶媒体
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
KR101850272B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US20100115333A1 (en) Dynamic driver loading for recovery boot media

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090211

Termination date: 20180929

CF01 Termination of patent right due to non-payment of annual fee