Last reviewed: 10/05/2007

                     Berkshire Products PC Watchdog Card
                   Support for ISA Cards  Revision A and C
           Documentation and Driver by Ken Hollis <kenji@bitgate.com>

 The PC Watchdog is a card that offers the same type of functionality that
 the WDT card does, only it doesn't require an IRQ to run.  Furthermore,
 the Revision C card allows you to monitor any IO Port to automatically
 trigger the card into being reset.  This way you can make the card
 monitor hard drive status, or anything else you need.

 The Watchdog Driver has one basic role: to talk to the card and send
 signals to it so it doesn't reset your computer ... at least during
 normal operation.

 The Watchdog Driver will automatically find your watchdog card, and will
 attach a running driver for use with that card.  After the watchdog
 drivers have initialized, you can then talk to the card using a PC
 Watchdog program.

 I suggest putting a "watchdog -d" before the beginning of an fsck, and
 a "watchdog -e -t 1" immediately after the end of an fsck.  (Remember
 to run the program with an "&" to run it in the background!)

 If you want to write a program to be compatible with the PC Watchdog
 driver, simply use of modify the watchdog test program:
 Documentation/watchdog/src/watchdog-test.c


 Other IOCTL functions include:

	WDIOC_GETSUPPORT
		This returns the support of the card itself.  This
		returns in structure "PCWDS" which returns:
			options = WDIOS_TEMPPANIC
				  (This card supports temperature)
			firmware_version = xxxx
				  (Firmware version of the card)

	WDIOC_GETSTATUS
		This returns the status of the card, with the bits of
		WDIOF_* bitwise-anded into the value.  (The comments
		are in linux/pcwd.h)

	WDIOC_GETBOOTSTATUS
		This returns the status of the card that was reported
		at bootup.

	WDIOC_GETTEMP
		This returns the temperature of the card.  (You can also
		read /dev/watchdog, which gives a temperature update
		every second.)

	WDIOC_SETOPTIONS
		This lets you set the options of the card.  You can either
		enable or disable the card this way.

	WDIOC_KEEPALIVE
		This pings the card to tell it not to reset your computer.

 And that's all she wrote!

 -- Ken Hollis
    (kenji@bitgate.com)

