mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 02:51:00 +00:00
9b8bc514a0
This watchdog driver applies to the following mcf families: - mcf52x2 (5271 5275 5282) - mcf532x (5329 5373) - mcf523x (5235) Cpu's not listed for each family does not have WDT module. Note, after some attempts testing by qemu on 5208 i finally abandoned, watchdog seems not implemented properly. The driver has been tested in a real M5282EVM. Signed-off-by: Angelo Dureghello <angelo@kernel-space.org> --- Changes for v2: - remove unnecessary hardcoded timeouts - remove unnecessary hw_watchdog_xxx stuff - rewrite wdog module reg calculation - using IS_ENABLED() where possible Changes for v3: - remove hardcoded 4s test
409 lines
12 KiB
Text
409 lines
12 KiB
Text
menu "Watchdog Timer Support"
|
|
|
|
config WATCHDOG
|
|
bool "Enable U-Boot watchdog reset"
|
|
depends on !HW_WATCHDOG
|
|
select CYCLIC
|
|
help
|
|
This option enables U-Boot watchdog support where U-Boot is using
|
|
watchdog_reset function to service watchdog device in U-Boot. Enable
|
|
this option if you want to service enabled watchdog by U-Boot. Disable
|
|
this option if you want U-Boot to start watchdog but never service it.
|
|
|
|
config WATCHDOG_AUTOSTART
|
|
bool "Automatically start watchdog timer"
|
|
depends on WDT
|
|
default n if ARCH_SUNXI
|
|
default y
|
|
help
|
|
Automatically start watchdog timer and start servicing it during
|
|
init phase. Enabled by default. Disable this option if you want
|
|
to compile U-Boot with CONFIG_WDT support but do not want to
|
|
activate watchdog, like when CONFIG_WDT option is disabled. You
|
|
would be able to start watchdog manually by 'wdt' command. Useful
|
|
when you want to have support for 'wdt' command but do not want
|
|
to have watchdog enabled by default.
|
|
|
|
config WATCHDOG_TIMEOUT_MSECS
|
|
int "Watchdog timeout in msec"
|
|
default 128000 if ARCH_MX31 || ARCH_MX5 || ARCH_MX6
|
|
default 128000 if ARCH_MX7 || ARCH_VF610
|
|
default 30000 if ARCH_SOCFPGA
|
|
default 16000 if ARCH_SUNXI
|
|
default 5376 if ULP_WATCHDOG
|
|
default 15000 if ARCH_BCM283X
|
|
default 60000
|
|
help
|
|
Watchdog timeout in msec
|
|
|
|
config HW_WATCHDOG
|
|
bool
|
|
|
|
config IMX_WATCHDOG
|
|
bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
|
|
select HW_WATCHDOG if !WDT
|
|
help
|
|
Select this to enable the IMX and LSCH2 of Layerscape watchdog
|
|
driver.
|
|
|
|
config WATCHDOG_RESET_DISABLE
|
|
bool "Disable reset watchdog"
|
|
depends on IMX_WATCHDOG
|
|
help
|
|
Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
|
|
that the watchdog will not be fed in u-boot.
|
|
|
|
config OMAP_WATCHDOG
|
|
bool "TI OMAP watchdog driver"
|
|
depends on ARCH_OMAP2PLUS
|
|
select HW_WATCHDOG
|
|
help
|
|
Say Y here to enable the OMAP3+ watchdog driver.
|
|
|
|
config ULP_WATCHDOG
|
|
bool "i.MX7ULP watchdog"
|
|
help
|
|
Say Y here to enable i.MX7ULP watchdog driver.
|
|
|
|
config DESIGNWARE_WATCHDOG
|
|
bool "Designware watchdog timer support"
|
|
depends on WDT
|
|
default y if ROCKCHIP_RK3399
|
|
help
|
|
Enable this to support Designware Watchdog Timer IP, present e.g.
|
|
on Altera SoCFPGA SoCs.
|
|
|
|
config WDT
|
|
bool "Enable driver model for watchdog timer drivers"
|
|
depends on DM
|
|
imply WATCHDOG
|
|
select CYCLIC
|
|
help
|
|
Enable driver model for watchdog timer. At the moment the API
|
|
is very simple and only supports four operations:
|
|
start, stop, reset and expire_now (expire immediately).
|
|
What exactly happens when the timer expires is up to a particular
|
|
device/driver.
|
|
|
|
config WDT_APPLE
|
|
bool "Apple watchdog timer support"
|
|
depends on WDT
|
|
default y if ARCH_APPLE
|
|
help
|
|
Enable support for the watchdog timer on Apple SoCs.
|
|
The watchdog will perform a full SoC reset resulting in a
|
|
reboot of the entire system.
|
|
|
|
config WDT_ARMADA_37XX
|
|
bool "Marvell Armada 37xx watchdog timer support"
|
|
depends on WDT && ARMADA_3700
|
|
help
|
|
Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
|
|
There are 4 possible clocks which can be used on these SoCs. This
|
|
driver uses the second clock (ID 1), assuming that so will also
|
|
Linux's driver.
|
|
|
|
config WDT_ASPEED
|
|
bool "Aspeed ast2400/ast2500 watchdog timer support"
|
|
depends on WDT
|
|
default y if ARCH_ASPEED
|
|
help
|
|
Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
|
|
The watchdog timer is stopped when initialized. It performs reset, either
|
|
full SoC reset or CPU or just some peripherals, based on the flags.
|
|
It currently does not support Boot Flash Addressing Mode Detection or
|
|
Second Boot.
|
|
|
|
config WDT_AST2600
|
|
bool "Aspeed AST2600 watchdog timer support"
|
|
depends on WDT
|
|
default y if ASPEED_AST2600
|
|
help
|
|
Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
|
|
The watchdog timer is stopped when initialized. It performs reset, either
|
|
full SoC reset or CPU or just some peripherals, based on the flags.
|
|
|
|
config WDT_AT91
|
|
bool "AT91 watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Select this to enable Microchip watchdog timer, which can be found on
|
|
some AT91 devices.
|
|
|
|
config WDT_BCM6345
|
|
bool "BCM6345 watchdog timer support"
|
|
depends on WDT && (ARCH_BMIPS || BCM6856 || \
|
|
BCM6858 || BCM63158 || BCM6855)
|
|
help
|
|
Select this to enable watchdog timer for BCM6345 SoCs.
|
|
The watchdog timer is stopped when initialized.
|
|
It performs full SoC reset.
|
|
|
|
config WDT_BOOKE
|
|
bool "PowerPC Book-E watchdog driver"
|
|
depends on WDT && MPC85xx
|
|
help
|
|
Watchdog driver for PowerPC Book-E chips, such as the Freescale
|
|
MPC85xx SOCs and the IBM PowerPC 440.
|
|
|
|
config WDT_CDNS
|
|
bool "Cadence watchdog timer support"
|
|
depends on WDT
|
|
imply WATCHDOG
|
|
help
|
|
Select this to enable Cadence watchdog timer, which can be found on some
|
|
Xilinx Microzed Platform.
|
|
|
|
config WDT_CORTINA
|
|
bool "Cortina Access CAxxxx watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Cortina Access CAxxxx watchdog timer support.
|
|
This driver support all CPU ISAs supported by Cortina
|
|
Access CAxxxx SoCs.
|
|
|
|
config WDT_GPIO
|
|
bool "External gpio watchdog support"
|
|
depends on WDT
|
|
depends on DM_GPIO
|
|
help
|
|
Support for external watchdog fed by toggling a gpio. See
|
|
doc/device-tree-bindings/watchdog/gpio-wdt.txt for
|
|
information on how to describe the watchdog in device tree.
|
|
|
|
config WDT_MAX6370
|
|
bool "MAX6370 watchdog timer support"
|
|
depends on WDT
|
|
select DM_GPIO
|
|
help
|
|
Select this to enable max6370 watchdog timer.
|
|
|
|
config WDT_MCF
|
|
bool "ColdFire family watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Select this to enable ColdFire watchdog timer,
|
|
which supports mcf52x2 mcf532x mcf523x families.
|
|
|
|
config WDT_MESON_GXBB
|
|
bool "Amlogic watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Select this to enable Meson watchdog timer,
|
|
which can be found on some Amlogic platforms.
|
|
|
|
config WDT_MPC8xxx
|
|
bool "MPC8xxx watchdog timer support"
|
|
depends on WDT && (MPC8xx || MPC83xx)
|
|
help
|
|
Select this to enable mpc8xxx watchdog timer
|
|
|
|
config WDT_MPC8xxx_BME
|
|
bool "Enable MPC8xx Bus Monitoring"
|
|
depends on WDT_MPC8xxx && MPC8xx
|
|
help
|
|
Select this to enable mpc8xx Bus Monitor.
|
|
|
|
config WDT_MPC8xxx_BMT
|
|
int "MPC8xx Bus Monitor Timing" if WDT_MPC8xxx_BME
|
|
range 0 255
|
|
default 255
|
|
depends on WDT_MPC8xxx
|
|
help
|
|
Bus monitor timing. Defines the timeout period, in 8 system clock
|
|
resolution, for the bus monitor.
|
|
|
|
Maximum timeout is 2,040 clocks (255 x 8).
|
|
|
|
config WDT_MT7620
|
|
bool "MediaTek MT7620 watchdog timer support"
|
|
depends on WDT && SOC_MT7620
|
|
help
|
|
Select this to enable watchdog timer on MediaTek MT7620 and earlier
|
|
SoC chips.
|
|
|
|
config WDT_MT7621
|
|
bool "MediaTek MT7621 watchdog timer support"
|
|
depends on WDT && (SOC_MT7621 || SOC_MT7628)
|
|
help
|
|
Select this to enable Ralink / Mediatek watchdog timer,
|
|
which can be found on some MediaTek chips.
|
|
|
|
config WDT_MTK
|
|
bool "MediaTek watchdog timer support"
|
|
depends on WDT && ARCH_MEDIATEK
|
|
help
|
|
Select this to enable watchdog timer for MediaTek SoCs.
|
|
The watchdog timer is stopped when initialized.
|
|
It performs full SoC reset.
|
|
|
|
config WDT_NPCM
|
|
bool "Nuvoton watchdog timer support"
|
|
depends on WDT && ARCH_NPCM
|
|
help
|
|
This enables Nuvoton npcm7xx/npcm8xx watchdog timer driver,
|
|
The watchdog timer is stopped when initialized.
|
|
It performs full SoC reset.
|
|
|
|
config WDT_OCTEONTX
|
|
bool "Octeon core watchdog support"
|
|
depends on WDT && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
|
|
default y
|
|
imply WATCHDOG
|
|
help
|
|
This enables the Octeon watchdog driver, which can be found on
|
|
various Octeon parts such as Octeon II/III and OcteonTX/TX2.
|
|
|
|
config WDT_OMAP3
|
|
bool "TI OMAP watchdog timer support"
|
|
depends on WDT && ARCH_OMAP2PLUS
|
|
default y if AM33XX
|
|
help
|
|
This enables OMAP3+ watchdog timer driver, which can be
|
|
found on some TI chipsets and inline with driver model.
|
|
|
|
config WDT_ORION
|
|
bool "Orion watchdog timer support"
|
|
depends on WDT
|
|
select CLK
|
|
help
|
|
Select this to enable Orion watchdog timer, which can be found on some
|
|
Marvell Armada chips.
|
|
|
|
config WDT_K3_RTI
|
|
bool "Texas Instruments K3 RTI watchdog"
|
|
depends on WDT && ARCH_K3
|
|
help
|
|
Say Y here if you want to include support for the K3 watchdog
|
|
timer (RTI module) available in the K3 generation of processors.
|
|
|
|
if WDT_K3_RTI
|
|
|
|
config WDT_K3_RTI_LOAD_FW
|
|
bool "Load watchdog firmware"
|
|
depends on REMOTEPROC
|
|
help
|
|
Automatically load the specified firmware image into the MCU R5F
|
|
core 0. On the AM65x, this firmware is supposed to handle the expiry
|
|
of the watchdog timer, typically by resetting the system.
|
|
|
|
config WDT_K3_RTI_FW_FILE
|
|
string "Watchdog firmware image file"
|
|
default "k3-rti-wdt.fw"
|
|
depends on WDT_K3_RTI_LOAD_FW
|
|
help
|
|
Firmware image to be embedded into U-Boot and loaded on watchdog
|
|
start.
|
|
|
|
endif
|
|
|
|
config WDT_SANDBOX
|
|
bool "Enable Watchdog Timer support for Sandbox"
|
|
depends on SANDBOX && WDT
|
|
help
|
|
Enable Watchdog Timer support in Sandbox. This is a dummy device that
|
|
can be probed and supports all of the methods of WDT, but does not
|
|
really do anything.
|
|
|
|
config WDT_ALARM_SANDBOX
|
|
bool "Enable SIGALRM-based Watchdog Timer support for Sandbox"
|
|
depends on SANDBOX && WDT
|
|
help
|
|
Enable support for a SIGALRM-based watchdog timer in Sandbox. This is
|
|
a watchdog device based on the host OS' alarm() function, which will
|
|
kill the sandbox with SIGALRM unless properly maintained.
|
|
|
|
config WDT_SBSA
|
|
bool "SBSA watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Select this to enable SBSA watchdog timer.
|
|
This driver can operate ARM SBSA Generic Watchdog as a single stage.
|
|
In the single stage mode, when the timeout is reached, your system
|
|
will be reset by WS1. The first signal (WS0) is ignored.
|
|
|
|
config WDT_SL28CPLD
|
|
bool "sl28cpld watchdog timer support"
|
|
depends on WDT && SL28CPLD
|
|
help
|
|
Enable support for the watchdog timer in the Kontron sl28cpld
|
|
management controller.
|
|
|
|
config WDT_SP805
|
|
bool "SP805 watchdog timer support"
|
|
depends on WDT
|
|
help
|
|
Select this to enable SP805 watchdog timer, which can be found on some
|
|
nxp layerscape chips.
|
|
|
|
config WDT_STM32MP
|
|
bool "IWDG watchdog driver for STM32 MP's family"
|
|
depends on WDT
|
|
imply WATCHDOG
|
|
help
|
|
Enable the STM32 watchdog (IWDG) driver. Enable support to
|
|
configure STM32's on-SoC watchdog.
|
|
|
|
config WDT_SUNXI
|
|
bool "Allwinner sunxi watchdog timer support"
|
|
depends on WDT && ARCH_SUNXI
|
|
default y
|
|
help
|
|
Enable support for the watchdog timer in Allwinner sunxi SoCs.
|
|
|
|
config WDT_BCM2835
|
|
bool "Broadcom 2835 watchdog timer support"
|
|
depends on WDT && ARCH_BCM283X
|
|
default y
|
|
help
|
|
Enable support for the watchdog timer in Broadcom 283X SoCs such
|
|
as Raspberry Pi boards.
|
|
|
|
config XILINX_TB_WATCHDOG
|
|
bool "Xilinx Axi watchdog timer support"
|
|
depends on WDT
|
|
imply WATCHDOG
|
|
help
|
|
Select this to enable Xilinx Axi watchdog timer, which can be found on some
|
|
Xilinx Microblaze Platforms.
|
|
|
|
config WDT_XILINX
|
|
bool "Xilinx window watchdog timer support"
|
|
depends on WDT && ARCH_VERSAL
|
|
select REGMAP
|
|
imply WATCHDOG
|
|
help
|
|
Select this to enable Xilinx window watchdog timer, which can be found on
|
|
Xilinx Versal Platforms.
|
|
|
|
config WDT_TANGIER
|
|
bool "Intel Tangier watchdog timer support"
|
|
depends on WDT && INTEL_MID
|
|
help
|
|
This enables support for watchdog controller available on
|
|
Intel Tangier SoC. If you're using a board with Intel Tangier
|
|
SoC, say Y here.
|
|
|
|
config WDT_ARM_SMC
|
|
bool "ARM SMC watchdog timer support"
|
|
depends on WDT && ARM_SMCCC
|
|
imply WATCHDOG
|
|
help
|
|
Select this to enable Arm SMC watchdog timer. This watchdog will manage
|
|
a watchdog based on ARM SMCCC communication.
|
|
|
|
config SPL_WDT
|
|
bool "Enable driver model for watchdog timer drivers in SPL"
|
|
depends on SPL_DM
|
|
help
|
|
Enable driver model for watchdog timer in SPL.
|
|
This is similar to CONFIG_WDT in U-Boot.
|
|
|
|
config WDT_FTWDT010
|
|
bool "Faraday Technology ftwdt010 watchdog timer support"
|
|
depends on WDT
|
|
imply WATCHDOG
|
|
help
|
|
Faraday Technology ftwdt010 watchdog is an architecture independent
|
|
watchdog. It is usually used in SoC chip design.
|
|
endmenu
|