background image

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 + (size of microcode update / 2048)

}

//

//

Enable Update Loading, and inform user