基本输入输出系统在线升级的方法技术方案

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

【技术实现步骤摘要】

本专利技术涉及计算机、通信设备系统升级技术,具体涉及一种。
技术介绍
计算机、通信设备的运行通常需要两种软件,分别为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升级状态标志并保存到标志保存掉电保持介质中;C、当所述设备重新启动后,根据所述BIOS升级状态标志运行所述用于升级的BIOS程序;D、如果所述用于升级的BIOS程序运行失败,则运行原BIOS程序。所述步骤A具体为通过文件传输协议将所述用于升级的BIOS程序从升级服务器上加载到掉电保持介质中。所述BIOS升级状态标志包括升级标志、升级结果标志、用于升级的BIOS程序首指令地址。所述步骤C包括C1、当所述设备重新启动后,判断BIOS是否需要升级;C2、如果不需要升级,则直接运行原BIOS程序;C3、如果需要升级,则再根据所述升级结果标志判断BIOS升级是否已失败;C4、如果升级已失败,则直接运行原BIOS程序; C5、否则,跳转到所述用于升级的BIOS程序首指令地址运行所述用于升级的BIOS程序。所述步骤C1包括C11、根据程序指令寄存器指针判断当前BIOS的版本;C12、如果是已升级后的BIOS,则直接运行该BIOS程序;C13、否则,根据所述升级标志判断BIOS是否需要升级。可选地,所述步骤C11具体为设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;如果MIN(MAX(a,b),PC)=a,则当前BIOS的版本为原BIOS程序;如果MIN(MAX(a,b),PC)=b,则当前BIOS的版本为已升级后的BIOS程序。可选地,所述步骤C11具体为设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;如果MAX(MAX(a,b),PC)=a,则当前BIOS的版本为已升级后的BIOS程序;如果MAX(MAX(a,b),PC)=b,则当前BIOS的版本为原BIOS程序。可选地,所述步骤C11具体为设定原BIOS程序的首指令地址为a,用于升级的BIOS程序的首指令地址为b,所述程序指令寄存器指针为PC;当所述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是BIO本文档来自技高网
...

【技术保护点】
一种BIOS在线升级的方法,用于对引导设备操作系统启动的BIOS程序实现在线升级,其特征在于,所述方法包括:A、将用于升级的BIOS程序加载到BIOS程序掉电保持介质中;B、设置BIOS升级状态标志并保存到标志保存掉电保持介 质中;C、当所述设备重新启动后,根据所述BIOS升级状态标志运行所述用于升级的BIOS程序;D、如果所述用于升级的BIOS程序运行失败,则运行原BIOS程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:邱锦郑朝晖马晓刚
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1