CN108446198A - 硬件故障诊断电路、方法及主板 - Google Patents
硬件故障诊断电路、方法及主板 Download PDFInfo
- Publication number
- CN108446198A CN108446198A CN201810372746.3A CN201810372746A CN108446198A CN 108446198 A CN108446198 A CN 108446198A CN 201810372746 A CN201810372746 A CN 201810372746A CN 108446198 A CN108446198 A CN 108446198A
- Authority
- CN
- China
- Prior art keywords
- pin
- hardware
- bmc
- pch
- chip
- 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.)
- Withdrawn
Links
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/26—Functional testing
- G06F11/267—Reconfiguring circuits for testing, e.g. LSSD, partitioning
Abstract
本发明公开一种硬件故障诊断电路、方法及主板,该电路包括电阻R1、电阻R2、电阻R3、电阻R4、同或门、以及第一看门狗芯片、第二看门狗芯片。本发明针对硬件初始化失败出现卡住的问题,给出了有效的解决办法,通过BIOS软件、BMC软件和硬件的配合,无论开发阶段还是用户现场,无论BMC Boot loader初始化硬件失败,还是BIOS初始化硬件失败,都能实现自动诊断硬件故障,精准定位,方便快捷,而且能覆盖到每一块主板,小概率故障也能解决。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬件故障诊断电路、方法及主板。
背景技术
在服务器主板上,一般都存在两个独立运行的软件系统,一个是BIOS软件系统,主要负责硬件自检、初始化并引导操作系统,另外一个是BMC软件系统,主要负责初始化主板管理控制器、远程监控管理主板、固件升级等功能。服务器主板上电后,在关机状态下,BMC软件就开始运行,首先运行Boot loader,初始化管理控制器硬件设备、建立内存空间的映射图,然后调用操作系统内核,进入系统,运行BMC服务程序。在待机状态下,BIOS软件并不运行,开机上电时序后,BIOS才开始运行,完成CPU、内存自检及初始化,PCIE、SATA等外围设备的初始化,引导操作系统等功能。由此可见,在上电关机情况下,BMC软件可完成所有正常操作,并对整个主板开始管理,而BIOS并未运行;在上电开机情况下,BMC Boot loader也会很快运行完成,进入系统运行服务程序,而BIOS需要较多时间运行,BMC服务程序可以和BIOS进行通信。
目前的服务器主板方案中,对故障的诊断定位存在诸多缺点。首先,在BMC Bootloader对硬件进行初始化失败,导致Boot loader卡住,无法继续运行时,开发人员或者用户无法定位BMC出现硬件故障。这种问题可能出现在主板开发阶段,或者服务器主板长时间运行导致器件失效的用户现场。其次,在BIOS对主板硬件初始化失败,导致BIOS卡住,无法继续运行时,如果是小概率故障,重启就会消失,然而在开发阶段很难定位故障源,因为串口日志等常规故障定位手段不会运用到每一块主板上面。如果在用户现场出现问题,无论是概率性还是必现问题,都难以定位,因为用户现场不会有任何定位故障的工具。这给主板的故障诊断排查带来了很大困难。
由此,有必要提出一种能自动诊断、精准定位硬件故障的解决方案。
发明内容
本发明的主要目的在于提出一种硬件故障诊断电路、方法及主板,旨在实现自动诊断、精准定位硬件故障。
为实现上述目的,本发明提供一种硬件故障诊断电路,包括与主板连接的PCH芯片、BMC芯片,所述硬件故障诊断电路还包括电阻R1、电阻R2、电阻R3、电阻R4、同或门、以及第一看门狗芯片、第二看门狗芯片,其中,
所述PCH芯片的引脚GPIO1分别与所述第一看门狗芯片的引脚VCC、所述电阻R1的一端、所述电阻R2的一端连接,所述电阻R1的另外一端与电源连接,所述电阻R2的另外一端接地,所述PCH芯片的引脚GPIO2与所述第一看门狗芯片的引脚WDI连接,所述PCH芯片的引脚GPIO3与所述第一看门狗芯片的引脚WDO连接;
所述BMC芯片的引脚GPIO5分别与所述第二看门狗芯片的引脚VCC、所述电阻R3的一端、所述电阻R4的一端、所述同或门的输入端连接,所述电阻R3的另外一端与所述电源连接,所述电阻R4的另外一端接地,所述BMC的引脚GPIO6与所述第二看门狗芯片的引脚WDI连接,所述第二看门狗芯片的引脚WDO与所述同或门的输入端连接,所述同或门的输出端与所述PCH芯片的引脚GPIO4连接。
本发明的进一步的技术方案是,所述电源为3.3V电源。
为实现上述目的,本发明还提出一种硬件故障诊断方法,所述方法应用于如上所述的硬件故障诊断电路,所述方法包括以下步骤:
在所述主板上电启动后,运行BIOS,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4;
开启GPIO3NMI中断开关和GPIO4NMI中断开关;
在所述BIOS运行完成时,将所述PCH芯片的引脚GPIO1设置为低电平;
在检测到NMI中断信号时,判断中断信号产生源是否为所述PCH的引脚GPIO3或所述PCH的引脚GPIO4;
若所述中断信号产生源为所述PCH的引脚GPIO4,则判断为BMC硬件初始化失败;
若所述中断信号产生源为所述PCH的引脚GPIO3,则判断为BIOS硬件初始化失败。
本发明的进一步的技术方案是,所述在主板上电启动后,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤包括:
在主板上电启动后,初始化Timer Event周期性功能函数;
将所述PCH芯片的引脚GPIO1设置为高电平输出,将所述PCH芯片的引脚GPIO2设置为低电平输出,采用Timer Event周期性功能函数将所述PCH芯片的引脚GPIO2周期性设置为高电平再低电平,输出脉冲信号到所述第一看门狗芯片的引脚WDI,其中,周期间隔小于所述第一看门狗芯片计数溢出时间;
将所述PCH芯片的引脚GPIO3、GPIO4设置为输入功能。
本发明的进一步的技术方案是,所述若所述中断信号产生源为所述PCH的引脚GPIO3,则判断为BIOS硬件初始化失败的步骤之后还包括:
检测硬件错误源。
本发明的进一步的技术方案是,所述检测硬件错误源的步骤包括:
根据PCIE规范检测所有PCIE设备的高级错误报告状态寄存器,若有错误信息,则根据所述PCIE规范对所述错误信息进行解析;
根据机制检测架构规范检测所有机制检查状态寄存器,若有错误信息,则根据所述机制检测架构规范对所述错误信息进行解析;
检测平台芯片的专有错误报告寄存器,若有错误信息,则以预设规则对所述错误信息进行解析;
按照预设格式记录解析出来的错误信息,其中,格式要求为用户看到错误信息能定位到发生故障的硬件设备;
本发明的进一步的技术方案是,所述按照预设格式记录解析出来的错误信息的步骤之后包括:
将所述解析出来的错误信息通过显示器呈现给用户,提醒用户进行下一步操作;
关闭所述GPIO3NMI中断开关,退出NMI中断程序。
本发明的进一步的技术方案是,所述若所述中断信号产生源为所述PCH的引脚GPIO4,则判断为BMC硬件初始化失败的步骤之后包括:
将所述BMC硬件初始化失败的报错信息通过显示器呈现给用户;
关闭所述GPIO4NMI中断开关,退出NMI中断程序。
本发明的进一步的技术方案是,所述在主板上电启动后,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤之前包括:
在主板上电后,启动BMC Boot Loader,初始化所述BMC芯片的引脚GPIO5和引脚GPIO6,将所述BMC芯片的引脚GPIO5设置为高电平输出,将所述BMC芯片的引脚GPIO6设置为低电平输出,初始化周期性功能函数,周期性将所述BMC芯片的引脚GPIO6设置高电平再设置为低电平,由所述BMC芯片的引脚GPIO6输出脉冲信号给所述第二看门狗芯片的引脚WDI,其中,周期间隔小于所述第二看门狗芯片的计数溢出时间;
通过所述BMC Boot Loader初始化其他硬件;
若没有硬件错误,则在硬件初始化完成时将所述BMC芯片的引脚GPIO5设置为低电平;
若有硬件错误,所述BMC Boot Loader卡住,则将错误信息通知BIOS,由BIOS进行处理。
为实现上述目的,本发明还提出一种主板,包括如上所述的硬件故障诊断电路。
本发明的有益效果是:本发明不仅能实现自动诊断、精准定位硬件故障,方便快捷,而且能覆盖到每一块主板,小概率故障也能解决。
附图说明
图1是本发明硬件故障诊断电路的电路结构图;
图2是本发明硬件故障诊断方法第一实施例的流程示意图;
图3是图2中步骤S100的细化流程示意图;
图4是本发明硬件故障诊断方法第二实施例的流程示意图;
图5是图4中步骤S700的细化流程示意图;
图6是本发明硬件故障诊断方法第三实施例的流程示意图;
图7是本发明硬件故障诊断方法第四实施例的流程示意图;
图8是本发明硬件故障诊断方法中BMC程序设计流程示意图;
图9是本发明硬件故障诊断方法中BIOS程序设计流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明考虑到目前的服务器主板方案中,对故障的诊断定位存在诸多缺点:例如在BMC Boot loader对硬件进行初始化失败,导致Boot loader卡住,无法继续运行时,开发人员或者用户无法定位BMC出现硬件故障;在BIOS对主板硬件初始化失败,导致BIOS卡住,无法继续运行时,在开发阶段很难定位故障源;在用户现场出现问题,无论是概率性还是必现问题,都难以定位故障源,由此,提出一种能自动诊断、精准定位硬件故障的解决方案。
具体地,请参照图1,图1是本发明硬件故障诊断电路的电路结构图。
如图1所示,本实施例提出的硬件故障诊断电路包括与主板连接的PCH芯片、BMC芯片。
值得提出的是,本实施例中,PCH芯片中存储有BIOS程序,BMC芯片中存储有BMC程序。
该硬件故障诊断电路还包括电阻R1、电阻R2、电阻R3、电阻R4、同或门、以及第一看门狗芯片、第二看门狗芯片。
其中,PCH芯片的引脚GPIO1分别与第一看门狗芯片的引脚VCC、电阻R1的一端、电阻R2的一端连接,电阻R1的另外一端与电源连接,电阻R2的另外一端接地,PCH芯片的引脚GPIO2与第一看门狗芯片的引脚WDI连接,PCH芯片的引脚GPIO3与第一看门狗芯片的引脚WDO连接;BMC芯片的引脚GPIO5分别与第二看门狗芯片的引脚VCC、电阻R3的一端、电阻R4的一端、同或门的输入端连接,电阻R3的另外一端与电源连接,电阻R4的另外一端接地,BMC的引脚GPIO6与第二看门狗芯片的引脚WDI连接,第二看门狗芯片的引脚WDO与同或门的输入端连接,同或门的输出端与PCH芯片的引脚GPIO4连接。具体实施时,该电源可以采用3.3V电源。
值得提出的是,本实施例中提出了看门狗芯片的创新应用,引脚GPIO控制看门狗芯片的工作电压,WDO引脚用于触发NMI中断(传统都是作为复位信号使用)。通过硬件、BIOS软件和BMC软件的配合,监控BMC硬件初始化报错,监控BIOS初始化报错,并将详细错误信息显示给用户。涵盖范围广,可涵盖每一块主板,小概率、单板故障均有效,不需要借助外部诊断设备,自动检测并报错,无需操作人员参与,简单方便。
下面再次结合图1对本实施例提出的硬件故障诊断电路的硬件电路设计、工作原理做进一步详细阐述:
请再次参照图1,将BMC芯片的引脚GPIO5连接到第二看门狗芯片的工作电压控制引脚VCC上,同时连接到电阻R3和R4的一端,电阻R3的另外一端连接3.3V电源,电阻R4的另外一端接地,第二看门狗芯片的引脚VCC连接到同或门的输入端。当BMC芯片的引脚GPIO5输出低电平时,第二看门狗芯片的工作电压VCC输入为低电平,第二看门狗芯片停止工作,同时,第二看门狗芯片的引脚WDO输出为低电平,同或门有两个低电平输入,则输出为高电平;当BMC芯片的引脚GPIO5输出高电平时,第二看门狗芯片的工作电压VCC输入为高电平,第二看门狗芯片启动工作,同或门输入为高电平。BMC芯片的引脚GPIO6,连接到第二看门狗芯片的引脚WDI,如果第二看门狗芯片的引脚WDI输入周期性脉冲信号,第二看门狗芯片的引脚WDO输出保持高电平,同或门的输入为两个高电平,输出为高电平;如果第二看门狗芯片的引脚WDI输入保持低电平,第一看门狗芯片内部计数器溢出后,则第二看门狗芯片的引脚WDO输出低电平,同或门输入为一个高电平一个低电平,输出为低电平。
同或门输出信号,输入到PCH芯片的引脚GPIO4。
将PCH的引脚GPIO1连接到第一看门狗芯片的工作电压控制引脚VCC上,同时连接到电阻R1和电阻R2的一端,电阻R1的另外一端连接3.3V电源,电阻R2的另外一端接地,当PCH的引脚GPIO1输出高电平时,第一看门狗芯片启动,当PCH的引脚GPIO1输出低电平时,第一看门狗芯片停止工作。PCH的引脚GPIO2连接到第一看门狗芯片的引脚WDI,第一看门狗芯片的引脚WDO输出信号连接到PCH的引脚GPIO3上面。第二看门狗芯片正常工作时,如果第一看门狗芯片的引脚WDI输入周期性脉冲信号时,第一看门狗芯片的引脚WDO输出高电平信号,如果PCH的引脚WDI输入保持低电平信号时,第二看门狗芯片内部计数器溢出后,第一看门狗芯片的引脚WDO输出低电平。
本发明硬件故障诊断电路,针对硬件初始化失败出现卡住的问题,给出了有效的解决办法,通过BIOS软件、BMC软件和硬件的配合,无论开发阶段还是用户现场,无论BMCBoot loader初始化硬件失败,还是BIOS初始化硬件失败,都能实现自动诊断硬件故障,精准定位,方便快捷,而且能覆盖到每一块主板,小概率故障也能解决。
此外,本发明还提出一种硬件故障诊断方法,该方法应用于如上所述的硬件故障诊断电路。如图2所示,图2是本发明硬件故障诊断方法第一实施例的流程示意图。
如图2所示,本发明硬件故障诊断方法第一实施例包括以下步骤:
步骤S100,在主板上电启动后,运行BIOS,初始化PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4。
需要说明的是,在主板上电后,在待机状态下,BIOS并不运行,开机上电时序后,BIOS才开始运行,完成CPU、内存自检及初始化,PCIE、SATA等外围设备的初始化,引导操作系统等功能。
具体地,请参照图3,图3是图2中步骤S100的细化流程示意图。
如图3所示,作为一种实施方式,上述步骤S100,在主板上电启动后,运行BIOS,初始化PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤包括:
步骤S101,在主板上电启动后,初始化Timer Event周期性功能函数。
步骤S102,将PCH芯片的引脚GPIO1设置为高电平输出,将PCH芯片的引脚GPIO2设置为低电平输出,采用TimerEvent周期性功能函数将PCH芯片的引脚GPIO2周期性设置为高电平再低电平,输出脉冲信号到第一看门狗芯片的引脚WDI,其中,周期间隔小于第一看门狗芯片计数溢出时间。
步骤S103,将PCH芯片的引脚GPIO3、GPIO4设置为输入功能。
可以理解的是,GPIO本身具有产生NIMI中断的功能,需要BIOS软件配置选择该功能,当作为输入状态的GPIO状态被设置时,就会产生NMI中断。
步骤S200,开启GPIO3NMI中断开关和GPIO4NMI中断开关。
步骤S300,在BIOS运行完成时,将PCH芯片的引脚GPIO1设置为低电平。
步骤S400,在检测到NMI中断信号时,判断中断信号产生源是否为PCH的引脚GPIO3或PCH的引脚GPIO4。
若中断信号产生源为PCH的引脚GPIO4,则执行步骤S500,判断为BMC硬件初始化失败。
若中断信号产生源为PCH的引脚GPIO3,则执行步骤S600,判断为BIOS硬件初始化失败。
本实施例通过上述技术方案,在主板上电启动后,运行BIOS,初始化PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4;开启GPIO3NMI中断开关和GPIO4NMI中断开关;在BIOS运行完成时,将PCH芯片的引脚GPIO1设置为低电平;在检测到NMI中断信号时,判断中断信号产生源是否为PCH的引脚GPIO3或PCH的引脚GPIO4;若中断信号产生源为PCH的引脚GPIO4,则判断为BMC硬件初始化失败;若中断信号产生源为所述PCH的引脚GPIO3,则判断为BIOS硬件初始化失败,不仅能实现自动诊断、精准定位硬件故障,方便快捷,而且能覆盖到每一块主板,小概率故障也能解决。
请参照图4,图4是本发明硬件故障诊断方法第二实施例的流程示意图。
本实施例与上述图2所示的第一实施例的区别在于,若中断信号产生源为PCH的引脚GPIO3,则执行步骤S600,判断为BIOS硬件初始化失败步骤之后还包括:
步骤S700,检测硬件错误源。
具体地,请参照图5,图5为上述步骤S700的细化流程图。如图5所示,上述步骤S700,检测硬件错误源的步骤包括:
步骤S701,根据PCIE规范检测所有PCIE设备的高级错误报告状态寄存器,若有错误信息,则根据PCIE规范对错误信息进行解析。
步骤S702,根据机制检测架构规范检测所有机制检查状态寄存器,若有错误信息,则根据机制检测架构规范对错误信息进行解析。
步骤S703,检测平台芯片的专有错误报告寄存器,若有错误信息,则以预设规则对错误信息进行解析。
步骤S704,按照预设格式记录解析出来的错误信息,其中,格式要求为用户看到错误信息能定位到发生故障的硬件设备。
此外,本实施例中,在按照预设格式记录解析出来的错误信息之后还执行以下步骤:
步骤S800,将解析出来的错误信息通过显示器呈现给用户,提醒用户进行下一步操作;
步骤S900,关闭GPIO3NMI中断开关,退出NMI中断程序。
本实施例通过上述技术方案,按照预设格式记录解析出来的错误信息之后,将解析出来的错误信息通过显示器呈现给用户,提醒用户进行下一步操作,使得用户能更加直观的了解硬件故障源,从而提高了用户体验效果。
请参照图6,图6是本发明硬件故障诊断方法第三实施例的流程示意图。如图6所示,本实施例与上述图2所示的第一实施例的区别在于,若中断信号产生源为PCH的引脚GPIO4,则执行步骤S500,判断为BMC硬件初始化失败的步骤之后还包括:
步骤S501,将BMC硬件初始化失败的报错信息通过显示器呈现给用户。
本实施例中,将BMC硬件初始化失败的报错信息通过显示器呈现给用户可以提醒用户进行下一步的操作。
步骤S502,关闭GPIO4NMI中断开关,退出NMI中断程序。
本实施例通过上述技术方案,在判断为BMC硬件初始化失败之后,将BMC硬件初始化失败的报错信息通过显示器呈现给用户,使得用户能更加直观的了解硬件故障源,从而提高了用户体验效果。
请参照图7,图7是本发明硬件故障诊断方法第四实施例的流程示意图。如图7所示,本实施例与上述图2所示的第一实施例的区别在于,步骤S100,在主板上电启动后,初始化PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤之前包括:
步骤S001,在主板上电后,启动BMC Boot Loader,初始化BMC芯片的引脚GPIO5和引脚GPIO6,将BMC芯片的引脚GPIO5设置为高电平输出,将BMC芯片的引脚GPIO6设置为低电平输出,初始化周期性功能函数,周期性将BMC芯片的引脚GPIO6设置高电平再设置为低电平,由BMC芯片的引脚GPIO6输出脉冲信号给第二看门狗芯片的引脚WDI,其中,周期间隔小于第二看门狗芯片的计数溢出时间。
需要说明的是,主板上电后,在关机状态下,BMC就开始运行,首先运行Bootloader,初始化管理控制器硬件设备、建立内存空间的映射图,然后调用操作系统内核,进入系统,运行BMC服务程序。
步骤S002,通过BMC Boot Loader初始化其他硬件。
若没有硬件错误,则执行步骤S003,在硬件初始化完成时将BMC芯片的引脚GPIO5设置为低电平。
若有硬件错误,BMC Boot Loader卡住,则执行步骤S004,将错误信息通知BIOS,由BIOS进行处理。
下面结合图1至图9对本发明硬件故障诊断方法中BMC程序设计、BIOS程序设计做进一步的详细阐述,其中,图8是本发明硬件故障诊断方法中BMC程序设计流程示意图,图9是本发明硬件故障诊断方法中BIOS程序设计流程示意图。
BMC程序设计:
主板上电以后,BMC Boot Loader启动运行,马上初始化BMC芯片的引脚GPIO,将BMC芯片的引脚GPIO5设置为高电平输出,给第二看门狗芯片供电,让第二看门狗芯片启动工作,将BMC芯片的引脚GPIO6设置为低电平,初始化周期性功能函数,周期性将BMC芯片的引脚GPIO6设置高电平再设置为低电平,让BMC芯片的引脚GPIO6输出脉冲信号,周期间隔要小于第二看门狗芯片的计数溢出时间。然后,Boot Loader初始化其他硬件部分,如果没有硬件错误,在硬件初始化完成时将所述BMC芯片的引脚GPIO5设置为低电平,所述第二看门狗芯片工作电压VCC变为低电平,停止工作,如果有硬件错误,而出现Boot Loader卡住的情况,周期性函数不能对所述BMC芯片的引脚GPIO6进行设置,所述第二看门狗芯片的引脚WDI始终输入低电平,计数器溢出后,第二看门狗芯片的引脚WDO信号输出低电平,同或门输出到PCH芯片的引脚GPIO4也为低电平,通知BIOS软件,BMC Boot Loader初始化硬件失败,接下来由BIOS软件处理。
BIOS程序设计:
主板启动以后,BIOS启动运行,首先初始化Timer Event周期性功能函数,接着初始化PCH芯片的引脚GPIO,将PCH芯片的引脚GPIO1设置为高电平输出,给第一看门狗芯片提供工作电压,启动第一看门狗芯片;将PCH芯片的引脚GPIO2设置为低电平输出,周期性功能函数将PCH芯片的引脚GPIO2周期性设置为高电平再设置为低电平,输出脉冲信号到第二看门狗芯片的引脚WDI引脚,周期间隔要小于第一看门狗芯片的计数溢出时间;将PCH芯片的引脚GPIO3和GPIO4设置为输入功能,开启这两个GPIO NMI中断启动开关。BIOS继续执行硬件自检、硬件初始化等操作。如果PCH芯片的引脚GPIO3、GPIO4,都没有输入低电平,不会产生NMI中断,BIOS运行完成时将PCH芯片的引脚GPIO1设置为低电平,关闭第一看门狗芯片。如果有NMI中断产生,要判断是否为PCH芯片的引脚GPIO3、GPIO4产生的NMI中断,如果不是,BIOS处理完,继续运行;如果是PCH芯片的引脚GPIO4输入低电平,触发了NMI中断,进入NMI中断执行程序,BIOS根据中断源为PCH芯片的引脚GPIO4,可判断为BMC硬件初始化失败,将报错信息发送到显示器上面,提示用户进行操作,同时关闭PCH芯片的引脚GPIO4的NMI中断产生开关,本次开机不再产生BMC失效的NMI中断,退出NMI中断程序。因为BMC芯片失效时,并不影响BIOS软件运行,因此BIOS继续运行。如果是PCH芯片的引脚GPIO3输入低电平,触发NMI中断,表明BIOS已经卡住了。NMI中断为不可屏蔽中断,即使BIOS软件已经卡住,CPU也必须响应,执行NMI中断程序。在NMI中断程序里面,根据中断源为是PCH芯片的引脚GPIO3,可以判断BIOS硬件初始化失败,开始检测硬件错误源。首先根据PCIE规范,检查所有PCIE设备的高级错误报告状态寄存器,如果有错误信息,根据PCIE规范进行解析;其次,根据机制检查架构规范,检查所有机制检查状态寄存器,如果有错误信息,根据规范解析出来;最后,检查平台芯片的一些专有错误报告寄存器,如果有错误解析出来。这里的检查已经涵盖了主板上主要部件包括CPU、内存、PCIE设备等。将错误信息按照格式记录下来,格式要求为使用户看到错误信息能定位到发生故障的具体设备,再将错误信息输出到显示器,提醒用户进行下一步操作。最后关闭是PCH芯片的引脚GPIO3的NMI中断产生开关,退出NMI中断程序。
综上所述,本发明硬件故障诊断方法通过上述技术方案,在主板上电启动后,运行BIOS,初始化PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4;开启GPIO3NMI中断开关和GPIO4NMI中断开关;在BIOS运行完成时,将PCH芯片的引脚GPIO1设置为低电平;在检测到NMI中断信号时,判断中断信号产生源是否为PCH的引脚GPIO3或PCH的引脚GPIO4;若中断信号产生源为PCH的引脚GPIO4,则判断为BMC硬件初始化失败;若中断信号产生源为PCH的引脚GPIO3,则判断为BIOS硬件初始化失败,不仅能实现自动诊断、精准定位硬件故障,方便快捷,而且能覆盖到每一块主板,小概率故障也能解决。
此外,本发明还提出一种主板,该主板包括如上实施例所述的硬件故障诊断电路,利用两个看门狗芯片来实现对主板软件系统否卡死进行监控,一个用于监控BMC软件系统,另一个用于监控BIOS软件系统。通过GPIO给看门狗芯片供电,控制看门狗芯片的启动与关闭,通过BIOS和BMC软件控制GPIO输出方波到WDI引脚,来给看门口计数器清零,一旦出现软件系统卡住情况,看门狗芯片将通过WDO引脚输出信号到PCH GPIO,来通知系统处理,其具体的结构、工作原理上面已经详细阐述,这里不再赘述。
本发明硬件故障的诊断电路、方法及主板中所涉及到的英文缩写解释如下:
BMC:基板管理控制器(Baseboard Management Controller)。一般内置在主板上,支持行业标准的IPMI规范。BMC提供的功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除;
CPU:中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据;
BIOS:(Basic Input Output System)基本输入输出系统,主要用于计算机开机过程中各种硬件设备的初始化和检测;
PCH:(Platform Controller Hub)Intel公司的集成南桥;
PCIE:(PCI-Express)一种高速串行总线接口技术标准;
GPIO:(General Purpose Input Output)通用输入/输出;
NMI:(Non-Maskable Interrupt)不可屏蔽中断;
WDI:(Watch Dog Input)看门狗输入端;
WDO:(Watch Dog Onput)看门狗输出端;
VCC:(Volt Current Condenser)电源。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种硬件故障诊断电路,其特征在于,包括与主板连接的PCH芯片、BMC芯片,所述硬件故障诊断电路还包括电阻R1、电阻R2、电阻R3、电阻R4、同或门、以及第一看门狗芯片、第二看门狗芯片,其中,
所述PCH芯片的引脚GPIO1分别与所述第一看门狗芯片的引脚VCC、所述电阻R1的一端、所述电阻R2的一端连接,所述电阻R1的另外一端与电源连接,所述电阻R2的另外一端接地,所述PCH芯片的引脚GPIO2与所述第一看门狗芯片的引脚WDI连接,所述PCH芯片的引脚GPIO3与所述第一看门狗芯片的引脚WDO连接;
所述BMC芯片的引脚GPIO5分别与所述第二看门狗芯片的引脚VCC、所述电阻R3的一端、所述电阻R4的一端、所述同或门的输入端连接,所述电阻R3的另外一端与所述电源连接,所述电阻R4的另外一端接地,所述BMC的引脚GPIO6与所述第二看门狗芯片的引脚WDI连接,所述第二看门狗芯片的引脚WDO与所述同或门的输入端连接,所述同或门的输出端与所述PCH芯片的引脚GPIO4连接。
2.根据权利要求1所述的硬件故障诊断电路,其特征在于,所述电源为3.3V电源。
3.一种硬件故障诊断方法,其特征在于,所述方法应用于如权利要求1-3任意一项所述的硬件故障诊断电路,所述方法包括以下步骤:
在所述主板上电启动后,运行BIOS,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4;
开启GPIO3NMI中断开关和GPIO4NMI中断开关;
在所述BIOS运行完成时,将所述PCH芯片的引脚GPIO1设置为低电平;
在检测到NMI中断信号时,判断中断信号产生源是否为所述PCH的引脚GPIO3或所述PCH的引脚GPIO4;
若所述中断信号产生源为所述PCH的引脚GPIO4,则判断为BMC硬件初始化失败;
若所述中断信号产生源为所述PCH的引脚GPIO3,则判断为BIOS硬件初始化失败。
4.根据权利要求3所述的硬件故障诊断方法,其特征在于,所述在主板上电启动后,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤包括:
在主板上电启动后,初始化Timer Event周期性功能函数;
将所述PCH芯片的引脚GPIO1设置为高电平输出,将所述PCH芯片的引脚GPIO2设置为低电平输出,采用Timer Event周期性功能函数将所述PCH芯片的引脚GPIO2周期性设置为高电平再低电平,输出脉冲信号到所述第一看门狗芯片的引脚WDI,其中,周期间隔小于所述第一看门狗芯片计数溢出时间;
将所述PCH芯片的引脚GPIO3、GPIO4设置为输入功能。
5.根据权利要求3所述的硬件故障诊断方法,其特征在于,所述若所述中断信号产生源为所述PCH的引脚GPIO3,则判断为BIOS硬件初始化失败的步骤之后还包括:
检测硬件错误源。
6.根据权利要求5所述的硬件故障诊断方法,其特征在于,所述检测硬件错误源的步骤包括:
根据PCIE规范检测所有PCIE设备的高级错误报告状态寄存器,若有错误信息,则根据所述PCIE规范对所述错误信息进行解析;
根据机制检测架构规范检测所有机制检查状态寄存器,若有错误信息,则根据所述机制检测架构规范对所述错误信息进行解析;
检测平台芯片的专有错误报告寄存器,若有错误信息,则以预设规则对所述错误信息进行解析;
按照预设格式记录解析出来的错误信息,其中,格式要求为用户看到错误信息能定位到发生故障的硬件设备。
7.根据权利要求6所述的硬件故障诊断方法,其特征在于,所述按照预设格式记录解析出来的错误信息的步骤之后包括:
将所述解析出来的错误信息通过显示器呈现给用户,提醒用户进行下一步操作;
关闭所述GPIO3NMI中断开关,退出NMI中断程序。
8.根据权利要求3所述的硬件故障诊断方法,其特征在于,所述若所述中断信号产生源为所述PCH的引脚GPIO4,则判断为BMC硬件初始化失败的步骤之后包括:
将所述BMC硬件初始化失败的报错信息通过显示器呈现给用户;
关闭所述GPIO4NMI中断开关,退出NMI中断程序。
9.根据权利要求3所述的硬件故障诊断方法,其特征在于,所述在主板上电启动后,初始化所述PCH芯片的引脚GPIO1、GPIO2、GPIO3、GPIO4的步骤之前包括:
在主板上电后,启动BMC Boot Loader,初始化所述BMC芯片的引脚GPIO5和引脚GPIO6,将所述BMC芯片的引脚GPIO5设置为高电平输出,将所述BMC芯片的引脚GPIO6设置为低电平输出,初始化周期性功能函数,周期性将所述BMC芯片的引脚GPIO6设置高电平再设置为低电平,由所述BMC芯片的引脚GPIO6输出脉冲信号给所述第二看门狗芯片的引脚WDI,其中,周期间隔小于所述第二看门狗芯片的计数溢出时间;
通过所述BMC Boot Loader初始化其他硬件;
若没有硬件错误,则在硬件初始化完成时将所述BMC芯片的引脚GPIO5设置为低电平;
若有硬件错误,所述BMC Boot Loader卡住,则将错误信息通知BIOS,由BIOS进行处理。
10.一种主板,其特征在于,包括如权利要求1-2任意一项所述的硬件故障诊断电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810372746.3A CN108446198A (zh) | 2018-04-24 | 2018-04-24 | 硬件故障诊断电路、方法及主板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810372746.3A CN108446198A (zh) | 2018-04-24 | 2018-04-24 | 硬件故障诊断电路、方法及主板 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108446198A true CN108446198A (zh) | 2018-08-24 |
Family
ID=63201361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810372746.3A Withdrawn CN108446198A (zh) | 2018-04-24 | 2018-04-24 | 硬件故障诊断电路、方法及主板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446198A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634796A (zh) * | 2018-12-14 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种计算机的故障诊断方法、装置及系统 |
CN113590429A (zh) * | 2021-08-18 | 2021-11-02 | 北京爱奇艺科技有限公司 | 一种服务器故障诊断方法、装置及电子设备 |
CN113832663A (zh) * | 2021-09-18 | 2021-12-24 | 珠海格力电器股份有限公司 | 控制芯片故障记录方法、装置以及控制芯片故障读取方法 |
CN114003416A (zh) * | 2021-09-23 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 内存错误动态处理方法、系统、终端及存储介质 |
CN115562913A (zh) * | 2022-04-21 | 2023-01-03 | 荣耀终端有限公司 | 一种硬件状态分析方法、装置及系统 |
-
2018
- 2018-04-24 CN CN201810372746.3A patent/CN108446198A/zh not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634796A (zh) * | 2018-12-14 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种计算机的故障诊断方法、装置及系统 |
CN113590429A (zh) * | 2021-08-18 | 2021-11-02 | 北京爱奇艺科技有限公司 | 一种服务器故障诊断方法、装置及电子设备 |
CN113832663A (zh) * | 2021-09-18 | 2021-12-24 | 珠海格力电器股份有限公司 | 控制芯片故障记录方法、装置以及控制芯片故障读取方法 |
CN113832663B (zh) * | 2021-09-18 | 2022-08-16 | 珠海格力电器股份有限公司 | 控制芯片故障记录方法、装置以及控制芯片故障读取方法 |
CN114003416A (zh) * | 2021-09-23 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 内存错误动态处理方法、系统、终端及存储介质 |
CN114003416B (zh) * | 2021-09-23 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 内存错误动态处理方法、系统、终端及存储介质 |
CN115562913A (zh) * | 2022-04-21 | 2023-01-03 | 荣耀终端有限公司 | 一种硬件状态分析方法、装置及系统 |
CN115562913B (zh) * | 2022-04-21 | 2023-11-14 | 荣耀终端有限公司 | 一种硬件状态分析方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446198A (zh) | 硬件故障诊断电路、方法及主板 | |
EP0664029B1 (en) | Computer failure recovery and alert system | |
CN101126995B (zh) | 处理严重硬件错误的方法及设备 | |
EP0185704B1 (en) | Reconfigurable dual processor system and method for operating it | |
EP1351145A1 (en) | Computer failure recovery and notification system | |
US6073255A (en) | Method of reading system log | |
US6138250A (en) | System for reading system log | |
US20040073842A1 (en) | Method for restoring CMOS in a jumperless system | |
CN100375054C (zh) | 一种电脑主板故障的监测诊断装置 | |
CN102467417B (zh) | 计算机系统 | |
CN111831488B (zh) | 具有安全等级设计的tcms-mpu控制单元 | |
JP2002259130A (ja) | 情報処理システムおよびその起動制御方法 | |
US20140143597A1 (en) | Computer system and operating method thereof | |
CN115190994A (zh) | 用于片上系统的电气和逻辑隔离 | |
CN110109802A (zh) | 一种实时读取硬盘温度的方法与系统 | |
CN100498728C (zh) | 用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法 | |
US8495353B2 (en) | Method and circuit for resetting register | |
CN104133744A (zh) | 一种面向关键应用的仲裁系统及方法 | |
CN208141372U (zh) | 硬件故障诊断电路及主板 | |
US20050223301A1 (en) | Circuit for detection of internal microprocessor watchdog device execution and method for resetting microprocessor system | |
PT84986B (pt) | Aparelho de gestao de sistemas proprio para um sistema de multiprocessador | |
TWI769399B (zh) | 具有除錯記憶體介面之晶片及其除錯方法 | |
JP2003256240A (ja) | 情報処理装置及びその障害回復方法 | |
Cisco | Troubleshooting and Fault Management | |
US10921875B2 (en) | Computer system, operational method for a microcontroller, and computer program product |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180824 |
|
WW01 | Invention patent application withdrawn after publication |