mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
riscv: Restart via EFI runtime services when available
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@meta.com> Reviewed-by: Sunil V L <sunilvl@oss.qualcomm.com> Link: https://patch.msgid.link/20260615-efi_reset_shutdown-v1-2-9414edcbbab0@meta.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
This commit is contained in:
parent
d8d0fb556e
commit
c888e324b2
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user