-
Notifications
You must be signed in to change notification settings - Fork 53
Description
As per RISC-V AIA, the APLIC domain is the interrupt configuration interface for the group of physical cores running the same privilege level.
The core's privilege may or may not have permissions to access APLIC domain configuration and/or receive the interrupts delivered by messages or directly (mutually exclusive at domain level).
APLIC direct interrupt delivery is intended to supply the cores that are not aware of AIA. In such case there is no AIA specific support is required at the core side except the ability to receive single wired interrupt. This means that there is no dependency on Smaia and Ssaia for APLIC/IDC based configurations.
To control the interrupts APLIC provides the IDC (interrupt delivery control) MMIO interface individual for the privilege level (M or S, but not VS) for each physical core. In case of single core, the APLIC may have two domains (M and S) and provide IDC interfaces for M-mode and S-mode privileges (direct delivery to VS-mode is not assumed by AIA).
Mixing of APLIC domain configuration, APLIC IDC, and IMSIC interfaces (as it is documented now) looks incorrect and confusing. Instead it would be reasonable to reuse only APLIC domain configuration and IDC structure as is, improving by migration to iCSRs instead of MMIO. IMSIC interface should not be inherited/exposed in such case and dependency on Ssaia/Smaia looks as unnecessary overhead for single core.