[PATCH 3/7] firmware: Add RNMI/RNME handler infrastructure

Evgeny Voevodin evvoevod at tenstorrent.com
Thu Apr 16 13:26:08 PDT 2026


On Fri, Apr 10, 2026 at 1:09 AM Anup Patel <anup at brainfault.org> wrote:
> > > Drop these platform callbacks from this patch. We will be
> > > extending sbi_irqchip to support NMIs. For NME, we will
> > > can simply crash.
> >
> > Agreed. I'll remove the platform callbacks. For RNMI, I'll
> > route through sbi_irqchip once that support is in place. For
> > RNME, I'll simplify to just print diagnostics and hang.

Hi Anup,

I've been rebasing and reworking the Smrnmi series based on our
discussion. I can remove the platform runtime callbacks
(ops->rnmi_handler / ops->rnme_handler) as agreed, and I can still
have the initial Smrnmi infrastructure in place: platforms install
trap handlers for RNMI/RNME vectors, detect the extension from
device tree, and initialize MNSCRATCH.

However, without irqchip NMI support there's no way for platforms
to actually handle NMIs once they fire. The default RNMI handler
would just log and hang. This means NMIs would need to stay
disabled (NMIE=0) until that support lands, even on platforms that
are otherwise ready for Smrnmi.

I couldn't find ongoing work on irqchip NMI support, so I wanted
to check how you'd like to proceed:

1. Ship the Smrnmi infrastructure with NMIs effectively disabled
   (log and hang). Platforms carry local patches for NMI handling
   until irqchip NMI support lands.

2. Keep ops->rnmi_handler as a temporary bridge, marked for
   migration to irqchip.

3. Include a minimal irqchip NMI extension in this series: a
   standalone registration API (sbi_irqchip_register_nmi_handler /
   sbi_irqchip_process_nmi) with a simple static callback -- not
   tied to a specific irqchip device since NMI is a system-level
   event. Platforms would register their NMI handler during
   irqchip_init, and sbi_trap_rnmi_handler would dispatch
   through it.

Thanks,
Evgeny



More information about the opensbi mailing list