Re: [PATCH v3 4/6] lib: sbi: hart: Move device tree features detection before trap-based checks
Anup Patel <[email protected]>
| Newsgroups | org.infradead.lists.opensbi |
|---|---|
| Message-ID | <CAAhSdy1A2PrMEQQOqV7y6_tBzXRwefu1r0Py0WA3fhUxq1KDaQ@mail.gmail.com> |
On Thu, May 7, 2026 at 11:38 PM Evgeny Voevodin <[email protected]> wrote: > > Smrnmi detection and enablement in the following commits will happen > before any trap-based mechanism. As it relies on device tree, move > sbi_platform_extensions_init() to the beginning of hart_detect_features(). > > Signed-off-by: Evgeny Voevodin <[email protected]> LGTM. Reviewed-by: Anup Patel <[email protected]> Regards, Anup > --- > lib/sbi/sbi_hart.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c > index 4aefb759..781161e5 100644 > --- a/lib/sbi/sbi_hart.c > +++ b/lib/sbi/sbi_hart.c > @@ -522,6 +522,16 @@ static int hart_detect_features(struct sbi_scratch *scratch) > hfeatures->mhpm_mask = 0; > hfeatures->priv_version = SBI_HART_PRIV_VER_UNKNOWN; > > + /* > + * Parse device tree extensions early, before any trap-based checks. > + * Needed to detect Smrnmi and install NMI handlers before CSR probes > + * that may trigger traps. > + */ > + rc = sbi_platform_extensions_init(sbi_platform_thishart_ptr(), > + hfeatures); > + if (rc) > + return rc; > + > #define __check_hpm_csr(__csr, __mask) \ > oldval = csr_read_allowed(__csr, &trap); \ > if (!trap.cause) { \ > @@ -676,12 +686,6 @@ __pmp_skip: > > #undef __check_csr_existence > > - /* Let platform populate extensions */ > - rc = sbi_platform_extensions_init(sbi_platform_thishart_ptr(), > - hfeatures); > - if (rc) > - return rc; > - > /* Zicntr should only be detected using traps */ > __sbi_hart_update_extension(hfeatures, SBI_HART_EXT_ZICNTR, > sbi_hart_has_csr(scratch, SBI_HART_CSR_CYCLE) && > -- > 2.43.0 > -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi