• Fabrizio Castro's avatar
    ARM: shmobile: Add watchdog support · 58adf1ba
    Fabrizio Castro authored
    On R-Car Gen2 and RZ/G1 platforms, we use the SBAR registers to make non
    boot CPUs run a routine designed to bring up SMP and deal with hot plug.
    The value contained in the SBAR registers is not initialized by a WDT
    triggered reset, which means that after a WDT triggered reset we jump
    to the SMP bring up routine, preventing the system from executing the
    bootrom code.
    
    The purpose of this patch is to jump to the bootrom code in case of a
    WDT triggered reset, and keep the SMP functionality untouched.
    In order to tell if the code had been called due to the WDT overflowing
    we are testing WOVF from register RWTCSRA.
    
    The new function shmobile_boot_vector_gen2 isn't replacing
    shmobile_boot_vector for backward compatibility reasons. The kernel
    will install the best option (either shmobile_boot_vector or
    shmobile_boot_vector_gen2) to ICRAM1 after parsing the device tree,
    according to the amount of memory available.
    
    Since shmobile_boot_vector has become bigger, "reg" property of nodes
    compatible with "renesas,smp-sram" now need to be set to a value
    greater or equal to "<0 0x60>".
    Signed-off-by: default avatarFabrizio Castro <fabrizio.castro@bp.renesas.com>
    Signed-off-by: default avatarRamesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
    Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    [simon: dropped #ifdef from common.h]
    Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
    58adf1ba
common.h 1.42 KB