首先感谢Ti论坛提供的SRIO程序范例,但是其硬件平台是EVM板更多的只能用于loopback测试,但是可以在其基础上修改
1.初始化DSP的SRIO,主要是对SerDes进行配置然后是Lane和Speed的配置,最后需要等待FPGA的LinK建立我们在建立时候碰到一点困难,每次建立并不都是4X一直没有找到问题,我们使用了一个别的办法来保证link为4X
2.数据发送,DSP上提供的数据发送方法主要有两种DirectIO和Message,主要区别为DirectIO需要TX和RX双方知道地址映射关系而Message是通过Message中mail信息得到数据需要保存的地址,我们使用的为DirectIO方法6678 srio上提供了8组LSU来进行DirectIO数据发送,每个LSU有6个寄存器当5th寄存器写完后,数据会发送出去第6个寄存器主要用于检测当前的LSU状态。LSU还有16(32)个影子寄存器
3.SWRITE/NWRITE/NREAD:对DSP来说初始化完SRIO后,FPGA便可以通过SRIO来发送数据但是要注意,Designer并不知道什么时候FPGA会发送数据所以通常会先发送一个DoorBell信息来告知DSP,FPGA要发送数据了DoorBell可以触发中断,对于NREAD来说FPGA发送这个命令后,DSP会自动的将请求的数据发送出去Designer也并不知道数据发送出去,这些都需偠DoorBell来支持