一种在Hostboot中实现双启动的方法

文档序号:9910781阅读:422来源:国知局
一种在Hostboot中实现双启动的方法
【技术领域】
[0001 ]本发明属于服务器应用技术领域,更具体地,涉及一种在Hostboot中实现双启动的方法。
【背景技术】
[0002]Hostboot (主机引导程序)是Power(IBM公司的一种CPU名称)系统中CPlKCentralProcessing Unit,中央处理器)上电时首先执行的一段引导程序。Hostboot是B1S (BasicInput Output System,基本输入输出系统)FW(Firmware,固件)的一部分。CPU使用B1S Fff启动时,最先被执行的程序就是Hostboot。
[0003]Power系统中现有技术的做法是,只使用一片Flash(—种存储数据的存储芯片)存储B1S FW,只支持单B1S启动。现有技术的缺点是,一旦存储该B1S FW的Flash损坏,则系统将无法启动。

【发明内容】

[0004]针对现有技术的缺陷,本发明提供了一种在Hostboot中实现双启动的方法,其目的在于,通过在POWER系统上使用两片Flash存储两份B1S FW,并支持从两片Flash启动,SP使有一片Flash损坏,系统仍可以从另一片Flash启动。
[0005]本发明提供了一种在Hostboot中实现双启动的方法,包括下述步骤:
[0006](I)系统上电时,BMC优先上电,CPU不会上电;
[0007](2)当BMC启动完毕后由BMC给CPU上电,当CPU上电后,⑶U从第一片Flash中启动B1S,并执行Hostboot程序;同时启动IPMI Watchdog定时器;
[0008](3)若Hostboot程序在某个启动阶段失败,且没能执行清除IPMI Watchdog定时器的动作,则IPMI Watchdog定时器最终会超时;
[0009](4)BMC在每次IPMI Watchdog定时器超时时,都会重启CPU ; BMC会记录IPMIWatchdog定时器的超时次数,并判断超时次数是否小于预设的次数阈值,若是,则BMC继续选中第一片Flash,CPU重启时继续从第一片Flash启动;若否,则BMC将选中第二片Flash,(PU重启时将从第二片Flash启动。
[0010]其中,当BMC上电时,默认选中第一片Flash,只有第一片Flash被CPU访问到。
[0011]其中,Hostboot在启动的不同阶段开始时通过IPMI协议设置BMC的IPMI Watchdog定时器,Hostboot会根据每个启动阶段时间的长短不同而设置不同的IPMI Watchdog定时器超时时间,并在每个启动阶段结束时通过IPMI协议去清除BMC的IPMI Watchdog定时器,从而避免该定时器超时。
[0012]其中,所述预设的次数阈值为3。
[0013]其中,当BMC在IPMI Watchdog定时器超时次数达到预设的次数阈值并选中第二片Flash后,如果CPU从第二片Flash启动仍不成功,IPMI Watchdog定时器再次超时,BMC不再切换片选,继续将片选选中第二片Flash,并重启CPU。
[0014]其中,当CPU继续从第二片Flash启动,且不论第二片Flash尝试启动次数累计到多少次,BMC都不再切换片选。
[0015]其中,BMC给CPU上电后会设置一个B1S启动完成标志,并将该标志状态设置为“未完成”。
[0016]其中,Hostboot在所有启动阶段都成功完成后,会通过IPMI协议将上述标志状态设置为“完成” ;BMC—旦检测到该标志状态被设置为“完成”,则清零IPMI Watchdog定时器超时累计次数;BMC下一次再次给CPU上电时,仍将首先尝试从第一片Flash开始启动,并且IPMI Watchdog定时器超时次数将重新开始累计。
[0017]本发明通过两片Flash存储,每片都存储一份可以独立启动的B1S FW;采用片选控制逻辑控制同一时刻只有一片Flash可以被访问到;当第一片Flash启动失败后,BMC控制切换到第二片Flash重新启动;在Hostboot中实现了双启动,即使一片Flash损坏,系统也可以启动成功,极大的提高了系统的可靠性。
【附图说明】
[0018]图1是本发明实施例提供的在Hostboot中实现双启动的方法所基于的系统原理框图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]如图1所示,在系统中具有两片Flash,但同一时刻只有一片可以被CPU访问到。这可以通过BMC (Baseboard Management Controller,基板管理控制器)的Flash片选控制逻辑进行控制,同一时刻只有一片Flash被选中,只有被选中的Flash才可以被CPU访问到。因此在CPU看来,系统中只有一片Flash,CPU启动时会使用Flash地址去访问Flash上存储的数据,如果当前第一片Flash被选中,该Flash地址就指向第一片Flash,CPU访问到的就是第一片Flash上的数据;如果当前第二片Flash被选中,该Flash地址就指向第二片Flash,CPU访问到的就是第二片Flash上的数据。
[0021 ] 系统上电时,BMC优先上电,CI3U不会上电。BMC启动完毕后由BMC控制给CPU上电。BMC上电时,总是默认选中第一片Flash,这时只有第一片Flash可以被CPU访问到。BMC控制给CPU上电后,CPU从第一片Flash中启动B1S,首先执行Hostboot程序。BMC给CPU上电后,同时会启动 IPMI (Intel I igent Platform Management Interface,智能平台管理接口)Watchdog(看门狗)定时器。Hostboot会在启动的不同阶段开始时通过IPMI协议设置BMC的IPMI Watchdog定时器,Hostboot会根据每个启动阶段时间的长短不同而设置不同的IPMIWatchdog定时器超时时间,并在每个启动阶段结束时通过IPMI协议去清除BMC的IPMIWatchdog定时器,从而避免该定时器超时。
[0022]如果Hostboot在某个启动阶段失败,没能执行清除IPMI Watchdog定时器的动作,则IPMI Watchdog定时器最终会超时。BMC在每次IPMI Watchdog定时器超时时,都会重启CPU13BMC会记录IPMI Watchdog定时器的超时次数,如果超时次数小于三次,则BMC继续将Flash片选选中第一片Flash,这样CPU重启时继续从第一片Flash启动;如果超时次数累计达到三次,则BMC将Flash片选选中第二片Flash,这样CPU重启时将从第二片Flash启动。这意味着CPU可以从第一片Flash尝试启动三次,如果三次启动都失败,将尝试从第二片Flash进行启动。需要注意,从第一片Flash尝试启动的次数可以少于或多于三次,可以依赖系统设计的要求而定。
[0023]在本发明实施例中,BMC在IPMI Watchdog定时器超时次数达到三次并将片选选中到第二片Flash后,此后如果CPU从第二片Flash启动仍不成功,IPMI Watchdog定时器再次超时,BMC不再切换片选,继续将片选选中第二片Flash,并重启CPU。此后CPU将继续从第二片Flash启动,而且不论第二片Flash尝试启动次数累计到多少次,BMC都不再切换片选。
[0024]在本发明实施例中,BMC在给CPU上电后会设置一个B1S启动完成标志,并将该标志状态设置为“未完成”。Hostboot在所有启动阶段都成功完成后,会通过IPMI协议将上述标志状态设置为“完成” cBMC—旦检测到该标志状态被设置为“完成”,则清零IPMIWatchdog定时器超时累计次数。这样BMC下一次再次给CPU上电时,仍将首先尝试从第一片Flash开始启动,并且IPMI Watchdog定时器超时次数将重新开始累计。
[0025]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种在Hostboot中实现双启动的方法,其特征在于,包括下述步骤: (1)系统上电时,BMC优先上电,CRJ不会上电; (2)当BMC启动完毕后由BMC给CPU上电,当CPU上电后,CPU从第一片Flash中启动B1S,并执行Hostboot程序;同时启动IPMI Watchdog定时器; (3)若Hostboot程序在某个启动阶段失败,且没能执行清除IPMIWatchdog定时器的动作,贝1JIPMI Watchdog定时器最终会超时; (4)BMC在每次IPMIWatchdog定时器超时时,都会重启CPU;BMC会记录IPMI Watchdog定时器的超时次数,并判断超时次数是否小于预设的次数阈值,若是,则BMC继续选中第一片Flash,CPU重启时继续从第一片Flash启动;若否,则BMC将选中第二片Flash,CPU重启时将从第二片Flash启动。2.如权利要求1所述的方法,其特征在于,当BMC上电时,默认选中第一片Flash,只有第一片Flash被CPU访问到。3.如权利要求1或2所述的方法,其特征在于,Hostboot在启动的不同阶段开始时通过IPMI协议设置BMC的IPMI Watchdog定时器,Hostboot会根据每个启动阶段时间的长短不同而设置不同的IPMI Watchdog定时器超时时间,并在每个启动阶段结束时通过IPMI协议去清除BMC的IPMI Watchdog定时器,从而避免该定时器超时。4.如权利要求1-3任一项所述的方法,其特征在于,所述预设的次数阈值为3。5.如权利要求4所述的方法,其特征在于,当BMC在IPMIWatchdog定时器超时次数达到预设的次数阈值并选中第二片Flash后,如果CPU从第二片Flash启动仍不成功,IPMIWatchdog定时器再次超时,BMC不再切换片选,继续将片选选中第二片Flash,并重启CPU。6.如权利要求5所述的方法,其特征在于,当CPU继续从第二片Flash启动,且不论第二片Flash尝试启动次数累计到多少次,BMC都不再切换片选。7.如权利要求1-3任一项所述的方法,其特征在于,BMC给CPU上电后会设置一个B1S启动完成标志,并将该标志状态设置为“未完成”。8.如权利要求7所述的方法,其特征在于,Hostboot在所有启动阶段都成功完成后,会通过IPMI协议将上述标志状态设置为“完成” ;BMC—旦检测到该标志状态被设置为“完成”,则清零IPMI Watchdog定时器超时累计次数;BMC下一次再次给CPU上电时,仍将首先尝试从第一片Flash开始启动,并且IPMI Watchdog定时器超时次数将重新开始累计。
【专利摘要】本发明公开了一种在Hostboot中实现双启动的方法,包括步骤(1)BMC优先上电,CPU不上电;(2)当CPU上电后CPU从第一片Flash中启动BIOS,同时启动定时器;(3)若Hostboot程序在某个启动阶段失败,则定时器最终会超时;(4)BMC在每次定时器超时都会重启CPU;BMC会记录定时器的超时次数,并判断超时次数是否小于预设的次数阈值,若是,则CPU重启时继续从第一片Flash启动;若否,则CPU重启时将从第二片Flash启动。本发明通过在POWER系统上使用两片Flash存储两份BIOS?FW,并支持从两片Flash启动,即使有一片Flash损坏,系统仍可以从另一片Flash启动。
【IPC分类】G06F9/445, G06F9/44
【公开号】CN105677414
【申请号】CN201610006906
【发明人】余创, 吴开健, 黄璞
【申请人】无锡中太服务器有限公司
【公开日】2016年6月15日
【申请日】2016年1月6日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1