[PATCH v1 1/4] reset: Allow per-board reset type

dmukhin at ford.com dmukhin at ford.com
Fri May 22 03:23:09 CEST 2026


From: Denis Mukhin <dmukhin at ford.com> 

Some prototype boards may not have (temporarily) all required reset
types supported (e.g. only warm reset supported).

Add `board_sysreset_default()` to obtain board-specific default reset
type to enable `reset` command on such boards.

Signed-off-by: Denis Mukhin <dmukhin at ford.com>
---
 drivers/sysreset/sysreset-uclass.c | 7 ++++++-
 include/sysreset.h                 | 7 +++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c
index f25e09e9cd06..dc569a6b8ade 100644
--- a/drivers/sysreset/sysreset-uclass.c
+++ b/drivers/sysreset/sysreset-uclass.c
@@ -150,9 +150,14 @@ void reset_cpu(void)
 }
 
 #if IS_ENABLED(CONFIG_SYSRESET_CMD_RESET)
+__weak enum sysreset_t board_sysreset_default(void)
+{
+	return SYSRESET_COLD;
+}
+
 int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
-	enum sysreset_t reset_type = SYSRESET_COLD;
+	enum sysreset_t reset_type = board_sysreset_default();
 
 	if (argc > 2)
 		return CMD_RET_USAGE;
diff --git a/include/sysreset.h b/include/sysreset.h
index d1cc9ebc542a..a9e743c13e8b 100644
--- a/include/sysreset.h
+++ b/include/sysreset.h
@@ -161,4 +161,11 @@ void reset_cpu(void);
  */
 int sysreset_register_wdt(struct udevice *dev);
 
+/**
+ * board_sysreset_default() - Get board-specific reset type.
+ *
+ * @return:	Board-specific reset type.
+ */
+enum sysreset_t board_sysreset_default(void);
+
 #endif
-- 
2.54.0



More information about the U-Boot mailing list