Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Watchdog Timer Interfaces For The Linux Operating System |
| 2 | |
| 3 | Alan Cox <alan@lxorguk.ukuu.org.uk> |
| 4 | |
| 5 | Custom Linux Driver And Program Development |
| 6 | |
| 7 | |
| 8 | The following watchdog drivers are currently implemented: |
| 9 | |
| 10 | ICS WDT501-P |
| 11 | ICS WDT501-P (no fan tachometer) |
| 12 | ICS WDT500-P |
| 13 | Software Only |
| 14 | SA1100 Internal Watchdog |
| 15 | Berkshire Products PC Watchdog Revision A & C (by Ken Hollis) |
| 16 | |
| 17 | |
| 18 | All six interfaces provide /dev/watchdog, which when open must be written |
| 19 | to within a timeout or the machine will reboot. Each write delays the reboot |
| 20 | time another timeout. In the case of the software watchdog the ability to |
| 21 | reboot will depend on the state of the machines and interrupts. The hardware |
| 22 | boards physically pull the machine down off their own onboard timers and |
| 23 | will reboot from almost anything. |
| 24 | |
| 25 | A second temperature monitoring interface is available on the WDT501P cards |
| 26 | and some Berkshire cards. This provides /dev/temperature. This is the machine |
| 27 | internal temperature in degrees Fahrenheit. Each read returns a single byte |
| 28 | giving the temperature. |
| 29 | |
| 30 | The third interface logs kernel messages on additional alert events. |
| 31 | |
| 32 | Both software and hardware watchdog drivers are available in the standard |
| 33 | kernel. If you are using the software watchdog, you probably also want |
| 34 | to use "panic=60" as a boot argument as well. |
| 35 | |
| 36 | The wdt card cannot be safely probed for. Instead you need to pass |
| 37 | wdt=ioaddr,irq as a boot parameter - eg "wdt=0x240,11". |
| 38 | |
| 39 | The SA1100 watchdog module can be configured with the "sa1100_margin" |
| 40 | commandline argument which specifies timeout value in seconds. |
| 41 | |
| 42 | The i810 TCO watchdog modules can be configured with the "i810_margin" |
| 43 | commandline argument which specifies the counter initial value. The counter |
| 44 | is decremented every 0.6 seconds and default to 50 (30 seconds). Values can |
| 45 | range between 3 and 63. |
| 46 | |
| 47 | The i810 TCO watchdog driver also implements the WDIOC_GETSTATUS and |
| 48 | WDIOC_GETBOOTSTATUS ioctl()s. WDIOC_GETSTATUS returns the actual counter value |
| 49 | and WDIOC_GETBOOTSTATUS returns the value of TCO2 Status Register (see Intel's |
| 50 | documentation for the 82801AA and 82801AB datasheet). |
| 51 | |
| 52 | Features |
| 53 | -------- |
| 54 | WDT501P WDT500P Software Berkshire i810 TCO SA1100WD |
| 55 | Reboot Timer X X X X X X |
| 56 | External Reboot X X o o o X |
| 57 | I/O Port Monitor o o o X o o |
| 58 | Temperature X o o X o o |
| 59 | Fan Speed X o o o o o |
| 60 | Power Under X o o o o o |
| 61 | Power Over X o o o o o |
| 62 | Overheat X o o o o o |
| 63 | |
| 64 | The external event interfaces on the WDT boards are not currently supported. |
| 65 | Minor numbers are however allocated for it. |
| 66 | |
| 67 | |
Randy Dunlap | 56fb9e5 | 2006-05-21 20:58:10 -0700 | [diff] [blame] | 68 | Example Watchdog Driver: see Documentation/watchdog/src/watchdog-simple.c |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 69 | |
| 70 | |
| 71 | Contact Information |
| 72 | |
| 73 | People keep asking about the WDT watchdog timer hardware: The phone contacts |
| 74 | for Industrial Computer Source are: |
| 75 | |
| 76 | Industrial Computer Source |
| 77 | http://www.indcompsrc.com |
| 78 | ICS Advent, San Diego |
| 79 | 6260 Sequence Dr. |
| 80 | San Diego, CA 92121-4371 |
| 81 | Phone (858) 677-0877 |
| 82 | FAX: (858) 677-0895 |
| 83 | > |
| 84 | ICS Advent Europe, UK |
| 85 | Oving Road |
| 86 | Chichester, |
| 87 | West Sussex, |
| 88 | PO19 4ET, UK |
| 89 | Phone: 00.44.1243.533900 |
| 90 | |
| 91 | |
| 92 | and please mention Linux when enquiring. |
| 93 | |
| 94 | For full information about the PCWD cards see the pcwd-watchdog.txt document. |