[PATCH 0/4] irqchip/rpmi: Expose APLIC/IMSIC interfaces for platform use

Anup Patel anup at brainfault.org
Sun Jun 7 09:14:22 PDT 2026


Hi David,

On Sat, Mar 28, 2026 at 11:14 AM David E. Garcia Porras
<david.garcia at aheadcomputing.com> wrote:
>
> This series exposes existing APLIC and IMSIC internal definitions and
> adds minimal extension points so that platform code can perform custom
> interrupt configuration without modifying the generic irqchip drivers.
>
> The motivation is that a platform which uses AIA may need to
>  - Configure APLIC source/target registers directly for M-mode
>    interrupt routing
>  - Iterate registered APLIC devices for platform-specific
>    initialization
>  - Handle M-mode external interrupts beyond IPI in the IMSIC driver
> Furthermore, a platform using RPMI PERFORMANCE service group may
> need to:
>  - Use RPMI performance domain attribute flags for RPMI PERFORMANCE
>    PERF_DOMAIN and FAST_CHANNEL attribute control

Platform specific code should be doing minimal AIA configuration
and we will soon have more functionally complete IMSIC and APLIC
drivers. The idea is that platforms should be able to create desired
interrupt routing to domains using only DT-based domain configuration
and generic AIA, MPXY, and RPMI drivers.

>
> Patch 1 moves APLIC register defines from aplic.c to the public
> aplic.h header (pure move, no functional change).
> Patch 2 adds aplic_get_list() to allow platform code to iterate
> registered APLIC devices.

Based on above, both PATCH1 and PATCH2 are not needed.
If a platform specific code still needs direct APLIC configuration
then better to have these patches as part of the series which
adds that platform support in OpenSBI.

> Patch 3 routes non-IPI IMSIC interrupts through the sbi_irqchip
> handler framework and adds hwirq_unmask/hwirq_mask callbacks so
> that sbi_irqchip_register_handler() works end-to-end with IMSIC.

The PATCH3 is really incomplete because IMSIC driver needs
to implement lot more sbi_irqchip operations for a complete MSI
controller functionality. We (Qualcomm) will be posting a complete
IMSIC driver which will also include a complete APLIC driver
supporting both MSI-mode and Direct-mode in the next few days
so stay tuned.

> Patch 4 adds missing RPMI performance flag defines and a struct field.

The PATCH4 of this series looks good to me and should be merged.

>
> All changes are additive and preserve existing behavior for platforms
> that do not use the new interfaces.
>
> David E. Garcia Porras (4):
>   lib: utils: irqchip: aplic: Move register defines to public header
>   lib: utils: irqchip: aplic: Add aplic_get_list() accessor
>   lib: utils: irqchip: imsic: Dispatch non-IPI interrupts via irqchip
>     framework
>   include: mailbox: rpmi_msgprot: Add RPMI performance domain flag
>     defines
>
>  include/sbi_utils/irqchip/aplic.h        | 103 ++++++++++++++++++++++
>  include/sbi_utils/mailbox/rpmi_msgprot.h |  18 ++++
>  lib/utils/irqchip/aplic.c                | 106 ++---------------------
>  lib/utils/irqchip/imsic.c                |  15 +++-
>  4 files changed, 139 insertions(+), 103 deletions(-)
>
> --
> 2.43.0
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi

Regards,
Anup



More information about the opensbi mailing list