一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

固件交互方法、装置、服务器和存储介质与流程

2023-01-17 12:43:12 来源:中国专利 TAG:


1.本技术涉及硬件技术领域,特别是涉及一种固件交互方法、装置、服务器和存储介质。


背景技术:

2.服务器系统包含多方固件,例如基本输入输出bios,基板管理控制器bmc,cpld设备等。服务器系统为满足市场需求,满足客户需求,已经包含越来越多功能,而部分功能都需要多方固件支持,例如服务器系统支持复杂的外设配置,需要bios和cpld配合,或者bios和bmc配合,但是不管是bios和cpld配合还是与bmc配合,目前通常都是使用gpio或kcs通道来进行传递,由于gpio仅有高低两种电平,随着配置信息复杂度的提升,需要gpio的数量越来越多,严重浪费处理器的gpio数量,而且读取gpio或者kcs通道延迟比较高,严重增加服务器开机后加电自检阶段(post阶段)的启动时间。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够减少服务器中多个固件交互时间从而降低服务器post阶段的启动时间的固件交互方法、装置、服务器和存储介质。
4.一种固件交互方法,上述方法应用于服务器,服务器包括多个固件,各固件为cpu、bios和bmc,包括:在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io;通过bios对初始内存映射io进行初始化操作,得到目标内存映射io;通过bios使用目标内存映射io与bmc进行交互。
5.在其中一个实施例中,通过bios对初始内存映射io进行初始化操作,得到目标内存映射io,包括:通过bios对初始内存映射io进行分割,得到初始内存映射io的头部区域和数据区域,通过bios对头部区域进行初始化,将ipmi命令通道切换到目标内存映射io,通过bios对数据区域进行填充操作,得到目标内存映射io。
6.在其中一个实施例中,通过bios使用目标内存映射io与bmc进行交互,包括:通过bios使用目标内存映射io的数据区域与bmc进行交互。
7.在其中一个实施例中,通过bios对头部区域进行初始化,包括:通过bios在头部区域写入仲裁机制。
8.在其中一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc读取目标内存映射io。
9.在其中一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc修改目标内存映射io。
10.在其中一个实施例中,通过bios对数据区域进行填充操作,得到目标内存映射io,包括:通过将ipmi命令通道写入至数据区域,通过将bios对应的选项和选项值写入至数据区域,通过将bmc对应的pcie设备信息写入至数据区域,bmc内置有pcie设备。
11.在其中一个实施例中,上述方法还包括:通过bios根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值,通过bios将数据校验值写入至头部区域,得到目标内存映射io。
12.在其中一个实施例中,通过bios使用目标内存映射io与bmc进行交互之后,还包括:调用bmc获取服务器对应的当前配置信息,调用bmc将当前配置信息写入至目标内存映射io中的数据区域,调用bios从目标内存映射io中的数据区域拉取当前配置信息,调用bios根据当前配置信息对服务器进行初始化操作。
13.在其中一个实施例中,服务器还包括cpld设备,通过bios使用目标内存映射io与cpld设备进行交互,方法还包括:调用cpld设备获取服务器对应的服务器配置信息,调用cpld设备将服务器配置信息写入至目标内存映射io中的数据区域,通过bios从目标内存映射io中的数据区域拉取服务器配置信息,通过bios根据服务器配置信息对服务器进行初始化操作。
14.在其中一个实施例中,通过bios使用目标内存映射io与bmc进行交互之后,还包括:调用bios通过目标内存映射io发送ipmi命令至bmc。
15.在其中一个实施例中,通过bios使用目标内存映射io与bmc进行交互之后,还包括:通过bmc获取目标内存映射io中的bios对应的选项和选项值,通过bmc接收修改操作指令,根据修改操作指令获取bios对应的选项和新的选项值,通过bmc将bios对应的选项和新的选项值写入至目标内存映射io中。
16.在其中一个实施例中,通过bios使用目标内存映射io与bmc进行交互之后,还包括:调用bios发送当前数据至bmc,调用bmc根据目标内存映射io验证当前数据的合法性,在当前数据为合法数据时,接收bios发送的当前数据。
17.一种固件交互装置,上述装置应用于服务器,服务器包括多个固件,各固件为cpu、bios和bmc,包括:获取模块,用于在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io;操作模块,用于通过bios对初始内存映射io进行初始化操作,得到目标内存映射io;交互模块,用于通过bios使用目标内存映射io与bmc进行交互。
18.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io;通过bios对初始内存映射io进行初始化操作,得到目标内存映射io;通过bios使用目标内存映射io与bmc进行交互。
19.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io;通过bios对初始内存映射io进行初始化操作,得到目标内存映射io;通过bios使用目标内存映射io与bmc进行交互。
20.上述固件交互方法、装置、服务器和存储介质,在服务器开机后加电自检阶段,
bios从cpu中获取一块初始内存映射io,通过对初始内存映射io进行初始化操作,得到目标内存映射io,bios使用该目标内存映射io可以与bmc进行交互,相比现有技术中,bios与bmc的交互使用kcs通道或gpi0方式,使用低延迟的目标内存映射io,能够减少bios与bmc之间的交互时间从而降低服务器post阶段的启动时间,进而减少对服务器配置或者维护的时间,而且还能够节省cpu的gpi0,使得更多可用的gpi0用于其他功能的开发。
附图说明
21.图1为一个实施例中固件交互方法的流程示意图;图2为一个实施例中初始内存映射io初始化步骤的流程示意图;图3为一个实施例中数据区域填充步骤的流程示意图;图4为另一个实施例中固件交互方法的流程示意图;图5为一个实施例中固件交互方法的流程示意图;图6为一个实施例中固件交互方法的流程示意图;图7为一个实施例中固件交互方法的流程示意图;图8为一个实施例中固件交互方法的流程示意图;图9为一个实施例中固件交互装置的结构框图;图10为一个实施例中计算机设备的内部结构图。
具体实施方式
22.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
23.在一个实施例中,如图1所示,提供了一种固件交互方法,以该方法应用于服务器为例进行说明,服务器包括多个固件,各固件为中央处理器cpu、基本输入输出系统bios和基板管理控制器bmc,包括以下步骤:步骤102,在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io。
24.其中,服务器包括多个固件,各固件可以为中央处理器cpu、基本输入输出系统bios和基板管理控制器bmc,基板管理控制器bmc内置有pcie设备。
25.其中,服务器开机后进行加电自检(即post阶段),在加电自检阶段,bios从cpu中获取初始内存映射io,这里的初始内存映射io未记载任何东西,需要bios规划布局。
26.其中,基本输入输出系统bios(basic input output system)是保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,为计算机提供最底层的、最直接的硬件设置和控制。
27.其中,基板管理控制器bmc(baseboard management controller),内存映射io即mmio(memory mapping io),它是pci规范的一部分,io设备被放置在内存空间而不是i/o空间,从中央处理器cpu的角度看,内存映射io后系统设备访问起来和内存一样。这样访问agp/pci-e显卡上的帧缓存,bios设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。
28.具体地,在post阶段bios可以根据bmc内置的pcie设备的容量要求规划布局内存
映射io,可以先从中央处理器cpu中获取一块空白的初始内存映射io。
29.步骤104,通过bios对初始内存映射io进行初始化操作,得到目标内存映射io。
30.具体地,bios在得到初始内存映射io后,对初始内存映射io进行初始化操作,因为bios从cpu中获取的初始内存映射io是一块空白的,需要bios进行规划布局,即初始化操作。具体地,需要bios、bmc和cpld共同制定初始内存映射io的布局和使用方法,初始化操作至少包括写入仲裁机制、数据完整性检测、数据头标志、数据格式、数据掉电丢失保存方法等,也就是说,需要把这些数据都写入至初始内存映射io中,得到目标内存映射io。
31.步骤106,通过bios使用目标内存映射io与bmc进行交互。
32.具体地,在得到目标内存映射io后,bios可以使用目标内存映射io与bmc进行交互,其中,目标内存映射io是低延迟的,使用低延迟的目标内存映射io可以减少bios和bmc之间的交互时间,从而减少对服务器配置或者维护的时间成本。
33.上述固件交互方法中,在服务器开机后加电自检阶段,bios从cpu中获取一块初始内存映射io,通过对初始内存映射io进行初始化操作,得到目标内存映射io,bios使用该目标内存映射io可以与bmc进行交互,相比现有技术中,bios与bmc的交互使用kcs通道或gpi0方式,使用低延迟的目标内存映射io,能够减少bios与bmc之间的交互时间从而降低服务器post阶段的启动时间,进而减少对服务器配置或者维护的时间,而且还能够节省cpu的gpi0,使得更多可用的gpi0用于其他功能的开发。
34.在一个实施例中,如图2所示,通过bios对初始内存映射io进行初始化操作,得到目标内存映射io,包括:步骤202,通过bios对初始内存映射io进行分割,得到初始内存映射io的头部区域和数据区域。
35.步骤204,通过bios对头部区域进行初始化,将ipmi命令通道切换到目标内存映射io。
36.步骤206,通过bios对数据区域进行填充操作,得到目标内存映射io。
37.其中,bios在得到初始内存映射io后,可以将初始内存映射io分为两部分区域,一块区域为头部区域(即header区域),一块区域为数据区域(即data区域),通过对这两块区域进行写入操作,写入操作完毕后得到目标内存映射io。其中,头部区域是用来限定在当前时间点时,是bios使用数据区域的数据,还是bmc使用数据区域的数据,而数据区域是用来记录数据,包括数据标志位、数据格式等。
38.进一步地,bios对头部区域进行初始化,具体可以是,将仲裁机制写入至头部区域中,其中仲裁机制就是用来规定当前时间点使用数据区域的数据的设备权限。再者,将ipmi命令通道切换到目标内存映射io,具体可以是,通过将ipmi命令通道写入至数据区域,实现将ipmi命令通道切换到目标内存映射io。这样,就可以避免现有技术中使用gpi0或者kcs通道来进行交互导致交互时间过长。
39.同时,bios可以对数据区域进行填充操作,可以将bios相关的数据、bmc内置的pcie设备相关的数据等都写入至数据区域,得到目标内存映射io。
40.在一个实施例中,通过bios使用目标内存映射io与bmc进行交互,包括:通过bios使用目标内存映射io的数据区域与bmc进行交互。
41.其中,在得到目标内存映射io后,目标内存映射io包括头部区域和数据区域,bios
可以使用目标内存映射io的数据区域与bmc实现交互。
42.在一个实施例中,通过bios对头部区域进行初始化,包括:通过bios在头部区域写入仲裁机制。
43.其中,仲裁机制是用来规定当前时间点使用数据区域的数据的设备权限,也就是说,在当前时间点使用数据区域的数据的设备只允许bios或bmc读取或者修改,不能够同时读取或者修改,避免读取或者修改过程出现异常。
44.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc读取目标内存映射io。
45.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc修改目标内存映射io。
46.在一个实施例中,如图3所示,通过bios对数据区域进行填充操作,得到目标内存映射io,包括:步骤302,通过bios将ipmi命令通道写入至数据区域。
47.步骤304,通过bios将bios对应的选项和选项值写入至数据区域。
48.步骤306,通过bios将bmc对应的pcie设备信息写入至数据区域,bmc内置有pcie设备。
49.其中,bios对数据区域进行填充操作具体可以是将bios对应的选项和选项值、bmc内置的pcie设备相关的设备信息以及ipmi命令通道写入至数据区域。具体地,将ipmi命令通道写入至数据区域,则可实现bios通过目标内存映射io将ipmi命令发送至bmc,而将bios对应的选项和选项值写入至数据区域,则可在bmc上展示bios的选项和选项值,并进行修改,修改之后bmc可保存至目标内存映射io的数据区域,而将bmc对应的pcie设备的设备信息写入至数据区域,则减少bios和bmc的交互时间,bmc内置的pcie设备可快速通过目标内存映射io读取设备信息。
50.在一个实施例中,如图4所示,上述方法还包括:步骤402,通过bios根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值。
51.步骤404,通过bios将数据校验值写入至头部区域,得到目标内存映射io。
52.其中,将ipmi命令通道、bios对应的选项和选项值和pcie设备信息写入至数据区域后,根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值,这里的数据校验值是用来确定数据区域的数据是否合法,即数据区域的数据是否被非法篡改,最后,再将数据校验值写入至头部区域,得到目标内存映射io。其中,将仲裁机制和数据校验值写入至目标内存映射io的头部区域,可以保证头部区域的数据无法被修改,而且bios和bmc之间的交互都是使用目标内存映射io的数据区域,不会去读取或者修改目标内存映射io的头部区域。
53.在一个实施例中,如图5所示,bios使用目标内存映射io与bmc进行交互之后,还包括:步骤502,调用bmc获取服务器对应的当前配置信息。
54.步骤504,调用bmc将当前配置信息写入至目标内存映射io中的数据区域。
55.步骤506,调用bios从目标内存映射io中的数据区域拉取当前配置信息。
56.步骤508,调用bios根据当前配置信息对服务器进行初始化操作。
57.其中,bios使用目标内存映射io与bmc进行交互后,意味着bmc也可以使用目标内存映射io与bios进行交互,bmc可以获取到服务器对应的当前配置信息,当前配置信息是指服务器目前的配置参数信息,bmc再将获取到的当前配置信息写入至目标内存映射io中的数据区域,来告知bios,bios可以从目标内存映射io中的数据区域中拉取当前配置信息,最后bios根据拉取到的当前配置信息对服务器进行初始化操作。
58.也就是说,bmc可以通过将服务器的配置信息写入至目标内存映射io的数据区域,而bios可以通过从数据区域中拉取服务器的配置信息,进而对服务器进行相关操作。
59.在一个实施例中,如图6所示,服务器还包括cpld设备,通过bios使用目标内存映射io与cpld设备进行交互,方法还包括:步骤602,调用cpld设备获取服务器对应的服务器配置信息。
60.步骤604,调用cpld设备将服务器配置信息写入至目标内存映射io中的数据区域。
61.步骤606,通过bios从目标内存映射io中的数据区域拉取服务器配置信息。
62.步骤608,通过bios根据服务器配置信息对服务器进行初始化操作。
63.其中,服务器的配置信息还可以通过cpld设备进行拉取,也就是说,服务器的固件中还可以包括cpld设备,bios使用目标内存映射io与cpld设备、bmc都可以进行交互,因此,cpld设备可以将拉取到的服务器配置信息写入至目标内存映射io的数据区域中。
64.具体地,cpld设备获取服务器对应的服务器配置信息,将服务器配置信息写入至目标内存映射io中的数据区域,而bios可以从目标内存映射io中的数据区域中拉取到服务器配置信息后,根据服务器配置信息对服务器进行初始化操作。其中,也就是说,服务器对应的配置信息可以通过bmc获取得到,或者通过cpld获取得到,具体的获取设备可根据实际业务需求、实际产品需求或实际应用场景进行确定。
65.在一个实施例中,通过bios使用目标内存映射io与bmc进行交互之后,还包括:调用bios通过目标内存映射io发送ipmi命令至bmc。
66.其中,由于将ipmi命令通道写入至目标内存映射io的数据区域,因此,bios可以通过目标内存映射io发送ipmi命令至bmc,相比现有技术,bios的ipmi命令是通过gpi0或者kcs通道发送至bmc,使用低延迟的目标内存映射io来发送ipmi命令,可以减少bios与bmc之间的交互时间,进而减少服务器配置或者维护的时间,也可以节省中央处理器cpu的gpi0,使得更过可用的gpi0能够用于其他功能开发。
67.在一个实施例中,如图7所示,通过bios使用目标内存映射io与bmc进行交互之后,还包括:步骤702,通过bmc获取目标内存映射io中的bios对应的选项和选项值。
68.步骤704,通过bmc接收修改操作指令,根据修改操作指令获取bios对应的选项和新的选项值。
69.步骤706,通过bmc将bios对应的选项和新的选项值写入至目标内存映射io中。
70.其中,bios使用目标内存映射io与bmc进行交互后,bmc可以通过读取目标内存映射io的数据区域获取bios对应的选项和选项值,并通过界面展示出来,接收到修改操作指令,修改操作指令是在该展示界面进行修改操作触发生成的,修改操作指令中携带了修改的选项和新的选项值,bmc根据修改操作指令将修改的选项和新的选项值写入至目标内存
映射io的数据区域,并告知bios,bios通过读取目标内存映射io的数据区域,则可确定修改的选项和新的选项值。
71.在一个实施例中,如图8所示,通过bios使用目标内存映射io与bmc进行交互之后,还包括:步骤802,调用bios发送当前数据至bmc。
72.步骤804,调用bmc根据目标内存映射io验证当前数据的合法性,在当前数据为合法数据时,接收bios发送的当前数据。
73.其中,这里的当前数据是bios需要发送至bmc的数据,可以是目标内存映射io的数据区域的数据,也可以是其他数据,具体地,bios发送当前数据至bmc,bmc接收到当前数据后,根据目标内存映射io的数据区域的数据与当前数据计算当前数据校验值,通过比较当前数据校验值和目标内存映射io的头部区域的数据校验值来确定当前数据的合法性,当两个数据校验值相同时,则说明当前数据为合法数据,bmc可以接收bios发送的当前数据。反之当两个数据校验值不相同时,则说明当前数据为非法数据,可能受到篡改,则bmc拒绝bios发送的当前数据。
74.在一个具体的应用场景,使用bmc中内置pcie设备的内存映射io用于bios和bmc交互。在服务器post阶段,bios根据bmc中内置pcie设备的容量要求获取一块初始内存映射io,同时bios,bmc和cpld共同制定初始内存映射io的布局和使用方法,布局中至少要包含仲裁机制,数据完整性检测,数据头标志,数据格式,数据掉电丢失保存方法等,仲裁机制包含在同一时间点仅允许一个设备去读取和修改数据,数据完整性包含当前数据的数据校验值等,初始内存映射io会被分割成两部分,一部分为header区域(头部区域),另一部分为data区域(数据区域)。首先bios初始化header区域,将ipmi命令通道切换到内存映射io。其次cpld设备或bmc设备将检测到的硬件信息填充到data区域。最后bios抓取data区域的信息初始化系统,同时bios也使用data区域跟bmc进行交互。具体实现步骤如下:1、规划内存映射io的布局,布局要考虑到仲裁机制,数据完整性检测,数据头标志,数据格式,数据掉电丢失保存方法等。
75.2、post阶段,bios 从cpu中获取一块初始内存映射io。
76.3、bios初始化该初始内存映射io,得到目标内存映射io,将ipmi命令通道切换到目标内存映射io。
77.4、cpld设备填写服务器的服务器配置信息到目标内存映射io中。
78.5、bios从目标内存映射io中读取服务器配置信息,并按照服务器配置信息对服务器进行初始化,同时bios也使用目标内存映射io中的data区域跟bmc进行交互。
79.应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
80.在一个实施例中,如图9所示,提供了一种固件交互装置900,应用于服务器,服务
器包括多个固件,各固件为cpu、bios和bmc,包括:获取模块902、操作模块904和交互模块906,其中:获取模块902,用于在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io。
81.操作模块904,用于通过bios对初始内存映射io进行初始化操作,得到目标内存映射io。
82.交互模块906,用于通过bios使用目标内存映射io与bmc进行交互。
83.在一个实施例中,操作模块904用于通过bios对初始内存映射io进行分割,得到初始内存映射io的头部区域和数据区域,通过bios对头部区域进行初始化,将ipmi命令通道切换到目标内存映射io,通过bios对数据区域进行填充操作,得到目标内存映射io。
84.在一个实施例中,交互模块906用于通过bios使用目标内存映射io的数据区域与bmc进行交互。
85.在一个实施例中,操作模块904用于通过bios在头部区域写入仲裁机制。
86.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc读取目标内存映射io。
87.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc修改目标内存映射io。
88.在一个实施例中,操作模块904用于通过bios将ipmi命令通道写入至数据区域,通过bios将bios对应的选项和选项值写入至数据区域,通过bios将bmc对应的pcie设备信息写入至数据区域,bmc内置有pcie设备。
89.在一个实施例中,固件交互装置900用于通过bios根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值,通过bios将数据校验值写入至头部区域,得到目标内存映射io。
90.在一个实施例中,固件交互装置900用于调用bmc获取服务器对应的当前配置信息,调用bmc将当前配置信息写入至目标内存映射io中的数据区域,调用bios从目标内存映射io中的数据区域拉取当前配置信息,调用bios根据当前配置信息对服务器进行初始化操作。
91.在一个实施例中,服务器还包括cpld设备,固件交互装置900用于调用cpld设备获取服务器对应的服务器配置信息,调用cpld设备将服务器配置信息写入至目标内存映射io中的数据区域,通过bios从目标内存映射io中的数据区域拉取服务器配置信息,通过bios根据服务器配置信息对服务器进行初始化操作。
92.在一个实施例中,固件交互装置900用于调用bios通过目标内存映射io发送ipmi命令至bmc。
93.在一个实施例中,固件交互装置900用于通过bmc获取目标内存映射io中的bios对应的选项和选项值,通过bmc接收修改操作指令,根据修改操作指令获取bios对应的选项和新的选项值,通过bmc将bios对应的选项和新的选项值写入至目标内存映射io中。
94.在一个实施例中,固件交互装置900用于调用bios发送当前数据至bmc,调用bmc根据目标内存映射io验证当前数据的合法性,在当前数据为合法数据时,接收bios发送的当前数据。
95.关于固件交互装置的具体限定可以参见上文中对于固件交互方法的限定,在此不再赘述。上述固件交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
96.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标内存映射io。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固件交互方法。
97.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
98.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:在服务器开机后加电自检阶段,bios从cpu中获取初始内存映射io,bios对初始内存映射io进行初始化操作,得到目标内存映射io,bios使用目标内存映射io与bmc进行交互。
99.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios对初始内存映射io进行分割,得到初始内存映射io的头部区域和数据区域,通过bios对头部区域进行初始化,将ipmi命令通道切换到目标内存映射io,通过bios对数据区域进行填充操作,得到目标内存映射io。
100.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios使用目标内存映射io的数据区域与bmc进行交互。
101.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios在头部区域写入仲裁机制。
102.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc读取目标内存映射io。
103.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc修改目标内存映射io。
104.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios将ipmi命令通道写入至数据区域,通过bios将bios对应的选项和选项值写入至数据区域,通过bios将bmc对应的pcie设备信息写入至数据区域,bmc内置有pcie设备。
105.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值,通过bios将数据校验值写入至头部区域,得到目标内存映射io。
106.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bmc获取服务器对应的当前配置信息,调用bmc将当前配置信息写入至目标内存映射io中的数据区域,调用bios从目标内存映射io中的数据区域拉取当前配置信息,调用bios根据当前配置信息对服
务器进行初始化操作。
107.在一个实施例中,服务器还包括cpld设备,处理器执行计算机程序时还实现以下步骤:调用cpld设备获取服务器对应的服务器配置信息,调用cpld设备将服务器配置信息写入至目标内存映射io中的数据区域,通过bios从目标内存映射io中的数据区域拉取服务器配置信息,通过bios根据服务器配置信息对服务器进行初始化操作。
108.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bios通过目标内存映射io发送ipmi命令至bmc。
109.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bmc获取目标内存映射io中的bios对应的选项和选项值,通过bmc接收修改操作指令,根据修改操作指令获取bios对应的选项和新的选项值,通过bmc将bios对应的选项和新的选项值写入至目标内存映射io中。
110.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bios发送当前数据至bmc,调用bmc根据目标内存映射io验证当前数据的合法性,在当前数据为合法数据时,接收bios发送的当前数据。
111.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在服务器开机后加电自检阶段,通过bios从cpu中获取初始内存映射io,通过bios对初始内存映射io进行初始化操作,得到目标内存映射io,通过bios使用目标内存映射io与bmc进行交互。
112.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios对初始内存映射io进行分割,得到初始内存映射io的头部区域和数据区域,通过bios对头部区域进行初始化,将ipmi命令通道切换到目标内存映射io,通过bios对数据区域进行填充操作,得到目标内存映射io。
113.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios使用目标内存映射io的数据区域与bmc进行交互。
114.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios在头部区域写入仲裁机制。
115.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc读取目标内存映射io。
116.在一个实施例中,仲裁机制为在同一时间点内仅允许bios或bmc修改目标内存映射io。
117.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios将ipmi命令通道写入至数据区域,通过bios将bios对应的选项和选项值写入至数据区域,通过bios将bmc对应的pcie设备信息写入至数据区域,bmc内置有pcie设备。
118.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bios根据ipmi命令通道、bios对应的选项和选项值和pcie设备信息计算得到数据校验值,通过bios将数据校验值写入至头部区域,得到目标内存映射io。
119.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bmc获取服务器对应的当前配置信息,调用bmc将当前配置信息写入至目标内存映射io中的数据区域,调用bios从目标内存映射io中的数据区域拉取当前配置信息,调用bios根据当前配置信息对服
务器进行初始化操作。
120.在一个实施例中,服务器还包括cpld设备,处理器执行计算机程序时还实现以下步骤:调用cpld设备获取服务器对应的服务器配置信息,调用cpld设备将服务器配置信息写入至目标内存映射io中的数据区域,通过bios从目标内存映射io中的数据区域拉取服务器配置信息,通过bios根据服务器配置信息对服务器进行初始化操作。
121.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bios通过目标内存映射io发送ipmi命令至bmc。
122.在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过bmc获取目标内存映射io中的bios对应的选项和选项值,通过bmc接收修改操作指令,根据修改操作指令获取bios对应的选项和新的选项值,通过bmc将bios对应的选项和新的选项值写入至目标内存映射io中。
123.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用bios发送当前数据至bmc,调用bmc根据目标内存映射io验证当前数据的合法性,在当前数据为合法数据时,接收bios发送的当前数据。
124.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
125.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
126.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献