Specifications
INTELLIGENT PLATFORM MANAGEMENT INTERFACE
7-16 PP 41x/03x
7.6.2 Using the Watchdog Timer
The IPMI provides a standardized watchdog facility which is fully described in the IPMI
specification. The following C program fragment sets and resets the watchdog facility:
/* network function codes */
#define NFC_APP_REQUEST 0x06
#define NFC_APP_RESPONSE 0x07
/* watchdog commands */
#define CMD_WATCHDOG_RESET 0x22 /* Reset Watchdog Timer */
#define CMD_WATCHDOG_SET 0x24 /* Set Watchdog Timer */
#define CMD_WATCHDOG_GET 0x25 /* Get Watchdog Timer */
/* definition of watchdog operational constants */
#define USAGE_BIOS_FRB2 1
#define USAGE_BIOS_POST 2
#define USAGE_OS_LOAD 3
#define USAGE_SMS_OS 4
#define USAGE_OEM 5
#define FLAG_BIOS_FRB2 (1 << (USAGE_BIOS_FRB2))
#define FLAG_BIOS_POST (1 << (USAGE_BIOS_POST))
#define FLAG_OS_LOAD (1 << (USAGE_OS_LOAD))
#define FLAG_SMS_OS (1 << (USAGE_SMS_OS))
#define FLAG_OEM (1 << (USAGE_OEM))
#define PRE_TO_INT_NONE 0
#define PRE_TO_INT_SMI 1
#define PRE_TO_INT_NMI 2
#define PRE_TO_INT_MESSAGE 3
#define TO_ACTION_NONE 0
#define TO_ACTION_RESET 1
#define TO_ACTION_POWER_DOWN 2
#define TO_ACTION_POWER_CYCLE 3
/* Completion codes */
#define COMPLETION_OK 0 /* Completion code OK */
/* error codes */
#define E_OK 0 /* OK */
#define E_COMPLETION 0x400 /* wrong completion code */
/* forward declarations */
void vBmcSmicSmsMessageWrite (const unsigned char *pbMessage,
unsigned char bLength);
void vBmcSmicSmsMessageRead (unsigned char *pbMessage,
unsigned char *bMessageLength);