lkml.org 
[lkml]   [2009]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/25] Blackfin: fix accidental reset in some boot modes
    Date
    From: Sonic Zhang <sonic.zhang@analog.com>

    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: Sonic Zhang <sonic.zhang@analog.com>
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    ---
    arch/blackfin/kernel/setup.c | 3 ++-
    1 files changed, 2 insertions(+), 1 deletions(-)

    diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
    index 6454bab..b2782ea 100644
    --- a/arch/blackfin/kernel/setup.c
    +++ b/arch/blackfin/kernel/setup.c
    @@ -837,7 +837,8 @@ void __init setup_arch(char **cmdline_p)
    defined(CONFIG_BF538) || defined(CONFIG_BF539)
    _bfin_swrst = bfin_read_SWRST();
    #else
    - _bfin_swrst = bfin_read_SYSCR();
    + /* Clear boot mode field */
    + _bfin_swrst = bfin_read_SYSCR() & ~0xf;
    #endif

    #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
    --
    1.6.3.1


    \
     
     \ /
      Last update: 2009-06-20 20:53    [W:0.033 / U:29.860 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site