CN115686650A - 一种pcie设备的初始化方法及服务器 - Google Patents
一种pcie设备的初始化方法及服务器 Download PDFInfo
- Publication number
- CN115686650A CN115686650A CN202211329462.9A CN202211329462A CN115686650A CN 115686650 A CN115686650 A CN 115686650A CN 202211329462 A CN202211329462 A CN 202211329462A CN 115686650 A CN115686650 A CN 115686650A
- Authority
- CN
- China
- Prior art keywords
- pcie
- server
- bios
- devices
- pcie device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种PCIE设备的初始化方法,包括:在所述服务器启动过程中,所述BIOS对所述服务器上连接的PCI E设备进行枚举,并将枚举的PCI E设备作为第一集合中的PCI E设备;所述BIOS获取第二集合中的PCI E设备,所述第二集合中的PCI E设备为所述BMC获取的服务器上连接的PCI E设备;所述BIOS将所述第一集合中的PCI E设备与所述第二集合中的PCI E设备进行匹配;若所述第一集合中的PCI E设备的数量小于所述第二集合中的PCI E设备的数量,所述BIOS等待第一时间段后,与第三集合中的PCI E设备建立连接,所述第三集合中的PCI E设备为包含在所述第二集合中且未包含在所述第一集合中的PCI E设备。解决了在服务器启动过程中PCI E设备发生的掉卡问题,保证了服务器系统的稳定性,以及增加了服务器系统的多样性。
Description
技术领域
本发明涉及服务器技术领域,尤其涉及一种PCIE设备的初始化方法及服务器。
背景技术
随着计算机产业的高速发展,计算机系统对基于高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)设备的依赖度也越来越高,越来越多的一般普通PCIE设备和特殊构造的PCIE设备被应用于计算机产业中。根据大数据统计分析发现,如果服务器搭配的PCIE设备种类和数量越多,那么,该服务器在市场的竞争力就越高。同样,服务器搭载的PCIE设备种类和数据量越多,PCIE设备发生掉卡的概率也就越大,容易引起服务器系统业务的卡顿或者中断。
发明内容
本申请实施例提供了一种PCIE设备的初始化方法及服务器,解决了在服务器启动过程中PCIE设备发生的掉卡问题,保证了服务器系统的稳定性,以及增加了服务器系统的多样性。
第一方面,本申请提供了一种PCIE设备的初始化方法,该方法应用于服务器,服务器包括BIOS和BMC,该方法包括:在服务器启动过程中,BIOS读取服务器上连接的PCIE设备,得到第一PCIE设备集合,并与第一PCIE设备集合中的PCIE设备建立连接,第一PCIE设备集合包括至少一个PCIE设备;BIOS通过BMC获取第二PCIE设备集合,第二PCIE设备集合包括至少一个PCIE设备,第二PCIE设备集合中的PCIE设备由BMC从服务器上获取;在第一PCIE设备集合中PCIE设备的数量小于第二PCIE设备集合中PCIE设备的数量的情况下,BIOS与第二PCIE设备集合中的至少一部分PCIE设备建立连接,第一PCIE设备集合中不包含至少一部分PCIE设备。
也就是说,在服务器的启动过程中,BIOS对服务器上的PCIE设备进行枚举以后,BIOS可以将BMC获取的服务器上的PCIE设备的在位情况,与枚举结果进行对比。如果服务器上存在至少一个PCIE设备在位,但是枚举失败的情况,即可以确定在服务器上存在至少一个PCIE设备发生了掉卡。此时,BIOS可以等待一段时间后,再次与枚举失败(掉卡)的PCIE设备进行重新连接。解决了在服务器启动过程中PCIE设备发生的掉卡问题,保证了服务器系统的稳定性,以及增加了服务器系统的多样性。
在一个可能的实现方式中,在BIOS与第二PCIE设备集合中的至少一部分PCIE设备建立连接之前,该方法还包括:BIOS将第一PCIE设备集合中的各个PICE设备的标识,与第二PCIE设备集合中的各个PCIE设备的标识进行比较,确定第二PCIE设备集合中的至少一部分PCIE设备的标识,至少一部分PCIE设备不包含在第一PCIE设备集合中。
也就是说,当枚举的PICE设备的数量小于PCIE设备的在位数量时,BIOS可以确定服务器上存在有PCIE设备处于掉卡状态。此时,BIOS需要将BMC上报的在位的PCIE设备的硬件ID与BIOS枚举的PCIE设备的硬件ID进行匹配,以确定处于掉卡状态的PCIE设备的硬件ID。
在一个可能的实现方式中,BIOS与第二PCIE设备集合中的至少一部分PCIE设备建立连接,包括:BIOS等待预设时长以后,与第二PCIE设备集合中的至少一部分PCIE设备建立连接。
也就是说,BIOS在确定服务器上存在处于掉卡状态的PCIE设备以后,BIOS可以在等待一段时间以后,再与处于掉卡状态的PCIE设备重新进行链接。以保证BIOS与处于掉卡状态的PCIE设备链接的成功率。
在一个可能的实现方式中,BIOS与第二PCIE设备集合中的至少一部分PCIE设备建立连接,包括:BIOS对第二PCIE设备集合中的至少一部分PCIE设备进行PCIE链路训练,以使第二PCIE设备集合中的至少一部分PCIE设备与BIOS之间的PCIE链路信息满足预设的链路要求。
也就是说,BIOS与PCIE设备建立连接的过程,即为BIOS对PCIE设备进行PCIE链路训练,以使枚举成功的PCIE设备与BIOS之间的PCIE链路信息满足预设的链路要求。若PCIE设备与BIOS之间的PCIE链路信息满足预设的链路要求,则可以认为该PCIE设备与BIOS连接成功。
在一个可能的实现方式中,在BIOS读取服务器上连接的PCIE设备之前,该方法还包括:在服务器上连接的PCIE设备均完成初始化的情况下,BIOS控制服务器进行热复位。
也就是说,在服务器启动过程中,BIOS可以在服务器保持上电的情况下,通过发起热复位,来触发服务器重启。
第二方面,本申请提供了一种服务器,包括BIOS和BMC,
BIOS用于在服务器启动过程中,BIOS读取服务器上连接的PCIE设备,得到第一PCIE设备集合,并与第一PCIE设备集合中的PCIE设备建立连接,第一PCIE设备集合包括至少一个PCIE设备;
BIOS还用于,通过BMC获取第二PCIE设备集合,第二PCIE设备集合包括至少一个PCIE设备,第二PCIE设备集合中的PCIE设备由BMC从服务器上获取;
BIOS还用于,在第一PCIE设备集合中PCIE设备的数量小于第二PCIE设备集合中PCIE设备的数量的情况下,与第二PCIE设备集合中的至少一部分PCIE设备建立连接,第一PCIE设备集合中不包含至少一部分PCIE设备。
在一个可能的实现方式中,在BIOS与第二PCIE设备集合中的至少一部分PCIE设备建立连接之前,BIOS还用于:
将第一PCIE设备集合中的各个PICE设备的标识与第二PCIE设备集合中的各个PCIE设备的标识进行比较,确定第二PCIE设备集合中的至少一部分PCIE设备的标识,至少一部分PCIE设备不包含在第一PCIE设备集合中。
在一个可能的实现方式中,BIOS用于:
在等待预设时长以后与第二PCIE设备集合中的至少一部分PCIE设备建立连接。
在一个可能的实现方式中,BIOS用于:
对第二PCIE设备集合中的至少一部分PCIE设备进行PCIE链路训练,以使第二PCIE设备集合中的至少一部分PCIE设备与BIOS之间的PCIE链路信息满足预设的链路要求。
在一个可能的实现方式中,在BIOS读取服务器上连接的PCIE设备之前,BIOS还用于:
在服务器上连接的PCIE设备均完成初始化的情况下,控制服务器进行热复位。
第三方面,本申请提供了一种PCIE设备的初始化方法,其特征在于,应用于服务器,服务器包括BIOS和BMC,该方法包括:
在服务器启动过程中,BIOS读取服务器上连接的PCIE设备,得到第一PCIE设备集合,并与第一PCIE设备集合中的PCIE设备建立连接,第一PCIE设备集合包括至少一个PCIE设备;
在第一PCIE设备集合中存在至少一个PCIE设备与BIOS无法建立连接的情况下,BIOS向BMC发送第一消息,第一消息中携带有至少一个PCIE设备的设备信息;
BMC根据第一消息中携带的至少一个PCIE设备的设备信息,确定至少一个PCIE设备是否连接在服务器上;
在BMC确定至少一个PCIE设备连接在服务器的情况下,BMC触发服务器重新启动。
在一个可能的实现方式中,该方法还包括:在BMC确定至少一个PCIE设备连接在服务器的情况下,BMC向BIOS发送第二消息,第二消息用于指示至少一个PCIE设备连接在服务器上;
BIOS根据第二消息触发服务器系统进行重启。
第四方面,本申请提供了一种电子设备,其特征在于,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第五方面,本申请提供了一种计算机可读介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种服务器的启动场景示意图;
图2为本申请实施例提供的一种服务器的结构示意;
图3为本申请实施例提供的一种PCIE设备的初始化方法的流程示意图;
图4为本申请实施例提供的又一种PCIE设备的初始化方法的流程示意图;
图5为本申请实施例提供的又一种PCIE设备的初始化方法的流程示意图;
图6为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例中的描述中,“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应该被理解为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在介绍本发明申请的方案之前,首先对本发明申请实施例中需要用到的关键数据进行解释。
1、PCIE,PCIE属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量等功能。在复杂的计算机系统,比如服务器中,都还配置PCIE设备。其中,常见的PCIE设备有:网卡、显卡、主机总线适配器(host bus adapter,HBA)等。
2、掉卡,针对服务器上连接的PCIE设备,当服务器上连接的PCIE设备处于在位状态但是在服务器启动过程中,没有被BIOS枚举到的PCIE设备,可以认为该PCIE设备处于掉卡状态。
3、键链,即建立连接,BIOS上电以后,由BIOS对PCIE设备进行链路训练,以使得PCIE与BIOS之间的链路信息满足预设链路的要求。当BIOS与PCIE设备之间键链成功以后,BIOS和PCIE设备之间可以通过PCIE链路进行通信。
4、热复位,复位可以分为冷复位和热复位。其中,把服务器从没接入电源到接入电源而自动产生的复位称为冷复位;服务器在已经通电的情况下,给它一个复位信号,称为热复位。
5、枚举,一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。比如,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需要的时候,只需要通过枚举调用即可。在本申请实施例中,可以将服务器上连接的PCIE设备定义成枚举类型,当服务器上电以后,BIOS可以通过枚举调用来获取服务器上连接的PCIE设备。
接着对本申请涉及的技术方案进行介绍。
当服务器上连接有PCIE设备时,在服务器启动过程中,根据PCIE的协议,当服务器启动以后,PCIE设备需要满足一定的启动时间要求,以完成PCIE设备的初始化。当服务器上的基本输入/输出系统(basic input/output system,BIOS)识别到PCIE设备完成初始化以后,BIOS执行重启程序,并在服务器重启以后,BIOS与PCIE设备之间建立连接。
示例性的,图1示出了一种PCIE设备的上电初始化流程。如图1所示,在理想启动场景下,服务器在t1时刻开始上电,PCIE设备上的固件也在t1时刻开始初始化,并在t4时刻完成初始化。当服务器上的BIOS检测到PCIE设备上的固件完成初始化以后,BIOS会触发服务器上的重启程序,使得服务器进行重新启动,以优化服务器上的硬件的配置信息。BIOS系统在t4时刻触发服务器进行重启,并在t5时刻重启完成。服务器重启完成以后,PCIE设备在t5时刻开始初始化,并在t7时刻初始化完成。当PCIE设备初始化完成以后,BIOS在t7时刻开始对服务器上连接的PCIE设备进行枚举,并与枚举到的PCIE设备建立连接。
实际启动场景中,服务器上的BIOS在t2时刻检测到PCIE设备初始化完成,并在t2时触发服务器上的重启程序,使得服务器进行重新启动(即BIOS发起Perst复位)。当服务器在t3时刻重启完成以后(即服务器Perst解复位),BIOS开始对服务器上连接的PCIE设备进行枚举,并在t6时刻对枚举到的PCIE设备进行建链。
参照图1可知,在服务器的实际启动过程中,在服务器重新启动以后,由于PCIE设备的启动响应时间以及PCIE设备的初始化时间过长(最长可能有15s)。等PCIE设备初始化完成,可能已经错过了BIOS的PCIE设备枚举时间点,从而会造成服务器上的PCIE设备掉卡的问题。
有鉴于此,本申请实施例提供了一种PCIE设备的初始化方法,针对服务器启动过程中,存在的PICE卡的掉卡问题。在服务器上电且重新启动(Perst复位)以后,BIOS正常枚举服务器上连接的所有PCIE设备。在BIOS枚举完服务器上的PCIE设备以后,BIOS还需要获取基板管理控制器(baseboard management controller,BMC)在服务器启动过程中获取的服务器上连接的PCIE设备的信息。然后BIOS将枚举的PCIE设备与BMC获取的PCIE设备进行比较。当BIOS确定BMC获取的PCIE设备的数量大于BIOS枚举的PCIE设备的数量时,BIOS对BMC获取到但是BIOS没有枚举到的PCIE设备进行重新连接,以避免服务器启动过程中PCIE设备掉卡,保证了服务器系统的稳定性,同时也增加了系统的多样性,即服务器可以连接多种不同类型的PCIE设备,且不会发生掉卡。
示例性的,图2示出了一种服务器的结构示意图。如图2所示,服务器包括:BIOS、Riser卡、BMC、PCIE设备。其中,BIOS是一组固化到服务器内板上一个ROM芯片上的程序,它保存着计算机(服务器)最重要的基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序。其最主要的功能是为计算机提供最底层最直接的硬件设置和控制。Riser卡也可以叫做PCIE Riser卡,一般是指插在PCIE接口上的功能扩展卡或转接卡,是新一代的总线接口。比如,服务器主板会提供一个比较长的插槽(非标准PCIE接口),然后Riser卡插在这个槽上,同时Riser卡上提供一个到几个标准的PCIE插槽,就可以将各种PCIE设备(比如,网卡、HBA卡、显卡等)插入到服务器上。BMC是部署于服务器单板上具有独立供电、独立I/O接口的控制单元,它不依赖于服务器的处理器、BIOS或者操作系统来工作,是一个单独在服务器内运行的无代理管理子系统。
BIOS通过增强型串行外围设备(enhanced serial peripheral,ESPI)总线与BMC通信。BIOS还可以通过PCIE接口(或者主桥(HostBridge))获取PCIE设备的初始化信息。BMC通过集成电路总线(Inter-Integrated Circuit,I2C)与Riser卡进行通信,以读取Riser卡信息。BMC通过通用输入/输出端口(general purpose I/O ports,GPIO)读取PCIE设备的硬件ID信息或者初始化信息,或者,BMC通过I2C总线读取PCA9555的管脚信号获取PCIE设备的ID信息或者初始化信息,或者,BMC通过I2C总线读取复杂可编程逻辑器件(complexprogramming logic device,CPLD)内的信息获取PCIE设备的ID信息或者初始化信息。PCIE设备通过I2C总线与Riser卡进行通信。
接下来,基于上文所描述的内容,对本申请实施例提供的一种PCIE设备的初始化方法进行介绍。
请参阅图3,图3是本申请实施例提供的一种PCIE设备的初始化方法的流程示意图。该方法可以由图2所示的服务器中的BIOS执行。如图3所示,该方法包括:S301-S305。
S301,服务器上电启动,BIOS获取服务器上的PCIE设备的初始化状态。
在本实施例中,服务器上电以后,BIOS通过BIOS和PCIE设备之间的PCIE接口获取PCIE设备的初始化状态。其中PCIE设备的初始化状态包括:PCIE设备初始化完成、PCIE设备初始化未完成。
在一个可能的示例中,PCIE设备在上电以后,PCIE设备进行初始化,并将初始化结果保存在PCIE设备内的CPLD中。BIOS可以通过PCIE接口读取PCIE设备上CPLD寄存器的值来确定该PCIE设备是否初始化完成。
在一个可能的示例中,在服务器上电启动以后,BIOS可以通过读取PCIE设备上的GPIO引脚上的电平信息,来确定PCIE设备的初始化状态。比如,PCIE设备在上电之前的GPIO引脚为低电平。当PCIE设备初始化完成之后,PCIE设备的GPIO引脚上的电平被拉高,变为高电平。
S302,在服务器上连接的PCIE设备初始化完成的情况下,BIOS触发服务器重启,对服务器上连接的PCIE设备进行枚举、并对枚举到的PCIE设备进行键链。
在本实施例中,当BIOS确定服务器上连接的PCIE设备都初始化完成的情况下,BIOS需要触发服务器重启,比如BIOS发起PERST复位,并解复位。当服务器重启以后(即服务器PERST解复位),BIOS需要对服务器上的PCIE设备进行枚举扫描,并与枚举扫描到的PCIE设备建立连接。
在一个可能的示例中,BIOS在枚举扫描服务器上的PCIE设备时,BIOS可以采用深度优先搜索算法(depth-first-search,DFS),遍历所有的PCIE总线,并获取该PCIE总线上连接的PCIE设备。
在一个可能的示例中,BIOS在对服务上的PCIE设备进行枚举扫描的过程,包含了对枚举扫描的PCIE设备进行键链的过程。
S303,BIOS根据服务器上的BMC获取的PCIE设备的在位信息,确定服务器上是否有处于掉卡状态的PCIE设备,若服务器上存在有PCIE设备处于掉卡状态,执行S304,否则执行S305。
在本实施例中,BMC是嵌入在服务器主板上的专用微控制器,BMC负责管理系统管理软件和平台硬件级之间的接口。服务器上电过程中,BMC也会同步进行上电,使得BMC启动。BMC启动以后,BMC会自动获取服务器上连接的PCIE设备的在位信息。其中,PCIE设备的在位信息包括:服务器上连接的PCIE设备的在位数量。可以理解的是,由于BMC是部署于服务器单板上具有独立供电、独立I/O接口的控制单元,它不依赖于服务器的处理器、BIOS或者操作系统来工作,是一个单独在服务器内运行的无代理管理子系统。即服务器重启以后,并不会影响BMC的初始化状态。
在一个可能的示例中,由于PCIE设备是插在服务器上的PCIE插槽中的,即PCIE设备需要通过Riser卡插入到服务器上。因此,BMC在获取服务器上连接的PCIE设备时,BMC可以首先获取服务器上插入的Riser卡。然后,BMC再进一步获取Riser卡上插入的PCIE设备的硬件信息。
在一个可能的示例中,BMC可以通过获取服务器上连接的PICE设备的硬件信息(比如硬件ID)来确定PCIE设备是否在位。若BMC能够读取到某一个PCIE设备的硬件ID,则BMC确定该PCIE设备在位。比如在一些示例中,PCIE设备包括GPIO引脚,这些引脚可以输出高/低电平。BMC可以通过总线读取Riser卡上插入的PCIE设备上的GPIO引脚上的电平信息,来获取PCIE设备的硬件ID。在另一些示例中,PCIE设备上包括CPLD。在生产装备阶段,生产厂商可以预先将PCIE设备的硬件ID写入到该PCIE设备的CPLD内。BMC可以通过总线I2C读取Riser卡上插入的PCIE设备上的CPLD中存储的硬件ID信息。在另一些示例中,PCIE设备上还包括有PCA9555寄存器,在生产装备阶段,生成厂商可以预先将PCIE设备的硬件ID写入到该PCIE设备的PCA9555寄存器内。BMC可以通过总线I2C读取Riser卡上插入的PCIE设备上的PCA9555中存储的硬件ID信息。
BIOS获取到BMC确定的服务器上连接的PCIE设备的在位信息以后,BIOS可以将枚举的PCIE设备的数量与BMC获取的在位的PCIE设备的数量进行比较。若BMC获取的在位的PCIE设备的数量大于BIOS枚举的PCIE设备的数量时,BIOS可以认为服务器上存在有PCIE设备处于掉卡状态。此时,BIOS需要确定处于掉卡状态的PCIE设备。其中,当某一个PCIE设备被BMC识别在位,但是没有被BIOS枚举到,可以认为该PCIE设备处于掉卡状态。
在一个可能的示例中,当BIOS确定BMC获取的PCIE设备的在位数量大于BIOS枚举的PCIE设备的数量以后,BIOS还需要将枚举的各个PCIE设备的ID信息与BMC获取的在位的PCIE设备的ID信息进行匹配,以确定哪些PCIE设备被BMC识别到而没有被BIOS枚举到。若BIOS确定BIOS枚举的PCIE设备的数量与BMC获取的在位的PCIE设备的数量相同,则BIOS可以确定没有PCIE设备发生掉卡,此时服务器可以正常启动。
在一个可能的示例中,BIOS对服务器上的PCIE设备进行枚举,以得到第一PCIE设备集合。BMC获取服务器上在位的PCIE设备得到第二PCIE设备集合。BIOS可以将第一PCIE设备集合中的PCIE设备与第二PCIE设备集合中的PCIE设备进行比较,以确定服务器上是否存在有PCIE设备处于掉卡状态。当服务器上存在有PCIE设备处于掉卡状态时,BIOS可以与处于掉卡状态的PCIE设备进行重新连接。
在一个可能的示例中,BIOS可以直接将第一PCIE设备集合中的PCIE设备的ID与第二PCIE设备集合中的PCIE设备ID进行比较,以确定服务器上是否存在有PCIE设备处于掉卡状态。当服务器上存在有PCIE设备处于掉卡状态时,确定处于掉卡状态的PCIE设备的ID,并根据该PCIE设备的ID与该PCIE设备建立连接。
在另一个可能的示例中,BIOS可以先将第一PCIE设备中的PCIE设备的数量,与第二PCIE设备集合中的PCIE设备的数量进行比较。在第一PCIE设备集合中PCIE设备数量小于第二PCIE设备集合中的PCIE设备数量的情况下,将第一PCIE设备集合中的PCIE设备的ID与第二PCIE设备集合中的PCIE设备ID进行比较,以确定处于掉卡状态的PCIE设备的ID,并根据该PCIE设备的ID与该PCIE设备建立连接。
S304,BIOS对处于掉卡状态的PCIE设备进行重新键链。
在本实施例中,BIOS确定了处于掉卡状态的PCIE设备以后,BIOS可以等待一个固定的时间段以后,与处于掉卡状态的PCIE设备重新建立连接,即BIOS重新进行Linkretrain。其中,在一个可能的示例中,BIOS与处于掉卡状态的PCIE设备重新建立连接的等待时间,可以在设备使用阶段由用户根据需求进行设定。比如,用户可以通过服务器的系统命令,进入到服务器启动设置界面,并在该界面输入用户设定的等待时间。在另一个可能的示例中,BIOS与处于掉卡状态的PCIE设备重新建立连接的等待时间,也可以是生产厂商根据服务器的性能需求进行设定,并且在服务器的生产阶段,写入到BIOS中。
在一个可能的示例中,BIOS与PCIE设备重新建立连接包括:BIOS对PCIE设备进行PCIE链路训练,以获取PCIE设备的链路信息。然后BIOS判断获取的PCIE设备的链路信息是否满足预设的链路要求。如果BIOS确定获取的PCIE设备的链路信息满足预设的链路要求,则BIOS与PCIE设备之间键链成功,BIOS和PCIE设备之间可以通过PCIE链路进行通信。进一步地,在BIOS和PCIE设备之间键链成功以后,BIOS可以配置服务器上的基地址寄存器,以给PCIE设备分配地址空间。如果BIOS确定获取的PCIE设备的链路信息不满足预设的链路要求,BIOS可以继续对该PCIE链路进行训练,直到该PCIE链路满足预设的链路要求。
在一个可能的示例中,BIOS获取的PCIE设备的链路信息包括PCIE链路的传输速率以及带宽。BIOS在确定PCIE设备的链路信息是否满足预设的链路要求时,BIOS可以判断PCIE链路的传输速率以及带宽是否分别满足预设的传输速率以及预设的带宽。
S305,服务器正常启动。
在本申请实施例中,在服务器的启动过程中,通过BMC获取服务器上的PCIE设备的在位信息,并把获取的服务器上的PCIE设备的在位信息发送给BIOS,使得BIOS可以在对服务器上的PCIE设备进行枚举扫描以后,根据枚举的PCIE设备信息与BMC上报的PCIE设备的在位信息,确定服务器上是否存在PCIE设备处于掉卡状态。当BIOS确定服务器上存在有PCIE设备处于掉卡状态时,BIOS获取处于掉卡状态的PCIE设备信息,并对处于掉卡状态的PCIE设备进行重新连接。解决了PCIE设备上电初始化时容易发生掉卡的问题。
示例性的,本申请实施例还提供了一种PCIE设备的初始化方法。图4为本申请实施例提供的一种PCIE设备的初始化方法的流程图。该方法可以由图2所示的服务器执行。如图4所示,该方法包括:S401-S404。
S401,服务器上电启动,BIOS获取服务器上的PCIE设备的初始化状态。
在本实施例中,服务器上电以后,BIOS通过BIOS和PCIE设备之间的PCIE接口获取PCIE设备的初始化状态。其中,BIOS获取服务器上的PCIE设备的初始化状态的过程可以参照S301,在此不再赘述。
S402,在服务器上连接的PCIE设备初始化完成的情况下,BIOS触发服务器重启,对服务器上连接的PCIE设备进行枚举、并对枚举到的PCIE设备进行键链。
在本实施例中,当BIOS确定服务器上连接的PCIE设备都初始化完成的情况下,BIOS需要触发服务器重启,比如BIOS发起PERST复位,并解复位,以优化服务器与服务器上连接的PCIE设备之间的连接配置参数。当服务器重启以后,BIOS需要对服务器上的PCIE设备进行枚举扫描,并与枚举扫描到的PCIE设备建立连接。
S403,BIOS对服务器上的PCIE设备进行扫描,若BIOS确定服务器上连接的PICE设备中存在至少一个PCIE设备存在异常,BIOS向BMC发送异常信息,该异常信息中包括异常PCIE设备的设备信息
在本实施例中,BIOS与服务器上的PCIE设备键链以后,服务器正常启动。服务器在进行操作系统(Operating System,OS)启动时,BIOS需要对服务器上连接的PCIE设备进行扫描,以获取每一个PCIE设备的资源需求。若BIOS在对服务器上的PCIE设备进行扫描的过程中发现异常的PCIE设备,BIOS需要向BMC发送异常信息,该异常信息中携带有异常设备的设备信息,比如,异常PCIE设备的硬件ID。
S404,BMC根据BIOS发送的中携带的PCIE设备信息,确定该PCIE设备是否在位,在确定该PCIE设备在位的情况下,BMC触发服务器系统进行重启
在本实施例中,BMC接收到BIOS发送的异常信以后,BMC会根据接收到的异常信息中携带的异常的PCIE设备的硬件ID,对该异常的PCIE设备进行进一步的判断,以确定该异常的PCIE设备的异常类型。其中,异常PCIE设备的异常类型包括:PCIE设备掉卡,PCIE设备不在位等。
在一个可能的示例中,BMC接收到BIOS发送的异常信息以后,BMC可以根据接收到的异常信息中携带的异常PCIE设备的硬件ID,确定该异常PCIE设备是否在位。具体地,BMC可以获取连接到服务器上的多个PCIE设备的硬件ID。然后,BMC将异常PCIE设备的硬件ID与BMC获取的连接在服务器上的PICE卡的硬件ID进行匹配。当BMC获取的连接在服务器上的多个PCIE设备的硬件ID中存在某一个PCIE设备的硬件ID与异常PCIE设备的硬件ID相匹配时,BMC可以确定该异常PCIE设备在位。否则BMC可以确定该异常PCIE设备不在位,即该异常PCIE设备没有插入到服务器上,或者该异常PCIE设备插入到服务器上了,但是该异常PCIE设备与服务器之间的硬件连接发生了故障。
在一个可能的示例中,PCIE设备包括GPIO,即PCIE设备上的一些引脚,这些引脚可以输出高/低电平。BMC可以通过总线读取Riser卡上插入的PCIE设备上的GPIO引脚上的电平信息,来获取该PCIE设备的硬件ID。
在一个可能的示例中,PCIE设备上包括CPLD。在生产装备阶段,生产厂商可以预先将PCIE设备的硬件ID写入到该PCIE设备的CPLD内。BMC可以通过总线I2C读取Riser卡上插入的PCIE设备上的CPLD中存储的硬件ID信息。
在一个可能的示例中,PCIE设备上还包括有PCA9555寄存器,在生产装备阶段,生成厂商可以预先将PCIE设备的硬件ID写入到该PCIE设备的PCA9555寄存器内。BMC可以通过总线I2C读取Riser卡上插入的PCIE设备上的PCA9555中存储的硬件ID信息。
若BMC能够获取到异常PCIE设备的硬件ID信息,则表明该异常PCIE设备在位。此时BMC可以通过触发服务器进行重新启动,即在服务器重启的过程中,使得BIOS与异常的PCIE设备进行重新键链。
在本申请实施例中,在BMC启动阶段合入PCIE设备的不在位检测告警机制。当BMC检测到PCIE设备不在的时,BMC可以不做相关告警,而直接对服务器系统进行一次强制启动,以解决服务器启动过程中的掉卡问题。
示例性的,本发明申请实施例还提供了一种PCIE设备的初始化方法。图5为本申请实施例提供的一种PCIE设备的初始化方法的流程图。该方法可以由图2所示的服务器执行。如图5所示,该方法包括:S501-S505。其中,S501-S503与S401-S403的过程相同,在此不再赘述。
S501,服务器上电启动,BIOS获取服务器上的PCIE设备的初始化状态。
S502,在服务器上连接的PCIE设备初始化完成的情况下,BIOS触发服务器重启,对服务器上连接的PCIE设备进行枚举、并对枚举到的PCIE设备进行键链。
S503,BIOS对服务器上的PCIE设备进行扫描,若BIOS确定服务器上连接的PICE设备中存在至少一个PCIE设备存在异常,BIOS向BMC发送异常信息,该异常信息中包括异常PCIE设备的设备信息
S504,BMC根据BIOS发送的中携带的PCIE设备信息,确定该PCIE设备是否在位,在确定该PCIE设备在位的情况下,BMC向BIOS发送反馈信息,该反馈信息用于BMC向BIOS发送反馈信息,该反馈信息用于指示该异常PCIE设备在位。
在本实施例中,BMC在判断PCIE设备是否在位时,BMC可以通过I2C读取PCIE设备的设备号来确定该PCIE设备是否在位。在PCIE设备在位的情况下,BMC可以将BMC获取的PCIE设备的在位信息发送给BIOS。
在一个可能的示例中,当PCIE设备为网卡时,BMC可以通过I2C获取网卡的芯片的设备号。若BMC能够读取到网卡的芯片的设备号,BMC可以确定该网卡在位。
S505,BIOS接收到BMC发送的反馈信息以后,BIOS触发服务器进行重启,。
在本实施例中,BIOS接收到BMC的反馈信息以后,BIOS可以通过重启系统的方式,来与异常PCIE设备建立连接。比如,BMC控制服务器系统下电。
在一个可能的示例中,BIOS也可以以热复位的方式对服务器系统进行重启。在本申请实施例中,在服务器启动过程中,针对服务器上连接的PCIE设备出现掉卡的场景进行热复位,增加了服务器系统的可用性和可维护性。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,其特征在于,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算设备,计算设备包括主板和芯片。其中,芯片集成在主板上,芯片包括至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述实施例中的方法。在本申请实施例中,计算设备可以是服务器、主机等网络设备。芯片可以是BMC、存储BIOS的芯片等。在本申请实施例中对计算设备的类型和芯片的类型并不做限定。
需要说明的是,在其他实施例中,BMC在不同计算设备中有不同的称呼,例如华为服务器、超聚变服务器的BMC为iBMC,HPE服务器的BMC称为iLO,DELL服务器的BMC称为iDRAC。
基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图6,图6为本申请实施例提供的一种芯片的结构示意图。如图6所示,芯片600包括一个或多个处理器601以及接口电路602。可选的,芯片600还可以包含总线603。其中:
处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接口电路602可以用于数据、指令或者信息的发送或者接收,处理器601可以利用接口电路602接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路602发送出去。
可选的,芯片600还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。
可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,接口电路602可用于输出处理器601的执行结果。
需要说明的,处理器601、接口电路602各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。另外,上述实施例中的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本申请的范围之内。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (10)
1.一种PCIE设备的初始化方法,其特征在于,应用于服务器,所述服务器包括BIOS和BMC,所述方法包括:
在所述服务器启动过程中,所述BIOS读取所述服务器上连接的PCIE设备,得到第一PCIE设备集合,并与所述第一PCIE设备集合中的PCIE设备建立连接,所述第一PCIE设备集合包括至少一个PCIE设备;
所述BIOS通过所述BMC获取第二PCIE设备集合,所述第二PCIE设备集合包括至少一个PCIE设备,所述第二PCIE设备集合中的PCIE设备由所述BMC从所述服务器上获取;
在所述第一PCIE设备集合中PCIE设备的数量小于所述第二PCIE设备集合中PCIE设备的数量的情况下,所述BIOS与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接,所述第一PCIE设备集合中不包含所述至少一部分PCIE设备。
2.根据权利要求1所述的方法,其特征在于,在所述BIOS与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接之前,所述方法还包括:
所述BIOS将所述第一PCIE设备集合中的各个PICE设备的标识,与所述第二PCIE设备集合中的各个PCIE设备的标识进行比较,确定所述第二PCIE设备集合中的至少一部分PCIE设备的标识,所述至少一部分PCIE设备不包含在所述第一PCIE设备集合中。
3.根据权利要求1所述的方法,其特征在于,所述BIOS与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接,包括:
所述BIOS等待预设时长以后,与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述BIOS与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接,包括:
所述BIOS对所述第二PCIE设备集合中的至少一部分PCIE设备进行PCIE链路训练,以使所述第二PCIE设备集合中的至少一部分PCIE设备与所述BIOS之间的PCIE链路信息满足预设的链路要求。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述BIOS读取所述服务器上连接的PCIE设备之前,所述方法还包括:
在所述服务器上连接的PCIE设备均完成初始化的情况下,所述BIOS控制所述服务器进行热复位。
6.一种服务器,其特征在于,包括:BIOS和BMC,
所述BIOS用于在所述服务器启动过程中,BIOS读取所述服务器上连接的PCIE设备,得到第一PCIE设备集合,并与所述第一PCIE设备集合中的PCIE设备建立连接,所述第一PCIE设备集合包括至少一个PCIE设备;
所述BIOS还用于,通过所述BMC获取第二PCIE设备集合,所述第二PCIE设备集合包括至少一个PCIE设备,所述第二PCIE设备集合中的PCIE设备由所述BMC从所述服务器上获取;
所述BIOS还用于,在所述第一PCIE设备集合中PCIE设备的数量小于所述第二PCIE设备集合中PCIE设备的数量的情况下,与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接,所述第一PCIE设备集合中不包含所述至少一部分PCIE设备。
7.根据权利要求6所述的服务器,其特征在于,在所述BIOS与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接之前,所述BIOS还用于:
将所述第一PCIE设备集合中的各个PICE设备的标识与所述第二PCIE设备集合中的各个PCIE设备的标识进行比较,确定所述第二PCIE设备集合中的至少一部分PCIE设备的标识,所述至少一部分PCIE设备不包含在所述第一PCIE设备集合中。
8.根据权利要求6所述的服务器,其特征在于,所述BIOS用于:
在等待预设时长以后与所述第二PCIE设备集合中的至少一部分PCIE设备建立连接。
9.根据权利要求6-8任一项所述的服务器,其特征在于,所述BIOS用于:
对所述第二PCIE设备集合中的至少一部分PCIE设备进行PCIE链路训练,以使所述第二PCIE设备集合中的至少一部分PCIE设备与所述BIOS之间的PCIE链路信息满足预设的链路要求。
10.根据权利要求6-9任一项所述的服务器,其特征在于,在所述BIOS读取所述服务器上连接的PCIE设备之前,所述BIOS还用于:
在所述服务器上连接的PCIE设备均完成初始化的情况下,控制所述服务器进行热复位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211329462.9A CN115686650A (zh) | 2022-10-27 | 2022-10-27 | 一种pcie设备的初始化方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211329462.9A CN115686650A (zh) | 2022-10-27 | 2022-10-27 | 一种pcie设备的初始化方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686650A true CN115686650A (zh) | 2023-02-03 |
Family
ID=85098940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211329462.9A Pending CN115686650A (zh) | 2022-10-27 | 2022-10-27 | 一种pcie设备的初始化方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686650A (zh) |
-
2022
- 2022-10-27 CN CN202211329462.9A patent/CN115686650A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8640118B2 (en) | Managing firmware on a system board | |
US20180210783A1 (en) | Information processing apparatus, control method of the same, and storage medium | |
US11314665B2 (en) | Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device | |
CN115658582A (zh) | 一种pcie设备扫描方法及服务器 | |
WO2018120200A1 (zh) | 一种服务器管理方法和服务器 | |
CN114817105B (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
WO2023147748A1 (zh) | 一种服务器初始化智能网卡的方法、装置、设备及介质 | |
CN111159090B (zh) | 一种信息处理方法、装置和电子设备 | |
US10491736B2 (en) | Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS | |
CN110413554B (zh) | 热插拔系统及热插拔方法 | |
CN110688235B (zh) | Uefi固件与os间共享无线连接信息的系统及方法 | |
CN112162794B (zh) | 一种单板启动方法、装置、单板以及网络设备 | |
TWI796260B (zh) | 主機裝置 | |
US9298663B2 (en) | Information processing apparatus and information processing method | |
CN117687695A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN115686650A (zh) | 一种pcie设备的初始化方法及服务器 | |
CN116301972A (zh) | 一种微控制单元固件升级方法及系统 | |
CN115794456A (zh) | PCIe链路修复方法、装置及计算设备 | |
CN114237722A (zh) | 一种系统的启动方法、装置、设备及工程车辆 | |
TW202238382A (zh) | 主機板、主機板的外接裝置以及主機板的開機方法 | |
CN112667544A (zh) | 一种控制主板插槽使能的方法、装置、系统及介质 | |
CN111913551A (zh) | 重置基板管理控制器的控制方法 | |
CN106445571B (zh) | 主机板及开机的方法 | |
CN116661818A (zh) | 一种bmc软件系统的升级方法、装置及存储介质 | |
CN117931246B (zh) | 一种升级ec固件的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |