diff options
author | Igor Opaniuk <igor.opaniuk@foundries.io> | 2021-04-01 02:01:55 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-04-20 07:31:12 -0400 |
commit | a6713b3a3c7adf4a99e9ad8c04356fce200fb83f (patch) | |
tree | ec558ebf93ac28fc6456e22e19a23b7973075067 | |
parent | 91f00ba2c1c980236ba526b5e8f34e982e7b48d8 (diff) | |
download | u-boot-a6713b3a3c7adf4a99e9ad8c04356fce200fb83f.tar.gz |
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 <igor.opaniuk@foundries.io>
-rw-r--r-- | cmd/boot.c | 2 | ||||
-rw-r--r-- | drivers/sysreset/sysreset-uclass.c | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/cmd/boot.c b/cmd/boot.c index 36aba22b301..b84c0ed89ec 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 9512f6881fc..279b087d16d 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; } |