This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

求教:关于PCIe lane的信号



大家好:

       现在我在做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上的信号呢?

     麻烦各位帮我分析下,谢谢!

  • Lane 1找不到信号吗?是否serdes配置不对?看看serdes的状态是否正确。另外DM8168的PCIE设置要注意如下事项

    Advisory 2.1.44 PCIe Gen2 Mode: PCIESS Corruption of Round-Trip Latency Time and Replay
    Time Limit Bits (PL_ACKTIMER Register)
    Revision(s) Affected: 2.1, 2.0, 1.1, 1.0
    Details: 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 replay
    time limit (RPLY_LIMT), in the PL_ACKTIMER register causes the value of the bit field
    that 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 the
    PL_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的设置见附件文档。

    sprabk8.pdf
  •         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,这不会有什么影响吧?