watchdog.txt
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:4k
- Watchdog Timer Interfaces For The Linux Operating System
- Alan Cox <alan@lxorguk.ukuu.org.uk>
- Custom Linux Driver And Program Development
- The following watchdog drivers are currently implemented:
- ICS WDT501-P
- ICS WDT501-P (no fan tachometer)
- ICS WDT500-P
- Software Only
- SA1100 Internal Watchdog
- Berkshire Products PC Watchdog Revision A & C (by Ken Hollis)
- All six interfaces provide /dev/watchdog, which when open must be written
- to within a timeout or the machine will reboot. Each write delays the reboot
- time another timeout. In the case of the software watchdog the ability to
- reboot will depend on the state of the machines and interrupts. The hardware
- boards physically pull the machine down off their own onboard timers and
- will reboot from almost anything.
- A second temperature monitoring interface is available on the WDT501P cards
- and some Berkshire cards. This provides /dev/temperature. This is the machine
- internal temperature in degrees Fahrenheit. Each read returns a single byte
- giving the temperature.
- The third interface logs kernel messages on additional alert events.
- Both software and hardware watchdog drivers are available in the standard
- kernel. If you are using the software watchdog, you probably also want
- to use "panic=60" as a boot argument as well.
- The wdt card cannot be safely probed for. Instead you need to pass
- wdt=ioaddr,irq as a boot parameter - eg "wdt=0x240,11".
- The SA1100 watchdog module can be configured with the "sa1100_margin"
- commandline argument which specifies timeout value in seconds.
- The i810 TCO watchdog modules can be configured with the "i810_margin"
- commandline argument which specifies the counter initial value. The counter
- is decremented every 0.6 seconds and default to 50 (30 seconds). Values can
- range between 3 and 63.
- The i810 TCO watchdog driver also implements the WDIOC_GETSTATUS and
- WDIOC_GETBOOTSTATUS ioctl()s. WDIOC_GETSTATUS returns the actual counter value
- and WDIOC_GETBOOTSTATUS returns the value of TCO2 Status Register (see Intel's
- documentation for the 82801AA and 82801AB datasheet).
- Features
- --------
- WDT501P WDT500P Software Berkshire i810 TCO SA1100WD
- Reboot Timer X X X X X X
- External Reboot X X o o o X
- I/O Port Monitor o o o X o o
- Temperature X o o X o o
- Fan Speed X o o o o o
- Power Under X o o o o o
- Power Over X o o o o o
- Overheat X o o o o o
- The external event interfaces on the WDT boards are not currently supported.
- Minor numbers are however allocated for it.
- Example Watchdog Driver
- -----------------------
- #include <stdio.h>
- #include <unistd.h>
- #include <fcntl.h>
- int main(int argc, const char *argv[])
- {
- int fd=open("/dev/watchdog",O_WRONLY);
- if(fd==-1)
- {
- perror("watchdog");
- exit(1);
- }
- while(1)
- {
- write(fd,"