9174cd8dbc
Added watchdog implementation which is using counter device to implement watchdog driver API. Watchdog timeout is called from counter interrupt context. Some counter implementations support using ZLI interrupt level which can be use here as well. Watchdog like this can be used along hardware watchdog to cover for its limitations, i.e. Nordic watchdog resets unconditionally after 62uS after triggering watchdog interrupt. It is not enough time to dump logging data. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
87 lines
2.1 KiB
Plaintext
87 lines
2.1 KiB
Plaintext
# Watchdog configuration options
|
|
|
|
# Copyright (c) 2015 Intel Corporation
|
|
# Copyright (c) 2017 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig WATCHDOG
|
|
bool "Watchdog Support"
|
|
select HAS_DTS_WDT
|
|
help
|
|
Include support for watchdogs.
|
|
|
|
if WATCHDOG
|
|
|
|
config WDT_DISABLE_AT_BOOT
|
|
bool "Disable at boot"
|
|
help
|
|
Disable watchdog at Zephyr system startup.
|
|
|
|
module = WDT
|
|
module-str = watchdog
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config HAS_WDT_MULTISTAGE
|
|
bool
|
|
|
|
config WDT_MULTISTAGE
|
|
bool "Enable multistage timeouts"
|
|
depends on HAS_WDT_MULTISTAGE
|
|
help
|
|
Enable multistage operation of watchdog timeouts.
|
|
|
|
config WDT_COUNTER
|
|
bool "Counter based watchdog"
|
|
def_bool $(dt_nodelabel_enabled,wdt_counter)
|
|
select COUNTER
|
|
help
|
|
Watchdog emulated with counter device. If counter device supports using
|
|
zero latency interrupts (ZLI) then expiration callback can be called from
|
|
that context. This watchdog can be used along hardware watchdog to
|
|
overcome hardware watchdog limitations, e.g. Nordic devices reset
|
|
unconditionally at fixed time after hitting watchdog interrupt, leaving
|
|
no time to print debug information. Watchdog has limitations since it
|
|
cannot interrupt same or higher priorities so it cannot fully replace
|
|
hardware based watchdog.
|
|
|
|
if WDT_COUNTER
|
|
|
|
config WDT_COUNTER_CH_COUNT
|
|
int "Maximum number of supported channel"
|
|
default 4
|
|
range 1 255
|
|
help
|
|
Note that actual channel count will be limited to number of channels
|
|
supported by the counter device which is used for watchdog.
|
|
|
|
endif # WDT_COUNTER
|
|
|
|
source "drivers/watchdog/Kconfig.stm32"
|
|
|
|
source "drivers/watchdog/Kconfig.cmsdk_apb"
|
|
|
|
source "drivers/watchdog/Kconfig.sam"
|
|
|
|
source "drivers/watchdog/Kconfig.esp32"
|
|
|
|
source "drivers/watchdog/Kconfig.sam0"
|
|
|
|
source "drivers/watchdog/Kconfig.nrfx"
|
|
|
|
source "drivers/watchdog/Kconfig.mcux"
|
|
|
|
source "drivers/watchdog/Kconfig.mcux_imx"
|
|
|
|
source "drivers/watchdog/Kconfig.xec"
|
|
|
|
source "drivers/watchdog/Kconfig.gecko"
|
|
|
|
source "drivers/watchdog/Kconfig.sifive"
|
|
|
|
source "drivers/watchdog/Kconfig.npcx"
|
|
|
|
source "drivers/watchdog/Kconfig.cc32xx"
|
|
|
|
source "drivers/watchdog/Kconfig.it8xxx2"
|
|
endif
|