在维修INTEL的高端主板(南桥为ICH7以上)时,可能会遇到这样的现象,即CPURST#信号一直为低电平,引起CPU不工作,主板跑“FF”代码。通常的维修思路,是先查主板其他复位信号是否正常,如果正常,则查北桥的工作条件(包括北桥的工作电压、频率,以及南桥发给北桥的复位信号等),众所周知,CPURST#是由北桥发给CPU的,如北桥工作条件都正常,还找不到故障点,那就试更换北桥,这种维修思路在维修ICH7以下南桥的主板的时候是比较正确的。
但现在这种方法却不是百用百灵了,在修ICH7以上的主板(主要是945系列)时,CPU无复位的故障比较常见,但是用上述的方法成功率却很低,所以有一段时间遇到这种主板都感觉很无奈,因为没有什么维修思路。偶尔的一次机会,我抱着试试看的想法,更换了一次ICH7南桥,没想到做完BGA后,CPURST#信号却正常了,后来修到无CPURST#信号故障主板时,如果查不出故障,就更换南桥,成功率很高,就是说,85%的无CPURST#信号的主板故障是南桥所引起的。
面对这么高的故障定位率,很是不解,因为南桥会引发CPURST#信号故障,这对于传统的修板思路来说,很难于接受,但却又不得不相信这种情况是真实存在的。
所以就查询了一些资料,来试着对这种故障现象作一个简单的分析。
首先,来说一下CPURST#的大致产生流程,让大家先有一个了解:
1.ATX的PWROK和VCORE电路的VM-GD发给南桥(当然,前提是南桥的基本工作条件都正常)。
2.南桥接到这两个信号后,会发出一个最基本的PCIRST#信号,作为一个基本复位信号,并发给门电路或专用的复位IC。
3.门电路或专用IC将PCIRST#信号分化成PCIRST#1、PCIRST#2、IDERST#等,用来复位相应的设备。
4.PCIRST#1会同时发给I0、网卡、北桥等设备(这里并非肯定是这样的定义,我只是举例说明,不同的主板依设计思路而不同,所以不要照搬,要灵活运用,以跑线路的结果为准)。
5.北桥接到PCIRST#1后,对自身进行复位,并在CPU接到南桥发出的CPU_PWRGD信号后,对CPU发出CPURST#信号使之进行复位,清空内存的寄存器。
上面是传统意义上的CPUILST#信号产生流程,但我查阅了INTEL的技术支持文档后,发现在ICH7以后的平台上,复位信号的工作有了一些明显的改变。
以ICH7南桥为例,其接到PWOK和VRM_GD后,会发出PLTRST#及PCIRST#两个基本复位信号,PLTRST#信号用来复位PCI-E平台的一些设备,绝大部分主板是为I0及北桥提供复位,而PCIRST#则用来为主板上的其他IC提供复位。
知道了PLTRST#信号是用来复位北桥的后,就可以推断出PLTRST#是CPURST#产生的必要条件。一般来说这个步骤上的PLTRST#信号是不会有故障的,曾经专门做过测量统计,由于南桥引起的CPURST#信号故障,在PLTRST#信号上根本就不会出错。所以由PLTRST#信号导致的故障可以排除掉。
在INTEL的技术文档中,找到了下面的一张时序图,如下图所示,整个平台在进入刘状态(即正常的工作状态)时,相应的信号时序依次是PWROKVRMPWRGD→SUS_STAT#→PLTRST#→ProcessorI/Fsignals→STPCLK#(CPUSLI)#)→DMImessage。在PLTRST#信号之后起作用的分别是ProcessorI/Fsignals(处理器接口信号)、STPCLK#(降低处理器频率信号)、DMImessage(DMT界面信息),由此分析,此三个因素可能会影响CPURST#复位信号。
经过几次比较和实验后,将ProcessorI/Fsignals、STPCLK#(CPUSLP#)这两个因素排除了。只剩下DMImessage这个信号了。北桥正确的发出CPURST#信号,需要DMImessage正常,通俗点来说就是南北桥之间的DMI界面传输的信息要正常才行。
而在南桥中,与DM1界面相关的信号如下图所示。
因此,如果发现CPURST#信号不正常,在排除PLTRST#本身及之前的故障时,则需对DMI界面进行检查。如果DMI界面有了故障,则很有可能会影响CPURST#,我在维修的时候,曾发现过几例DMI界面故障所引起的CPURST#故障,而比较有趣的是DMI界面故障的主板,北桥几乎不会有坏的,通过割线判断,都是南桥有短路或开路,我想可能是南桥作为输入输出数据的主要控制端,所以损坏率较高吧。