RISC-V AIA specifies two interrupt delivery mechanisms:
- MSI for the cores that support AIA. In this case the core side shall implement IMSIC file(s) with associated CSR-based interface. This is not supported by ACLIC.
- Direct delivery to the cores that are not aware of AIA (incl. none RISC-V cores). There is no AIA functionality required at the core side except ability to handle single wired external interrupt. For such cores the APLIC provides IDC (interrupt delivery control) MMIO structure in addition to the domain configuration interface.
IDC MMIO structure is similar but not equal to the IMSIC CSR interface. ACLIC document describes mixture of AIA APLIC domain configuration, IDC and IMSIC interfaces. Short summary in the following table:
Reg name IMSIC CSRs IDC MMIO structure ACLIC
topi major id/prio external id/prio IMSIC-style
topei external eiid n/a alias to IDC.topi, adds claim, wrong and confusing
claimi n/a ext claim removed, reason not clear
eithreshold eiid/prio threshold n/a alias to IDC ithreshold, wrong usage
ithreshold n/a id threshold aliased, shall be used instead of eithreshold
iedelivery delivery on/off/mode n/a IMSIC-style, wrong and confusing
idelivery n/a delivery on/off removed, reason unclear
eie enable n/a IMSIC-style alias to APLIC domain configuration, index by ID (instead EIID) is wrong and confusing
eip pending n/a IMSIC-style alias to APLIC domain configuration, index by ID (instead of EIID) is wrong and confusing
ACLIC specification mixes the IMSIC, APLIC IDC and domain configuration interfaces in part of registers names and functions. From one side it looks like APLIC IDC, from other side it mimics to IMSIC controller.
The suggestion is to either adopt APLIC domain configuration and IDC interface or switch to IMSIC-based core side controller.
RISC-V AIA specifies two interrupt delivery mechanisms:
IDC MMIO structure is similar but not equal to the IMSIC CSR interface. ACLIC document describes mixture of AIA APLIC domain configuration, IDC and IMSIC interfaces. Short summary in the following table:
ACLIC specification mixes the IMSIC, APLIC IDC and domain configuration interfaces in part of registers names and functions. From one side it looks like APLIC IDC, from other side it mimics to IMSIC controller.
The suggestion is to either adopt APLIC domain configuration and IDC interface or switch to IMSIC-based core side controller.