mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 10:48:51 +00:00
ee327d1d93
This driver supports the watchdog timer found on Apple's M1 SoC. On systems that use these SoC, the watchdog timer is the primary way to reboot the system. Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Sven Peter <sven@svenpeter.dev> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Tested-on: Apple M1 Macbook Tested-by: Simon Glass <sjg@chromium.org>
323 lines
9.4 KiB
Text
323 lines
9.4 KiB
Text
menu "Watchdog Timer Support"
|
|
|
|
config WATCHDOG
|
|
bool "Enable U-Boot watchdog reset"
|
|
depends on !HW_WATCHDOG
|
|
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 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"
|
|
select HW_WATCHDOG if !WDT
|
|
default y if WDT && 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
|
|
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 || ARCH_BCM68360 || \
|
|
ARCH_BCM6858 || ARCH_BCM63158)
|
|
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_MPC8xx
|
|
bool "MPC8xx watchdog timer support"
|
|
depends on WDT && MPC8xx
|
|
select HW_WATCHDOG
|
|
help
|
|
Select this to enable mpc8xx watchdog timer
|
|
|
|
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_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_OCTEONTX
|
|
bool "OcteonTX core watchdog support"
|
|
depends on WDT && (ARCH_OCTEONTX || ARCH_OCTEONTX2)
|
|
default y
|
|
imply WATCHDOG
|
|
help
|
|
This enables OcteonTX watchdog driver, which can be
|
|
found on OcteonTX/TX2 chipsets and inline with driver model.
|
|
Only supports watchdog reset.
|
|
|
|
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_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_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 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 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.
|
|
|
|
endmenu
|