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

关于SRIO的问题!

你好:.我们的实验板,放了两个c6670,这里用DSP0和DSP1表示,DSP0的SRIO的Port2和DSP1的Port0相连,DSP0的Port1和FPGA相连,速率设置2.5G。

问题1:先说DSP0和FPGA间的SRIO通信,经测试读写正常,但循环测试读写时(不加断点,不加延时,while循环中只有读或写操作)有时程序进中断0,跳到入口函数后又进中断0,循环往复,有时跳到中断1,像是exception产生的中断,有时程序跑飞了,传进函数的参数不对了。但同样的程序在EVM开发板上运行正常。请问可能是哪里的问题,感觉像是硬件的问题,是不是提供的核电源质量不好?

问题2:和FPGA进行SRIO通信正常的情况下,DSP这边再从新加载程序运行,再次进行SRIO的初始化后,连接状态正常,但不能通信,考虑到DSP和FPGA间的ackID不能正常交互了,然后手动设置DSP最后显示的ackID后,就能正常通信。请问,FPGA的SRIO只初始化一次,DSP多次初始化,如何保证能正常通信,我看过一个SRIO的测试程序,有一个同步ackID的函数,但这是两个DSP间的,和FPGA怎么同步?

ji wang:

问题3:两个DSP间的SRIO多数情况下连接不通,错误状态寄存器SPn_ERR_STAT显示0x00030301,之后不变;有时候初始化后显示0x00030301,过几秒后刷新寄存器显示0x00030302,然后又变为0x00020202,然后连个DSP间就可以通信了。DSP和FPGA间的端口在DSP初始化后总是正常的显示0x00000002,请问可能是哪的问题?(DSP配置成4个1x模式)

ji wang:

回复 ji wang:

问题4:DSP在进行读写操作前后,是否需要进行L1d的Cache操作?

比如写操作前,如果源地址是L2的ram,并且这部分存储器被Cache到L1D中,是否需要进行Cache写回操作?

另外读操作完成后是否需要进行相应地址的Cache的无效操作,以获得更新后的数据?

问题5:调试中发现使能了存储器的错误检测纠正功能后,如果不对要写出去的数据区(L2)进行初始化,SRIO的写操作会失败。请问使用存储器的错误检测功能是不是需要注意一些东西?

Zhan Xiang:

回复 ji wang:

1. 你这里的中断0和中断1分别是什么中断,看不太明白

2. Match ackID的操作对于FPGA也是适用的,这个程序完成的是对SRIO协议规定的寄存器进行操作,只要通过maintainence包访问到FPGA对应的寄存器即可,寄存器地址通常都是相同的。

3.你说的错误都是输出error,有可能是对端没有初始化,没响应,或者信号质量不好造成的

4.如果数据在local L2中,不需要进行cache一致性维护,但是如果数据在shared L2中就要进行cache一致性维护

5. 你指的是EDC还是memory protection操作,如果是EDC,那么要在访问之前对打开EDC的L2生成一次parity bit才能正常工作,并且该访问需要128bit对齐的

ji wang:

回复 Zhan Xiang:

你好!

1.中断0是reset中断,中断1是exception中断,exception中断可在bios中设定是否启用。前两天测试网口通信时存在同样的问题。同样的程序在EVM开发板上运行是正常的,应该不是软件的问题。我把核钟从1G降到750M后在实验板上运行正常。可能是核压和时钟的问题。初版先行避过。

2.还没查过FPGA的寄存器地址是否与DSP相同,我再试试看。

3.第一个3是output错误,第二个3是input错误,肯定是初始化的了,因为两个DSP与FPGA间的端口都显示正常,并能正常通信。如果是信号质量不好,为何DSP和FPGA间总是正常的呢?

4.前提是L2 cache都默认不是能,L1D的caceh是使能的;MSM SRAM配置成SL2,即可以被L1D cache。如果我想把已经被Cache到L1D中的L2中的数据发送出去,这时DSP的DMA会自动进行cache一致性维护,是不是这样?

5.我说的就是EDC,那么生成一次parity bit就是对该内存进行一次写操作么?

ji wang:

回复 ji wang:

等回复

King Wang1:

回复 ji wang:

你好:

我有一下几个建议:

1)L2的地址要注意别写成局部地址;

2)ACKID的匹配是端口到端口的,与整个架构没有关系,它只关注端口到端口;

3)SRIo的写操作不会触发EDC错误,EDC错误只会在读操作中触发;

4)Reset中断和Exception中断一般与SRIO关联不大,大部分是其他问题导致,比如代码跑飞,数组越界等。

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 关于SRIO的问题!
分享到: 更多 (0)