From: Igor Opaniuk Date: Wed, 31 Mar 2021 23:01:55 +0000 (+0300) Subject: sysreset: provide type of reset in do_reset cmd X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=a6713b3a3c7adf4a99e9ad8c04356fce200fb83f;p=u-boot.git sysreset: provide type of reset in do_reset cmd Add additional param for reset cmd, which provides type of reset. Signed-off-by: Igor Opaniuk --- diff --git a/cmd/boot.c b/cmd/boot.c index 36aba22b30..b84c0ed89e 100644 --- a/cmd/boot.c +++ b/cmd/boot.c @@ -56,7 +56,7 @@ U_BOOT_CMD( #endif U_BOOT_CMD( - reset, 1, 0, do_reset, + reset, 2, 0, do_reset, "Perform RESET of the CPU", "" ); diff --git a/drivers/sysreset/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c index 9512f6881f..279b087d16 100644 --- a/drivers/sysreset/sysreset-uclass.c +++ b/drivers/sysreset/sysreset-uclass.c @@ -122,10 +122,19 @@ void reset_cpu(void) #if IS_ENABLED(CONFIG_SYSRESET_CMD_RESET) int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { + enum sysreset_t reset_type = SYSRESET_COLD; + + if (argc > 2) + return CMD_RET_USAGE; + + if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'w') { + reset_type = SYSRESET_WARM; + } + printf("resetting ...\n"); mdelay(100); - sysreset_walk_halt(SYSRESET_COLD); + sysreset_walk_halt(reset_type); return 0; }