Vol. 3A 9-53
PROCESSOR MANAGEMENT AND INITIALIZATION
For each processor
{If ((this is a unique processor stepping) AND
(we have a unique update in the database for this processor))
{Checksum the update from the database;
If Checksum fails
exit
NumBlocks NumBlocks + size of microcode update / 2048
}
}
//
// Do we have enough update slots for all CPUs?
//
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