D.1
EC Watchdog Timer sample code
Display source code fixed width font for easy reading.
The sample code can be compiled by Open Watcom C++ compiler running on DOS.
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdint.h>
#include <i86.h>
#define CMD_PORT
#define STS_PORT
#define DAT_PORT
#define EC_RETRIES
#define EC_STS_IBF
#define EC_STS_OBF
#define EC_CMD_MASK
#define EC_CMD_READ
#define WDT_CMD_WRITE 0x2A
#define WDT_CMD_READ
#define WDT_CTL
#define WDT_CTL_CLEAR 0x02
#define WDT_CTL_START 0x01
#define WDT_CTL_STOP
#define WDT_TYPE_DELAY 0x11
#define WDT_TYPE_PWRCYC 0x12
#define WDT_TYPE_IRQ
#define WDT_TYPE_RESET 0x14
#define WDT_TYPE_PIN
#define WDT_TYPE_SCI
#define inb(p)
#define outb(p, v) outp(p, v)
//
================================================================
=============
// ec_wait_ibe
//
================================================================
=============
MIO-5850 User Manual
(0x2F6)
CMD_PORT
(0x2F2)
(65535)
0x02
0x01
0x01
// 1=read command, 0=write command
EC_CMD_MASK
0x2B
0x02
0x00
// add delay time before watchdog starting
// power cycle
0x13
// issue IRQ
// reset
0x15
// set watchdog pin
0x16
// issue SCI in ACPI OS
inp(p)
68