本发明涉及服务器,具体涉及基本输入输出系统升级方法、装置、计算机设备及介质。
背景技术:
1、服务器是一种提供共享资源的高性能计算机。在服务器上有两个系统,主机操作系统和基板管理控制器(bmc,baseboard management controller)系统。一般情况下,主机操作系统运行在服务器的中央处理器上,基板管理控制器系统运行在基板管理控制器芯片上。基本输入输出系统(bios,basic input output system)存储于外部的串行外围设备接口(spi,serial peripheral interface)闪存中,是主机操作系统的引导程序。在服务器领域,一种对基本输入输出系统常用的升级方法是通过运行在主机操作系统的程序控制设置于服务器主机上的串行外围设备接口控制器,将输入输出系统升级文件写入串行外围设备接口闪存中。这种方法存在一定的问题,即必须依赖设置于服务器主机上的串行外围设备接口控制器才能对基本输入输出系统进行升级。因此,如何不依赖设置于服务器主机上的串行外围设备接口控制器对基本输入输出系统进行升级是本领域技术人员关注的重点问题。
技术实现思路
1、有鉴于此,本发明提供了一种基本输入输出系统升级方法、装置、计算机设备及介质,以解决通过服务器主机对基本输入输出系统进行升级时必须依赖设置于服务器主机上的串行外围设备接口控制器的问题。
2、第一方面,本发明提供了一种基本输入输出系统升级方法,本方法包括:
3、建立服务器主机与串行外围设备接口控制器之间的通信,串行外围设备接口控制器设置于基板管理控制器芯片上;
4、控制串行外围设备接口控制器选定串行外围设备接口闪存,基本输入输出系统设置于串行外围设备接口闪存中;
5、通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中。
6、通过本方法,建立了服务器主机与基板管理控制器芯片上的串行外围设备接口控制器之间的通信,控制该串行外围设备接口控制器选定了串行外围设备接口闪存,使得服务器主机能够控制串行外围设备接口控制器对串行外围设备接口闪存写入基本输入输出系统的升级文件已完成对基本输入输出系统的升级,摆脱了通过服务器主机对基本输入输出系统进行升级时对设置于服务器主机上的串行外围设备接口控制器的依赖。
7、在一种可选的实施方式中,建立服务器主机与串行外围设备接口控制器之间的通信,包括:
8、通过基本输入输出系统为外部设备互连总线接口设备分配服务器主机的物理地址,建立基本输入输出系统与外部设备互连总线接口设备之间的第一通信链路,得到外部设备互连总线接口设备在存储域的物理地址,外部设备互连总线接口设备设置于基板管理控制器芯片中;
9、将外部设备互连总线接口设备在存储域的物理地址记录于服务器主机的操作系统的指定目录中;
10、将外部设备互连总线接口设备在存储域的物理地址映射为服务器主机的操作系统的虚拟地址,以通过服务器主机的操作系统读写外部设备互连总线设备上的寄存器;
11、通过服务器主机的操作系统对重映射基地址寄存器写入串行外围设备接口控制器的地址,使能外部设备互连总线接口的地址到串行外围设备接口控制器的地址重映射,建立外部设备互连总线接口设备与串行外围设备接口控制器的之间的第二通信链路,重映射基地址寄存器设置于外部设备互连总线设备上。
12、本方法通过建立基本输入输出系统与外部设备互连总线接口设备之间的第一通信链路,以及建立外部设备互连总线接口设备与串行外围设备接口控制器的之间的第二通信链路,在不依赖设置于服务器主机上的串行外围设备接口控制器的情况下,高效地建立了服务器主机与串行外围设备接口控制器之间的通信。
13、在一种可选的实施方式中,通过服务器主机的操作系统对重映射基地址寄存器写入串行外围设备接口控制器的地址之前,本方法还包括:
14、通过服务器主机的操作系统对保护密钥寄存器进行配置,使能外部设备互连总线接口设备与先进高性能总线之间的总线桥,保护密钥寄存器设置于外部设备互连总线设备上。
15、在通过服务器主机的操作系统对重映射基地址寄存器写入串行外围设备接口控制器的地址之前,本方法通过服务器主机的操作系统对保护密钥寄存器进行配置,使能外部设备互连总线接口设备与先进高性能总线之间的总线桥,避免了由于设备互连总线接口设备与先进高性能总线之间的总线桥未使能而导致后续建立外部设备互连总线接口设备与串行外围设备接口控制器的之间的第二通信链路失败。
16、在一种可选的实施方式中,控制串行外围设备接口控制器选定串行外围设备接口闪存,包括:
17、控制选通装置选通串行外围设备接口控制器和串行外围设备接口闪存之间的连接。
18、本方法通过控制选通装置选通串行外围设备接口控制器和串行外围设备接口闪存之间的连接,使得串行外围设备接口控制器选定了进行升级的基本输入输出系统所在的串行外围设备接口闪存。
19、在一种可选的实施方式中,通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中之前,本方法还包括:
20、将基本输入输出系统的升级文件上传到服务器主机的内存中。
21、本方法通过将基本输入输出系统的升级文件上传到服务器主机的内存中,为后续通过该升级文件进行基本输入输出系统的升级提前做好了准备。
22、在一种可选的实施方式中,通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中之前,本方法还包括:
23、对基本输入输出系统的升级文件进行校验,如果校验成功,继续通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中。
24、本方法通过对基本输入输出系统的升级文件进行校验,在校验成功后继续通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中。通过本方法保证了升级文件的完整性,避免了由于升级文件不完整而导致后续通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中失败。
25、在一种可选的实施方式中,对基本输入输出系统的升级文件进行校验,如果校验失败,停止基本输入输出系统升级方法。
26、本方法通过对基本输入输出系统的升级文件进行校验,发现校验失败,表明升级文件不完整,立即停止基本输入输出系统升级方法,避免了由于升级文件不完整而导致的各种意想不到的问题。
27、第二方面,本发明提供了一种基本输入输出系统升级装置,本装置包括:
28、通信建立模块,用于建立服务器主机与串行外围设备接口控制器之间的通信,串行外围设备接口控制器设置于基板管理控制器芯片中;
29、闪存选定模块,用于控制串行外围设备接口控制器选定串行外围设备接口闪存,基本输入输出系统设置于串行外围设备接口闪存中;
30、文件写入模块,用于通过服务器主机控制串行外围设备接口控制器将基本输入输出系统的升级文件写入串行外围设备接口闪存中。
31、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的基本输入输出系统升级方法。
32、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的基本输入输出系统升级方法。