10 smint - enter system management mode – AMD Geode LX [email protected] User Manual

Page 654

Advertising
background image

654

AMD Geode™ LX Processors Data Book

Instruction Set

33234H

Exceptions

None.

Notes

None.

8.3.4.10 SMINT - Enter System Management Mode

Operation

Opcode

Instruction

Clocks

Description

0F 38

SMINT

55

Enter SMM and call the SMI handler

IF (CPL<>0 OR (SMM_INST_EN=0 AND SMM=0 AND DMM=0))

#UD;

ELSE

SMM_HEADER[SMM_CTL] <= SMM_CTL;
SMM_HEADER[I/O_DATA] <= 0;
SMM_HEADER[I/O_ADDRESS] <= 0;
SMM_HEADER[I/O_SIZE] <= 0;
SMM_HEADER[SMM_FLAGS] <= SMM_FLAGS;
SMM_HEADER[SS_FLAGS] <= SS.FLAGS;
SMM_HEADER[CS_LIMIT] <= CS.LIMIT;
SMM_HEADER[CS_BASE] <= CS.BASE;
SMM_HEADER[CS_SELECTOR] <= CS.SELECTOR;
SMM_HEADER[CS_FLAGS] <= CS.FLAGS;
SMM_HEADER[NEXT_IP] <= IP OF INSTRUCTIOn after SMINT;
SMM_HEADER[CURRENT_IP] <= IP of SMINT Instruction;
SMM_HEADER[CR0] <= CR0;
SMM_HEADER[EFLAGS] <= eflags;
SMM_HEADER[DR7] <= DR7;
CR0 <= {1’b0, CR0.CD, CR0.NW, 29’h010};
if (!DMM_CTL.DBG_AS_DMI)

DR7 <= 32’h00000400;

SS.flags <= {SS.FLAGS[15:7], 2’b0, SS.FLAGS[4:0]};
CS.FLAGS <= 16’h009a;
CS.SELECTOR <= SMM_BASE >> 4;
CS.BASE <= SMM_BASE;
IF (SMM_LIMIT < 32’g100000)

CS.LIMIT <= SMM_LIMIT;
CS.G <= 1’b0;

else

CS.LIMIT <= SMM_LIMIT | 32’hfff;
CS.G <= 1’b1;

EFLAGS <= 32’h00000002;
SMM_CTL <= {SMM_CTL[31:3],1’b0, SMM_CTL[1], 1’b0};
SMM <= 1;
Jump to CS at offset of 0;

Advertising
This manual is related to the following products: