3 processor identification – Intel IA-32 User Manual

Page 415

Advertising
background image

Vol. 3A 9-41

PROCESSOR MANAGEMENT AND INITIALIZATION

9.11.3

Processor Identification

Each microcode update is designed to for a specific processor or set of processors. To determine
the correct microcode update to load, software must ensure that one of the processor signatures
embedded in the microcode update matches the 32-bit processor signature returned by the
CPUID instruction when executed by the target processor with EAX = 1. Attempting to load a
microcode update that does not match a processor signature embedded in the microcode update
with the processor signature returned by CPUID will cause the processor to reject the update.

Example 9-5 shows how to check for a valid processor signature match between the processor
and microcode update.

Example 9-5. Pseudo Code to Validate the Processor Signature

ProcessorSignature

← CPUID(1):EAX

If (Update.HeaderVersion == 00000001h)

{

// first check the ProcessorSignature field

If (ProcessorSignature == Update.ProcessorSignature)

Success

// if extended signature is present

Else If (Update.TotalSize > (Update.DataSize + 48))

{

//

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

// location of Update.ProcessorSignature[0].

//

For (N

← 0; ((N < Update.ExtendedSignatureCount) AND

(ProcessorSignature != Update.ProcessorSignature[N])); N++);

// if the loops ended when the iteration count is

// less than the number of processor signatures in

// the table, we have a match

If (N < Update.ExtendedSignatureCount)

Success

Else

Fail

}

Else

Fail

Else

Fail

Advertising