Hi Aswin, On 14/01/2026 12:16, Aswin Murugan wrote: > Previously, U-Boot’s PSCI-based implementation of `efi_reset_system()` > was always enabled when `CONFIG_PSCI_RESET` was set, but it did not > handle additional arguments required for specialized reset modes. This > caused issues where special reboot requests (e.g., bootloader, EDL) > were ignored, resulting in a normal reboot. > > This change introduces a new configuration option,
Be imperative rather than descriptive: "Introduce a new configuration option". See https://docs.kernel.org/process/submitting-patches.html#describe-your-changes > `CONFIG_EFI_PSCI_RESET_RUNTIME`, to explicitly control whether the > runtime PSCI-specific EFI reset implementation is enabled. By default, > the PSCI EFI reset is enabled, it can be disabled at platform defconfig > allowing the kernel to handle the reset logic and pass the necessary > arguments for the intended reset mode correctly. > > Signed-off-by: Aswin Murugan <[email protected]> > --- > Changes in v2: > - As per review comments made default y for EFI_PSCI_RESET_RUNTIME config > --- > drivers/firmware/psci.c | 4 ++-- > lib/efi_loader/Kconfig | 11 +++++++++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c > index 2e3223e1c32..009c6153d0c 100644 > --- a/drivers/firmware/psci.c > +++ b/drivers/firmware/psci.c > @@ -244,7 +244,7 @@ static void __maybe_unused do_psci_probe(void) > uclass_get_device_by_name(UCLASS_FIRMWARE, DRIVER_NAME, &dev); > } > > -#if IS_ENABLED(CONFIG_EFI_LOADER) && IS_ENABLED(CONFIG_PSCI_RESET) > +#if IS_ENABLED(CONFIG_EFI_PSCI_RESET_RUNTIME) > efi_status_t efi_reset_system_init(void) > { > do_psci_probe(); > @@ -266,7 +266,7 @@ void __efi_runtime EFIAPI efi_reset_system(enum > efi_reset_type reset_type, > while (1) > ; > } > -#endif /* IS_ENABLED(CONFIG_EFI_LOADER) && IS_ENABLED(CONFIG_PSCI_RESET) */ > +#endif /* IS_ENABLED(CONFIG_EFI_PSCI_RESET_RUNTIME) */ > > #ifdef CONFIG_PSCI_RESET > void reset_misc(void) > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > index 13e44be1d06..712905a56eb 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -106,6 +106,17 @@ config EFI_HAVE_RUNTIME_RESET > depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \ > SANDBOX || SYSRESET_SBI || SYSRESET_X86 > > +config EFI_PSCI_RESET_RUNTIME > + bool "EFI Runtime PSCI Reset Support" > + default y if EFI_LOADER && PSCI_RESET > + depends on ARM_PSCI_FW > + help > + Enable PSCI-based reset implementation for EFI runtime services. > + This allows the EFI runtime to perform system resets and power-off > + operations using the ARM Power State Coordination Interface (PSCI) > + firmware interface, providing a standardized method for system > + power management across different ARM platforms. The last 4 lines could be simplified to something like "This allows the OS to reset the system through EFI runtime calls" Kind regards,> + > endmenu > > menu "UEFI Variables" -- // Casey (she/her)

