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.

c6678 srio通信Maintenance成功,但是directIO不成功。Inbound_ackID不能正常累加。

各位工程师好:

       我在调试c6678与fpga的srio通信情况如下:

      1.KeyStone_SRIO_match_ACK_ID()中的两个Maintenance都可以通过

      2.在使用Maintenance读对面的Base Device ID CSR也可以通过,并且SP0_ACKID_STAT寄存器正常累加。

      3.按照论坛中的知道srio模块自带的错误检测寄存器没有检测出错误。

      问题1:directIO不成功,SP0_ACKID_STAT中的Inbound_ackID位置不能累加。

      问题2:程序不是每次都能初始化成功,经常需要reset几次才可以。常出现的错误有Maintenance  write超时等。

  • 刚才看的不仔细还有有如下错误提示

    C66xx_0: GEL Output:  Problem(PORT_WIDTH): Port0 widht  **DOES NOT MATCH**  with PLM path configurations

    我的配置是0x0291b0b0:PLM_SP0_PATH_CTL是0x00000404,就是4lanes,mode4,只初始化了port0,我看了datasheet没看出哪里错了。

    有一个别人的工程也会报同样的错误,不过他调通了。

  • Serdes先降频试试看?看起来像是信号质量不好。

    降到低频测试看是不是相同的现象,先只测一条Lane,能用示波器看一下信号质量是最好。

    另外,DSP loopback有没有测过?

  • 您好!谢谢您的解答,现在和fpga的通信已经基本调通了但是还有如下问题:

    SRIO初始化函数并不是每次都能执行成功。主要是在KeyStone_SRIO_match_ACK_ID()中的KeyStone_SRIO_Maintenance()返回值非零。偶尔PORT初始化检测不能通过,请问这是因为SRIO使用后清理不彻底所致吗,还是其他的原因?谢谢!

  • 刚才详细测试了一下,每次都reload很规律的初始化函数成功一次,KeyStone_SRIO_Maintenance()报错一次,port基本没有问题了。而且必须是reload,复位后restart不可以。