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.

SRIO传输数据时,先运行doorbell再NWRITE发送数据,会卡在下面这个地方,如果我开始的时候只发NWRITE包就不会出现这样的问题

Uint32 KeyStone_SRIO_wait_LSU_completion(Uint32 lsuNum,
Uint32 transactionID, Uint32 contextBit)
{
Uint32 uiStateIndex= LSU_state_index_table[lsuNum][transactionID]; 
Uint32 uiCompletionCode;

do
{
uiCompletionCode=(gpSRIO_regs->LSU_STAT_REG[uiStateIndex/8]>>
((uiStateIndex&7)*4))&0xF;
}
while((uiCompletionCode&1) != contextBit);

return (uiCompletionCode>>1);
}

我先给DSP发送一个doorbell信号,通知DSP已经准备好了,然后再用NWRITE方式发送数据,会一直卡在这个循环,看了一下各个寄存器的值,LSU_STAT_REG[0]变成了3.查看手册,这个表示

Transaction Timeout occurred on Non-posted transaction

想问一下是什么问题,能怎么解决

  • Uint32 KeyStone_SRIO_wait_LSU_completion(Uint32 lsuNum,
    Uint32 transactionID, Uint32 contextBit)
    {
    Uint32 uiStateIndex= LSU_state_index_table[lsuNum][transactionID]; 
    Uint32 uiCompletionCode;

    do
    {
    uiCompletionCode=(gpSRIO_regs->LSU_STAT_REG[uiStateIndex/8]>>
    ((uiStateIndex&7)*4))&0xF;
    }
    while((uiCompletionCode&1) != contextBit);

    return (uiCompletionCode>>1);
    }

    我先给DSP发送一个doorbell信号,通知DSP已经准备好了,然后再用NWRITE方式发送数据,会一直卡在这个循环,看了一下各个寄存器的值,LSU_STAT_REG[0]变成了3.查看手册,这个表示

    Transaction Timeout occurred on Non-posted transaction

    想问一下是什么问题,能怎么解决

  • 看一下是不是SRCIDMAP的问题,请参考下面的帖子。
    e2echina.ti.com/.../70011
  • 您好,我看了一下帖子,是由于我这边发送了需要response的doorbell信息,而我这边没有收到对方的response。但是我这边只用了一个核,也设了base_id,fpga端发的NWRITE和DOORBELL信息我也能收到,那为什么他发送的response信号我收不到呢?
  • FPGA没有发送Response包给dsp

  • 你好,感谢回答。我问了做FPGA端的人FPGA 默认发了一个response,我这边也显示DOORBELL信息发送完成,只是此时的寄存器值变成上述情况,发送下一个数据的时候就会卡在上面,你知道是什么情况吗?