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.

Same ISR for two HWI

Hello!

In our C6670 based system we are going to use PCIe MSI interrupts. In C6670 each core receives 4 vectors on event Id 17 and 4 vectors on event Id 18. Thus, two HWIs are required to catch them. Is it OK to set same C ISR for both HWI?

Thanks in advance.

  • Hi,

    For the interrupt controller setup on C6670, there is one typo in the current data manual that event 18 should be "PCIEXpress_MSI_INTn+4" instead of "PCIEXpress_MSI_INTn+1" (which will be fixed in the next data manual release).

    So we have 8 MSI interrupt from PCIe module in C6670, event 17 "PCIEXpress_MSI_INTn" means Core0 (n=0) will accept MSI_INT0 (with MSI vectors 0/8/16/24) and event 18 means Core0 will accept MSI_INT4 as well (with MSI vectors 4/12/20/28). So we have 8 vectors assigned to each Core (4 cores with total 32 MSI vectors).

    In C6678, we have only event 17, so only 4 vectors assigned to each core (8 cores with total 32 MSI vectors).

    Thanks,
  • Hello Ganapathi,
    Thank you for reminding about the typo in data manual.
    My question was, however, about other matter. I know I could receive HWI with events 17 and 18. What I want to do is to register one single ISR, say pcie_isr(), as ISR for both HWI. Say I have HWI12 for event 17 and its ISR is pci_isr(), and I have HWI13 for event 18 and want to make its ISR same function, pcie_isr(). In C6670 MSI trigger two primary Corepack events, 17 and 18, thus they cannot be combined and have to be processed by two different HWIs.