Vol. 3A 9-41
PROCESSOR MANAGEMENT AND INITIALIZATION
If there are more blocks required to support the unique processor steppings than update blocks
provided by the BIOS exit
//
//
Do we need any update blocks at all? If not, we are done
//
If (NumBlocks = 0)
exit
//
//
Record updates for processors in NVRAM.
//
For (I=0; I<NumBlocks; I++)
{
//
//
Load each Update
//
Issue the WriteUpdate function
If (STORAGE_FULL) returned
{
Display Error -- BIOS is not managing NVRAM appropriately
exit
}
If (INVALID_REVISION) returned
{
Display Message: More recent update already loaded in NVRAM for
this stepping
continue
}
If any other error returned
{
Display Diagnostic
exit
}
//
//
Verify the update was loaded correctly
//
Issue the ReadUpdate function
If an error occurred
{
Display Diagnostic
exit
}
//
//
Compare the Update read to that written
//
If (Update read
≠ Update written)
{
Display Diagnostic
exit
}
I
← I + (size of microcode update / 2048)
}
//
//
Enable Update Loading, and inform user