一种调试龙芯CPU和南北桥芯片的方法和装置
技术领域
本发明涉及计算机主板设计,具体来说,提供了一种调试龙芯CPU和北桥、南桥芯片的方法和装置,并得出了一种和龙芯CPU适配的南北桥组合。
背景技术
龙芯3号系列CPU包括4核心3A,8核心3B,16核心3C的CPU,以及后续开发的其他系列的CPU。
龙芯3号CPU是一款通用的多核的CPU,采用MIPS架构,完全可以实现Intel和AMD X86架构CPU的功能,尽管在性能方面比X86 CPU还稍微落后一些,但在绝大部分领域可以完全代替X86 CPU。
尽管龙芯3A和3B CPU已经面世,但一直没有解决“用”的关键问题,即一直没有找到与龙芯CPU配套且能正常工作的南北桥chipsets和***设备。为解决龙芯CPU的实用问题,曾经探讨了“龙芯3CPU+SIS公司chipsets”,“龙芯3CPU+NVIDIA公司chipsets”的可能性,并研发了主板样品,但最终没有成功。
龙芯3系列CPU限于技术保护,无法分享X86 CPU成功的经验,因此存在bug在所难免。
在调试中尽管可以选择一种芯片组和龙芯CPU进行适配,但在适配不成功时就很难判断是由于龙芯CPU存在的一些bug造成的,还是因为芯片组和龙芯CPU不兼容引起的。如果原因是前者,可以修改CPU的bug而不用放弃所选择的芯片组,如果是后者可以再重新选择一款芯片组。但目前常规的调试方法是无法准确定位原因,几乎只能乱猜乱试。所以需要寻找一种灵活的调试方法能准确的定位适配不成功的原因。
在常规调试方法中,一旦发现龙芯CPU存在bug,特别是龙芯HT(HyperTransport)bus存在bug,如图1所示。造成龙芯CPU无法和桥片进行正常连接时,几乎无计可施,不得不重新修改龙芯CPU的设计,只能等下一版龙芯CPU回来重新焊接才能继续调试。另一方面,龙芯CPU和桥片的上下电时序配合、信号线的配置在没有找到适配的桥片前也无法确定,常规的调试方法只能靠猜测假定,可调节的余地很小。
如图1所示,常规的调试方法,一款芯片组作一种主板,而且设计和加工一种主板需要花费至少2个月的时间,如果再加上调试的时间,一种主板的尝试至少需要花费6个月的时间,不但费钱而且费时。而且现在的调试方法不能同时调试多款芯片组,需要作多各种不同的主板。
FPGA(Field Programmable Gate Array),即现场可编程门阵列。FPGA具有非常灵活的在线编程特点,能反复的修改代码,能模拟出目前常见的IO接口(HT bus、PCIE bus、serdes等)、能灵活的变换时钟频率、能调节信号的电平,并有在线检测信号的功能。
发明内容
为解决龙芯CPU选择适合的北桥、南桥芯片以及调试难题,使得即使发现龙芯CPU HT bus存在bug,也能修复和屏蔽,并继续调试和验证桥片兼容性和其他功能,本发明提出了一种调试龙芯CPU和北桥、南桥芯片的方法和装置
一种调试龙芯CPU和南北桥芯片的方法,包括以下步骤:
选择支持HT总线的北桥芯片和南桥芯片;
将龙芯CPU与北桥、南桥芯片的针脚引入调试装置;
调试龙芯CPU针脚是否存在bug;以及
在调试装置中连接龙芯CPU和南北桥相应针脚并调试。
优选的,所述调试龙芯CPU是在调试装置中检测针脚信号是否符合用户手册说明。
优选的,所述龙芯CPU针脚信号若存在bug可以在调试装置中调整为标准信号。
较优选的,所述调整为标准信号是在调试装置中通过编写程序实现。
再较优选的,所述程序是通过verilog语言编写。
优选的,所述调试装置包括HT总线接口。
优选的,所述调试装置通过HT总线接口连接龙芯CPU与北桥芯片。
优选的,所述调试装置通过HT控制线与南桥芯片连接。
优选的,所述调试装置在调试时选通龙芯CPU的HT总线和仅一个北桥和一个南桥,屏蔽其他北桥和南桥芯片。
优选的,选通后首先调试HT总线是否连接成功,若连接成功继续调试其他针脚;若没有连通则选通下一块南桥或北桥芯片。
优选的,所述龙芯CPU将采用16bits HT总线工作模式。
较优选的,所述龙芯CPU在和适配的南桥芯片在工作中屏蔽掉8bits*2工作模式下的高8位HT控制线。
较优选的,所述龙芯CPU在和适配的南桥芯片工作中通过低8位HT控制线与南桥芯片HT控制线相连接。
较优选的,所述龙芯CPU在和适配的北桥芯片在工作中屏蔽掉8bits*2工作模式下的高8位HT控制线。
较优选的,所述龙芯CPU在和适配的北桥芯片工作中通过低8位HT控制线与北桥芯片HT控制线相连接。
较优选的,所述龙芯CPU在和适配的北桥芯片工作中工作在slave模式。
优选的,未明确定义针脚以及不对应的针脚引入FPGA芯片调试后进行相应的屏蔽或连接。
优选的,所述未明确定义针脚以及不对应的针脚包括上下电时序信号和配置信号。
较优选的,其特征在于,所述能适配龙芯系列CPU的北桥芯片包括RS780,RS780C,RS780D,RS780E,RS780G,RS780M,RS780MC,RX781,RS785G以及RD790;南桥包括SB600,SB700,SB710,SB750。
一种调试龙芯CPU和南北桥芯片的装置,该装置包括FPGA芯片,HT总线接口以及HT总线接口开关,所述装置通过HT总线接口连接龙芯CPU和北桥芯片的HT总线,所述装置通过HT控制线和上下电时序信号线连接南桥芯片。
优选的,龙芯CPU与北桥芯片阵脚直接引入FPGA芯片中。
优选的,所述装置可以在龙芯CPU的HT总线信号出现问题时对信号进行整形。
较优选的,所述整形是通过在FPGA芯片上用verilog语言编写程序实现的。
优选的,调试时只打开龙芯CPU和被调试的北桥芯片的HT总线和南桥芯片HT控制线,关闭其余南北桥芯片的HT总线。
较优选的,若南桥或北桥调试不成功则开启下一个南桥或北桥芯片HT总线开关。
优选的,未明确定义针脚以及不对应的针脚引入FPGA芯片调试后进行相应的屏蔽或连接。
较优选的,所述未明确定义针脚以及不对应的针脚包括上下电时序信号和配置信号。
优选的,所述装置通常包括5个HT接口,其中1个用来连接龙芯CPU,4个连接4块北桥芯片。
通过本发明的方法和装置,如果龙芯CPU的HT bus不满足标准的协议,可以定位到那根信号存在问题,并指导龙芯CPU的该进。尽管龙芯CPU存在bug,但通过FPGA的隔离能屏蔽发现的bug,使调试仍能顺利地进行,而不是半途而废,具有很大的灵活性,节省了时间和成本。如果重要的、未明确定义的、不知如何对应连接的信号线不满足要求,可以通过FPGA灵活的改变其行为使之符合设计的要求,非常的灵活,而不用重新修改设计。利用FPGA编写出多组的HTbus接口,可以实现多款芯片组与龙芯CPU相连,实现在一块主板上能同时调试多款芯片组。当龙芯CPU需要和一组芯片组进行调试时,把与其他芯片组的连接断掉,切换灵活节省了时间和成本。通过本发明的方法和装置,得出和龙芯3号CPU配套的北桥芯片包括RS780,RS780C,RS780D,RS780E,RS780G,RS780M,RS780MC,RX781,RS785G以及RD790,南桥包括SB700,SB710,SB750,SB600的结论。
附图说明
图1是龙芯主板架构
图2是本发明调试装置
图3是龙芯CPU和AMD芯片复位和电源管理信号连接关系
图4为标准的HT bus协议信号
具体实施方式
本发明利用FPGA编写出多组的HT bus接口,并把重要的、未明确定义的、不知如何对应连接的信号线引入到FPGA,使龙芯CPU、不同公司的多款芯片组和FPGA相连,实现在一块主板上能同时调试多款芯片组。本发明以包括5个HT接口的调试装置为例,可以同时调试4套南北桥。其中一个HT接口用来连接龙芯CPU,另外4个连接北桥芯片,南桥芯片通过HT控制线与测试装置连接。当一个芯片不能连通时,可以开启下一个芯片的开关。
如图4所示,标准的HT bus协议包括三类信号线:连接信号线(数据、地址、控制和时钟)、复位和初始化信号线、电源管理信号线。
对于连接信号线,龙芯3号CPU和北桥都是一一对应的,即有16对接收差分信号线,2对接收信号时钟差分对,2对接收控制信号差分对,16对发送差分信号线,2对发送信号时钟差分对,2对发送控制信号差分对。
所选择的北桥HT bus符合标准的HT bus协议,但龙芯3号CPU的HT bus由于其独特的设计比标准的HT bus协议多出了一些额外的、特殊的信号。在硬件层和协议层正确的处理这些特殊信号,既不能影响龙芯CPU自身正常的工作需要,又能和北桥很好的兼容,是一个比较关键的技术点。在标准的HT bus协议中,信号PWROK、RESET#、LDTSTOP#、LDTREQ#只有一组,而龙芯HT bus接口信号有两组进行对应,他们是HT_HI_POWEROK、HT_HI_RSTn、HT_HI_LDT_STOPn、HT_HI_LDT_REQn、HT_LO_POWEROK、HT_LO_RSTn、HT_LO_LDT_STOPn、HT_LO_LDT_REQn.这些信号特殊是由龙芯3号CPU的设计特点决定的。龙芯3号CPU HT bus是16bit宽,但它有一个独特的设计,即能把这16bit宽的总线可以拆分成2个独立8bit宽的HT bus使用,每个8bit宽的HT bus都可以连接其他的CPU或者桥片。信号HT 8x2来决定是按照HT 16bits来使用,还是按照2个分立的8bits来使用。HT_HI_HOSTMODE、HT_HI_RSTn、HT_HI_POWEROK、HT_HI_LDT_REQn、HT_HI_LDT_STOPn是高8bit HT bus的信号线,HT_LO_HOSTMODE、HT_LO_RSTn、HT_LO_POWEROK、HT_LO_LDT_REQn、HT_LO_LDT_STOPn是低8bit HTbus的信号线。这些信号怎样处理,怎样和北桥、南桥互连在本发明前没有规范可循,本发明把这些信号线引入到FPGA。
龙芯3号CPU和北桥、南桥芯片中有些重要的、未明确定义的、不知如何对应连接的信号线也需要引入到FPGA。这类信号主要是上下电时序信号线、配置信号线。这些信号线包括:1)龙芯3号CPU***复位信号线SYSRESETN,PCI bus复位信号线PCI_RESETN;2)南桥上电完成信号线PWR_GOOD,北桥的上电信号线NB_PWRGD;3)各个供电模块的上电使能信号和电源OK信号PWRGOOD;4)龙芯3号CPU配置信号线GPIO信号线,内存时钟频率的设置信号线,HT bus时钟频率的设置信号线。
上下电时序存在的难点是:一是龙芯3系列CPU面世后,一直没有经过实用验证,CPU本身的上下电时序需要验证;二是龙芯CPU一直没有找到配套的南北桥芯片组,怎样和南北桥的上下电时序配合也是未知数。通过此种方法把电源模块和南北桥芯片的上下电时序控制信号都连接到FPGA,就可以随意的根据需要调节这些信号时序,一直尝试到满足要求为止。
具体的实施方法如下:
1)把龙芯3号CPU的HT bus的连接信号线(如前所述40对差分对)引入到FPGA;不同公司的不同北桥芯片的HT bus的连接信号线也引入到FPGA。
2)把龙芯3号CPU的HT bus特殊信号线HT_8x2、HT_HI_HOSTMODE、HT_HI_RSTn、HT_HI_POWEROK、HT_HI_LDT_REQn、HT_HI_LDT_STOPn、HT_LO_HOSTMODE、HT_LO_RSTn、HT_LO_POWEROK、HT_LO_LDT_REQn、HT_LO_LDT_STOPn引入到FPGA
3)把北桥芯片和南桥芯片的关于HT bus的复位、初始化和电源管理信号线LDT_STP#,LDT_RST#,LDT_PG,ALLOW_LDTSTP引入到FPGA.
4)上下电时序控制信号线引入到FPGA,这些信号包括a)龙芯3号CPU***复位信号线SYSRESETN,PCI bus复位信号线PCI_RESETN;b)南桥上电完成信号线PWR_GOOD,北桥的上电信号线NB_PWRGD;c)各个供电模块的上电使能信号EN和电源OK信号PWRGOOD;
5)配置信号线引入到FPGA,这些信号包括龙芯3号CPU配置信号线GPIO信号线,内存时钟频率的设置信号线,HT bus时钟频率的设置信号线。
6)用FPGA抓取和分析龙芯CPU HT bus的信号,检测龙芯CPU的HT bus是否严格遵循标准的HT bus协议。如果龙芯HT bus存在较大问题,可以通过FPGA编写相应的程序把龙芯HT bus的信号过滤整形成标准的HT bus来实现与桥片连接。
7)调试时只打开龙芯CPU和被测试的北桥芯片的HT总线,关闭其余北桥芯片的HT总线。
8)用FPGA调试龙芯HT bus的特殊信号,尝试通过连接、中断和北桥、南桥HT bus相对应复位、初始化和电源管理信号线寻找成功联系的方法。
9)用FPGA使能或者关闭电源模块的使能信号,龙芯CPU、南北桥片电源powergood信号,并调试各个信号的前后顺序和时间间隔来确定成功的上下电时序。
10)用FPGA配置龙芯3号CPU的一些配置信号线,使其顺利的下载(load)龙芯CPU BIOS,尝试设置内存和HT bus的频率组合,寻找正确的设置使其正常工作。
通过以上的调试方法,解决了龙芯3号CPU和北桥、南桥之间在硬件层和协议层兼容性的方法,可以去掉FPGA直接使龙芯CPU和南北桥互连。
结论如下:
1、通过本发明的方法和装置,得出和龙芯3号CPU配套的北桥芯片包括RS780,RS780C,RS780D,RS780E,RS780G,RS780M,RS780MC,RX781,RS785G以及RD790,南桥包括SB700,SB710,SB750,SB600的结论。
2、HT_8x2信号拉低(Pull down),即把龙芯3号CPU与AMD北桥的相连的HT总线设置为16bit的模式。因为AMD北桥是16bit的HT bus,龙芯CPU需要与之相配合。
3、把高8bit HT bus的接口信号(HT_HI_HOSTMODE、HT_HI_RSTn、HT_HI_POWEROK、HT_HI_LDT_REQn、HT_HI_LDT_STOPn)通过拉低禁掉,在龙芯CPU的协议层设置成只使用低8bit HT bus的接口信号(HT_LO_HOSTMODE、HT_LO_RSTn、HT_LO_POWEROK、HT_LO_LDT_REQn、HT_LO_LDT_STOPn)进行16bitHT bus的控制。因为龙芯CPU在和AMD北桥互联的使用中,16bit HT bus作为一个整体来进行控制。
4、在龙芯CPU和AMD北桥HT协议配合工作的过程中,根据整个板子的上下电顺序和初始化过程得出AMD桥片为HT协议的发起者,工作在主模式(master模式),而龙芯CPU为从模式(slave模式),所以把HT_LO_HOSTMODE拉低。
5、使用龙芯CPU的低8bit HT bus信号HT_LO_POWEROK、HT_LO_RSTn、HT_LO_LDT STOPn、HT_LO_LDT_REQn与AMD南桥、北桥芯片进行相应的连接,如图3所示。在bios中需要把双向信号(IO信号)HT_LO_POWEROK、HT_LO_RSTn设置为输入信号(I信号)。