Appendix A Watchdog Timer

The Watchdog Timer is provided to ensure that standalone systems can always recover from catastrophic conditions that cause the CPU to crash. This condition may have occurred by external EMI or a software bug. When the CPU stops working correctly, hardware on the board will either perform a hardware reset (cold boot) or a Non-Maskable Interrupt (NMI) to bring the system back to a known state.

A BIOS function call (INT 15H) is used to control the Watchdog Timer:

INT 15H:

AH – 6FH

Sub-function:

AL – 2 : Set the Watchdog Timer’s period

BL : Time-out value(Its unit--second or minute, is dependent on the item “Watchdog Timer unit select” in CMOS setup).

The sub-function 2 needs to be called to set the time-out period of Watchdog Timer first. If the time-out value is not zero, the Watchdog Timer will start to count down. While the timer value reaches zero, the system will reset. To ensure that this reset condition does not occur, the Watchdog Timer must be periodically refreshed by calling sub-function 2. However the Watchdog timer will be disabled if the user set the time-out value to zero.

A tolerance of at least 10% must be maintained to avoid unknown routines within the operating system (DOS), such as disk I/O that can be very time-consuming.

Note: when exiting a program, it is necessary to disable the Watchdog Timer; otherwise the system will reset.

Example program:

;INITIAL TIMER PERIOD COUNTER

W_LOOP:

MOV

AX, 6F02H

;setting the time-out value

MOV

BL, 30

;time-out value is 48 seconds

INT

15H

 

;

;ADD YOUR APPLICATION PROGRAM HERE

CMP

EXIT_AP, 1

;is your application over?

JNE

W_LOOP

;No, restart your application

MOV

AX, 6F02H

;disable Watchdog Timer

MOV

BL, 0

;

INT

15H

 

;

 

 

; EXIT

 

 

;

 

 

 

 

42

Page 42
Image 42
IBM SAGP-845EV user manual Appendix a Watchdog Timer, INT 15H AH 6FH