Skip to content
  • Rasmus Villemoes's avatar
    allow opting out of WATCHDOG_RESET() from timer interrupt · 933ada56
    Rasmus Villemoes authored and Stefan Roese's avatar Stefan Roese committed
    
    
    Having WATCHDOG_RESET() called automatically from the timer interrupt
    runs counter to the idea of a watchdog device - if the board runs into
    an infinite loops with interrupts still enabled, the watchdog will
    never fire.
    
    When using CONFIG_(SPL_)WDT, the watchdog_reset function is a lot more
    complicated than just poking a few SOC-specific registers - it
    involves accessing all kinds of global data, and if the interrupt
    happens at the wrong time (say, in the middle of an WATCHDOG_RESET()
    call from ordinary code), that can end up corrupting said global data.
    
    Allow the board to opt out of calling WATCHDOG_RESET() from the timer
    interrupt handler by setting CONFIG_SYS_WATCHDOG_FREQ to 0 - as that
    setting is currently nonsensical (it would be compile-time
    divide-by-zero), it cannot affect any existing boards.
    
    Add documentation for both the existing and extended meaning of
    CONFIG_SYS_WATCHDOG_FREQ.
    
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    933ada56