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.

PCIe MSI interrupts with C6678



Hi, 

The PCIESS provides fourteen interrupts to the device interrupt controller and there are 8 groups of MSI interrupts (MSI 0-7).
                                                 
                                              
my question is:
What is the interest of 4 sub interruptions for each group ?
 
 

thank you,

Sincerely,

Zakaria.

  • Hi Zakaria,

    There are 8 groups of MSI interrupts (MSI 0~7) and each group has 4 vectors (MSI vector 0-31). You should write MSI vector value into MSI_IRQ to trigger corresponding interrupt, such as write 0x0 to trigger MSI vector 0 (MSI_0 event), write 0x1 to trigger MSI vector (MSI_1 event), ....,write 0x1F to trigger MSI vector (MSI_31 event).

    MSI vectors (0, 8, 16, 24) are mapped to MSI Interrupt 0. you can use one of this interrupt vector for MSI interrupt 0.

    Section 2.14.2.2 describes the general rule of generating MSI interrupt from EP to RC. RC will put the MSI_IRQ offset to the MSI Address register and assign vector value to MSI DATA register for each EP during the enumeration/initialization process.

    There are several threads discussing about PCIe MSI interrupt. Please take a look and hope they could cover your questions.

    e2e.ti.com/.../166202.aspx

    e2e.ti.com/.../717007.aspx

    e2e.ti.com/.../711351.aspx

    Thanks,
  • Hi,

    Thank you for your attention, but I want to know why 4 vectors in each group and not 1 vector ?

    thank you,

    Sincerely,

    Zakaria.
  • Hi,

    C6678 device have 8 cores, each core will receive separate MSI INTs, that only C6678 have exactly eight MSI group. CorePac 0 will only receive interrupt from MSI_0 (vectors 0/8/16/24). Similarly, Core1 will receive MSI_1 (vectors 1/9/17/25), Core 7 will receive MSI_7(vectors 7/15/23/31).

    DSP support 32 MSI interrupts, The each four MSI interrupts are mapped to each corepacs. You can use the specific MSI vectors for corepacs.

    Thanks,
  • Hi,

    thank you Mr. Ganapathi.

    Sincerely,

    Zakaria.