Tool/software:
I modified the LoopbackDioIsr.c example on the C6678 so that Core 0 performs an SWRITE to DDR3, and Core 1 reads it using NREAD.
After the SWRITE, I want to send a doorbell so that Core 1 receives it as an interrupt, triggering the NREAD operation.
How can I receive the Doorbell as an interrupt?
When do INTDST0~23 receive interrupts?
Can I modify the interrupt conditions for INTDST0~23?
Hi,
To understand & support your query, we would like to know the TI SDK being used? Also, is this a new or existing project? Can you described the use case in detail on why this is required? Also, have you looked into the device documents, if yes - which ones?
Thanks
I am using pdk_c667x_2_0_16.
In the future, when the FPGA performs SWRITE to DDR3 and sends a Doorbell, the DSP will receive the Doorbell as an interrupt and then perform NREAD to read from DDR3.
Currently, since the FPGA is not yet ready, I am testing by having the C6678 perform an SWRITE to DDR3 and send a Doorbell in loopback mode. This Doorbell is received as an interrupt, triggering another SWRITE.
I am using the following code to route Intdst16~ to the Doorbell register and bit:
for (i = 0; i < 16; i++)
{
CSL_SRIO_RouteDoorbellInterrupts(hSrioCSLRX, 0, i, 0);
CSL_SRIO_RouteDoorbellInterrupts(hSrioCSLRX, 1, i, 1);
CSL_SRIO_RouteDoorbellInterrupts(hSrioCSLRX, 2, i, 2);
CSL_SRIO_RouteDoorbellInterrupts(hSrioCSLRX, 3, i, 3);
}
However, despite receiving the Doorbell, the interrupt is not triggered.
How can I resolve this issue?
And I am not even sure if the Doorbell is being transmitted correctly.
If I set doorbell val = 1
, shouldn't the Doorbell be sent together with the SWRITE?
Please note that there would be limited support that we can provide on this as the experts have moved on and are not available to support.
Our suggestion is to look into the SRIO documentation and SDK examples.
Also, we suggest looking at earlier E2E posts:
I hope this helps.
Thanks.