background image

Vol. 3B 15-11

MACHINE-CHECK ARCHITECTURE

Corrected error count threshold, bits 14:0 — Software must initialize this field. The value is compared with 
the corrected error count field in IA32_MCi_STATUS, bits 38 through 52. An overflow event is signaled to the 
CMCI LVT entry (see Table 10-1) in the APIC when the count value equals the threshold value. The new LVT 
entry in the APIC is at 02F0H offset from the APIC_BASE. If CMCI interface is not supported for a particular 
bank (but IA32_MCG_CAP[10] = 1), this field will always read 0.

CMCI_EN (Corrected error interrupt enable/disable/indicator), bits 30 — Software sets this bit to 
enable the generation of corrected machine-check error interrupt (CMCI). If CMCI interface is not supported for 
a particular bank (but IA32_MCG_CAP[10] = 1), this bit is writeable but will always return 0 for that bank. This 
bit also indicates CMCI is supported or not supported in the corresponding bank. See Section 15.5 for details of 
software detection of CMCI facility.

Some microarchitectural sub-systems that are the source of corrected MC errors may be shared by more than one 
logical processors. Consequently, the facilities for reporting MC errors and controlling mechanisms may be shared 
by more than one logical processors. For example, the IA32_MCi_CTL2 MSR is shared between logical processors 
sharing a processor core. Software is responsible to program IA32_MCi_CTL2 MSR in a consistent manner with 
CMCI delivery and usage. 
After processor reset, IA32_MCi_CTL2 MSRs are zero’ed.

15.3.2.6   IA32_MCG Extended Machine Check State MSRs

The Pentium 4 and Intel Xeon processors implement a variable number of extended machine-check state MSRs. 
The MCG_EXT_P flag in the IA32_MCG_CAP MSR indicates the presence of these extended registers, and the 
MCG_EXT_CNT field indicates the number of these registers actually implemented. See Section 15.3.1.1, 
“IA32_MCG_CAP MSR.” A
lso see Table 15-4.

In processors with support for Intel 64 architecture, 64-bit machine check state MSRs are aliased to the legacy 
MSRs. In addition, there may be registers beyond IA32_MCG_MISC. These may include up to five reserved MSRs 
(IA32_MCG_RESERVED[1:5]) and save-state MSRs for registers introduced in 64-bit mode. See Table 15-5. 

Table 15-4.  Extended Machine Check State MSRs

in Processors Without Support for Intel 64 Architecture

MSR

Address

Description

IA32_MCG_EAX

180H

Contains state of the EAX register at the time of the machine-check error.

IA32_MCG_EBX

181H

Contains state of the EBX register at the time of the machine-check error.

IA32_MCG_ECX

182H

Contains state of the ECX register at the time of the machine-check error.

IA32_MCG_EDX

183H

Contains state of the EDX register at the time of the machine-check error.

IA32_MCG_ESI

184H

Contains state of the ESI register at the time of the machine-check error.

IA32_MCG_EDI

185H

Contains state of the EDI register at the time of the machine-check error.

IA32_MCG_EBP

186H

Contains state of the EBP register at the time of the machine-check error.

IA32_MCG_ESP

187H

Contains state of the ESP register at the time of the machine-check error.

IA32_MCG_EFLAGS

188H

Contains state of the EFLAGS register at the time of the machine-check error.

IA32_MCG_EIP

189H

Contains state of the EIP register at the time of the machine-check error.

IA32_MCG_MISC

18AH

When set, indicates that a page assist or page fault occurred during DS normal 

operation.

Table 15-5.  Extended Machine Check State MSRs 

In Processors With Support For Intel 64 Architecture

MSR

Address

Description

IA32_MCG_RAX

180H

Contains state of the RAX register at the time of the machine-check error.

IA32_MCG_RBX

181H

Contains state of the RBX register at the time of the machine-check error.