TI中文支持网
TI专业的中文技术问题搜集分享网站

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超时等。

xu kuang:

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

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没看出哪里错了。

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

Allen35065:

回复 xu kuang:

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

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

另外,DSP loopback有没有测过?

xu kuang:

回复 Allen35065:

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

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

xu kuang:

回复 xu kuang:

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

赞(0)
未经允许不得转载:TI中文支持网 » c6678 srio通信Maintenance成功,但是directIO不成功。Inbound_ackID不能正常累加。
分享到: 更多 (0)