9-64 Vol. 3
PROCESSOR MANAGEMENT AND INITIALIZATION
The read function enables the caller to read any microcode update data that already
exists in a BIOS and make decisions about the addition of new updates. As a result
of a successful call, the BIOS copies the microcode update into the location pointed
to by ES:DI, with the contents of all Update block(s) that are used to store the spec-
ified microcode update.
If the specified block is not a header block, but does contain valid data from a micro-
code update that spans multiple update blocks, then the BIOS must return Failure
with the NOT_EMPTY error code in AH.
An update block is considered unused and available for storing a new update if its
Header Version contains the value 0FFFFFFFFH after return from this function call.
The actual implementation of NVRAM storage management is not specified here and
is BIOS dependent. As an example, the actual data value used to represent an
empty block by the BIOS may be zero, rather than 0FFFFFFFFH. The BIOS is respon-
sible for translating this information into the header provided by this function.
9.11.8.9 Return Codes
After the call has been made, the return codes listed in Table 9-18 are available in the
AH register.
AL OEM Error Additional OEM Information
Return Codes (see Table 9-18 for code definitions)
SUCCESS The function completed successfully.
READ_FAILURE There was a failure because of the
inability to read the storage device.
UPDATE_NUM_INVALID Update number exceeds the maximum
number of update blocks implemented
by the BIOS.
NOT_EMPTY The specified update block is a
subsequent block in use to store a valid
microcode update that spans multiple
blocks.
The specified block is not a header block
and is not empty.

Table 9-17. Parameters for the Read Microcode Update Data Function (Contd.)