CN100342336C - 基本输入输出系统在线升级的方法 - Google Patents

基本输入输出系统在线升级的方法 Download PDF

Info

Publication number
CN100342336C
CN100342336C CNB2004100866960A CN200410086696A CN100342336C CN 100342336 C CN100342336 C CN 100342336C CN B2004100866960 A CNB2004100866960 A CN B2004100866960A CN 200410086696 A CN200410086696 A CN 200410086696A CN 100342336 C CN100342336 C CN 100342336C
Authority
CN
China
Prior art keywords
bios
upgrade
upgrading
bios program
program
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.)
Expired - Fee Related
Application number
CNB2004100866960A
Other languages
English (en)
Other versions
CN1786909A (zh
Inventor
邱锦
郑朝晖
马晓刚
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100866960A priority Critical patent/CN100342336C/zh
Publication of CN1786909A publication Critical patent/CN1786909A/zh
Application granted granted Critical
Publication of CN100342336C publication Critical patent/CN100342336C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基本输入输出系统在线升级的方法,用于对引导设备操作系统启动的BIOS程序实现在线升级,所述方法包括:将用于升级的BIOS程序加载到BIOS程序掉电保持介质中;设置BIOS升级状态标志并保存到标志保存掉电保持介质中;当所述设备重新启动后,根据BIOS升级状态标志运行用于升级的BIOS程序;如果用于升级的BIOS程序运行失败,则运行原BIOS程序。利用本发明,可以避免BIOS升级失败引起设备无法正常启动的风险,保证设备的正常启动。

Description

基本输入输出系统在线升级的方法
技术领域
本发明涉及计算机、通信设备系统升级技术,具体涉及一种基本输入输出系统在线升级的方法。
背景技术
计算机、通信设备的运行通常需要两种软件,分别为BIOS(基本输入输出系统)和单板上的业务软件。设备启动时,首先运行引导程序BIOS,然后由BIOS来引导业务软件运行。BIOS一般放在E2PROM/EPROM/FLASH(电可改写存储器/可编程只读存储器/闪存)中。在系统启动时,BIOS一方面需要完成CPU(中央处理单元)系统相关资源的初始化操作;另一方面,由于通信设备中的单板只是整个设备中的某一处理单元,该单元要想在通信设备中发挥作用就必须和其他单元建立网络连接,因此,BIOS中包含了一个最简操作系统,通过该最简操作系统,BIOS的引导程序完成与服务器端网络连接的建立和整机软件的文件传送。
典型的BIOS上电引导流程如图1所示,包括以下过程:
(1)CPU系统相关资源初始化:包括对寄存器资源、总线时钟、RAM(可读写存储器)属性、CACHE(高速缓冲存储器)、基本输入/输出等资源的初始化操作,这些相关资源根据单板上CPU系统类型的不同而有所不同。
(2)将最简操作系统搬移到RAM:只有将最简操作系统搬移到RAM才能使系统有足够的资源。根据用户设计的不同,最简操作系统的程序可能进行压缩后才放到BIOS中,因此该过程还可能包括解压缩的工作。
(3)BOOTP(引导协议)处理:单板通过BOOTP的在线广播与服务器端建立联系,并获取本板的整机软件文件信息。
BOOTP是一种基于UDP/IP(用户数据包协议/因特网协议)的协议。这种协议允许正在启动的主机动态配置而无需用户监督。BOOTP主要用于客户机从服务器获得自己的IP地址,服务器的IP地址以及启动映象文件名。此外通过BOOTP,其他一些装置信息,如本地子网掩码、本地时间偏移量、默认路由器地址和各种Internet服务器地址,都能与客户机交流。
BOOTP使用TCP/IP网络协议中的两个不同的“著名”通讯端口UDP67/68。UDP 67用于服务器,UDP 68用于BOOTP客户机。客户机启动时,本身还没有IP地址,这时BOOTP客户机就以广播的形式发出IP地址查询的请求包,这个请求包中包含了客户机物理地址以及已知的IP地址。客户使用地址255.255.255.255发送广播,这种特殊地址即称之为有限广播地址。客户机等待服务器的响应,如果在特定时间段内没有收到响应,客户机就重新发出请求。
(4)整机软件搬移到RAM(静态读写存储器):根据整机软件文件信息,BIOS引导程序通过FTP/TFTP(文件传输协议/小文件传输协议)等文件传输协议,从服务器端将整机软件搬移到RAM(随机存取存储器)中,或是直接从FLASH(闪存)中搬移整机软件到RAM中。
完成整机软件的搬移后,BIOS引导程序跳转到整机软件的入口,整个引导流程结束。
由此可见,BIOS在设备启动过程中起着至关重要的作用,中间任何一个小的步骤出错都会导致系统无法启动,甚至崩溃,而且BIOS设置不当也会给系统造成隐患。
BIOS一般被放在FLASH中,可以通过软件进行在线升级。升级方式采用直接覆盖FLASH中原有BIOS程序的方法实现。采用这种方式如果BIOS在线升级过程中出现异常(例如文件传输异常、FLASH读写异常等软件无法识别的异常)或用于升级的BIOS引导程序本身存在缺陷,单板将无法正常启动。除非通过一些其他硬件手段,否则升级失败的单板将由于BIOS引导失败而无法使用,甚至会造成单板瘫痪的风险。
发明内容
本发明要解决的技术问题是提供一种BIOS在线升级的方法,以克服现有技术中采用直接覆盖FLASH中原有BIOS的升级方式时对设备正常启动产生的潜在风险,保证BIOS在线升级的安全性。
为此,本发明提供如下的技术方案:
一种BIOS在线升级的方法,用于对引导设备操作系统启动的BIOS程序实现在线升级,所述方法包括:
A、将用于升级的BIOS程序加载到BIOS程序掉电保持介质中;
B、设置BIOS升级状态标志并保存到标志保存掉电保持介质中,所述BIOS升级状态标志包括:升级标志、升级结果标志、用于升级的BIOS程序首指令地址;
C、当所述设备重新启动后,判断BIOS是否需要升级,如果不需要升级,则直接运行原BIOS程序,并不再执行以下步骤;如果需要升级,则再根据所述升级结果标志判断BIOS升级是否已失败,如果升级已失败,则直接运行原BIOS程序,并不再执行以下步骤,否则如果升级没有失败,则跳转到所述用于升级的BIOS程序首指令地址运行所述用于升级的BIOS程序;其中:判断BIOS是否需要升级系根据程序指令寄存器指针判断当前BIOS的版本,如果是已升级后的BIOS,则直接运行该BIOS程序,否则,根据所述升级标志判断BIOS是否需要升级;
D、如果所述用于升级的BIOS程序运行失败,则运行原BIOS程序。
所述步骤A具体为:通过文件传输协议将所述用于升级的BIOS程序从升级服务器上加载到BIOS程序掉电保持介质中。
可选地,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
如果MIN(MAX(a,b),PC)=a,则当前BIOS的版本为原BIOS程序;
如果MIN(MAX(a,b),PC)=b,则当前BIOS的版本为已升级后的BIOS程序。
可选地,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
如果MAX(MAX(a,b),PC)=a,则当前BIOS的版本为已升级后的BIOS程序;
如果MAX(MAX(a,b),PC)=b,则当前BIOS的版本为原BIOS程序。
可选地,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
当所述用于升级的BIOS程序的首指令地址和所述原BIOS程序的首指令地址基于BIOS文件长度对齐时,
如果(a|b)&PC=a,则当前BIOS的版本为原BIOS程序;
如果(a|b)&PC=b,则当前BIOS的版本为已升级后的BIOS程序。
所述步骤D包括:
如果所述用于升级的BIOS程序运行失败,则修改所述BIOS升级状态标志;
当所述设备重新启动后,根据所述修改后的BIOS升级状态标志运行原BIOS程序。
所述BIOS程序掉电保持介质和标志保存掉电保持介质包括:闪存、电可改写存储器。
所述BIOS程序掉电保持介质和标志保存掉电保持介质为同一芯片。
由以上本发明提供的技术方案可以看出,本发明采用“初始备份”的方式,将用于升级的BIOS存放到FLASH中不与原有BIOS冲突的其他位置,通过初始BIOS的跳转操作实现BIOS的在线升级。如果BIOS升级失败,再次上电时BIOS将自动回退到“初始备份”的BIOS引导启动,从而避免了在BIOS升级过程中,由于BIOS升级失败,比如BIOS升级程序出现异常或用于升级的BIOS程序本身存在的缺陷引起的失败,对设备产生的潜在风险,提高了BIOS升级的安全性,使设备不论BIOS升级成功还是失败都能正常启动。
附图说明
图1是BIOS上电引导流程;
图2是本发明方法的流程图;
图3是本发明方法中BIOS的状态变化示意图;
图4是本发明方法中原BIOS的升级处理流程图;
图5是本发明方法中待升级的BIOS的升级处理流程图;
图6是本发明方法中整机软件BIOS的设计流程图。
具体实施方式
本发明的核心在于将用于升级的BIOS存放到FLASH中不与原有BIOS冲突的其他位置,通过设置BIOS升级相关标志,在原有BIOS运行时根据设置的BIOS升级相关标志跳转到用于升级的BIOS首指令地址,运行新的BIOS程序。如果新的BIOS程序运行正常,则实现了BIOS的在线升级。如果BIOS升级失败,同样根据设置的BIOS升级相关标志自动回退到原有BIOS首指令地址,由原BIOS程序引导设备正常启动。
本技术领域人员知道,所谓在线升级,就是通过互连网连接升级站点,搜索需更新的文件进行下载,这样就可以确保软件功能随时得到更新。BIOS作为CPU小系统的基本输入输出系统,对设备的运行起着非常关键的作用。为了避免BIOS在线升级过程中出现异常或者用于升级的BIOS引导程序本身存在缺陷而导致设备无法正常启动,本发明下载用于升及的BIOS时并不直接将原有BIOS覆盖,而是将新的BIOS放在一种掉电保持介质中,比如,E2PROM、FLASH,当然,也可以和原有BIOS放在同一个芯片中,只要不与初始BIOS发生冲突的其他位置都可以。这样,通过初始BIOS的跳转操作实现BIOS的在线升级目的,从而使得初始BIOS在FLASH中存在“备份”。由于用于升级的BIOS程序的运行可能成功,也可能会失败。这样,就可保证在BIOS升级后,不论升级是否成功,都可选择相应的BIOS程序使设备正常启动。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图2,图2示出了本发明方法的流程:
首先,在步骤201:将用于升级的BIOS程序加载到BIOS程序掉电保持介质中。比如,通过文件传输协议将用于升级的BIOS程序从升级服务器上加载到BIOS程序掉电保持介质中。所述掉电保持介质可以是FLASH(闪存)、E2PROM(电可改写存储器)等。
用于升级的BIOS可以放在不同的掉电保持介质中,为了使设计简单、方便,可以将用于升级的BIOS程序直接加载到保存原BIOS的同一芯片中,只要不与原BIOS地址冲突即可,也就是说不会覆盖原BIOS程序的位置。这样,在同一个FLASH中将有两个BIOS引导程序存在,起到了备份的作用。在升级时,通过原BIOS程序的跳转操作实现BIOS的在线升级;同样,如果升级失败,则还可以跳转到原BIOS程序运行,因而不会影响设备的启动。
然后,进到步骤202:设置BIOS升级状态标志并保存到标志保存掉电保持介质中。可以将这些标志保存到单独的FLASH或E2PROM中,当然也可以将其直接存储在原BIOS所在的掉电保持介质中。
BIOS升级状态标志包括:升级标志、升级结果标志、用于升级的BIOS程序首指令地址。当设备启动后,BIOS程序根据这些标志即可判断是否需要升级或者升级是否成功或待验证,以便决定运行哪个BIOS版本。
步骤203:当设备重新启动后,根据BIOS升级状态标志运行用于升级的BIOS程序,具体包括以下过程:
当设备重新启动后,首先根据PC(程序指令寄存器)指针判断当前BIOS的版本,因为如果BIOS已经升级且升级成功,则PC指针会处在用于升级的BIOS程序的首指令地址,此时则可以直接运行该BIOS程序,而没有必要再去判断是否需要对BIOS升级。在本发明中,采用PC指针的地址区间算法实现对当前BIOS的版本的判断,具体判断方式将在后面作详细说明。
根据上述原理,如果是已升级后的BIOS,则直接运行该BIOS程序;
如果BIOS还未升级,则需要再根据升级标志判断BIOS是否需要升级。
如果不需要升级,则直接运行原BIOS程序;
如果需要升级,则再根据升级结果标志判断BIOS升级是否已失败;
如果升级已失败,则直接运行原BIOS程序;
否则,跳转到用于升级的BIOS程序首指令地址运行用于升级的BIOS程序,即对原BIOS程序进行升级。
运行用于升级的BIOS程序时有可能成功,也可能会失败,比如用于升级的BIOS程序本身的故障、运行过程中外界引起的故障。
因此,进到步骤204:如果用于升级的BIOS程序运行失败,则修改BIOS升级状态标志。
然后,进到步骤205:当设备重新启动后,根据修改后的BIOS升级状态标志运行原BIOS程序。
在上述BIOS升级过程中,BIOS的状态会不断地发生变化,将原BIOS表示为BIOS0,将用于升级的BIOS表示为BIOS1,则可用图3描述在上述本发明方法的实现流程中BIOS的状态变化过程:
首先,将BIOS1写入单板FLASH中,并设置相关升级标志,此时BIOS为“欲升级状态”;然后,复位设备,进行第一次BIOS0到BIOS1的跳转运行,此时BIOS进入“验证状态”;如果BIOS1引导程序运行正常,则BIOS进入“验证成功状态”;如果BIOS1引导程序运行异常,则BIOS进入“验证回退状态”;再次复位设备,如果BIOS状态为“验证成功状态”则通过BIOS1引导启动,否则回退到BIOS0引导启动。
在前面已经提到,在本发明中,采用PC指针的地址区间算法实现对当前BIOS的版本的判断,下面将对其实现原理作详细描述。
由于PC指针指向的是处理器执行的下一条指令地址,所以通过PC指针可以计算出当前指令执行的代码段区间。设原BIOS的首指令地址为a,用于升级的BIOS的首地址为b,PC指针的地址区间为c,有以下几种判断方法:
(1)c=min(max(a,b),PC)
当a>b时,max(a,b)=a,
如果c=a,则为BIOS0引导程序,否则c=PC,为BIOS1引导程序;
当a<b时,max(a,b)=b,
如果c=b,则为BIOS1引导程序,否则c=PC,为BIOS0引导程序。
可见,依据上式c=min(max(a,b),PC)可得出以下结论:
如果c=a,则为BIOS0引导程序,否则c=PC,为BIOS1引导程序;
如果c=b,则为BIOS1引导程序,否则c=PC,为BIOS0引导程序。
例如:假设a=0xFFF00100;b=0xFFE00000;PC=0x0xFFE01200;
c=min(max(a,b),PC);
因为a>b,max(a,b)=a,则c=min(a,PC)=PC≠a,所以当前指令执行的代码段区间为BIOS1。
(2)c=max(max(a,b),PC)
当a>b时,max(a,b)=a,
如果c=a,则为BIOS1引导程序,否则c=PC为BIOS0引导程序;
当a<b时,max(a,b)=b,
如果c=b,则为BIOS0引导程序,否则c=PC为BIOS1引导程序。
可见,依据上式c=max(max(a,b),PC)可得出以下结论:
如果c=a,则为BIOS1引导程序,否则c=PC为BIOS0引导程序;
如果c=b,则为BIOS0引导程序,否则c=PC为BIOS1引导程序。
例如:假设a=0xFFF00100;b=0xFFE00000;PC=0x0xFFF05200;
c=max(max(a,b),PC)
因为a>b,max(a,b)=a,则c=max(a,PC)=a,所以当前指令执行的代码段区间为BIOS0。
通常,BSP(板级支持包)设计人员在划分地址空间时会按照“最小区间对齐的方法”进行地址划分,例如,某区间的内存页为256字节时,因为最小区间的大小为256字节(对应0x100字节),所以,该区间的起始地址就是0xXXXXX100或0xXXXXX700,而不会是0xXXXXX123。
因此,如果BIOS0和BIOS1的起始地址基于BIOS文件长度对齐(即如果BIOS文件长度为1M,则起始地址的低20bit为0),则可采用下述更简单的地址区间算法:
设BIOS0的首指令地址为a,BIOS1的首地址为b,PC指针的地址区间为c,则c=(a|b)&PC;
如果c=a,则为BIOS0引导程序;
如果c=b,则为BIOS1引导程序。
例如:假设a=0xFFF00000;b=0xFFE00000;PC=0x0xFFF05200;
则c=(a|b)&PC=0xFFF00000=a,所以为BIOS0引导程序。
为了使BIOS程序能够自动完成升级,需要在原BIOS程序的引导操作前添加BIOS升级控制流程,并在原BIOS程序的引导操作后添加BIOS升级结果处理流程,即与现有技术中BIOS的引导操作流程相比,在其前后添加了BIOS1的升级处理流程,由这些流程控制BIOS的升级以及升级失败后BIOS程序的回退。下面将结合附图对其作详细说明。
在本发明中,主要是通过设置并保存到标志保存掉电保持介质中的BIOS升级状态标志来选择运行的BIOS版本,这些标志包括:升级标志、升级结果标志、用于升级的BIOS程序首指令地址。
因此,将BIOS1写入FLASH的某区间后,需要将BIOS1的起始地址信息记录到“用于升级的BIOS程序首指令地址”信息的存储区中,并设置“升级标志”为已升级,同时设置“升级结果标志”为待验证。
则BIOS引导程序在进入引导操作之前,BIOS0的引导流程如图4所示:
首先,在步骤401:设备上电启动。
然后,进到步骤402:根据存储在掉电保持介质中的升级标志判断是否跳转到BIOS1。
如果升级标志为未升级,则表明没有下载新的BIOS程序,即不需要跳转到BIOS1,此时,直接进到步骤407:进入BIOS0引导操作。
如果升级标志为已升级,则表明已有新的BIOS程序,需要对原BIOS程序进行升级。此时,需要进到步骤403:根据存储在掉电保持介质中的升级结果标志判断BIOS1升级是否成功。
在本发明中,通过设置的升级结果标志来标识BIOS的升级状态:将BIOS1下载到FLASH中后,因为还未实际运行BIOS1,因此设置升级结果标志为“待验证”;当运行BIOS1后,如果BIOS1运行成功,则设置升级结果标志为“成功”;如果BIOS1运行失败,则设置升级结果标志为“失败”。
如果已升级成功,则直接进到步骤406:跳转到BIOS1,即根据存储在掉电保持介质中的BIOS1程序首指令地址信息跳转到BIOS1程序的入口,以通过BIOS1进行引导操作。
如果升级未成功,则进到步骤404:进一步判断BIOS1升级状态是否为待验证。
如果为待验证状态,则表明已下载BIOS1,但还未实际运行,此时,进到步骤405:标识BIOS1升级状态为失败,也就是说,置升级结果标志为失败。
然后,进到步骤406:跳转到BIOS1,即根据存储在掉电保持介质中的BIOS1程序首指令地址信息跳转到BIOS1程序的入口,以通过BIOS1进行引导操作。
如果不是待验证状态,则表明BIOS1运行已失败,此时,进到步骤407:进入BIOS0引导操作。
然后,进到步骤408:BIOS0引导成功。
由上述流程可见,利用本发明,不论BIOS升级是否成功,都能使设备正常启动,如果升级成功,则通过BIOS1进行引导操作;如果升级未成功,则可回退到BIOS0,由原BIOS进行引导操作。
为了保证BIOS1引导操作后,使系统能正确识别BIOS所处的状态,需要在原BIOS程序的引导操作后添加BIOS升级结果处理流程。
参照图5,图5示出了BIOS1的升级处理流程:
在步骤501:BIOS1引导开始,即根据存储在掉电保持介质中的BIOS1程序首指令地址信息跳转到BIOS1程序的入口,以通过BIOS1进行引导操作。
然后,进到步骤502:进行BIOS1引导操作。
由于BIOS1已完成了引导操作,说明BIOS1运行成功,此时,为了减少对存储BIOS升级状态标志的掉电保持介质的写操作,比如FLASH。
因此,进到步骤503:判断BIOS1升级结果标志是否为失败。
如果BIOS升级结果标志为失败,则进到步骤504:置升级结果标志为成功。
然后,进到步骤505:进入引导成功状态。
如果BIOS升级结果已为成功,则直接进到步骤505:进入引导成功状态。
为便于BIOS版本的升级与维护,可以将上述两个BIOS0和BIOS1的各升级操作步骤合并,合并后流程如图6所示:
步骤601:设备上电启动。
步骤602:根据PC指针判断是否BIOS1。
如果不是,则直接跳转到步骤607:进入BIOS0引导操作。
如果是,则进到步骤603:根据存储在掉电保持介质中的升级标志判断是否跳转到BIOS1。
如果升级标志为未升级,则表明没有下载新的BIOS程序,即不需要跳转到BIOS1,此时,直接进到步骤607:进入BIOS0引导操作。
如果升级标志为已升级,则表明已有新的BIOS程序,需要对原BIOS程序进行升级。此时,需要进到步骤604:根据存储在掉电保持介质中的升级结果标志判断BIOS1升级是否成功。
如果已升级成功,则进到步骤610:跳转到BIOS1,即根据存储在掉电保持介质中的BIOS1程序首指令地址信息跳转到BIOS1程序的入口,以通过BIOS1进行引导操作。
如果升级未成功,则进到步骤605:进一步判断BIOS1升级状态是否为待验证。
如果不是待验证状态,则表明BIOS1运行已失败,此时,进到步骤607:进入BIOS0引导操作。
BIOS0引导操作完成后,进到步骤408:BIOS0引导成功。
如果为待验证状态,则表明已下载BIOS1,但还未实际运行,此时,进到步骤606:标识BIOS1升级状态为失败,也就是说,置升级结果标志为失败。
然后,进到步骤610:跳转到BIOS1,即根据存储在掉电保持介质中的BIOS1程序首指令地址信息跳转到BIOS1程序的入口,以通过BIOS1进行引导操作。
然后,进到步骤611:进入BIOS1引导操作。
BIOS1引导操作完成后,进到步骤612:根据PC指针判断是否为BIOS1。具体的判断方法前面已作详细描述。
如果不是BIOS1,则直接跳转到步骤615:进入BIOS1引导成功状态。
如果是BIOS1,则进到步骤613:进一步判断BIOS1升级结果标志是否为失败。
如果BIOS升级结果标志为失败,则进到步骤614:置升级结果标志为成功。
然后,进到步骤615:进入BIOS1引导成功状态。
如果BIOS升级结果标志已为成功,则直接进到步骤615:进入BIOS1引导成功状态。
由此可见,本发明通过设置BIOS升级状态标志并提供存放这些标志的存储区,使BIOS引导程序和整机软件BIOS升级程序共同完成BIOS的在线升级。如果BIOS升级失败,设备再次上电时,使BIOS能够自动回退到原BIOS程序引导启动,大大增强了BIOS升级的可靠性。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (8)

1、一种基本输入输出系统在线升级的方法,用于对引导设备操作系统启动的BIOS程序实现在线升级,其特征在于,所述方法包括:
A、将用于升级的BIOS程序加载到BIOS程序掉电保持介质中;
B、设置BIOS升级状态标志并保存到标志保存掉电保持介质中,所述BIOS升级状态标志包括:升级标志、升级结果标志、用于升级的BIOS程序首指令地址;
C、当所述设备重新启动后,判断BIOS是否需要升级,如果不需要升级,则直接运行原BIOS程序,并不再执行以下步骤;如果需要升级,则再根据所述升级结果标志判断BIOS升级是否已失败,如果升级已失败,则直接运行原BIOS程序,并不再执行以下步骤,否则如果升级没有失败,则跳转到所述用于升级的BIOS程序首指令地址运行所述用于升级的BIOS程序;其中:判断BIOS是否需要升级系根据程序指令寄存器指针判断当前BIOS的版本,如果是已升级后的BIOS,则直接运行该BIOS程序,否则,根据所述升级标志判断BIOS是否需要升级;
D、如果所述用于升级的BIOS程序运行失败,则运行原BIOS程序。
2、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述步骤A具体为:通过文件传输协议将所述用于升级的BIOS程序从升级服务器上加载到BIOS程序掉电保持介质中。
3、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
如果MIN(MAX(a,b),PC)=a,则当前BIOS的版本为原BIOS程序;
如果MIN(MAX(a,b),PC)=b,则当前BIOS的版本为已升级后的BIOS程序。
4、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
如果MAX(MAX(a,b),PC)=a,则当前BIOS的版本为已升级后的BIOS程序;
如果MAX(MAX(a,b),PC)=b,则当前BIOS的版本为原BIOS程序。
5、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述步骤B中:
设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;
所述步骤C的判断方法具体为:
当所述用于升级的BIOS程序的首指令地址和所述原BIOS程序的首指令地址基于BIOS文件长度对齐时,
如果(a|b) & PC=a,则当前BIOS的版本为原BIOS程序;
如果(a|b) & PC=b,则当前BIOS的版本为已升级后的BIOS程序。
6、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述步骤D包括:
如果所述用于升级的BIOS程序运行失败,则修改所述BIOS升级状态标志;
当所述设备重新启动后,根据所述修改后的BIOS升级状态标志运行原BIOS程序。
7、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述BIOS程序掉电保持介质和标志保存掉电保持介质包括:闪存、电可改写存储器。
8、根据权利要求1所述的基本输入输出系统在线升级的方法,其特征在于,所述BIOS程序掉电保持介质和标志保存掉电保持介质为同一芯片。
CNB2004100866960A 2004-12-10 2004-12-10 基本输入输出系统在线升级的方法 Expired - Fee Related CN100342336C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100866960A CN100342336C (zh) 2004-12-10 2004-12-10 基本输入输出系统在线升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100866960A CN100342336C (zh) 2004-12-10 2004-12-10 基本输入输出系统在线升级的方法

Publications (2)

Publication Number Publication Date
CN1786909A CN1786909A (zh) 2006-06-14
CN100342336C true CN100342336C (zh) 2007-10-10

Family

ID=36784388

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100866960A Expired - Fee Related CN100342336C (zh) 2004-12-10 2004-12-10 基本输入输出系统在线升级的方法

Country Status (1)

Country Link
CN (1) CN100342336C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101907994A (zh) * 2009-06-08 2010-12-08 鸿富锦精密工业(深圳)有限公司 显卡bios加载方法
CN102654839A (zh) * 2012-04-18 2012-09-05 华为技术有限公司 一种实现现场可编程门阵列可靠升级的方法及装置
CN106325932A (zh) * 2016-08-24 2017-01-11 南京百敖软件有限公司 一种远程和批量更新bios的系统及方法
CN107229495A (zh) * 2017-05-25 2017-10-03 沃太能源南通有限公司 一种防止能量管理系统远程升级失效的系统及方法
CN107463408A (zh) * 2017-08-11 2017-12-12 郑州云海信息技术有限公司 一种升级bios时防止密码清除的方法及装置
CN108196858A (zh) * 2017-12-22 2018-06-22 天津麒麟信息技术有限公司 一种基于飞腾平台的双bios系统及其实现方法
CN108196868B (zh) * 2018-03-27 2021-10-22 联想(北京)有限公司 Bios升级方法和电子设备
TWI710952B (zh) * 2018-08-28 2020-11-21 緯創資通股份有限公司 韌體更新方法及電腦系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513159B1 (en) * 2000-03-28 2003-01-28 Intel Corporation Platform intelligent installer
US20040153738A1 (en) * 2002-12-17 2004-08-05 Fujitsu Limited Redundancy management method for BIOS, data processing apparatus and storage system for using same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513159B1 (en) * 2000-03-28 2003-01-28 Intel Corporation Platform intelligent installer
US20040153738A1 (en) * 2002-12-17 2004-08-05 Fujitsu Limited Redundancy management method for BIOS, data processing apparatus and storage system for using same

Also Published As

Publication number Publication date
CN1786909A (zh) 2006-06-14

Similar Documents

Publication Publication Date Title
CN1280705C (zh) 打印控制系统、信息处理装置、功能提供装置
CN1302381C (zh) 创建并展开较小微软视窗应用程序的方法和设备
CN1256668C (zh) 运用Linux完成操作系统自动安装的方法
CN100351801C (zh) 备份系统及方法、恢复系统及方法、移植系统及方法
JP7069826B2 (ja) 情報処理装置、ファームウェア更新方法、プログラム
CN1441352A (zh) 信息处理装置、该信息处理装置的控制方法、存储媒体
CN1641585A (zh) 信息处理设备和程序
CN1740949A (zh) 信息处理设备及其启动方法
CN1916846A (zh) 操作系统的自动部署方法
CN100342336C (zh) 基本输入输出系统在线升级的方法
CN101042681A (zh) 一种数据透明保护的安全读写系统和方法
CN1698336A (zh) 通信设备和验证设备
CN1975670A (zh) 使用引导代码引导微处理器系统的方法和装置
CN1858707A (zh) 一种移动终端软件自动加载的方法
CN101079083A (zh) 一种对访存操作进行权限检查的系统、装置及方法
CN105824648A (zh) 一种无人值守bios配置方法
CN1889042A (zh) 一种终端升级方法及系统
CN1904853A (zh) 一种嵌入式软件装载调试方法及其系统
CN1617496A (zh) 下一代网络终端自动升级配置的方法
CN107463388A (zh) 一种uefi无盘启动方法
CN103888491A (zh) 无盘工作站启动系统及方法
CN111679837B (zh) 系统安装控制方法、控制系统及计算设备
CN113626059B (zh) 系统升级方法、摄像机及计算机可读存储介质
CN1787611A (zh) 便携式电子设备、信息处理方法和程序
US7353377B2 (en) Remotely providing basic input/output system to a client system

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: 20071010

Termination date: 20191210

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