Skip to content

Unnecessary dependency on Smaia/Ssaia #572

@reosdev

Description

@reosdev

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions