Merge tag 'linux-watchdog-4.20-rc1' of git://www.linux-watchdog.org/linux-watchdog
Pull watchdog updates from Wim Van Sebroeck: - Add Armada 37xx CPU watchdog - w83627hf_wdt: Add Support for NCT6796D, NCT6797D, NCT6798D - hpwdt: several improvements - renesas_wdt: SPDX identifiers, stop when unregistering, support for R7S9210 - rza_wdt: SPDX identifiers, support longer timeouts - core: fix null pointer dereference when releasing cdev - iTCO_wdt: Drop option vendorsupport=2 - sama5d4: fix timeout-sec usage - lantiq_wdt: convert to watchdog framework - several small fixes * tag 'linux-watchdog-4.20-rc1' of git://www.linux-watchdog.org/linux-watchdog: (30 commits) watchdog: ts4800: release syscon device node in ts4800_wdt_probe() watchdog: armada_37xx_wdt: use do_div for u64 division documentation: watchdog: add documentation for armada-37xx-wdt dt-bindings: watchdog: Document armada-37xx-wdt binding watchdog: Add support for Armada 37xx CPU watchdog dt-bindings: watchdog: add mpc8xxx-wdt support watchdog: mpc8xxx: provide boot status MAINTAINERS: Fix file pattern for MEN Z069 watchdog driver dt-bindings: watchdog: renesas-wdt: Add support for R7S9210 watchdog: rza_wdt: Support longer timeouts watchdog: hpwdt: Disable PreTimeout when Timeout is smaller watchdog: w83627hf_wdt: Support NCT6796D, NCT6797D, NCT6798D watchdog: mpc8xxx: use dev_xxxx() instead of pr_xxxx() watchdog: lantiq: add get_timeleft callback watchdog: lantiq: Convert to watchdog_device watchdog: lantiq: update register names to better match spec watchdog: sama5d4: fix timeout-sec usage watchdog: fix a small number of "watchog" typos in comments watchdog: rza_wdt: convert to SPDX identifiers watchdog: iTCO_wdt: Remove unused hooks ...
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
* Armada 37xx CPU Watchdog Timer Controller
|
||||
|
||||
Required properties:
|
||||
- compatible : must be "marvell,armada-3700-wdt"
|
||||
- reg : base physical address of the controller and length of memory mapped
|
||||
region.
|
||||
- clocks : the clock feeding the watchdog timer. See clock-bindings.txt
|
||||
- marvell,system-controller : reference to syscon node for the CPU Miscellaneous
|
||||
Registers
|
||||
|
||||
Example:
|
||||
|
||||
cpu_misc: system-controller@d000 {
|
||||
compatible = "marvell,armada-3700-cpu-misc", "syscon";
|
||||
reg = <0xd000 0x1000>;
|
||||
};
|
||||
|
||||
wdt: watchdog@8300 {
|
||||
compatible = "marvell,armada-3700-wdt";
|
||||
reg = <0x8300 0x40>;
|
||||
marvell,system-controller = <&cpu_misc>;
|
||||
clocks = <&xtalclk>;
|
||||
};
|
25
Documentation/devicetree/bindings/watchdog/mpc8xxx-wdt.txt
Normal file
25
Documentation/devicetree/bindings/watchdog/mpc8xxx-wdt.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
* Freescale mpc8xxx watchdog driver (For 83xx, 86xx and 8xx)
|
||||
|
||||
Required properties:
|
||||
- compatible: Shall contain one of the following:
|
||||
"mpc83xx_wdt" for an mpc83xx
|
||||
"fsl,mpc8610-wdt" for an mpc86xx
|
||||
"fsl,mpc823-wdt" for an mpc8xx
|
||||
- reg: base physical address and length of the area hosting the
|
||||
watchdog registers.
|
||||
On the 83xx, "Watchdog Timer Registers" area: <0x200 0x100>
|
||||
On the 86xx, "Watchdog Timer Registers" area: <0xe4000 0x100>
|
||||
On the 8xx, "General System Interface Unit" area: <0x0 0x10>
|
||||
|
||||
Optional properties:
|
||||
- reg: additional physical address and length (4) of location of the
|
||||
Reset Status Register (called RSTRSCR on the mpc86xx)
|
||||
On the 83xx, it is located at offset 0x910
|
||||
On the 86xx, it is located at offset 0xe0094
|
||||
On the 8xx, it is located at offset 0x288
|
||||
|
||||
Example:
|
||||
WDT: watchdog@0 {
|
||||
compatible = "fsl,mpc823-wdt";
|
||||
reg = <0x0 0x10 0x288 0x4>;
|
||||
};
|
@@ -21,6 +21,7 @@ Required properties:
|
||||
- "renesas,r8a77990-wdt" (R-Car E3)
|
||||
- "renesas,r8a77995-wdt" (R-Car D3)
|
||||
- "renesas,r7s72100-wdt" (RZ/A1)
|
||||
- "renesas,r7s9210-wdt" (RZ/A2)
|
||||
The generic compatible string must be:
|
||||
- "renesas,rza-wdt" for RZ/A
|
||||
- "renesas,rcar-gen2-wdt" for R-Car Gen2 and RZ/G1
|
||||
|
@@ -1,15 +1,12 @@
|
||||
Last reviewed: 05/20/2016
|
||||
Last reviewed: 08/20/2018
|
||||
|
||||
HPE iLO NMI Watchdog Driver
|
||||
NMI sourcing for iLO based ProLiant Servers
|
||||
Documentation and Driver by
|
||||
Thomas Mingarelli
|
||||
for iLO based ProLiant Servers
|
||||
|
||||
The HPE iLO NMI Watchdog driver is a kernel module that provides basic
|
||||
watchdog functionality and the added benefit of NMI sourcing. Both the
|
||||
watchdog functionality and the NMI sourcing capability need to be enabled
|
||||
by the user. Remember that the two modes are not dependent on one another.
|
||||
A user can have the NMI sourcing without the watchdog timer and vice-versa.
|
||||
watchdog functionality and handler for the iLO "Generate NMI to System"
|
||||
virtual button.
|
||||
|
||||
All references to iLO in this document imply it also works on iLO2 and all
|
||||
subsequent generations.
|
||||
|
||||
@@ -21,12 +18,16 @@ Last reviewed: 05/20/2016
|
||||
not be updated in a timely fashion and a hardware system reset (also known as
|
||||
an Automatic Server Recovery (ASR)) event will occur.
|
||||
|
||||
The hpwdt driver also has three (3) module parameters. They are the following:
|
||||
The hpwdt driver also has the following module parameters:
|
||||
|
||||
soft_margin - allows the user to set the watchdog timer value.
|
||||
Default value is 30 seconds.
|
||||
allow_kdump - allows the user to save off a kernel dump image after an NMI.
|
||||
Default value is 1/ON
|
||||
timeout - an alias of soft_margin.
|
||||
pretimeout - allows the user to set the watchdog pretimeout value.
|
||||
This is the number of seconds before timeout when an
|
||||
NMI is delivered to the system. Setting the value to
|
||||
zero disables the pretimeout NMI.
|
||||
Default value is 9 seconds.
|
||||
nowayout - basic watchdog parameter that does not allow the timer to
|
||||
be restarted or an impending ASR to be escaped.
|
||||
Default value is set when compiling the kernel. If it is set
|
||||
@@ -37,61 +38,29 @@ Last reviewed: 05/20/2016
|
||||
interface to /dev/watchdog can be found in
|
||||
Documentation/watchdog/watchdog-api.txt and Documentation/IPMI.txt.
|
||||
|
||||
The NMI sourcing capability is disabled by default due to the inability to
|
||||
distinguish between "NMI Watchdog Ticks" and "HW generated NMI events" in the
|
||||
Linux kernel. What this means is that the hpwdt nmi handler code is called
|
||||
each time the NMI signal fires off. This could amount to several thousands of
|
||||
NMIs in a matter of seconds. If a user sees the Linux kernel's "dazed and
|
||||
confused" message in the logs or if the system gets into a hung state, then
|
||||
the hpwdt driver can be reloaded.
|
||||
Due to limitations in the iLO hardware, the NMI pretimeout if enabled,
|
||||
can only be set to 9 seconds. Attempts to set pretimeout to other
|
||||
non-zero values will be rounded, possibly to zero. Users should verify
|
||||
the pretimeout value after attempting to set pretimeout or timeout.
|
||||
|
||||
1. If the kernel has not been booted with nmi_watchdog turned off then
|
||||
edit and place the nmi_watchdog=0 at the end of the currently booting
|
||||
kernel line. Depending on your Linux distribution and platform setup:
|
||||
For non-UEFI systems
|
||||
/boot/grub/grub.conf or
|
||||
/boot/grub/menu.lst
|
||||
For UEFI systems
|
||||
/boot/efi/EFI/distroname/grub.conf or
|
||||
/boot/efi/efi/distroname/elilo.conf
|
||||
2. reboot the sever
|
||||
3. Once the system comes up perform a modprobe -r hpwdt
|
||||
4. modprobe /lib/modules/`uname -r`/kernel/drivers/watchdog/hpwdt.ko
|
||||
Upon receipt of an NMI from the iLO, the hpwdt driver will initiate a
|
||||
panic. This is to allow for a crash dump to be collected. It is incumbent
|
||||
upon the user to have properly configured the system for kdump.
|
||||
|
||||
Now, the hpwdt can successfully receive and source the NMI and provide a log
|
||||
message that details the reason for the NMI (as determined by the HPE BIOS).
|
||||
The default Linux kernel behavior upon panic is to print a kernel tombstone
|
||||
and loop forever. This is generally not what a watchdog user wants.
|
||||
|
||||
Below is a list of NMIs the HPE BIOS understands along with the associated
|
||||
code (reason):
|
||||
For those wishing to learn more please see:
|
||||
Documentation/kdump/kdump.txt
|
||||
Documentation/admin-guide/kernel-parameters.txt (panic=)
|
||||
Your Linux Distribution specific documentation.
|
||||
|
||||
No source found 00h
|
||||
If the hpwdt does not receive the NMI associated with an expiring timer,
|
||||
the iLO will proceed to reset the system at timeout if the timer hasn't
|
||||
been updated.
|
||||
|
||||
Uncorrectable Memory Error 01h
|
||||
--
|
||||
|
||||
ASR NMI 1Bh
|
||||
The HPE iLO NMI Watchdog Driver and documentation were originally developed
|
||||
by Tom Mingarelli.
|
||||
|
||||
PCI Parity Error 20h
|
||||
|
||||
NMI Button Press 27h
|
||||
|
||||
SB_BUS_NMI 28h
|
||||
|
||||
ILO Doorbell NMI 29h
|
||||
|
||||
ILO IOP NMI 2Ah
|
||||
|
||||
ILO Watchdog NMI 2Bh
|
||||
|
||||
Proc Throt NMI 2Ch
|
||||
|
||||
Front Side Bus NMI 2Dh
|
||||
|
||||
PCI Express Error 2Fh
|
||||
|
||||
DMA controller NMI 30h
|
||||
|
||||
Hypertransport/CSI Error 31h
|
||||
|
||||
|
||||
|
||||
-- Tom Mingarelli
|
||||
|
@@ -40,6 +40,11 @@ margin: Watchdog margin in seconds (default=60)
|
||||
nowayout: Disable watchdog shutdown on close
|
||||
(default=kernel config parameter)
|
||||
-------------------------------------------------
|
||||
armada_37xx_wdt:
|
||||
timeout: Watchdog timeout in seconds. (default=120)
|
||||
nowayout: Disable watchdog shutdown on close
|
||||
(default=kernel config parameter)
|
||||
-------------------------------------------------
|
||||
at91rm9200_wdt:
|
||||
wdt_time: Watchdog time in seconds. (default=5)
|
||||
nowayout: Watchdog cannot be stopped once started
|
||||
|
Reference in New Issue
Block a user