imx_wdog
— device
driver for the NXP i.MX5 and i.MX6 watchdog timer
To compile this driver into the kernel, place the following line
in your kernel configuration file:
device imxwdt
Alternatively, to load the driver as a module at boot time, place
the following line in
loader.conf(5):
The imx_wdog
driver provides
watchdog(4)
support for the watchdog timer present on NXP i.MX5 and i.MX6 processors.
The i.MX watchdog hardware supports programmable timeouts ranging from 0.5
to 128 seconds, in half-second increments. Once activated, the watchdog
hardware cannot be deactivated, but the timeout period can be changed to any
valid non-zero value.
At power-on, a special 16-second ‘power-down timer’
mode is automatically enabled by the hardware. It will assert the external
WDOG_B signal, which may be connected to external hardware that causes the
system to reset or power-down. The power-down timer is often reset by the
boot loader (typically U-Boot). If the power-down timer is still active at
the time when the normal watchdog is first enabled, the
imx_wdog
driver automatically disables it.
The imx_wdog
driver supports the FDT
fsl,external-reset property by enabling the assertion
of the WDOG_B external timeout signal when the property is present. When
running this way, the need to reset the system due to watchdog timeout is
signaled by driving the WDOG_B line low; some external entity is expected to
assert the chip's POR pin in response. The imx_wdog
driver attempts to backstop this external reset by scheduling an interrupt
to occur as well. The interrupt handler waits 1 second for the external
reset to occur, then it triggers a normal software reset. Note that the
WDOG_B signal can be configured to use a variety of pins on the chip. For
the fsl,external-reset property to be effective, the
signal must be connected to an appropriate pin by the system's FDT pinctrl
data.
The imx_wdog
driver supports the FDT
timeout-secs property by enabling the watchdog as soon
as the driver attaches, using the given timeout value. This extends watchdog
protection to much of the system startup process, but it still requires that
watchdogd(4)
be configured to service the watchdog.
The imx_wdog
driver first appeared in
FreeBSD 10.0.