17.05.2015 Views

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

SMM Implementation<br />

A.2 SMM Implementation<br />

The following sections provide an overview of <strong>TI486</strong> SMM coding and<br />

information helpful in developing SMM code.<br />

A.2.1<br />

Hardware Background<br />

A.2.1.1 SMM Pins<br />

A.2.1.2 SMI Pin Timing<br />

A.2.1.3 Address Strobes<br />

The SMI and SMADS pins are used to implement SMM. The bidirectional SMI<br />

pin is used by the chip set to signal the CPU that an SMI has occurred. While<br />

the CPU is in the process of servicing an SMM interrupt, the same pin is used<br />

to send a signal to the chip set to indicate that the SMM processing is<br />

occurring. The SMADS address strobe is generated instead of the ADS<br />

address strobe while executing or accessing data in SMM address space.<br />

In order to enter <strong>TI486</strong> SMM mode, the SMI pin must be asserted for at least<br />

4 CLK2 periods. Once the CPU recognizes the active SMI input, the CPU<br />

drives the SMI input low for the duration of the SMI routine. The SMI routine<br />

is terminated with an SMI specific resume RSM instruction. When the RSM<br />

instruction is executed, the CPU drives the SMI pin high for 2 CLK2 periods.<br />

The SMI pin bidirectional design:<br />

1) Prohibits more than one SMI interrupt from becoming active.<br />

2) Provides feedback to the chip-set/core logic that an SMI is in process.<br />

3) Provides compatibility with other SMM hardware interfaces.<br />

The <strong>TI486</strong> CPU has two address strobes, ADS and SMADS. ADS is the<br />

address strobe used during normal operations. The SMADS address strobe<br />

replaces ADS during SMM operations when data is written, read, or fetched<br />

in the SMM defined region. Using a separate address strobe increases chip<br />

set compatibility and control.<br />

During an SMM interrupt routine, control can be transferred to main memory<br />

via a JMP, CALL, Jcc instruction or execution of a software interrupt (INT).<br />

Execution in main memory will cause ADS to be generated for code and data<br />

outside of the defined SMM address region. (It is assumed, but not required,<br />

that the chip set ultimately translates SMADS and a particular address to some<br />

other address.) To access code in main memory that overlaps the SMM<br />

address space, the MMAC bit (CCR1, bit 3) must be set. This allows ADS<br />

strobes to be generated for MOV instructions that overlap main memory while<br />

in SMM mode. It is not possible to execute code in main memory that overlaps<br />

SMM space while in the SMM mode.<br />

SMADS can also be generated for memory reads/writes and code fetches<br />

within the defined SMM region when the SMAC bit (CCR1 , bit 2) is set while<br />

in normal mode. The generation of SMADS would permit a program in normal<br />

A-3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!