beautypg.com

System maintenance interrupt (smi) recovery stack – Rainbow Electronics DS1687 User Manual

Page 26

background image

DS1685/DS1687

26 of 38

SYSTEM MAINTENANCE INTERRUPT (SMI) RECOVERY STACK

An SMI recovery register stack is located in the extended register bank, locations 4Eh and 4Fh. This
register stack, shown below, can be used by the BIOS to recover from an SMI occurring during an RTC
read or write.

RTC ADDRESS

RTC ADDRESS-1

4Eh

RTC ADDRESS-2

4Fh

RTC ADDRESS-3

SMI RECOVERY STACK

7

6

5

4

3

2

1

0

DV0

AD6

AD5

AD4

AD3

AD2

AD1

AD0

REGISTER BIT DEFINITION

The RTC address is latched on the falling edge of the ALE signal. Each time an RTC address is latched,
the register address stack is pushed. The stack is only four registers deep, holding the three previous RTC
addresses in addition to the current RTC address being accessed. The following waveform illustrates how
the BIOS could recover the RTC address when an SMI occurs.

1) The RTC address is latched.
2) An SMI is generated before an RTC read or write occurs.
3) RTC address 0Ah is latched and the address from 1 is pushed to the RTC Address-1 stack location.

This step is necessary to change the bank select bit, DV0 = 1.

4) RTC address 4Eh is latched and the address from “1” is pushed to location “4Eh,” “RTC Address-2”

while 0Ah is pushed to the “RTC Address-1” location. The data in this register, 4Eh, is the RTC
address lost due to the SMI.

1

2

3

4

ALE