background image

Vol. 3A 9-33

PROCESSOR MANAGEMENT AND INITIALIZATION

Access:

Read Only

IA32_PLATFORM_ID is a 64-bit register accessed only when referenced as a Qword through a RDMSR instruction.

To validate the platform information, software may implement an algorithm similar to the algorithms in 
Example 9-6.

Example 9-6.  Pseudo Code Example of Processor Flags Test

Flag 

← 1 << IA32_PLATFORM_ID[52:50]

If (Update.HeaderVersion = 00000001h)

{

If (Update.ProcessorFlags & Flag)

{

Load Update

}

Else

{

//

// Assume the Data Size has been used to calculate the 

// location of Update.ProcessorSignature[N] and a match

// on Update.ProcessorSignature[N] has already succeeded

//

If (Update.ProcessorFlags[n] & Flag)

{

Load Update

}

}

}

9.11.5 Microcode 

Update 

Checksum

Each microcode update contains a DWORD checksum located in the update header. It is software’s responsibility to 
ensure that a microcode update is not corrupt. To check for a corrupt microcode update, software must perform a 
unsigned DWORD (32-bit) checksum of the microcode update. Even though some fields are signed, the checksum 

Table 9-11.  Processor Flags

Bit

Descriptions

63:53

Reserved

52:50

Platform Id Bits (RO). The field gives information concerning the intended platform for the processor. See also Table 9-8.

52 51 50
0

0

0

Processor  Flag  0

0

0

1

Processor  Flag  1

0

1

0

Processor  Flag  2

0

1

1

Processor  Flag  3

1

0

0

Processor  Flag  4

1

0

1

Processor  Flag  5

1

1

0

Processor  Flag  6

1

1

1

Processor  Flag  7

49:0

Reserved