beautypg.com

8 function 03h-read microcode update data – Intel IA-32 User Manual

Page 436

background image

9-62 Vol. 3A

PROCESSOR MANAGEMENT AND INITIALIZATION

The READ_FAILURE error code returned by this function has meaning only if the control func-
tion is implemented in the BIOS NVRAM. The state of this feature (enabled/disabled) can also
be implemented using CMOS RAM bits where READ failure errors cannot occur.

9.11.8.8

Function 03H—Read Microcode Update Data

This function reads a currently installed microcode update from the BIOS storage into a caller-
provided RAM buffer. Table 9-17 lists the parameters and return codes for the function.

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

Input

AX

Function Code

0D042H

BL

Sub-function

03H - Read Update

ES:DI

Buffer Address

Real Mode pointer to the Intel Update structure that will be
written with the binary data

ECX

Scratch Pad1

Real Mode Segment address of 64 KBytes of RAM Block
(lower 16 bits)

ECX

Scratch Pad2

Real Mode Segment address of 64 KBytes of RAM Block
(upper 16 bits)

DX

Scratch Pad3

Real Mode Segment address of 64 KBytes of RAM Block

SS:SP

Stack pointer

32 KBytes of Stack Minimum

SI

Update Number

This is the index number of the update block to be read. This
value is zero based and must be less than the update count
returned from the presence test function.

Output

CF

Carry Flag

Carry Set - Failure - AH contains Status

Carry Clear - All
return values
are valid.

AH

Return Code

Status of the Call

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.