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)

Reply via email to