[PATCH] lib: utils/reset: Hang the hart after RPMI system reset message

Rahul Pathak rpathak at ventanamicro.com
Tue Sep 9 23:47:14 PDT 2025


(resending, previous mail was undelivered on mailing list)

Hi Samuel,

A RPMI based reset driver must simply hang rather than rely on the
implementation fallback (sbi_exit()), which may also have served the
purpose IMO.

I won't say that it introduced a bug, but rather that this was
supposed to be done in the initial commit of the driver but was
missed, hence the Fixes tag.

Thanks
Rahul

On Wed, Sep 10, 2025 at 11:02 AM Samuel Holland
<samuel.holland at sifive.com> wrote:
>
> Hi Rahul,
>
> On 2025-09-03 9:43 AM, Rahul Pathak wrote:
> > RPMI system reset is a posted message which
> > does not wait for acknowledgement after sending
> > the RPMI message to PuC. Call the sbi_hart_hang()
> > to hang the hart after performing the system reset
> > via RPMI message.
> >
> > Fixes: 6a26726e08e4 ("lib/utils: reset: Add RPMI System Reset driver")
> > Reported-by: Anup Patel <apatel at ventanamicro.com>
> > Signed-off-by: Rahul Pathak <rpathak at ventanamicro.com>
> > ---
> >  lib/utils/reset/fdt_reset_rpmi.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/lib/utils/reset/fdt_reset_rpmi.c b/lib/utils/reset/fdt_reset_rpmi.c
> > index edc53932ccc0..c29715d329c4 100644
> > --- a/lib/utils/reset/fdt_reset_rpmi.c
> > +++ b/lib/utils/reset/fdt_reset_rpmi.c
> > @@ -7,6 +7,7 @@
> >   *   Rahul Pathak <rpathak at ventanamicro.com>
> >   */
> >
> > +#include <sbi/sbi_hart.h>
> >  #include <sbi/sbi_error.h>
> >  #include <sbi/sbi_system.h>
> >  #include <sbi/sbi_console.h>
> > @@ -56,6 +57,8 @@ static void rpmi_do_system_reset(u32 reset_type)
> >       if (ret)
> >               sbi_printf("system reset failed [type: %d]: ret: %d\n",
> >                          reset_type, ret);
> > +
> > +     sbi_hart_hang();
> >  }
> If rpmi_do_system_reset() returns normally, the generic code will continue to
> sbi_exit() and eventually sbi_hsm_hart_wait(). Was that problematic in some way?
> You've added a Fixes tag, but it's not clear from the commit message what
> problem you observed.
>
> If allowing the driver's .system_reset callback to return is problematic (some
> driver implementations hang, some don't), then we should mark the function type
> as noreturn and update the remaining drivers as well.
>
> Regards,
> Samuel
>



More information about the opensbi mailing list