How to generate the MSI

Comments and questions related to the "Down to the TLP" pages

How to generate the MSI

Postby Guest »

So on an Intel Xeon running Linux, with a PEX 8718 PCIe switch, and Meritec cable to another (non-Intel Board, via another switch/bridge) the EndPoint being a non-Intel CPU,
How can the EP Software trigger/generate/cause/send and MSI to the Intel CPU? Or to dumb down the question to just the Intel based board, how can I force the switch to generate an MSI to Intel CPU? The switch has MSR=0xFEE003d8, and data=0. But I am not sure how to trigger the MSI. There should be a way to test on the Intel board alone, How can Intel Software write to the switch to cause it to generate an MSI to the Intel CPU?
Maybe cause some error?

Re: How to generate the MSI

Postby support »


Your setup isn't completely clear, but I take it that the non-Intel CPU presents itself as a PCIe device on the bus. In that case, it has a PCI configuration space, in which the root complex (the bus root, the Intel CPU I guess) sets up the MSI feature during enumeration, if the device declares that MSI is activated.

More precisely, if the device presents a MSI capability by virtue of its configuration space, the bus enumerator (root complex) writes an address and data value to the device's configuration space. The device triggers an interrupt at the root complex by writing that value to that address. It's that simple, actually.

I hope this rather vague answer gave a direction.

Posts: 775

Return to General PCIe