1 determining the signature – Intel IA-32 User Manual

Page 421

Advertising
background image

Vol. 3A 9-47

PROCESSOR MANAGEMENT AND INITIALIZATION

CPUID returns a value in a model specific register in addition to its usual register return values.
The semantics of CPUID cause it to deposit an update ID value in the 64-bit model-specific
register at address 08BH (IA32_BIOS_SIGN_ID). If no update is present in the processor, the
value in the MSR remains unmodified. The BIOS must pre-load a zero into the MSR before
executing CPUID. If a read of the MSR at 8BH still returns zero after executing CPUID, this
indicates that no update is present.

The update ID value returned in the EDX register after RDMSR executes indicates the revision
of the update loaded in the processor. This value, in combination with the CPUID value returned
in the EAX register, uniquely identifies a particular update. The signature ID can be directly
compared with the update revision field in a microcode update header for verification of a
correct load. No consecutive updates released for a given stepping of a processor may share the
same signature. The processor signature returned by CPUID differentiates updates for different
steppings.

9.11.7.1

Determining the Signature

An update that is successfully loaded into the processor provides a signature that matches the
update revision of the currently functioning revision. This signature is available any time after
the actual update has been loaded. Requesting the signature does not have a negative impact
upon a loaded update.

The procedure for determining this signature shown in Example 9-9.

Example 9-9. Assembly Code to Retrieve the Update Revision

MOV

ECX, 08BH

;IA32_BIOS_SIGN_ID

XOR

EAX, EAX

;clear EAX

XOR

EDX, EDX

;clear EDX

WRMSR

;Load 0 to MSR at 8BH

MOV

EAX, 1

cpuid

MOV

ECX, 08BH

;IA32_BIOS_SIGN_ID

rdmsr

;Read Model Specific Register

If there is an update active in the processor, its revision is returned in the EDX register after the
RDMSR instruction executes.

IA32_BIOS_SIGN_ID

Microcode Update Signature Register

MSR Address:

08BH Accessed as a Qword

Default Value:

XXXX XXXX XXXX XXXXh

Access:

Read/Write

Advertising