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与fpga通信的问题



各位工程师好

        我在使用c6678的srio与fpga通信的时候出现了一些问题:

1.情况描述:

                   a.查询CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK位通过,

                   b.MATCH_ACKID函数中调用KeyStone_SRIO_Maintenance()其中的KeyStone_SRIO_wait_LSU_completion()返回值正常。

                   c.使用LSU发送数据,KeyStone_SRIO_wait_LSU_completion()函数通过,返回值为5

                   d.接收端fpga不能收到数据

2.其他问题:

                   a.MATCH_ACKID操作中进行Maintenance传输,先写再读,请问其中的offset都是指接收端的ACKID_STAT寄存器的offset么?

                      我看c6678的SP0_ACKID_STAT寄存器的偏移地址是0xb148,为什么例程中都写的是0x148?对于fpga这个偏移地址是不是不一定相同?

                   b.Maintenance读写后用KeyStone_SRIO_wait_LSU_completion()查询都通过了,能不能说明srio的port,path,serdes,destID配置成功了?

                     (因为fpga端的程序是封死的所以不敢确定)

  • 问题还没有解决,请大家帮帮忙,谢谢了!

  • a.是的

    b.FPGA的地址不一定是这个,要看其配置。返回值是5不正确,见SRIO手册Table 2-25, CC=5表示0b101 — DMA data transfer error

    The DMA Transfer error indicates an access attempt to either a non-mapped address, reserved address, or privledged/protected address

    一般是你设置的访问地址有问题,DSP片内的地址必须用全局地址表示,不能用局部地址0x008xxxxx这样的形式。