本发明属于计算机服务器领域,尤其涉及一种基于bmc的多路bios远程在线升级系统和方法。
背景技术:
1、服务器系统可以分为bmc和cpu两部分,基板管理控制器(baseboard managercontroller,bmc)能够监控和管理系统来保证服务器处于正常稳定的运行状态。在服务器的运行或者维护过程中,有时候需要对cpu端的bios(basic input output system)进行升级,而服务器有可能部署在远端或者浸没在液冷装置中,这样使得通过烧录器手动烧写bios的flash进行升级的方式就比较困难,需要一种能够通过bmc远程在线对bios进行升级的方式。
2、当前很多服务器的厂商都提供了bmc对cpu端bios的升级功能,第一种方式是通过用远程工具将bios的镜像上传到bmc的后端,然后在bmc后端通过输入命令的方式去升级bios;第二种方式为提供自动化的升级方式,在bmc后端的升级脚本中,直接去操作与升级bios的flash相关的串行外围设备接口(serial peripheral interface,spi)总线控制器相关的寄存器;第三种方式为通过将bios的flash的spi驱动程序单独从linux内核中分离出来,然后编译成ko模块,通过反复加载和卸载ko模块的方式,来实现bios的flash的设备的挂载和卸载。
3、现有的bmc对bios升级方式缺陷为:第一种方式需要登录到bmc的后端,并且要求维护人员手动输入升级命令,对客户维护人员的要求比较高,并且操作比较繁琐;第二种方式增加了bmc技术人员的开发难度,并且不利于bmc的软件维护;第三种方式即使是同一份flash的spi控制器驱动程序,也要维护两套代码,并且还需要对ko模块文件进行打包集成,增加了该功能开发的复杂性。
4、综上描述,现有的三种bmc对bios升级方式都无法简单、方便的实现bios升级。
技术实现思路
1、为了弥补现有技术的缺陷,本发明提供了一种基于bmc的多路bios远程在线升级方法和系统。
2、为了解决上述技术问题,本发明所采用的技术方案是:
3、第一方面,提供了一种基于bmc的多路bios远程在线升级系统,包括:
4、基板管理控制器bmc模块、cpu模块的bios单元及bios单元的flash芯片;bmc模块运行bmc软件;
5、当需要进行bios单元升级时,bmc软件获取bios升级包;
6、bmc软件对bios升级包进行解压缩,得到bios镜像文件、版本信息及签名验证信息;
7、bmc软件根据版本信息及签名验证信息进行版本和签名校验;
8、若版本和签名至少一个校验不通过,则bmc软件确定bios单元升级失败;
9、若版本和签名都校验通过,则bmc软件将bios镜像文件刷写至bios单元的flash芯片中,实现bios单元的远程在线升级。
10、进一步的,cpu模块具有四个,一个cpu模块对应一个bios单元,一个bios单元对应一个flash芯片;
11、cpu模块通过串行外设接口spi引脚与对应的flash芯片连接;
12、cpu模块的芯片型号为飞腾s2500;flash芯片的型号为spansion厂商的s25fl128p。
13、进一步的,基于bmc的多路bios远程在线升级系统还包括:
14、电平转换模块、复杂可编程逻辑器件cpld模块及四个引脚切换模块;
15、bmc模块通过一路spi总线与电平转换模块连接,电平转换模块通过一个引脚切换模块与一个flash芯片连接;
16、bmc模块通过三个通用输入输出端口gpio与cpld模块连接;
17、cpld模块与四个引脚切换模块均连接;
18、bmc模块通过三个gpio的电平状态控制cpld模块选择一个引脚切换模块,使得bmc模块与一个bios单元的flash芯片连接。
19、进一步的,当系统上电时,bmc软件控制三个gpio为低电平,使得cpld模块不选择任意一个引脚切换模块,bmc模块与四个flash芯片均不连接;
20、四个cpu模块分别引导对应的bios单元正常启动。
21、进一步的,当系统启动完成,且需要对四个bios单元中的目标bios单元进行升级时,bmc软件确定目标bios单元标识;
22、bmc软件根据目标bios单元标识与gpio电平状态的预置关系表,确定三个gpio的目标电平状态;
23、bmc软件控制三个gpio输出目标电平状态;
24、cpld模块根据目标电平状态选择与目标bios单元对应的目标引脚切换模块,使得bmc模块与目标bios单元连接。
25、进一步的,bmc软件将spi总线的spi控制器的驱动程序集成在软件内核中。
26、进一步的,bmc软件对spi控制器的驱动程序进行解绑和重新绑定,从而使得驱动程序重新执行,查找到目标bios单元的目标flash芯片;
27、bmc软件将目标flash芯片挂载为bmc文件系统内的内存分区设备;
28、bmc软件通过bmc文件系统自带的磁盘读写命令,将目标bios单元的bmc镜像文件写入到目标flash芯片中。
29、进一步的,当目标flash芯片写入完成后,bmc软件将spi控制器的驱动程序进行解绑操作;
30、bmc软件控制三个gpio的输出逐一对目标bios单元之外的其他bios单元分别进行远程在线升级;
31、当所有的bios单元都升级完成时,bmc软件控制三个gpio的电平状态为低电平。
32、第二方面,提供了一种基于bmc的多路bios远程在线升级方法,应用于以上第一方面中的基于bmc的多路bios远程在线升级系统,基于bmc的多路bios远程在线升级方法包括:
33、当需要进行bios单元升级时,bmc软件获取bios升级包;
34、bmc软件对bios升级包进行解压缩,得到bios镜像文件、版本信息及签名验证信息;
35、bmc软件根据版本信息及签名验证信息进行版本和签名校验;
36、若版本和签名至少一个校验不通过,则bmc软件确定bios单元升级失败;
37、若版本和签名都校验通过,则bmc软件将bios镜像文件刷写至bios单元的flash芯片中,实现bios单元的远程在线升级。
38、本发明所达到的有益效果:
39、当需要进行bios单元升级时,bmc软件获取bios升级包;bmc软件对bios升级包进行解压缩,得到bios镜像文件、版本信息及签名验证信息;bmc软件根据版本信息及签名验证信息进行版本和签名校验;若版本和签名至少一个校验不通过,则bmc软件确定bios单元升级失败;若版本和签名都校验通过,则bmc软件将bios镜像文件刷写至bios单元的flash芯片中,实现bios单元的远程在线升级;用户可以直接通过bmc软件对bios进行远程升级,升级的过程都不需要人工手动干预,为用户操作带来了便利;
40、采用对spi控制器的驱动程序的重新执行的方式,实现bios单元的flash芯片的卸载和挂载,同时采用bmc文件系统内的磁盘读写命令进行bmc镜像文件的写入,而不是采用直接寄存器的方式,降低了开发人员的开发难度,同时也降低了服务器的维护难度。
1.一种基于bmc的多路bios远程在线升级系统,其特征在于,包括:
2.根据权利要求1所述的基于bmc的多路bios远程在线升级系统,其特征在于,
3.根据权利要求2所述的基于bmc的多路bios远程在线升级系统,其特征在于,所述基于bmc的多路bios远程在线升级系统还包括:
4.根据权利要求3所述的基于bmc的多路bios远程在线升级系统,其特征在于,
5.根据权利要求4所述的基于bmc的多路bios远程在线升级系统,其特征在于,
6.根据权利要求5所述的基于bmc的多路bios远程在线升级系统,其特征在于,
7.根据权利要求6所述的基于bmc的多路bios远程在线升级系统,其特征在于,
8.根据权利要求7所述的基于bmc的多路bios远程在线升级系统,其特征在于,
9.一种基于bmc的多路bios远程在线升级方法,其特征在于,应用于以上权利要求1-8中任一项所述的基于bmc的多路bios远程在线升级系统,所述基于bmc的多路bios远程在线升级方法包括:
