大家好,
我用tmdsevm6678l rev.2a的开发板通过amc to pcie adapor连接到pc上,电脑操作系统是32位xp的,
首先按照mcsdk上的步骤把相关程序烧到板子上后,把bootmode的开关调到pcie boot 或者i2c boot后,当把板子上的sw9[1](pcie使能开关)拨到off时,就是使能pcie module,这时电脑就不能启动,读取寄存器PCIE_SERDES_STS发现,其第0为为1,也就是PLL已经lock上了,寄存器DEVSTAT为0x00010809,应该是正常的,寄存器DEBUG0的[4:0]不是0x11,也就是没有link up上;当把板子上的sw9[1]拨到on时,就是disable pcie module,这时电脑就能启动,但是寄存器DEBUG0的[4:0]依然不是0x11,也就是没有link up上。
在网上查了有类似问题的,但是他的开发板版本是rev3.0的,他的板子上的sw5[3]是控制板上时钟和外部时钟的,当off时使用外部时钟,反之使用板上时钟,而我的板子上的sw5[3]并没有这个功能。
请问开发板rev.2a版本和rev.3.0有什么区别?
当板子连到pc时需要用板上的还是外边的pcie ref clk?
板子上时钟的选择是通过fpga控制的,这个代码可以自己改么?
为什么板子的pcie使能后连到电脑上电脑就开不了机?
谢谢!
user2000895:
板子上的时钟选择 要改 你得修改FPGA里面的固件 这个好像没有提供吧
mouph:
板子上的时钟可以改,通过SPI修改FPGA中的寄存器实现的。
使用AMC引过来的时钟,默认是使用板上的时钟。
换个PCIE槽位插下呢
dongcheng chen:
回复 mouph:
试了几台电脑,有一台能开机,但是都是不能找到新硬件,一般pcie插到电脑上应该用电脑的参考时钟吧?
Wei:
回复 dongcheng chen:
参考一下这个讨论
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/194161/693901.aspx#693901
Wei:
回复 Wei:
另外参考一下
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/233620.aspx?pi74271=1
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/244411.aspx
如果是老一些的板子,需要更新IBL。更新IBL以后如果还是不行,换不同品牌的PC再试验一下。
Richard Zhang:
1.板子启动用的是板子上的时钟,就是DSP的PCIE模块的参考时钟
2.主机启动不了是因为你板卡引导成功之后正在和主机进行PCIe的链路训练,就是通过PCIe发送一系列的信号序列,你要找好主机启动和板子重启的时机和先后顺序才行。
dongcheng chen:
回复 Richard Zhang:
板子和主机连接不是有参考时钟PCIECLK么,互连时板子就用DSP的PCIE的参考时钟么?和主机的PCIE参考时钟有无关联?
我的板子插在主机上,启动主机电源后,卡在链路训练上,状态位是0x03或者0x07,之前我和FPGA连,状态位是0x02,都不是0x11,为什么链路训练总过不去呢?DSP和主机在链路训练时用不用统一的参考时钟?
谢谢!