一种实现ARM服务器BIOS主备切换的系统及方法与流程

文档序号:22966283发布日期:2020-11-19 21:36阅读:316来源:国知局
一种实现ARM服务器BIOS主备切换的系统及方法与流程

本发明属于arm服务技术领域,具体涉及一种实现arm服务器bios主备切换的系统及方法。



背景技术:

arm,全称为advancedriscmachine。arm处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

atf,armtrustedfirmware,arm受信任固,atf的bl1、bl2、bl31、bl32、bl33为依次启动的各个阶段的启动引导模块。

uefi,是unifiedextensiblefirmwareinterface的简称,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口。

arm服务器芯片已从早期的16核心依次更新到32核心、64核心、96核心、128核心等且与传统x86服务器芯片对比,在功耗、性能等方面对比arm服务器芯片已领先于x86服务器芯片,同时arm服务器的应用软件也日趋成熟,这些都为arm服务器的研发及批量部署提供了有利条件。arm处理器专门为云计算、边缘计算、大数据孕育而生,其关键的引导固件bios是由atf和uefi镜像两部分组成的,这与传统的x86服务器bios镜像存在较大差异,因为x86的bios包含了除部分cpu寄存器外的所有外设的初始化功能,而arm处理器的引导镜像bios的atf部分负责了内存初始化、处理器核和pcie的ras功能、安全世界和normal世界的看门狗、运行时arm的smc功能、提供atf版本信息、提供uefi变量设置、cpu核数设置、cpu0和cpu1间的通信链路初始化等功能。

smpro是微控制器的管理程序,提供了整个系统的管理,尤其在安全启动处理机制方面起到举足轻重的作用。arm处理器安全启动方案涉及smpro加载校验atf的bl1,bl1加载校验bl2,bl2加载校验bl31,bl31加载校验bl32,bl32加载校验bl33,bl33加载校验uefi,同时smpro、atf引导程序遵循arm平台的tbbr规范协议,当smpro和atfbl1\bl2\bl31\bl32\bl33固件安全启动校验完毕后方可进行uefi镜像加载,smpro先加载校验atfbl1镜像,如果失败则触发cpu0的gpio7信号告知校验失败且通知到bmc,bmc获取gpio7的状态信息后将切换为备bios镜像启动。同理,atfbl1校验成功后将加载校验atfbl2,如此依次加载校验atfbl31\bl32\bl33,若任何一个阶段出现校验失败则触发bmc切换备bios启动,若无错误则正常引导uefi镜像进入os或者shell系统。依次检验atf镜像的bl1\bl2\bl31\bl32\bl33阶段镜像对arm服务器的固件起到了安全可靠且不容易被外部篡改而导致服务器数据泄露的问题,提高了数据中心的安全可靠性。但是该设计方案依赖于bmc去切换,若bmc挂死则无法执行bios主备切换功能。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种实现arm服务器bios主备切换的系统及方法,是非常有必要的。



技术实现要素:

针对现有技术的上述arm服务器的主bios启动过程中各阶段故障依赖bmc去切换,而bmc挂死无法执行bios主备切换的缺陷,本发明提供一种实现arm服务器bios主备切换的系统及方法,以解决上述技术问题。

第一方面,本发明提供一种实现arm服务器bios主备切换的系统,包括主bios、备bios、cpu0、bmc以及cpld;

主bios包括atf固件,atf固件包括bl1模块、bl2模块、bl31模块、bl32模块以及bl33模块;

cpu0,用于主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,通知bmc及cpld;

bmc,用于接收到cpu0发送的主bios启动过程校验失败信号时,控制备bios启动;

cpld,用于接收到cpu0发送的主bios启动过程校验失败信号时,判断bmc是否挂死,并在bmc挂死时,控制备bios启动。atf固件各模块启动过程依次校验保证主bios安全,防止服务器的bios进行数据被破坏或篡改导致服务器数据的丢失。

进一步地,还包括报警灯,报警灯与cpu0的gpio7管脚连接;

报警灯,用于主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,指示主备bios切换。报警灯起到指示作用,用于通知工作人员检查是否主备bios切换成功。

进一步地,cpld在接收到cpu0发送的主bios启动过程校验失败信号,且bmc未挂死时,不对备bios进行控制。cpld只在bmc挂死时启动,一定程度上解耦了备bios启动对bmc的依赖。

进一步地,接收到cpu0发送的主bios启动过程校验失败信号时,bmc或cpld先将主bios的片选信号拉低,再控制备bios启动。bmc或cpld把主bios的片选信号spi0_cs0_l拉低。

进一步地,cpu0在主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,通过gpio7管脚通知bmc及cpld。

第二方面,本发明提供一种实现arm服务器bios主备切换的方法,包括如下步骤:

s1.系统上电开机,cpu0监控主bios的atf固件各模块启动过程,并在任一启动过程出现校验失败时,通知bmc及cpld;

s2.cpld接收到主bios启动过程校验失败信号后,判断bmc是否挂死;

若bmc挂死,进入步骤s3;

若bmc未挂死,进入步骤s4;

s3.cpld控制系统关机,并控制主bios启动切换到备bios启动,再控制系统重新上电开机,结束;

s4.bmc控制系统关机,并控制主bios启动切换到备bios启动,再控制系统重新上电开机。cpld只在bmc挂死时启动,一定程度上解耦了备bios启动对bmc的依赖。

进一步地,步骤s3中cpld控制主bios启动切换到备bios启动之前,先将主bios的片选信号拉低;

步骤s4中bmc控制主bios启动切换到备bios启动之前,先将主bios的片选信号拉低。

进一步地,步骤s1具体步骤如下:

s11.系统上电开机,cpu0监控主bios的atf固件bl1模块到bl2模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s12;

s12.cpu0监控主bios的atf固件bl2模块到bl31模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s13;

s13.cpu0监控主bios的atf固件bl31模块到bl32模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s13;

s14.cpu0监控主bios的atf固件bl32模块到bl33模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,系统正常开机。atf固件各模块启动过程依次校验保证主bios安全,防止服务器的bios进行数据被破坏或篡改导致服务器数据的丢失。

进一步地,步骤s2中,cpld获取bmc的ip地址,通过bmc的ip地址是否ping通判断bmc是否挂死。

进一步地,步骤s1中,cpu0监控主bios的atf固件各模块启动过程,并任一启动过程出现校验失败时,通知bmc及cpld的同时,通过报警灯指示主备bios切换。报警灯起到指示作用,用于通知工作人员检查是否主备bios切换成功。

本发明的有益效果在于,

本发明提供的实现arm服务器bios主备切换的系统及方法,在arm服务器启动过程中,bios的atf固件的bl1\bl2\bl31\bl32\bl33各模块逐级启动校验,任一过程出现问题,都会通知bmc和cpld,正常情况下,bmc未挂死,bmc启动备bios,若bmc挂死也不会导致备bios无法启动的情况,由cpld接管bmc的工作,启动备bios,既保证主bios的安全性,又保证备bios启动的可靠性,一定程度上解耦了备bios对bmc的依赖。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的系统示意图;

图2是本发明的方法流程示意图一;

图3是本发明的方法流程示意图二。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

实施例1:

如图1所示,本发明提供一种实现arm服务器bios主备切换的系统,包括主bios、备bios、cpu0、bmc以及cpld;

主bios包括atf固件,atf固件包括bl1模块、bl2模块、bl31模块、bl32模块以及bl33模块;

cpu0,用于主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,通知bmc及cpld;

bmc,用于接收到cpu0发送的主bios启动过程校验失败信号时,控制备bios启动;

cpld,用于接收到cpu0发送的主bios启动过程校验失败信号时,判断bmc是否挂死,并在bmc挂死时,控制备bios启动,以及bmc未挂死时,不对备bios进行控制。

atf固件各模块启动过程依次校验保证主bios安全,防止服务器的bios进行数据被破坏或篡改导致服务器数据的丢失。

在某些实施例中,还包括报警灯,报警灯与cpu0的gpio7管脚连接;

报警灯,用于主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,指示主备bios切换。报警灯用于通知工作人员检查是否主备bios切换成功。

在某些实施例中,接收到cpu0发送的主bios启动过程校验失败信号时,bmc或cpld先将主bios的片选信号拉低,再控制备bios启动。

在某些实施例中,cpu0在主bios的atf固件从bl1模块到bl2模块,到bl31模块,到bl32模块,到bl33模块启动过程中任一过程出现校验失败时,通过gpio7管脚通知bmc及cpld。

实施例2:

如图2所示,本发明提供一种实现arm服务器bios主备切换的方法,包括如下步骤:

s1.系统上电开机,cpu0监控主bios的atf固件各模块启动过程,并在任一启动过程出现校验失败时,通知bmc及cpld;

s2.cpld接收到主bios启动过程校验失败信号后,判断bmc是否挂死;

若bmc挂死,进入步骤s3;

若bmc未挂死,进入步骤s4;

s3.cpld控制系统关机,并控制主bios启动切换到备bios启动,再控制系统重新上电开机,结束;

s4.bmc控制系统关机,并控制主bios启动切换到备bios启动,再控制系统重新上电开机。cpld只在bmc挂死时启动,一定程度上解耦了备bios启动对bmc的依赖。

实施例3:

如图3所示,本发明提供一种实现arm服务器bios主备切换的方法,包括如下步骤:

s1.系统上电开机,cpu0监控主bios的atf固件各模块启动过程,并在任一启动过程出现校验失败时,通知bmc及cpld;具体步骤如下:

s11.系统上电开机,cpu0监控主bios的atf固件bl1模块到bl2模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s12;

s12.cpu0监控主bios的atf固件bl2模块到bl31模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s13;

s13.cpu0监控主bios的atf固件bl31模块到bl32模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,进入步骤s13;

s14.cpu0监控主bios的atf固件bl32模块到bl33模块启动过程;

若启动过程出现校验失败,通知bmc及cpld,进入步骤s2;

若启动过程校验成功,系统正常开机;

atf固件各模块启动过程依次校验保证主bios安全,防止服务器的bios进行数据被破坏或篡改导致服务器数据的丢失;

s2.cpld接收到主bios启动过程校验失败信号后,判断bmc是否挂死;

若bmc挂死,进入步骤s3;

若bmc未挂死,进入步骤s4;

s3.cpld控制系统关机,将主bios的片选信号拉低,并控制主bios启动切换到备bios启动,再控制系统重新上电开机,结束;

s4.bmc控制系统关机,将主bios的片选信号拉低,并控制主bios启动切换到备bios启动,再控制系统重新上电开机。

在某些实施例中,cpld获取bmc的ip地址,通过bmc的ip地址是否ping通判断bmc是否挂死。

在某些实施例中,步骤s1中,cpu0监控主bios的atf固件各模块启动过程,并任一启动过程出现校验失败时,通知bmc及cpld的同时,通过报警灯指示主备bios切换。

在arm服务器启动过程中,bios的atf固件的bl1\bl2\bl31\bl32\bl33各模块逐级启动校验,任一过程出现问题,都会通知bmc和cpld,正常情况下,bmc未挂死,bmc启动备bios,若bmc挂死也不会导致备bios无法启动的情况,由cpld接管bmc的工作,启动备bios,既保证主bios的安全性,又保证备bios启动的可靠性,一定程度上解耦了备bios对bmc的依赖。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1