Commit 0de4adfb authored by Sonic Zhang's avatar Sonic Zhang Committed by Mike Frysinger

Blackfin: fix accidental reset in some boot modes

We read the SWRST (Software Reset) register to get at the last reset
state, and then we may configure the DOUBLE_FAULT bit to control behavior
when a double fault occurs.  But if the lower bits of the register is
already set (like UART boot mode on a BF54x), we inadvertently make the
system reset by writing to the SYSTEM_RESET field at the same time.  So
make sure the lower 4 bits are always cleared.
Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 81b79c21
...@@ -837,7 +837,8 @@ void __init setup_arch(char **cmdline_p) ...@@ -837,7 +837,8 @@ void __init setup_arch(char **cmdline_p)
defined(CONFIG_BF538) || defined(CONFIG_BF539) defined(CONFIG_BF538) || defined(CONFIG_BF539)
_bfin_swrst = bfin_read_SWRST(); _bfin_swrst = bfin_read_SWRST();
#else #else
_bfin_swrst = bfin_read_SYSCR(); /* Clear boot mode field */
_bfin_swrst = bfin_read_SYSCR() & ~0xf;
#endif #endif
#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment