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.

TMS320C6678: DSP sends doorbell packets causing increased network latency

Part Number: TMS320C6678

Hi team,

Here's an issue from the customer may need your help:

The project is based on sys/BIOS and contains the srio and networking capabilities. The network and the srio are separate tasks where the network task has a higher priority than the srio.

When DSP sends doorbell to FPGA, FPGA receives the doorbell packet normally. However, pc machine can have a large latency (around 1.5 s) to ping the network, while sending data to ping the network is a normal delay (<1 ms).

Both SRIO and network can operate independently. When debugging DSP separately to send a srio doorbell packet, the first few packets are sent normally and then take a long time(longer than 1s). Although sending a doorbell can take a long time, the remote device can receive a doorbell interrupt. And the packets being sent are stable with no exceptions like doorbell.

Sending doorbell function is as follows: 

int rioDbellSend(Uint16 destID, Uint16 dbellInfo)
{

Srio_SockAddrInfo to;

to.dio.ttype = 0;
to.dio.ftype = Srio_Ftype_DOORBELL;//10
to.dio.rapidIOMSB = 0x0;
to.dio.rapidIOLSB = 0x0;
to.dio.dstID = destID;

/* Send the DIO Information. */
if (Srio_sockSend (srioSocketDIO, (Srio_DrvBuffer)dbellInfo , 0, (Srio_SockAddrInfo*)&to) < 0)
{
System_printf ("Debug: DoorBell Socket Send Failed\n");
return FAILED;
}

return SUCCEED;

}

The customer tried it with bare machine and the doorbell packet was normal. In addition, the DSP in sys/BIOS only has an exception for the transmit doorbell, and the receive doorbell interrupt is normal.

The long time is found in the CSL_SRIO_IsLSUFull function during debug.  Is there any possible reason? 

Could you help check this case? Thanks.

Best Regards,

Cherry