Intel IA-32 User Manual

Page 22

Advertising
background image

CONTENTS

xxii

Vol. 3A

PAGE

24.3.2

Exiting From SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-4

24.4

SMRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-4

24.4.1

SMRAM State Save Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-5

24.4.1.1

SMRAM State Save Map and Intel EM64T . . . . . . . . . . . . . . . . . . . . . . . . . .26-8

24.4.2

SMRAM Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-10

24.5

SMI HANDLER EXECUTION ENVIRONMENT . . . . . . . . . . . . . . . . . . . . . . . . . . 26-11

24.6

EXCEPTIONS AND INTERRUPTS WITHIN SMM . . . . . . . . . . . . . . . . . . . . . . . 26-13

24.7

MANAGING SYNCHRONOUS AND ASYNCHRONOUS
SYSTEM MANAGEMENT INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14

24.7.1

I/O State Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-14

24.8

NMI HANDLING WHILE IN SMM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-16

24.9

SAVING THE X87 FPU STATE WHILE IN SMM . . . . . . . . . . . . . . . . . . . . . . . . . 26-16

24.10

SMM REVISION IDENTIFIER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-17

24.11

AUTO HALT RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-18

24.11.1

Executing the HLT Instruction in SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-18

24.12

SMBASE RELOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-19

24.12.1

Relocating SMRAM to an Address Above 1 MByte. . . . . . . . . . . . . . . . . . . . . .26-19

24.13

I/O INSTRUCTION RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-20

24.13.1

Back-to-Back SMI Interrupts When I/O Instruction Restart Is Being
Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-21

24.14

SMM MULTIPLE-PROCESSOR CONSIDERATIONS. . . . . . . . . . . . . . . . . . . . . 26-21

24.15

DEFAULT TREATMENT OF SMI

s

AND SMM WITH VMX . . . . . . . . . . . . . . . . . 26-22

24.15.1

Default Treatment of SMI Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-22

24.15.2

Default Treatment of RSM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-22

24.15.3

Protection of CR4.VMXE in SMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-24

24.16

DUAL-MONITOR TREATMENT OF SMIs AND SMM . . . . . . . . . . . . . . . . . . . . . 26-24

24.16.1

Dual-Monitor Treatment Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-24

24.16.2

SMM VM Exits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-25

24.16.2.1

Architectural State Before a VM Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-25

24.16.2.2

Updating the Current-VMCS and Executive-VMCS Pointers . . . . . . . . . . . .26-25

24.16.2.3

Recording VM-Exit Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-25

24.16.2.4

Saving Guest State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-27

24.16.2.5

Updating Non-Register State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-27

24.16.3

Operation of an SMM Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-27

24.16.4

VM Entries that Return from SMM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-27

24.16.4.1

Checks on the Executive-VMCS Pointer Field . . . . . . . . . . . . . . . . . . . . . . .26-27

24.16.4.2

Checks on VM-Execution Control Fields . . . . . . . . . . . . . . . . . . . . . . . . . . .26-28

24.16.4.3

Checks on Guest Non-Register State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-28

24.16.4.4

Loading Guest State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-28

24.16.4.5

Updating the Current-VMCS and SMM-Transfer VMCS Pointers . . . . . . . .26-29

24.16.4.6

VM Exits Induced by VM Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-29

24.16.4.7

SMI Blocking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-29

24.16.4.8

Failures of VM Entries That Return from SMM. . . . . . . . . . . . . . . . . . . . . . .26-30

24.16.5

Enabling the Dual-Monitor Treatment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-30

24.16.6

Activating the Dual-Monitor Treatment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-32

24.16.6.1

Initial Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-32

24.16.6.2

MSEG Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-33

24.16.6.3

Updating the Current-VMCS and Executive-VMCS Pointers . . . . . . . . . . . .26-33

24.16.6.4

Loading Host State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-33

24.16.6.5

Loading MSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-36

24.16.7

Deactivating the Dual-Monitor Treatment . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26-36

Advertising