大家好:
现在我在做C6678 EVM与DM8168 EVM通过PCIe通信的项目,C6678作为EP,DM8168作为RC。
现在的情况是这样的:C6678与DM8168的相关PCIE寄存器(PL_LINK_CTRL,LINK_CAP,PL_GEN2)均配置为了2x模式,但状态寄存器LINK_STAT_CTRL却显示仅使用了一条lane,其值为0x10120080,我想请问下这可能是什么原因造成的?为什么使能了两条lane最后仅使用了一条lane?(以上配置均是在链路训练之前(使能LTSSM)配置的)。
另外在链路训练结束后检测到PCIE_SERDES_STS寄存器的值为0x00000201,也就是bit[9]为1,文档的描述"Loss of Signal detect of Lane1. Driven high asynchronously when a loss of signal (electrical idle) condition is detected”,可能会有什么因素导致没有检测到lane 1上的信号呢?
麻烦各位帮我分析下,谢谢!
Allen35065:
Lane 1找不到信号吗?是否serdes配置不对?看看serdes的状态是否正确。另外DM8168的PCIE设置要注意如下事项
Advisory 2.1.44 PCIe Gen2 Mode: PCIESS Corruption of Round-Trip Latency Time and ReplayTime Limit Bits (PL_ACKTIMER Register)Revision(s) Affected: 2.1, 2.0, 1.1, 1.0Details: When the PCIe is operating in Gen2 mode (5-Gbps rate per PCIe link in each direction),writing to either of these bits, round trip latency time limit (RND_TRP_LMT) or the replaytime limit (RPLY_LIMT), in the PL_ACKTIMER register causes the value of the bit fieldthat was not being updated to also be modified, corrupting the register contents.Workaround: Ensure that any updates to either the RND_TRP_LMT or the RPLY_LIMT bits in thePL_ACKTIMER register are made only when the PCIe is operating in Gen1 mode(2.5-Gbps rate per PCIe link in each direction).
DEBUG0 和DEBUG1状态怎样?
C6678的设置见附件文档。
studying:
回复 Allen35065:
Allen,
非常感谢您的回答。
C6678的 SERDES_CFG0配置的值为0x62320;SERDES_CFG1配置的值为0x22320;而DM8168的SERDES_CFG0配置的值为0x622a0;SERDES_CFG1配置的值为0x222a0;C6678与DM8168共用DM8168的PCIe参考时钟。请问以上serdes配置是否存在什么问题?
我看了附件的文档,C6678 PCIe配置的时候配置了PL_LINK_CTRL寄存器,但实际中我对这个寄存器没有配置,这个寄存器中LINK_MODE field reset后的值就是3h,在链路训练结束后通过CCS的memory broswer观察该寄存器的值为0x30120,这不会有什么影响吧?