LK_01_003 - AIA drivers with DT support

About

Implement DT based drivers for APLIC and IMSIC defined by the RISC-V AIA specification.

The RISC-V AIA specification is now frozen as-per the RISC-V international process. The latest frozen specifcation can be found at:
https://github.com/riscv/riscv-aia/releases/download/1.0-RC6/riscv-interrupts-1.0-RC6.pdf

At a high-level, the AIA specification adds three things:

  1.  AIA CSRs

    1. Improved local interrupt support

  2. Incoming Message Signaled Interrupt Controller (IMSIC)

    1. Per-HART MSI controller

    2. Support MSI virtualization

    3. Support IPI along with virtualization

  3. Advanced Platform-Level Interrupt Controller (APLIC)

    1. Wired interrupt controller

    2. In MSI-mode, converts wired interrupt into MSIs (i.e. MSI generator)

    3. In Direct-mode, injects external interrupts directly into HARTs

For an overview of the AIA specification, refer the recent AIA virtualization talk at KVM Forum 2022:
https://static.sched.com/hosted_files/kvmforum2022/a1/AIA_Virtualization_in_KVM_RISCV_final.pdf
https://www.youtube.com/watch?v=r071dL8Z0yo

Status

Dependency

None

 

Development

COMPLETED

URL: NA

Development Timeline

NA

 

Upstreaming

COMPLETED

URL: https://lore.kernel.org/linux-arm-kernel/20240307140307.646078-1-apatel@ventanamicro.com/

Upstream Version

Linux-6.10

 

Contacts

Anup Patel (Ventana)

@Anup Patel 

Updates

May 25, 2023

  • Project reported as priority for 2H23