Intel IA-32 User Manual

Page 427

Advertising
background image

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

Advertising