Table of Contents
Introduction
This page describes the AXI WDT/Window watchdog driver which is available in mainline and Xilinx Linux distribution asdrivers/watchdog/of_xilinx_wdt.c
HW IP Features
- Connects as a 32-bit slave on a AXI4-Lite interface
- Watchdog timer with selectable timeout period and interrupt
- Configurable WDT enable: enable-once or enable-repeatedly
- One 32-bit free-running timebase counter with rollover interrupt-dual control register
- Generic watchdog timer feature implemented.
Known Issues and Limitations
- The current driver does not support the Axi Window watchdog feature.
Kernel Configuration
The following config options should be enabled in order to build the xilinx watchdog driver:CONFIG_XILINX_WATCHDOG
CONFIG_WATCHDOG
Code Block | ||
---|---|---|
| ||
¦ Symbol: XILINX_WATCHDOG [=y] ¦ ¦ Type : tristate ¦ ¦ Prompt: Xilinx Watchdog timer ¦ ¦ Location: ¦ ¦ -> Device Drivers ¦ ¦ (4) -> Watchdog Timer Support (WATCHDOG [=y]) ¦ ¦ Defined at drivers/watchdog/Kconfig:171 ¦ ¦ Depends on: WATCHDOG [=y] && HAS_IOMEM [=y] ¦ ¦ Selects: WATCHDOG_CORE [=y] |
Devicetree
For more details, please referDocumentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt
Example:
Code Block | ||
---|---|---|
| ||
watchdog { compatible = "xlnx,xps-timebase-wdt-1.0.a"; reg = <0x42600000 0x1000>; xlnx-wdt-enable-once = <0>; xlnx-wdt-interval = <0x1b>; }; |
Test procedure
Change the parameters using IOCTLs and see if reported values is correct.Code Block | ||
---|---|---|
| ||
# /bin/wdt_app /dev/watchdog1 |
The timeout was is 42 seconds
root@uart:~#
Mainline Status
- This driver is currently in sync with the mainline kernel except for the Window Watchdog driver.
watchdog: of_xilinx_wdt: Add comment to spinlock
watchdog: of_xilinx_wdt: Used BIT macro
watchdog: of_xilinx_wdt: Used dev_dbg()
watchdog: of_xilinx_wdt: Initialize watchdog via data structure
watchdog: of_xilinx_wdt: Introduce wdttype enum for identification
watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
watchdog: of_xilinx_wdt: Use a proper variable to handle overflow
watchdog: of_xilinx_wdt: Remove passing null pointer
watchdog: of_xilinx_wdt: Skip printing pointer value
watchdog: of_xilinx_wdt: Add Versal Window watchdog support
Change Log
- 2023.2
- 2023.1
- Summary
- watchdog: of_xilinx_wdt: Update maximum timeout value based on ref clock
- Commits
- Summary
- 2022.2
- None
- 2022.1
- None
- 2021.2
- None
- 2021.1
- None
- 2020.2
- Summary
- watchdog: of_xilinx_wdt: Initialize watchdog via data structure
- watchdog: of_xilinx_wdt: Introduce wdttype enum for identification
- watchdog: of_xilinx_wdt: Add Versal support
- watchdog: of_xilinx_wdt: Wire setting up timeout via module parameter/DT
- watchdog: of_xilinx_wdt: Add Versal Window watchdog support
- Commits
- Summary
...