dm: reset: have the reset-command perform a COLD reset
authorPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Fri, 24 Nov 2017 17:37:58 +0000 (18:37 +0100)
committerSimon Glass <sjg@chromium.org>
Wed, 13 Dec 2017 02:53:45 +0000 (19:53 -0700)
The DM version of do_reset has been issuing a warm-reset, which (on
some platforms keeps GPIOs and other parts of the platform active).
This may cause unintended behaviour, as calling do_reset usually
indicates a desire to reset the board/platform and not just the CPU.

This changes do_reset to always request a COLD reset.
Note that programmatic uses can still invoke a WARM reset through
reset_cpu() or using sysreset_walk().

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/sysreset/sysreset-uclass.c

index 3566d17fb1b79b3396415bbb8c8fe583f40804f2..0747c52b607794fef9b4e2de4bc2e0d33dd319c2 100644 (file)
@@ -70,7 +70,7 @@ void reset_cpu(ulong addr)
 
 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
-       sysreset_walk_halt(SYSRESET_WARM);
+       sysreset_walk_halt(SYSRESET_COLD);
 
        return 0;
 }