Arria® 10 Avalon® Streaming with SR-IOV IP for PCIe* User Guide

ID 683686
Date 9/12/2024
Public
Document Table of Contents

8.3. Dropping a Pending MSI Interrupt

The following procedure shows how to drop a pending MSI interrupt. The first four steps are the same as for Setting Up and Verifying MSI Interrupts Perform them once, during or after enumeration. .
  1. Disable legacy interrupts by setting Interrupt Disable bit of the Command register using a Configuration Write Request. The Interrupt Disable bit is bit 10 of the Command register.
  2. Enable MSI interrupts by setting the MSI enable of the MSI Control register using a Configuration Write Request. The MSI enable bit is bit 16 of 0x050.
  3. Set up the MSI Address and MSI Data using a Configuration Write Request.
  4. Specify the number of MSI vectors in the Multiple Message Enable field of the MSI Control register using a Configuration Write Request.
  5. Select a function and interrupt number using a Configuration Write Request.
  6. Set the MSI mask bit for the selected function and interrupt number using a Configuration Write Request.
  7. Use the MSI interrupt interface (app_msi*) to generate an MSI interrupt request for the selected Function and interrupt number. You should receive the MSI Ack. No MSI interrupt message is sent to the host.
  8. Verify that app_msi_status[1:0]=2'b01when app_msi_ack=1.
  9. Read the Pending Bit register for the function specified using a Configuration Read Request. Verify that the pending bit corresponding to the interrupt specified is set to 1.
  10. Send a Configuration Write Request to clear the pending bit using the MSI interrupt interface.
  11. Send a Configuration Write Request to clear the MSI mask bit for the selected function and interrupt number.
  12. Verify that the SR-IOV bridge does not send the Message TLP on the Avalon-ST interface.
  13. Read the Pending Bit register of the function specified using a Configuration Read Request. Verify that the pending bit for the interrupt specified is now 0.
  14. Repeat this sequence for all MSI numbers and functions.