SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Message Signal Interrupts are the preferred option to map interrupt over PCIe. It allows up to 32 interrupts vectors/events to be triggered by each EP function. MSI interrupts are implemented memory-space (posted) writes, 1-DWORD long. They should only be sent by EPs to the RC.
While legacy PCI interrupts are mapped onto PCIe messages (Msg), the Message Signaled Interrupts are mapped onto PCIe memory writes (MWr), not onto messages.
Use of MSI is exclusive with use of legacy PCI interrupts (defined above).
An MSI is a memory (posted) write done by an EP to a mailbox in the RC. The data size is always 32 bit, the address and the data are programmed by the RC during PCIe enumeration, into the EP function’s MSI capability descriptor (in the EP function’s PCI config space).
Like legacy PCI interrupts, MSI does pass any status information to the RC, other than the interrupt vector (event) itself: the data payload of the write access is used exclusively to identify the interrupt’s requester and its vector. The exchange of status information is outside the scope of MSI.
Unlike the legacy PCI interrupts, MSI does not emulate an interrupt “level” that is either high or low, gets asserted or deasserted. Each MSI interrupt vector corresponds to a univocal event, that does not get “cleared” later on.
The device integrated PCIe controller does not support extended MSI-X message signaled interrupts.