(1)DM8168 作PCIE的 EP设备
(2)PC作为RC;
DM8168 的PCIE EP初始化:在uboot中,参考DM1868 EVM 的PCIE BOOT模式的PCIE初始化函数PCIE_INIT()进行修改,修改很少,把link之后等待rc下载程序那块代码和看门狗去掉了;内核没做实际初始化,我理解,uboot中对PCIE的初始化足以让PC识别到PCIE EP设备。
测试发现,10次有一两次pc能识别到DM8168的PCIE设备。PC是正常的能识别大概8-9个PCIe设备
上电顺序是8168先上电,再是PC,
(1)PC识别8168的PCIE EP后,进入8168的系统后访问pCIE的寄存器等都是ok的
(2)PC无法识别8168的PCIE EP后,进入8168的系统后,./mem_rdwr.out –rd 5100107c 16
显示unhandled fault: external abort on non-linefetch (0x1018) at 0x5100107c bus error 错误,访问其他51000000开始的pcie寄存器也是一样。
请调试过的前辈给与帮助,谢谢。
我在PC端用win7和ubuntu都试了偶尔能识别到DM8168的PCIE ep设备。
user3906396:
PCIE问题已经卡了很长时间,很着急。请ti的工程师和广大网友有空帮忙看看,给些解决办法,或者成熟的驱动代码之类的,谢谢。
Chris Meng:
回复 user3906396:
你好,
请问DM8168的PCIe的时钟和PC上的PCIe的时钟是否是同源?
user3906396:
回复 Chris Meng:
您好,时钟是同源的
Chris Meng:
回复 user3906396:
你好,
如果设置DM8168为PCIe启动,电脑是否能每次都检测到?
下面的link分享给你:
http://processors.wiki.ti.com/index.php/TI81XX_PCIe_FAQs
weifeng liang:
回复 user3906396:
请问现在问题有解决吗?
wang xiaoguo:
回复 weifeng liang:
请问 guo guo2 和weifeng liang,您好!目前DM8168 PCIE,想作为RC,首先是不是需要在uboot中将PCI_CFG寄存器中的 DEV_TYPE设置成 0b10?然后系统启动后才能执行RC的driver,比如说dirver中的ti81xx_pcie_probe函数?目前的现象是,启动过程中调试输出发现driver中的ti81xx_pcie_probe函数都没有执行。另外想问一下,ti81xx_pcie_probe函数会在哪里被触发调用。在uboot中只是把PCIE_INIT函数中的最后代码屏蔽掉?
//pcie_enable_link();//install_exceptions();//wait_for_host();
谢谢了,不吝赐教!
weifeng liang:
回复 wang xiaoguo:
非常抱歉,8168和电脑的通信没有调通,附件为调试参考过程。希望能帮到你。
wang xiaoguo:
回复 weifeng liang:
好的,非常感谢