我遇到的问题是:
板卡插到机箱中与单板主机(XP系统)相连,主机检测不到新设备。用配置成PCIe引导或直接运行PCIe EP端初始代码都不行。
板卡是自制板卡。核时钟100M工作在1G,PCIe的参考时钟 250M和100M都试过。都没反应
我用的PCIe初始化代码是PDK6678里EXAMPLEPROJECT的PCIe主从板对接测试的EP端程序
如下是我总结的一些问题和现象,求解答:
1.PCIe的参考时钟给250M 是否可以进行PCIe引导,因为PCIe的GPIO引导设置里面没有选择参考时钟对应的位,是不是BOOTLOADER里对SERDES PLL设置默认是按100M参考时钟设的0x1C9。我应该设成0x151才能倍频到2500M。这个怎么改。
2.我的DSP版本是1.0,应该不能直接从PCIe引导,我的FPGA还没有强制DSP进入I2C进行二次引导的逻辑,怀疑PCIE引导配置不成是不是和这有关系
3.PCIe手册说初始化的第一步就是使能电源和时钟域,指的是配置哪,一个100M的参考时钟和一个250M VBUSM时钟,这个250M时钟是主锁相环的哪个输出,我找不到这个时钟源。
4.PCIe的设备ID和vender ID读出来分别是 4E30和1100(地址0x21800000).手册上不是说VENDER ID 是104C吗。
5.PCIE程序初始化配置过程中,有很多寄存器写了是没反应的。比如GEN2寄存器,配置1x和速率2.5G之后,这个寄存器还是0(地址0x2180080c),程序中有解锁。
DEV_STAT_CTRL(0x21800078)和PCIE_ACCR(0X21800118),配置完都没反应,手动改也改不了。其他的BAR设置 IB/OB还有偏移都可以正常设置
6. 另外最后程序查询等待建立连接时的DEBUG0(0x21800728)也都是0
7.还发现了个问题,PCIe的配置空间0x21800800和0x21800000是重复映射的,两段地址内容一样,写0x21800804以后0x21800004也会变。
我发现的现象就这些,请工程师们帮忙分析一下问题所在,上述问题开发板也是有的。是否是我选的测试程序有问题,能不能提供一个你们测试过的PCIe EP端设备程序
Nick Zhang~:
PCIe和上位机连的时候要注意一点,就是要保证上位机在扫描PCIe设备时,DSP已经配置完PCIe,也就是要至少等待link训练,实际上拨成PCIe加载时,是能够找到PCIe设备的,如果是PG1.0版本,那么使用二次引导,在IBL中完成PCIe配置,每次上位机都能够找到设备,并且BAR空间访问正常
Bruce Chen1:
你好!
1. 1.0版本6678需要I2C二次引导
2. EVM 板连接PC机,需要 AMC转PCIe的转接卡,楼主有用吗?
mike lee1:
Richard Zhang,你好
我想请问一下你的问题现在有解决吗?因为我也好像遇到了类似的问题。
lucky2:
回复 Bruce Chen1:
请问我烧写IBL完成,并下载成功。拨码开关安装
使用PCIe boot,论坛上有一个人说SW9 pin1需要设置为off,请问这个SW9 pin1是用来干嘛的?我看原理图上,是SSC时钟使能与否,这个时钟是指和接口连接上是否使用另外一个PCIe设备的参考时钟吗,这样两设备就使用同源时钟了。
通过适配板插入PC主板的PCIe插槽里,不过我中间使用了PCIe延长线(淘宝上买的,板子不方便插进去,这个应该没影响)。PC上的windriver软件识别不到该设备。请问会是什么原因?
期待您帮忙指导下,谢谢