CN117648225A - Mcio接口测试治具及其测试方法 - Google Patents
Mcio接口测试治具及其测试方法 Download PDFInfo
- Publication number
- CN117648225A CN117648225A CN202311645327.XA CN202311645327A CN117648225A CN 117648225 A CN117648225 A CN 117648225A CN 202311645327 A CN202311645327 A CN 202311645327A CN 117648225 A CN117648225 A CN 117648225A
- Authority
- CN
- China
- Prior art keywords
- preset
- state
- fpga chip
- chip
- configuration
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 141
- 238000010998 test method Methods 0.000 title claims abstract description 8
- 238000012549 training Methods 0.000 claims abstract description 53
- 238000006243 chemical reaction Methods 0.000 claims abstract description 17
- 238000001514 detection method Methods 0.000 claims description 114
- 238000000034 method Methods 0.000 claims description 30
- 230000005540 biological transmission Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 239000000306 component Substances 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了MCIO接口测试治具及其测试方法,包括:测试治具电路板,及设于其上的FPGA芯片、金手指、电源连接器、电源转换模块和数码管;金手指用于在MCIO接口测试治具连接服务器主板进行测试时与服务器主板的MCIO连接器连接;FPGA芯片通过电源转换模块与电源连接器的一端连接;电源连接器的另一端可用于在MCIO接口测试治具连接服务器主板进行测试时与服务器主板的电源连接;数码管与FPGA芯片连接。本发明实现了由FPGA芯片模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试,无需采用额外的PCIe设备,不仅减少测试花费时间,而且降低了PCIe设备开销。
Description
技术领域
本发明涉及服务器的MCIO接口测试技术领域,尤其涉及MCIO接口测试治具及其测试方法。
背景技术
随着PCIe5.0(PCIe全称是Peripheral Component Interconnect express,表示一种高速串行计算机扩展总线标准,PCIe5.0是PCIe标准的5.0版本)在服务器上的运用,且服务器所使用的CPU(CPU全称是Central Processing Unit,表示中央处理器)的PCIe接口数的不断增。为了充分灵活的使用PCIe资源,越来越多的服务器设计采用多个MCIO连接器(MCIO全称是Mini Cooledge IO,是一种应用在高速传输的服务器和交换机中的连接器,其产品体积小,连接可靠稳定),以用于将PCIe信号通过高速线缆与外部PCIE设备(例如,PCIERiser卡、NVMe硬盘背板等)连接。
服务器所使用的CPU是设置在服务器主板上,服务器主板在工厂生产时,在按照出货配置组装成整机之前需要单独对服务器主板进行功能性的测试,主要包括对MCIO接口的功能测试。而在对服务器主板的MCIO接口进行测试则是通过高速线缆将MCIO接口中的PCIe信号与PCIE设备连接,然后HOST端对PCIe设备进行扫描以确认是否可以识别到PCIe设备以确定该MICO接口功能是否正常,那么在测试过程中的需要不断插拔高速线缆与PCIe设备进行组装或拆装,且需要额外的PCIe配件。
在上述过程中对服务器主板进行功能性的测试时,在不断插拔高速线缆与PCIe设备进行组装或拆装的过程中,PCIe设备会有损坏,导致测试成本较高。
发明内容
本发明实施例提供了一种MCIO接口测试治具及其测试方法,旨在解决现有技术中对服务器中主板进行功能性的测试时,在不断插拔高速线缆与PCIe设备进行组装或拆装的过程中,PCIe设备会有损坏,导致测试成本较高的问题。
第一方面,本发明实施例提供了一种MCIO接口测试治具,其包括测试治具电路板、FPGA芯片、金手指、电源连接器、电源转换模块和数码管;所述金手指、所述FPGA芯片、所述电源连接器、所述电源转换模块和所述数码管均设置于所述测试治具电路板上;所述金手指用于在所述MCIO接口测试治具连接服务器主板进行测试时与服务器主板的MCIO连接器连接;所述FPGA芯片通过所述电源转换模块与所述电源连接器的一端连接;所述电源连接器的另一端可用于在所述MCIO接口测试治具连接服务器主板进行测试时与服务器主板的电源连接;所述数码管与所述FPGA芯片连接;其中,所述FPGA芯片用于模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试。
第二方面,本发明实施例还提供了一种MCIO接口测试方法,其应用于MCIO接口测试系统,所述MCIO接口测试系统如上述第一方面所述的MCIO接口测试治具,以及与所述MCIO接口测试治具连接的服务器主板;所述MCIO接口测试方法包括:
所述MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果;
所述MCIO接口测试治具若确定第一状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Polling状态检测,得到第二状态检测结果;
所述MCIO接口测试治具若确定第二状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Configuration状态检测,得到第三状态检测结果;
所述MCIO接口测试治具若确定第三状态检测结果对应检测成功结果,则控制进入第一预设状态,通过数码管对所述第一预设状态对应显示,并结束测试。
本发明实施例提供了MCIO接口测试治具及其测试方法,包括:测试治具电路板、FPGA芯片、金手指、电源连接器、电源转换模块和数码管;金手指、FPGA芯片、电源连接器、电源转换模块和数码管均设置于测试治具电路板上;金手指用于在MCIO接口测试治具连接服务器主板进行测试时与服务器主板的MCIO连接器连接;FPGA芯片通过电源转换模块与电源连接器的一端连接;电源连接器的另一端可用于在MCIO接口测试治具连接服务器主板进行测试时与服务器主板的电源连接;数码管与FPGA芯片连接。本发明实现了由FPGA芯片模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试,无需采用额外的PCIe设备,不仅减少测试花费时间,而且降低了PCIe设备开销。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的MCIO接口测试治具的示意性框图;
图2为本发明实施例提供的MCIO接口测试治具的应用场景示意图;
图3为本发明实施例提供的MCIO接口测试治具方法的流程示意图;
图4为本发明实施例提供的MCIO接口测试治具方法的子流程示意图;
图5为本发明实施例提供的MCIO接口测试治具方法中第一预设序列的数据结构示意图;
图6为本发明实施例提供的MCIO接口测试治具方法中第二预设序列的数据结构示意图;
图7为本发明实施例提供的MCIO接口测试治具方法的另一子流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请同时参考图1和图2,图1为本发明实施例提供的MCIO接口测试治具的示意性框图;图2为本发明实施例提供的MCIO接口测试治具的应用场景示意图。如图1和图2所示,MCIO接口测试治具10包括:测试治具电路板11、FPGA芯片12、金手指13、电源连接器14、电源转换模块15和数码管16;金手指13、FPGA芯片12、电源连接器14、电源转换模块15和数码管16均设置于测试治具电路板11上;金手指13用于在MCIO接口测试治具10连接服务器主板20进行测试时与服务器主板20的MCIO连接器22连接;FPGA芯片12通过电源转换模块15与电源连接器14的一端连接;电源连接器14的另一端可用于在MCIO接口测试治具10连接服务器主板20进行测试时与服务器主板20的12V电源连接(在图2中服务器主板20上设置的电源模块23作为12V电源与电源连接器14连接);数码管16与FPGA芯片12连接;其中,FPGA芯片12用于模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试。
在本实施例中,请再次参考图2,在服务器主板20上还设置有BMC模块24(BMC的全称是Baseboard Management Controller,表示基板管理控制器),且服务器主板20上的核心元件是CPU芯片21。CPU芯片21通过PCIe x8线缆与MCIO连接器22连接,BMC模块24通过I2C总线与MCIO连接器22连接。金手指13与MCIO连接器22相适配,可以直接插接至服务器主板20上的MCIO连接器22,不再需要使用高速信号线缆进行连接。
MCIO接口测试治具10的供电方式则是电源连接器14通过电源线与服务器主板20的电源模块23也即12V电源连接(服务器主板20上通常设置有GPU连接器或者背板电源连接器,都是可以提供12V电源)相连,再通过MCIO接口测试治具10上的电源转换模块15。其中,电源转换模块可用Voltage Regulator模块表示,可简记为VR模块,VR模块可以是一个或者多个,其只要能转换出满足FPGA芯片12正常工作所需要的工作电压即可。
而且,MCIO接口测试治具10上还设置有数码管16,其可以同时显示两位数,用于在通过FPGA芯片12模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试时,指示PCIe链路训练的实时状态。PCIe链路训练的实时状态还会写入I2C总线对应的寄存器中,以供给服务器主板20上的BMC模块24进行读取。
其中,链路训练状态机即Link Training and Status State Machine,简记为LTSSM。PCIe设备的数据传输或者交互都是点对点进行的,在PCIe设备可以正常使用之前都会进行初始化,在初始化过程中,会在链路训练(LinkTraining)阶段进行链路信号质量、速率、链路宽度的调节,可由链路训练状态机自动完成。
链路训练状态机一共有11个状态,当服务器主板的系统启动或复位等情况发生时,PCIe设备会从Detect状态开始,经Polling状态、Configuration状态进入L0状态(该状态为PCIe链路正常工作的状态)。Host端(即主机端)可以访问Device端(即设备端,也可以视为从机端)的配置空间以及与之进行数据交互。根据PCIe设备的上述特点,可以选择FPGA芯片12替代PCIe设备对服务器主板20的MCIO接口进行测试,即使用FPGA芯片12模拟PCIe设备与Host端(即服务器主板)进行链路训练。如果FPGA芯片12模拟的PCIe设备能进入L0状态则说明PCIe链路正常,并实时输出PCIe的状态,以便于在出现链路训练异常时方便技术人员找出并解决问题。
在通过FPGA芯片12模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试时,链路训练状态机是对应有如表1中包括的11种链路训练状态(服务器主板20只有依次经历Detect状态、Polling状态和Configuration状态,且能顺利进入到L0状态,才能说明服务器主板的PCIe链路正常),且在如表1中所示的每一种链路训练均会在I2C总线对应的寄存器中有唯一的I2C寄存器值,如表1中所示的每一种链路训练均会唯一对应在数码管上显示的两位显示值:
表1
链路训练状态 | I2C寄存器值 | 数码管的两位显示值 |
Detect.Quiet | 10 | 10 |
Detect.Active | 11 | 11 |
Polling.Active | 21 | 21 |
Polling.Configuration | 22 | 22 |
Polling.Compliance | 23 | 23 |
Configuration.LinkWidth.Start | 31 | 31 |
Configuration.LinkWidth.Accpet | 32 | 32 |
Configuration.Lanenum.Wait | 33 | 33 |
Configuration.Lanenum.Accpet | 34 | 34 |
Configuration.Complete | 35 | 35 |
Configuration.Idle | 36 | 36 |
L0 | 41 | 41 |
异常状态 | EE | EE |
因以链路训练状态机对应的测试策略以对服务器主板20的MCIO接口进行测试时,如表1中包括的11种链路训练状态,MCIO接口测试治具10在每一种链路训练状态的停留时间均较长,通过数码管不能方便每一个链路训练状态都可以看得到,故为了方便技术人员定位MCIO接口的问题,可以采用多个I2C寄存器进行记录。例如,第一I2C寄存器存放当前状态值,当状态发生变化时,此时第一I2C寄存器已存放的移动到第二I2C寄存器,第一I2C寄存器再来记录新的当前状态值,如此,可以通过I2C总线及多个I2C寄存器使得BMC模块24能获取上述测试过程中所有的链路训练状态值以便技术人员查阅。
综上,本MCIO接口测试治具的实施例实现了由FPGA芯片模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试,无需采用额外的PCIe设备,不仅减少测试花费时间,而且降低了PCIe设备开销。
本发明实施例还提供了一种MCIO接口测试方法,其应用于MCIO接口测试系统,MCIO接口测试系统如上述任意一实施例中的MCIO接口测试治具,以及与MCIO接口测试治具连接的服务器主板。如图3所示,MCIO接口测试方法包括:
S110、MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果。
在本实施例中,MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测时,主要是用来确认FPGA芯片与CPU芯片之间的PCIe链路上可以正常工作的连接通道(即PCIe Lane)。FPGA芯片与CPU芯片之间的PCIe链路一般包括8个PCIe Lane,且分别记为Lane0~Lane7。
在服务器主板上电后,即可使得FPGA芯片与CPU芯片开始进入Detect状态并进行Detect状态检测,得到第一状态检测结果。其中,Detect状态又包括Detect.Quiet状态和Detect.Active状态。
在一实施例中,如图4所示,步骤S110包括:
S111、服务器主板上电;
S112、MCIO接口测试治具中的FPGA芯片和服务器主板中的CPU芯片均进入Detect.Quiet状态;
S113、当确定FPGA芯片和CPU芯片均进入Detect.Quiet状态超过第一预设时长,或当确定FPGA芯片与CPU芯片之间的PCIe链路中有连接通道退出静默状态,则FPGA芯片和CPU芯片均进入Detect.Active状态;
S114、若确定FPGA芯片与CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收,则得到Detect状态检测成功结果,并以Detect状态检测成功结果作为第一状态检测结果。
在本实施例中,服务器主板上电后,PCIe链路两端的设备(即CPU芯片和FPGA芯片)复位后同时进入Detect.Quiet状态(此时发送逻辑TX处于Electrical Idle状态),FPGA芯片先将Linkup位及Upconfigure_Capable状态位置0,此时PCIe链路处于静默状态,即Detect.Quiet状态。
当CPU芯片和FPGA芯片处于Detect.Quiet状态超过第一预设时长(如将第一预设时长设置为12ms)之后,或者确定FPGA芯片与CPU芯片之间的PCIe链路中有连接通道退出静默状态(即检测到PCIe链路上的其中一个或多个PCIe Lane退出静默状态),则FPGA芯片和CPU芯片均进入Detect.Active状态。
CPU芯片均进入Detect.Active状态后,CPU芯片上的逻辑TX向对端(也即FPGA芯片)中未经过配置的连接通道发送Receive Detection序列(Receive Detection序列可以视为一个脉冲波形,即CPU芯片上的发送逻辑TX产生一个脉冲波形至FPGA芯片上的接收逻辑RX,这个脉冲波形将穿越通过发送PCIe链路上的AC耦合电容,最后到达FPGA芯片上的接收逻辑RX。
在一实施例中,在步骤S114之前还包括:
FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的发送端获取在发送脉冲波形至接收端后产生的电流曲线,若确定与各连接通道的对应的电流曲线均与预设标准电流曲线相同,则判定FPGA芯片与CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收。
在本实施例中,在具体判断FPGA芯片与CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收时,具体是CPU芯片上的发送逻辑TX在基于CPU芯片上的VD+信号和VD-信号对应的脉冲波形且被FPGA芯片的接收逻辑RX接收后,之后通过CPU芯片上的接收逻辑RX接收反馈信号获取对应的电流曲线,根据该电流曲线均与预设标准电流曲线的比对结果,以判断CPU芯片上的接收逻辑RX是否正常工作,还可以检测FPGA芯片的接收逻辑RX是否正常工作。
在FPGA芯片与CPU芯片之间的PCIe链路中,如果所有连接通道的接收逻辑RX都在正常工作时,则FPGA芯片进入Polling状态。
在PCIe链路中如果没有一个连接通道的接收逻辑RX被检测到,则FPGA芯片将进入到Detect.Quiet状态。
在PCIe链路中如果仅有部分连接通道正确检测到对端的接收逻辑RX的存在,FPGA芯片将等待12ms,然后使用PCIe链路的所有未检测成功过的连接通道向对端重新发送Receiver Detection序列(也即脉冲波形),以进一步识别PCIe链路中可用的连接通道,如果这次检测结果与第一次检测结果相同,FPGA芯片则将这些不可用的连接通道配置为Electrical Idle状态,并进入Polling状态。此时FPGA芯片的I2C寄存器(可以理解为之前示例中的第一I2C寄存器)中写入EE(以表示针对于此测试,此状态为异常状态,因为MCIO接口PCIe带宽为x8,需要8个连接通道都需要被别识别到),同时控制数码管显示EE且不会再改变,除非FPGA芯片重新回到Detect状态。如果这次检测结果与第一次检测结果不相同,则FPGA芯片则进入Detect.Quiet状态。
S120、MCIO接口测试治具若确定第一状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Polling状态检测,得到第二状态检测结果。
在本实施例中,当MCIO接口测试治具若确定第一状态检测结果对应检测成功结果,则表示FPGA芯片和CPU芯片均退出了Detect.Active状态并且进入了Polling状态。其中,Polling状态包括Polling.Active状态、Polling.Compliance状态和Polling.Configuration状态。
在FPGA芯片和CPU芯片进入到Polling状态进行Polling状态检测时,FPGA芯片和CPU芯片之间会依次发送第一预设序列和第二预设序列,从而完成Polling状态检测以得到二状态检测结果。其中第一预设序列由16个字符组成且字符示意图如下图5所示,第二预设序列也由16个字符组成且字符示意图如下图6所示。
如图5和图6所示,第一预设序列和第二预设序列的区别在于第6~15个字符不同(也即图5和图6中的字符6到字符15),第一预设序列(可记为TS1序列)的第6~15个字符是为D10.2,第二预设序列(可记为TS2序列)的第6~15个字符是为D5.2。第一预设序列和第二预设序列的第0~5个字符(也即图5和图6中的字符0到字符5)则是相同的。
其中,以第一预设序列的16个字符更详细的说明每一个字符的含义,具体如下:
A1)第0个字符为COM控制字符(K28.5),PCIe设备识别COM的过程为字符锁定。
A2)在链路训练阶段,第1个字符存放控制字符PAD(K23.7),PAD即为空;在配置阶段,第1个字符存放LinkNumber(LinkNumber即连接编号)。
A3)在链路训练阶段,第2个字符存放控制字符PAD(K23.7),即为空;在配置阶段,第2个字符存放Lane Number(Lane Number即连接通道编号)。
A4)第3个字符存放FTS(FTS全称是FastTraining Sequence,表示快速训练序列)序列个数,单个FTS序列由一个COM(K28.5)字符加上3个FTS(K28.1)字符组成,FTS序列的主要目的是使接收逻辑RX重新获得Bit/Symbol Lock,用于L0s状态的恢复,在MCIO接口的测试过程中设置为0;
A5)第4个字符存放当前PCIe设备支持的数据传输速率;在第4个字符包括6位,其中第0位表示Flit Mode是否支持(FPGA发送的TS序列中此位为0b,表示不支持);第1~5位表示数据传输速率,更具体是第1位为1表示支持2.5GT/s传输速率,在此测试中仅采用2.5GT/s的数据传输速率(即FPGA发送的TS序列中第5~1位为00001b);第6~7位预留。
A6)第5个字符存放命令:在第4个字符包括8位,其中第0位为“Hot Reset”;第1位为“Disable Link”;第2位为“Lookback”;第3位为“Disable Scrambling”;第4位为“Compliance Receive”(本测试中TS序列仅以2.5GT/s速率传输,故可设定为0b,即不使用);第5位预留位(本测试中FPGA发送的TS可设置为0);第6~7位在本测试中不使用(测试中FPGA发送的TS可设置为00b);
当FPGA芯片或CPU芯片的接收逻辑RX收到TS1或者TS2序列后,将根据该字符的命令进行对应的操作。
在一实施例中,如图7所示,步骤S120包括:
S121、FPGA芯片和CPU芯片均进入Polling.Active状态;
S122、FPGA芯片获取第一预设寄存器中Enter Compliance Bit位的第一取值;
S123、FPGA芯片若确定第一取值等于第一预设取值,且FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第一预设条件集中任意一个预设条件,则FPGA芯片和CPU芯片均进入Polling.Configuration状态;
S124、FPGA芯片将第一预设寄存器中Transmit Margin位设置为第一预设取值;
S125、FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的序列满足第三预设条件集中任意一个预设条件,则得到Polling状态检测成功结果,并以Polling状态检测成功结果作为第二状态检测结果。
在本实施例中,当FPGA芯片与CPU芯片均进入Polling.Active状态后,PCIe设备首先检查第一预设寄存器(即Link Control2寄存器)的Enter Compliance Bit位,第一预设寄存器的Enter Compliance Bit位不为第二预设取值(例如第二预设取值设置为1)且为第一预设取值(例如第一预设取值设置为0),则CPU芯片和FPGA芯片分别通过各自的发送逻辑TX需要向对端发送至少1024个TS1序列,其中TS1序列的Lane Number和LinkNumber必须为PAD(即不设置LaneNumbe和Link Number),当FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第一预设条件集中任意一个预设条件,则FPGA芯片和CPU芯片均进入Polling.Configuration状态,其中第一预设条件集中包括以下预设条件,且第一预设条件集对应适用对象是在Detect状态下在PCIe链路中被识别的连接通道:
B1)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均接收8个连续的TS1序列,其中Lane Number及LinkNumber为PAD、且Compliance Receive位为0(即字符5的第4位为0b);
B2)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均接收8个连续的TS1序列,其中Lane Number及LinkNumber为PAD,且Loopback位为1(即字符5的第2位为1b);
B3)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均接收8个连续的TS2序列,其中Lane Number及Link Number为PAD(对端先进入Polling.Configuration状态,从而生成TS2序列)。
而且,如果FPGA芯片进入Polling.Configuration状态,则置第一预设寄存器中Transmit Margin位为0,然后CPU芯片和FPGA芯片通过各自在Detect状态时已识别的连接通道向对端连续发送TS2序列,其中Link Number和Lane Number为PAD且Lookback位为0。当FPGA芯片的接收逻辑RX收到连续的8个TS2序列,其中LinkNumber和Lane Number为PAD,且在接收到1个TS2序列之后已经发送16个TS2序列,FPGA芯片将进入Configuration状态,否则经过48ms延迟后进入Detect状态。
在一实施例中,在步骤S122之后还包括:
FPGA芯片若确定第一取值等于第二预设取值,FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列不满足第一预设条件集中所有预设条件,则等待第一预设等待时长;
在等待第一预设等待时长后,FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第二预设条件集中任意预设条件,则FPGA芯片和CPU芯片均进入Polling.Configuration状态;其中,第二预设条件集与第一预设条件集之间存在交集,且第二预设条件集与第一预设条件集之间存在差异预设条件。
在本实施例中,在FPGA芯片与CPU芯片之间的PCIe链路中FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列不满足第一预设条件集中所有预设条件,则表示FPGA芯片和CPU芯片不能进入Polling.Configuration状态,此时可以先等待第一预设等待时长(如将第一预设等待时长设置为24ms,具体实施时并不局限于24ms,并可根据用户实际需求自定义设置)。在FPGA芯片和CPU芯片等待了第一预设等待时长后,FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第二预设条件集中任意预设条件,则FPGA芯片和CPU芯片均进入Polling.Configuration状态,其中第二预设条件集中包括以下预设条件,且第二预设条件集对应适用对象是在Detect状态下在PCIe链路中被识别的连接通道:
C1)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均收到了8个连续的TS1序列,其中Lane Number及Link Number为PAD、且Compliance Receive位为0b(字符5第4位为0b);
C2)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均收到了8个连续的TS1序列,其中Lane Number及LinkNumber为PAD、且Loopback位为0b(字符5第2位为1b)。
C3)CPU芯片的接收逻辑RX及FPGA芯片的接收逻辑RX均收到了8个连续的TS2,其中Lane Number及LinkNumber为PAD。
在步骤S121中,当FPGA芯片和CPU芯片均进入Polling.Active状态时PCIe链路中有至少一个连接通道是检测到对端设备。
在一实施例中,在步骤S122之后还包括:
所述FPGA芯片若确定所述第一取值等于第二预设取值,则所述FPGA芯片和所述CPU芯片均进入Polling.Compliance状态。
在本实施例中,如果该Enter Compliance Bit位为第二预设取值(例如具体将第二预设取值设置为1),FPGA芯片与CPU芯片均进入Polling.Compliance状态。在FPGA芯片与CPU芯片均进入Polling.Compliance状态时,此状态主要的作用的是对PCIe链路进行检测,如进入此状态FPGA芯片对应的I2C寄存器中写入EE,同时控制数码管显示EE且不会再改变,除非PCIe设备重新回到Polling.Active状态或者Detect状态。
当FPGA芯片与CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列既不满足第一预设条件集中所有预设条件,也不满足第一预设条件集中所有预设条件,则FPGA芯片与CPU芯片均进入Polling.Compliance状态以对PCIe链路进行修复,修复成功重新进入Polling.Active状态,修复不成功则退回至Detect状态。
S130、MCIO接口测试治具若确定第二状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Configuration状态检测,得到第三状态检测结果。
在本实施例中,当MCIO接口测试治具若确定第二状态检测结果对应检测成功结果,则表示FPGA芯片和CPU芯片均退出了Polling状态并且进入了Configuration状态。其中,Configuration状态包括Configuration.LinkWidth.Start状态、Configuration.LinkWidth.Accpet状态、Configuration.Lanenum.Wait状态、Configuration.Lanenum.Accpet状态、Configuration.Complete状态及Configuration.Idle状态。通过基于链路训练状态机的自动执行,会依次经历上述六种状态。
在一实施例中,步骤S130包括:
CPU芯片进入Configuration.Linkwidth.Start状态;
CPU芯片通过PCIe链路中每一个连接通道向FPGA芯片连续发送第一预设个数的第一预设序列后,若接收到FPGA芯片基于PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则CPU芯片进入Configuration.Linkwidth.Accept状态;
FPGA芯片进入Configuration.Linkwidth.Start状态;
FPGA芯片通过PCIe链路中每一个连接通道向CPU芯片连续发送第一预设个数的第一预设序列后,若接收到CPU芯片基于PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则FPGA芯片进入Configuration.Linkwidth.Accept状态;
在Configuration.Linkwidth.Start状态下,CPU芯片若通过PCIe链路接收到连续两个第一预设序列,且连续两个第一预设序列具有相同的连接编号,CPU芯片向FPGA芯片发送第二预设个数的第一预设序列,CPU芯片进入Configuration.Lanenum.Wait状态;
在Configuration.Linkwidth.Start状态下,FPGA芯片若通过PCIe链路接收到连续两个第一预设序列,且连续两个第一预设序列的连接编号与FPGA芯片在Configuration.Linkwidth.Start状态向CPU芯片连续发送第一预设个数的第一预设序列的连接编号相同,FPGA芯片向FPGA芯片发送第三预设个数的第一预设序列,FPGA芯片进入Configuration.Lanenum.Wait状态;
在Configuration.Lanenum.Wait状态下,CPU芯片接收到的序列满足第三预设条件集中任意预设条件,则CPU芯片进入Configuration.Lanenum.Accept状态;
在Configuration.Lanenum.Wait状态下,FPGA芯片接收到的序列满足第四预设条件集中任意预设条件,则FPGA芯片进入Configuration.Lanenum.Accept状态;
在Configuration.Lanenum.Accept状态下,CPU芯片接收到连续两个第一预设序列满足第一预设条件,则CPU芯片进入Configuration.Complete状态;
在Configuration.Lanenum.Accept状态下,FPGA芯片接收到连续两个第一预设序列满足第二预设条件,则FPGA芯片进入Configuration.Complete状态;
在Configuration.Complete状态下,CPU芯片通过PCIe链路向FPGA芯片发送第二预设序列,若CPU芯片接收到的序列满足第三预设条件,则CPU芯片进入Configuration.Idle状态;
在Configuration.Complete状态下,FPGA芯片通过PCIe链路向CPU芯片发送第二预设序列,若FPGA芯片接收到的序列满足第四预设条件,则FPGA芯片进入Configuration.Idle状态;
CPU芯片向FPGA芯片发送至少第四预设个数的第三预设序列,且FPGA芯片向CPU芯片发送至少第四预设个数的第三预设序,在FPGA芯片和CPU芯片均接收至少第四预设个数的第三预设序列成功时,得到Configuration状态检测成功结果,并以Configuration状态检测成功结果作为第三状态检测结果。
在本实施例中,在CPU芯片和FPGA芯片均进入Configuration状态时,会使用Configuration.Linkwidth.Start状态和Configuration.Linkwidth.Accept状态这两个状态进行PCIe链路两端设备LinkNumber协商,以确定下游链路(即FPGA芯片)与CPU芯片的连接拓扑结构。
CPU芯片和FPGA芯片进入Configuration状态后,测试正常的情况下均会依次经历Configuration.LinkWidth.Start状态、Configuration.LinkWidth.Accpet状态、Configuration.Lanenum.Wait状态、Configuration.Lanenum.Accpet状态、Configuration.Complete状态及Configuration.Idle状态,下面针对该详细过程做如下说明:
D1)当CPU芯片先进入Configuration.Linkwidth.Start状态时,其RC端口(即CPU的PCIe端口)通过发送逻辑TX向下游链路的每一个连接通道都发送若干个TS1序列,在这若干个TS1序列中LinkNumber字段分别为N~N+7、Lane Number字段为PAD且Loopback字段为0。CPU芯片完成了TS1序列发送后开始监控其接收逻辑RX,如果接收逻辑RX中的任何一个连接通道收到至少1个来自FPGA芯片的TS1序列后(TS1序列中的LinkNumber和Lane Number字段都为PAD),需要进一步判断是否任何一个连接通道收到两个连续的TS1序列(序列中LinkNumber为N~N+7之间的某一个值,Lane Number为PAD,即与发送的TS1序列中任一一个LinkNumber相同),上述检测成功后,CPU芯片将进入Configuration.Linkwidth.Accept状态。
当FPGA芯片进入Configuration.Linkwidth.Start状态时,首先向其上游链路对应的CPU芯片发送若干个TS1序列(该TS1序列中Link Number和Lane Number字段都为PAD),这也是CPU芯片的RC端口的下游端口先收到这个TS1序列(Link和Lane Number为PAD)的原因。之后FPGA芯片等待来自CPU芯片的TS1序列,如果满足PCIe链路中的任何一个连接通道收到两个连续的TS1序列,且其中Link Number不为空(LinkNumber应该有N,N+1…N+7,因为CPU芯片端的Lane0~7都连接到FPGA这一个PCIe设备),那么此时FPGA芯片的所有连接通道(Lane0~7)仅使用其中一个LinkNumber组成若干个TS1序列并通过发送逻辑TX发送给CPU芯片,这个序列Lane Number为PAD,随后FPGA芯片进入Configuration.Linkwidth.Accept状态。如果不满足PCIe链路中的任何一个连接通道收到两个连续的TS1序列,则FPGA芯片在等待24ms后进入Detect状态。
D2)当CPU芯片进入Configuration.Linkwidth.Accept状态时,CPU芯片将分析接收到的TS1序列,如果PCIe链路所有连接通道接收到两个连续的TS1序列,且所有TS1序列中LinkNumber相同(即连接编号相同)且与发送时(发送时LinkNumber为N、N+1、……、N+7)的某一值相同,此时CPU芯片将所有的LinkNumber相同的连接通道组合在一起,通过此步骤CPU芯片的下游端口可以确定其链路的拓扑结构(即确定通过MCIO接口只连接到了一个PCIe设备也即FPGA模拟的设备)。CPU芯片在确定链路拓扑结构后,将向下游链路所有的连接通道发送第二预设个数的第一预设序列(即发送若干个TS1序列),并在之后进入Configuration.Lanenum.Wait状态,此时发送的若干个TS1序列中Link Number为确定值,即接收的Link Number,而Lane Number在m~m+7之间。
当FPGA芯片进入Configuration.Linkwidth.Accept状态时,FPGA芯片将等待的CPU芯片发送的TS1序列,如果收到两个连续的TS1序列,该两个连续的TS1序列中的连接编号(即Link Number)等于在Configuration.Linkwidth.Start状态时发送给CPU芯片的第一预设个数的第一预设序列的LinkNumber,而且Lane Number不为PAD时,FPGA芯片将向CPU芯片发送第三预设个数的第一预设序列(即发送若干个TS1序列),若干个TS1序列中LinkNumber不为PAD且与接收到一致,Lane Number与接收的一致或者不一致(不一致时表示顺序与接收到的是颠倒的)。之后FPGA芯片进入Configuration.Lanenum.Wait状态。否则,在2ms后或者所有的Lane接收到两个连续的TS1(其中LinkNumber和Lane Number为PAD),FPGA芯片进入Detect状态,也即返回执行步骤S110。
D3)当CPU芯片进入Configuration.Lanenum.Wait状态时,如果CPU芯片接收到的序列满足第三预设条件集中任意预设条件,则CPU芯片进入Configuration.Lanenum.Accept状态,其中第三预设条件集中包括以下预设条件:(1)CPU芯片的任一连接通道的接收逻辑RX如果接收到两个连续的TS1序列,其中Lane Number与此连接通道首次进入Configuration.Lanenum.Wait状态时不同、且并非所有的Lane的LinkNumber为PAD;(2)CPU芯片所有的连接通道接收到的两个连续的TS1序列中LinkNumber和Lane Number的值与发送的时一致。当CPU芯片接收到的序列满足上述第三预设条件集中任意一个预设条件时,则将进入Configuration.Lane.Accept状态。否则,在2ms后或者CPU芯片的所有的连接通道接收到两个连续的TS1,其中LinkNumber和Lane Number为PAD,则CPU芯片进入Detect状态,也即返回执行步骤S110。
当FPGA芯片进入Configuration.Lanenum.Wait状态时,如果FPGA芯片接收到的序列满足第四预设条件集中任意预设条件,则FPGA芯片进入Configuration.Lanenum.Accept状态,其中第四预设条件集中包括以下预设条件:(1)FPGA芯片的任一连接通道的接收逻辑RX接收到两个连续的TS1序列,两个连续的TS1序列中的Lane Number与此连接通道首次进入Configuration.Lanenum.Wait状态时不同,且并非所有的连接通道的Lane Number为PAD;(2)FPGA芯片的任一连接通道接收到两个连续的TS2序列。当FPGA芯片接收到的序列满足上述第四预设条件集中任意预设条件,则FPGA芯片进入Configuration.Lanenum.Accept状态。否则,在2ms后或者FPGA芯片所有的连接通道接收到两个连续的TS1,其中LinkNumber和Lane Number为PAD,则进入Detect状态,也即返回执行步骤S110。
D4)当CPU芯片进入Configuration.Lanenum.Accept状态时,CPU芯片接收到连续两个第一预设序列满足第一预设条件,则CPU芯片进入Configuration.Complete状态,其中第一预设条件为连续两个第一预设序列中的LinkNumber和Lane Number不为空、且与对应连接通道的发送逻辑TX所发送的TS1中LinkNumber和Lane Number相同。如果CPU芯片的任一连接通道接收到两个连续的TS1序列,两个连续的TS1序列中的Link Number和LaneNumber不为空,两个连续的TS1序列中各TS1序列的LinkNumber相同且Lane Number不同,那么CPU芯片的发送逻辑TX将所发送的TS1序列中的Lane Number颠倒,然后进入Configuration.Complete状态;如果CPU芯片与FPGA芯片无法建立起正确的连接或者接收到两个连续的TS1,其中LinkNumber和Lane Number为PAD,则进入Detect状态,也即返回执行步骤S110。
当FPGA芯片进入Configuration.Lanenum.Accept状态时,如果FPGA芯片接收到连续两个第一预设序列满足第二预设条件,则FPGA芯片进入Configuration.Complete状态,其中第二预设条件为FPGA芯片的所有连接通道接收到两个连续TS1序列,两个连续TS1序列中各TS1序列的LinkNumber和Lane Number不为空且与对应连接通道的发送逻辑TX所发送的TS1中Link Number和Lane Number相同。如果FPGA芯片的任一连接通道接收到两个连续TS1序列,两个连续TS1序列中各TS1序列的LinkNumber和Lane Number不为空、与对应连接通道的发送逻辑TX所发送的TS1中LinkNumber相同且Lane Number不同,那么FPGA芯片的发送逻辑TX将所发送的TS1序列中的Lane Number颠倒,然后进入Configuration.Complete状态。如果FPGA芯片的与CPU芯片无法建立起正确的连接或者接收到两个连续的TS1,其中LinkNumber和Lane Number为PAD,则进入Detect状态,也即返回执行步骤S110。
D5)当CPU芯片进入Configuration.Complete状态时,CPU芯片通过PCIe链路向FPGA芯片发送第二预设序列,若CPU芯片接收到的序列满足第三预设条件,则CPU芯片进入Configuration.Idle状态。其中,第三预设条件为:CPU芯片将通过发送逻辑TX发送TS2序列,TS2序列中的Link Number和Lane Number与接收到TS1中的LinkNumber和Lane Number相同,当所有发送TS2序列的Lane接收到八个连续的TS2序列,八个连续的TS2序列各TS2序列中Link Number不为PAD、Lane Number匹配(即为D4)步骤中Lane Number协商后的结果)、数据传输速率相同(字符4的第6位匹配),且在接收到第一个TS2序列后已发送完16个TS2序列。当CPU芯片接收到的序列满足上述第三预设条件,则将进入Configuration.Idle状态,否则2ms后进入Detect状态。
当FPGA芯片进入Configuration.Complete状态时,FPGA芯片通过PCIe链路向CPU芯片发送第二预设序列,若FPGA芯片接收到的序列满足第四预设条件,则FPGA芯片进入Configuration.Idle状态。其中,第四预设条件为:FPGA芯片将通过发送逻辑TX发送TS2序列,TS2序列中的Link Number和Lane Number与接收到TS2中的LinkNumber和Lane Number相同,当所有发送TS2序列的连接通道接收到八个连续的TS2序列,八个连续的TS2序列中各TS2序列的LinkNumber不为PAD、Lane Number匹配(即上一步骤Lane Number协商后的结果)、数据传输速率相同(字符4的第6位匹配),且在接收到第一个TS2序列后已发送完16个TS2序列。当FPGA芯片接收到的序列满足上述第四预设条件,则将进入Configuration.Idle状态,否则2ms后进入Detect状态。
D6)在CPU芯片和FPGA芯片均进入Configuration.Idle后,CPU芯片和FPGA芯片各自向对端发送至少16个IDLE序列,在CPU芯片和FPGA芯片各自的接收逻辑RX接收到上述这至少16个IDLE序列后,得到Configuration状态检测成功结果,并以Configuration状态检测成功结果作为第三状态检测结果。可见,基于上述过程实现了链路训练状态机对服务器主板进行自动的Configuration状态检测。
在一实施例中,在CPU芯片进入Configuration.Linkwidth.Start状态的步骤之后,方法还包括:
CPU芯片通过PCIe链路中每一个连接通道向FPGA芯片连续发送第一预设个数的第一预设序列后,若未接收到FPGA芯片基于PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则等待第二预设等待时长,并返回执行MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果的步骤。
在本实施例中,当CPU芯片通过PCIe链路中每一个连接通道向FPGA芯片连续发送第一预设个数的第一预设序列后,若未接收到FPGA芯片基于PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则表示上述检测不成功,CPU芯片将进在等待第二预设等待时长(如将第二预设等待时长设置为24ms)后则进入Detect状态,也即返回执行步骤S110。
在一实施例中,在CPU芯片通过PCIe链路中每一个连接通道向FPGA芯片连续发送第一预设个数的第一预设序列后,若接收到FPGA芯片基于PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则CPU芯片进入Configuration.Linkwidth.Accept状态的步骤之后,方法还包括:
在Configuration.Linkwidth.Start状态下,CPU芯片若通过PCIe链路接收到连续两个第一预设序列,且连续两个第一预设序列具有不相同的连接编号,则等待第三预设等待时长,并返回执行MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果的步骤。
在本实施例中,在Configuration.Linkwidth.Start状态下,CPU芯片若通过PCIe链路接收到连续两个第一预设序列,且连续两个第一预设序列具有不相同的连接编号,则表示上述检测不成功,CPU芯片将进在等待第三预设等待时长(如将第三预设等待时长设置为2ms)后则进入Detect状态,也即返回执行步骤S110。
S140、MCIO接口测试治具若确定第三状态检测结果对应检测成功结果,则控制进入第一预设状态,通过数码管对第一预设状态对应显示,并结束测试。
在本实施例中,当MCIO接口测试治具若确定第三状态检测结果对应检测成功结果,则表示MCIO接口测试治具基于链路训练状态机完成了除进入L0状态前的所有链路训练,此时若FPGA芯片还能进入链路训练状态机中的L0状态(第一预设状态即表示L0状态),则表示测试成功,且通过数码管对第一预设状态对应显示(如具体显示41表示测试通过)。之后若FPGA芯片或CPU芯片复位重启,方可进行下一次测试。
综上所述,本方法的实施例实现了由FPGA芯片模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试,无需采用额外的PCIe设备,不仅减少测试花费时间,而且降低了PCIe设备开销。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种MCIO接口测试治具,其特征在于,包括:测试治具电路板、FPGA芯片、金手指、电源连接器、电源转换模块和数码管;所述金手指、所述FPGA芯片、所述电源连接器、所述电源转换模块和所述数码管均设置于所述测试治具电路板上;所述金手指用于在所述MCIO接口测试治具连接服务器主板进行测试时与服务器主板的MCIO连接器连接;所述FPGA芯片通过所述电源转换模块与所述电源连接器的一端连接;所述电源连接器的另一端可用于在所述MCIO接口测试治具连接服务器主板进行测试时与服务器主板的电源连接;所述数码管与所述FPGA芯片连接;其中,所述FPGA芯片用于模拟PCIe设备并以链路训练状态机对应的测试策略以对服务器主板的MCIO接口进行测试。
2.一种MCIO接口测试方法,其特征在于,应用于MCIO接口测试系统,所述MCIO接口测试系统包括如权利要求1所述的MCIO接口测试治具,以及与所述MCIO接口测试治具连接的服务器主板;所述MCIO接口测试方法包括:
所述MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果;
所述MCIO接口测试治具若确定第一状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Polling状态检测,得到第二状态检测结果;
所述MCIO接口测试治具若确定第二状态检测结果对应检测成功结果,则基于链路训练状态机对服务器主板进行Configuration状态检测,得到第三状态检测结果;
所述MCIO接口测试治具若确定第三状态检测结果对应检测成功结果,则控制进入第一预设状态,通过数码管对所述第一预设状态对应显示,并结束测试。
3.根据权利要求2所述的方法,其特征在于,所述MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果,包括:
服务器主板上电;
所述MCIO接口测试治具中的FPGA芯片和所述服务器主板中的CPU芯片均进入Detect.Quiet状态;
当确定所述FPGA芯片和所述CPU芯片均进入Detect.Quiet状态超过第一预设时长,或当确定所述FPGA芯片与所述CPU芯片之间的PCIe链路中有连接通道退出静默状态,则所述FPGA芯片和所述CPU芯片均进入Detect.Active状态;
若确定所述FPGA芯片与所述CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收,则得到Detect状态检测成功结果,并以所述Detect状态检测成功结果作为所述第一状态检测结果。
4.根据权利要求3所述的方法,其特征在于,在所述若确定所述FPGA芯片与所述CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收,则得到Detect状态检测成功结果,并以所述Detect状态检测成功结果作为所述第一状态检测结果的步骤之前,所述方法还包括:
所述FPGA芯片与所述CPU芯片之间的PCIe链路中各连接通道的发送端获取在发送脉冲波形至接收端后产生的电流曲线,若确定与各连接通道的对应的电流曲线均与预设标准电流曲线相同,则判定所述FPGA芯片与所述CPU芯片之间的PCIe链路中所有连接通道的发送端发送的脉冲波形均能由接收端正常接收。
5.根据权利要求3所述的方法,其特征在于,所述基于链路训练状态机对服务器主板进行Polling状态检测,得到第二状态检测结果,包括:
所述FPGA芯片和所述CPU芯片均进入Polling.Active状态;
所述FPGA芯片获取第一预设寄存器中Enter Compliance Bit位的第一取值;
所述FPGA芯片若确定所述第一取值等于第一预设取值,且所述FPGA芯片与所述CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第一预设条件集中任意一个预设条件,则所述FPGA芯片和所述CPU芯片均进入Polling.Configuration状态;
所述FPGA芯片将所述第一预设寄存器中Transmit Margin位设置为所述第一预设取值;
所述FPGA芯片与所述CPU芯片之间的PCIe链路中各连接通道的序列满足第三预设条件集中任意一个预设条件,则得到Polling状态检测成功结果,并以所述Polling状态检测成功结果作为所述第二状态检测结果。
6.根据权利要求5所述的方法,其特征在于,在所述FPGA芯片获取第一预设寄存器中Enter Compliance Bit位的第一取值的步骤之后,所述方法还包括:
所述FPGA芯片若确定所述第一取值等于第二预设取值,所述FPGA芯片与所述CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列不满足第一预设条件集中所有预设条件,则等待第一预设等待时长;
在等待所述第一预设等待时长后,所述FPGA芯片与所述CPU芯片之间的PCIe链路中各连接通道的接收端接收到的序列满足第二预设条件集中任意预设条件,则所述FPGA芯片和所述CPU芯片均进入Polling.Configuration状态;其中,所述第二预设条件集与所述第一预设条件集之间存在交集,且所述第二预设条件集与所述第一预设条件集之间存在差异预设条件。
7.根据权利要求5所述的方法,其特征在于,在所述FPGA芯片获取第一预设寄存器中Enter Compliance Bit位的第一取值的步骤之后,所述方法还包括:
所述FPGA芯片若确定所述第一取值等于第二预设取值,则所述FPGA芯片和所述CPU芯片均进入Polling.Compliance状态。
8.根据权利要求3所述的方法,其特征在于,所述基于链路训练状态机对服务器主板进行Configuration状态检测,得到第三状态检测结果,包括:
所述CPU芯片进入Configuration.Linkwidth.Start状态;
所述CPU芯片通过所述PCIe链路中每一个连接通道向所述FPGA芯片连续发送第一预设个数的第一预设序列后,若接收到所述FPGA芯片基于所述PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则所述CPU芯片进入Configuration.Linkwidth.Accept状态;
所述FPGA芯片进入Configuration.Linkwidth.Start状态;
所述FPGA芯片通过所述PCIe链路中每一个连接通道向所述CPU芯片连续发送所述第一预设个数的所述第一预设序列后,若接收到所述CPU芯片基于所述PCIe链路中至少一个连接通道发送的连续两个所述第一预设序列,则所述FPGA芯片进入Configuration.Linkwidth.Accept状态;
在Configuration.Linkwidth.Start状态下,所述CPU芯片若通过所述PCIe链路接收到连续两个所述第一预设序列,且连续两个所述第一预设序列具有相同的连接编号,所述CPU芯片向所述FPGA芯片发送第二预设个数的所述第一预设序列,所述CPU芯片进入Configuration.Lanenum.Wait状态;
在Configuration.Linkwidth.Start状态下,所述FPGA芯片若通过所述PCIe链路接收到连续两个所述第一预设序列,且连续两个所述第一预设序列的连接编号与所述FPGA芯片在Configuration.Linkwidth.Start状态向所述CPU芯片连续发送所述第一预设个数的所述第一预设序列的连接编号相同,所述FPGA芯片向所述FPGA芯片发送第三预设个数的所述第一预设序列,所述FPGA芯片进入Configuration.Lanenum.Wait状态;
在Configuration.Lanenum.Wait状态下,所述CPU芯片接收到的序列满足第三预设条件集中任意预设条件,则所述CPU芯片进入Configuration.Lanenum.Accept状态;
在Configuration.Lanenum.Wait状态下,所述FPGA芯片接收到的序列满足第四预设条件集中任意预设条件,则所述FPGA芯片进入Configuration.Lanenum.Accept状态;
在Configuration.Lanenum.Accept状态下,所述CPU芯片接收到连续两个所述第一预设序列满足第一预设条件,则所述CPU芯片进入Configuration.Complete状态;
在Configuration.Lanenum.Accept状态下,所述FPGA芯片接收到连续两个所述第一预设序列满足第二预设条件,则所述FPGA芯片进入Configuration.Complete状态;
在Configuration.Complete状态下,所述CPU芯片通过所述PCIe链路向FPGA芯片发送第二预设序列,若所述CPU芯片接收到的序列满足第三预设条件,则所述CPU芯片进入Configuration.Idle状态;
在Configuration.Complete状态下,所述FPGA芯片通过所述PCIe链路向CPU芯片发送所述第二预设序列,若所述FPGA芯片接收到的序列满足第四预设条件,则所述FPGA芯片进入Configuration.Idle状态;
所述CPU芯片向所述FPGA芯片发送至少第四预设个数的第三预设序列,且所述FPGA芯片向所述CPU芯片发送至少第四预设个数的所述第三预设序,在所述FPGA芯片和所述CPU芯片均接收至少第四预设个数的第三预设序列成功时,得到Configuration状态检测成功结果,并以所述Configuration状态检测成功结果作为所述第三状态检测结果。
9.根据权利要求8所述的方法,其特征在于,在所述CPU芯片进入Configuration.Linkwidth.Start状态的步骤之后,所述方法还包括:
所述CPU芯片通过所述PCIe链路中每一个连接通道向所述FPGA芯片连续发送第一预设个数的第一预设序列后,若未接收到所述FPGA芯片基于所述PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则等待第二预设等待时长,并返回执行所述MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果的步骤。
10.根据权利要求8所述的方法,其特征在于,在所述CPU芯片通过所述PCIe链路中每一个连接通道向所述FPGA芯片连续发送第一预设个数的第一预设序列后,若接收到所述FPGA芯片基于所述PCIe链路中至少一个连接通道发送的连续两个第一预设序列,则所述CPU芯片进入Configuration.Linkwidth.Accept状态的步骤之后,所述方法还包括:
在Configuration.Linkwidth.Start状态下,所述CPU芯片若通过所述PCIe链路接收到连续两个所述第一预设序列,且连续两个所述第一预设序列具有不相同的连接编号,则等待第三预设等待时长,并返回执行所述MCIO接口测试治具基于链路训练状态机对服务器主板进行Detect状态检测,得到第一状态检测结果的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311645327.XA CN117648225A (zh) | 2023-12-04 | 2023-12-04 | Mcio接口测试治具及其测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311645327.XA CN117648225A (zh) | 2023-12-04 | 2023-12-04 | Mcio接口测试治具及其测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117648225A true CN117648225A (zh) | 2024-03-05 |
Family
ID=90049121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311645327.XA Pending CN117648225A (zh) | 2023-12-04 | 2023-12-04 | Mcio接口测试治具及其测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648225A (zh) |
-
2023
- 2023-12-04 CN CN202311645327.XA patent/CN117648225A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558371B (zh) | 用于与微控制器通信的方法、以及计算系统 | |
US10552366B2 (en) | Method of communication for master device and slave device on synchronous data bus wherein master and slave devices are coupled in parallel | |
USRE40541E1 (en) | Method and system for testing a universal serial bus within a computing device | |
CN102855169B (zh) | 根据有限信息的顺应性模式检测 | |
US5572525A (en) | GPIB extender with find listener protocol capabilities | |
CN116340073B (zh) | 测试方法、装置及系统 | |
WO2007030978A1 (fr) | Procede, appareil de reinitialisation et equipement pour effectuer la reinitialisation d'un dispositif maitre dans un bus i2c | |
CN108920401B (zh) | 多主多从的i2c通信方法、系统及节点设备 | |
CN108563595B (zh) | 一种远距离传输usb数据的系统及方法 | |
CN110855353B (zh) | 一种适用于多种类型光模块的误码测试仪及测试系统 | |
CN111176913A (zh) | 一种检测服务器中Cable Port的电路和方法 | |
CN113259205B (zh) | 一种多板卡系统内部互联接口测试方法及系统 | |
CN115904849B (zh) | Pcie链路信号测试方法、系统、计算机设备及介质 | |
CN117630637A (zh) | 一种测试装置 | |
CN110687363A (zh) | Sfp埠测试治具 | |
CN115729872A (zh) | 一种计算设备及pcie线缆连接的检测方法 | |
CN117648225A (zh) | Mcio接口测试治具及其测试方法 | |
CN113986600B (zh) | 一种用于芯片串行接口的测试方法、装置和芯片 | |
CN113630294B (zh) | 一种交换机模块化检测方法和装置 | |
US20010025330A1 (en) | Interface having plug and play function | |
CN113778796A (zh) | 一种通过usb监控串口通信的方法 | |
CN112131157A (zh) | 一种使用usb接口实现ipmi功能的方法、usb接口和服务器 | |
CN210776663U (zh) | 总线管理模块 | |
CN114942866B (zh) | Lin主测试装置 | |
CN112987690B (zh) | 一种espi控制器验证系统及方法 |
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 |