Intel 64 and IA-32 Architectures Software Developers Manual Volume 3A, System Programming Guide, Part 1
Vol. 3A 9-49
PROCESSOR MANAGEMENT AND INITIALIZATION
IA32_BIOS_SIGN_ID Microcode Update Signature Register
MSR Address: 08BH Accessed as a Qword
Default Value: XXXX XXXX XXXX XXXXh
Access: Read/Write
The IA32_BIOS_SIGN_ID register is used to report the microcode update signature
when CPUID executes. The signature is returned in the upper DWORD (Table 9-11).
9.11.7.2 Authenticating the Update
An update may be authenticated by the BIOS using the signature primitive,
described above, and the algorithm in Example 9-10.
Example 9-10. Pseudo Code to Authenticate the Update
Z ← Obtain Update Revision from the Update Header to be authenticated;
X ← Obtain Current Update Signature from MSR 8BH;
If (Z > X)
{
Load Update that is to be authenticated;
Y ← Obtain New Signature from MSR 8BH;
If (Z == Y)
Success
Else
Fail
}
Else
Fail
Example 9-10 requires that the BIOS only authenticate updates that contain a
numerically larger revision than the currently loaded revision, where Current Signa-
ture (X) < New Update Revision (Z). A processor with no loaded update is considered
to have a revision equal to zero.
Table 9-11. Microcode Update Signature
Bit Description
63:32 Microcode update signature. This field contains the signature of the currently loaded
microcode update when read following the execution of the CPUID instruction, function
1. It is required that this register field be pre-loaded with zero prior to executing the
CPUID, function 1. If the field remains equal to zero, then there is no microcode update
loaded. Another non-zero value will be the signature.
31:0 Reserved.