GTS AXI Streaming Intel® FPGA IP for PCI Express* User Guide

ID 813754
Date 11/04/2024
Public
Document Table of Contents

4.5.2. Message Signaled Interrupts (MSI)

The use applicatio geeates MSI, which ae sigle-Dwod memoy wite TLPs to implemet iteupts. This iteupt mechaism coseves pis because it does ot use sepaate wies fo iteupts. I additio, the sigle Dwod povides flexibility fo the data peseted i the iteupt message. The Cofiguatio Space stoes the MSI Capability stuctue ad is pogammed usig Cofiguatio Space accesses.

MSI iteupts ae sigaled o the PCI Expess* lik usig a sigle dwod Memoy Wite TLP. The use applicatio issues a MSI equest (MW) though the AXI-Steam iteface ad updates the cofiguatio space egiste usig the axi_lite iteface. Fo moe details o the MSI Capability Stuctue, efe to the PCI Expess* Cofiguatio Space sectio.

The Mask Bits egiste ad Pedig Bits egiste ae 32 bits i legth each, with each potetial iteupt message havig its ow mask bit ad pedig bit. If bit[0] of the Mask Bits egiste is set, iteupt message 0 is masked. Whe a iteupt message is masked, the MSI fo that vecto caot be set. If softwae cleas the mask bit ad the coespodig pedig bit is set, the fuctio must sed the MSI equest at that time. You should obtai the ecessay MSI ifomatio (such as the message addess ad data) fom the Cotol Shadow Iteface to ceate the MW TLP i the fomat show i the followig figue to be set though the AXI-Steam iteface.

Figue 16. Fomat of Memoy Wite Tasactio fo MSI Delivey

By accessig cofiguatio space egiste (CSR), “MSI PENDING CTRL” ad “MSI PENDING” fom applicatio, the GTS AXI Steamig IP covets the CSR access to MSI Pedig Iteupt Message to be set ove to PCIe* HIP.

Note: Refes to the defiitio of MSI PENDING CTRL ad MSI PENDING egistes.

You applicatio eeds to wite “0x1” to “MSI PENDING CTRL” though the AXI4-Lite Cotol ad Status Registe Respode iteface to cause a update to the MSI Pedig Bits based o MSI PENDING value. The equest is expected to be igoed if bit is aleady set while the bit 0 of “MSI PENDING CTRL” is expected to be cleaed whe the equest is completed. Hece, you applicatio may eed to ead back the witte egiste value to check if the equest has bee atteded.

To update MSI Pedig bits i HIP with value of "0x1" fo PF0, you applicatio eeds to wite "0x1" to "MSI PENDING CTRL" ad "MSI PENDING". The, ead back 'update' bit to check if the equest has bee atteded. The egiste ead equest, avalid, to ead espose, valid, is aoud thee clock cycles.
Figue 17. MSI Pedig bits Update i HIP Fo PF0 though MSI PENDING CTRL Cofiguatio Space Registe Timig Diagam
Figue 18. Example of MSI Allocatio

The followig table descibes thee example implemetatios. The fist example allocates all 32 MSI messages. The secod ad thid examples oly allocate fou iteupts.

Table 12.  Example of MSI Implemetatios
MSI Allocated
32 4 4
System Eo 31 3 3
Hot Plug ad Powe Maagemet Evet 30 2 3
Applicatio Laye 29:0 1:0 2:0

The MSI iteupts geeated fo Hot Plug, Powe Maagemet Evets, ad System Eos always use Taffic Class 0. MSI iteupts geeated by the Applicatio Laye ca use ay Taffic Class. Fo example, a DMA that geeates a MSI at the ed of a tasmissio ca use the same taffic cotol as was used to tasfe data.

The followig figue illustates a possible implemetatio of the Iteupt Hadle Module with a pe vecto eable bit i the Applicatio Laye. Alteatively, the Applicatio Laye ca implemet a global iteupt eable istead of this pe vecto MSI.

Figue 19. Example of MSI Implemetatio