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 interrupt

hi,all:

   i want to generate the srio dio Tx Completion Isr in my route,but it can't. Please find out where is the fault :

  1、i use CSL_SRIO_SetDoorbellRoute(hSrio, 1) to map the doorbell interrupt to INTDST16, LSU interrupt => INTDST0-15;

  2、 CSL_SRIO_RouteLSUInterrupts (gtSrioDioOperaInfo.hSrioCsl, 0, 0);     /* Route LSU0 ICR0 to INTDST0*/
    CpIntc_dispatchPlug(CSL_INTC0_INTDST0, (CpIntc_FuncPtr)myDioTxCompletionIsr, (UArg)pDrvSrioHandle, TRUE);
    CpIntc_mapSysIntToHostInt(0, CSL_INTC0_INTDST0, 8);        /* The configuration is for CPINTC0. We map system interrupt to Host Interrupt 8. */
    CpIntc_enableHostInt(0, 8);            /* Enable the Host Interrupt. */
    CpIntc_enableSysInt(0, CSL_INTC0_INTDST0);                      /* Enable the System Interrupt */
    swEventId = CpIntc_getEventId(8);          /* Get the event id associated with the host interrupt. */
    EventCombiner_dispatchPlug (swEventId, CpIntc_dispatch, 8 TRUE);

3、use Srio_sockOpen()(blocked = false)、Srio_sockBind_DIO()(bindInfo.dio.intrRequest = 1) and Srio_sockSend_DIO() (NWRITE_R)to send data to the other srio device(C6678),but it did not generate the dio conpletion interrupt.

   i am sure that Srio_sockSend_DIO()  has already sent the data to the other C6678 successfully. Also i see the register LSU0_ICSR, its value is 0x0001.

   can you give some ideas?

  thanks a lot, qbliu.

  • qbliu,

    Please, make sure you have disabled interrupt pacing for INTDST0:

    /* Disable Interrupt Pacing for INTDST0 */
    CSL_SRIO_DisableInterruptPacing (hSrioCSL, 0);

    Also, you can try the SRIO_LoopbackDioIsrexampleproject in <CCS_INSTALL>\pdk_C6678_1_0_0_21\packages\ti\drv\exampleProjects\SRIO_LoopbackDioIsrexampleproject. For the 2 C6678 EVM setup (connected to each other using SRIO), disable the digital loopback and put the SRIO in normal operation. comment the following lines in device_srio_loopback.c:

    /* Configure SRIO ports to operate in loopback mode. */
    //CSL_SRIO_SetLoopbackMode(hSrio, 0);
    //CSL_SRIO_SetLoopbackMode(hSrio, 1);
    //CSL_SRIO_SetLoopbackMode(hSrio, 2);
    //CSL_SRIO_SetLoopbackMode(hSrio, 3);

    Run this example on both the C6678 EVMs and check, if you can get this example working successfully.

    I hope this helps.

  • hi,Karthik,

        thanks for your reply.

       1、yes, in my project, i  have disabled interrupt pacing for INTDST0.

       2、i do not use the SRIO_LoopbackDioIsrexampleproject in <CCS_INSTALL>\pdk_C6678_1_0_0_21\packages\ti\drv\exampleProjects\SRIO_LoopbackDioIsrexampleproject, while i use the SRIO_TputBenchmarkingTestProject, and the initialization of the srio is much the same. I tested the srio NWRITE_R/NREAD/DoorBell ISR successfully with my project.

       with the means of the register LSU0_ICSR(with the value 0x0001), the LSU has already generated the dio tx completion interrupt, but it does not been serviced. am i right?

    i wonder if i did not initialized the srio interrupt correctly?

        thanks.

  • qbliu,

    Yes. Your understanding is correct. The LSU interrupt is getting triggered at the SRIO peripheral, but it is not be handled correctly at the CIC0 or at the CorePAC0 INTC. Please, try to cross check the interrupt setup part of your project with the interrupt setup part of SRIO_LoopbackDioIsrexampleproject. You can also check the CIC0 system event status register and the input event status at the corePAC0 INTC. Please, refer to the CIC users guide and the C66x CorePAC users guide for details about the event status registers.

  • Karthik,

       ok, i will check it.

       thanks, qbliu

  • hi, :

    I also want  generate the srio dio Tx Completion Isr in my project, have you dealed with it successfully?

    if you have done it, could you give me some ideas,Thank you!!!

    my email is :   xiaogeng04@126.com

  • HI ,

    diocomletion isr is coming very slow 100024 cycles ??

    anybody knows why its taking this much time?? if this is the case then srio speed is limited..

    please help