[PATCH v3 1/6] reset: Allow per-board reset type
Simon Glass
sjg at chromium.org
Mon Jun 1 16:54:18 CEST 2026
Hi Denis,
On 2026-05-29T03:48:33, None <dmukhin at ford.com> wrote:
> reset: Allow per-board reset type
>
> Some prototype boards may not have (temporarily) all required reset
> types supported (e.g. only warm reset supported).
>
> Add a Kconfig choice to select the board-specific default reset type
> used by the reset command, allowing it to work on such boards.
>
> Keep cold reset as the default.
>
> Signed-off-by: Denis Mukhin <dmukhin at ford.com>
>
> drivers/sysreset/Kconfig | 31 +++++++++++++++++++++++++++++++
> drivers/sysreset/sysreset-uclass.c | 19 ++++++++++++++++++-
> 2 files changed, 49 insertions(+), 1 deletion(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
> diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
> @@ -57,6 +57,37 @@ config SYSRESET_CMD_RESET_ARGS
> +config SYSRESET_CMD_RESET_DEFAULT_WARM
> + bool "Warm reset"
> + help
> + Reset CPU while keeping GPIOs active.
> +
> +config SYSRESET_CMD_RESET_DEFAULT_COLD
> + bool "Cold reset"
> + help
> + Reset CPU and GPIOs.
This is very thin - as is the comment in include/sysreset.h - how about:
"Full cold reset of the machine, including CPU, GPIOs, PMIC and other
logic in the machine"
> diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
> @@ -57,6 +57,37 @@ config SYSRESET_CMD_RESET_ARGS
> +config SYSRESET_CMD_RESET_DEFAULT_POWER
> + bool "Power reset"
> + help
> + Reset PMIC by removing and restoring power.
> +
> +config SYSRESET_CMD_RESET_DEFAULT_POWER_OFF
> + bool "Power off"
> + help
> + Turn off power.
Could we use the 'poweroff' command instead?
> diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c
> @@ -150,9 +150,26 @@ void reset_cpu(void)
> +static enum sysreset_t sysreset_get_default_type(void)
> +{
> + if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_WARM))
> + return SYSRESET_WARM;
> +
> + if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_COLD))
> + return SYSRESET_COLD;
> +
> + if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_POWER))
> + return SYSRESET_POWER;
> +
> + if (IS_ENABLED(CONFIG_SYSRESET_CMD_RESET_DEFAULT_POWER_OFF))
> + return SYSRESET_POWER_OFF;
> +
> + return SYSRESET_COLD;
> +}
The trailing return SYSRESET_COLD is unreachable, BTW.
Regards,
Simon
More information about the U-Boot
mailing list