[PATCH 2/2] riscv: Restart via EFI runtime services when available

Sunil V L sunilvl at oss.qualcomm.com
Mon Jun 15 21:29:33 PDT 2026


On Tue, Jun 16, 2026 at 4:59 AM Atish Patra <atish.patra at linux.dev> wrote:
>
> From: Atish Patra <atishp at meta.com>
>
> Firmware-preferred reset and EFI capsule update support requires reset
> via EFI runtime services rather than direction M-mode firmware invocation
> via SBI. Unlike poweroff, restart mechanism is directly controlled from
> machine_restart function though.
>
> Prefer the EFI runtime ResetSystem() service for restart when UEFI
> runtime services are available.
>
> Signed-off-by: Atish Patra <atishp at meta.com>
> ---
>  arch/riscv/kernel/reset.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c
> index 912288572226..541e2162c85a 100644
> --- a/arch/riscv/kernel/reset.c
> +++ b/arch/riscv/kernel/reset.c
> @@ -3,6 +3,7 @@
>   * Copyright (C) 2012 Regents of the University of California
>   */
>
> +#include <linux/efi.h>
>  #include <linux/reboot.h>
>  #include <linux/pm.h>
>
> @@ -17,6 +18,12 @@ EXPORT_SYMBOL(pm_power_off);
>
>  void machine_restart(char *cmd)
>  {
> +       /*
> +        * UpdateCapsule() depends on the system being reset via ResetSystem().
> +        */
> +       if (efi_enabled(EFI_RUNTIME_SERVICES))
> +               efi_reboot(reboot_mode, NULL);
> +
>         do_kernel_restart(cmd);
>         while (1);
>  }
>
LGTM.
Reviewed-by: Sunil V L <sunilvl at oss.qualcomm.com>



More information about the linux-riscv mailing list