Nios® II Software Developer Handbook

ID 683525
Date 8/28/2023
Public
Document Table of Contents

9.2.1.1. Selecting an Interrupt API

When the SBT creates a BSP, it determines whether the BSP must implement the legacy interrupt API. Each driver that supports the enhanced API publishes this capability to the SBT through its <driver name> _sw.tcl file. The BSP implements the enhanced API if all drivers support it. It implements the legacy API only if required by the drivers.

In determining the interrupt API to use, the SBT ignores any devices whose interrupts are not connected to the Nios® II processor associated with the BSP.

A driver can publish its interrupt API support by way of a software property. The driver’s <driver name> _sw.tcl file uses the set_sw_property command to set supported_interrupt_apis to either legacy_interrupt_api, enhanced_interrupt_api, or both.

Drivers supporting the enhanced API always publish that support. If supported_interrupt_apis is undefined, the SBT assumes that the driver only supports the legacy API.

Starting in 9.1, all Intel FPGA device drivers support both APIs. These drivers can be used in a BSP along with legacy drivers. The SBT determines whether the legacy API is required, and implements it only if it is required. If there are no drivers requiring the legacy API, the BSP implements the enhanced API.

A driver can be written to support only the enhanced API. However, you cannot combine such a driver with legacy drivers.

For more information and details about writing a driver to support both APIs, refer to the "Supporting Multiple Interrupt APIs” chapter.