beautypg.com

E.4.10.2 waiting for the command to execute, E.4.10.3 checking command execution results – Intel Extensible Firmware Interface User Manual

Page 931

background image

32/64-Bit UNDI Specification

Version 1.10

12/01/02

E-65

E.4.10.2

Waiting for the Command to Execute

Monitor the upper two bits (14 & 15) in the

CDB.StatFlags

field. Until these bits change to

report

PXE_STATFLAGS_COMMAND_COMPLETE

or

PXE_STATFLAGS_COMMAND_FAILED

,

the command has not been executed by the UNDI.

StatFlags Reason

COMMAND_COMPLETE

Command completed successfully. Check StatFlags.

COMMAND_FAILED

Command failed. StatCode field contains error code.

COMMAND_QUEUED

Command has been queued.

INITIALIZE

Command has been not executed or queued.

E.4.10.3

Checking Command Execution Results

After command execution completes, either successfully or not, the

CDB.StatCode

field

contains the result of the command execution.

StatCode Reason

SUCCESS

Command completed successfully. Check StatFlags.

INVALID_CDB

One of the CDB fields was not set correctly.

BUSY

UNDI is already processing commands. Try again later.

QUEUE_FULL

Command queue is full. Try again later.

NOT_STARTED

The UNDI is not started.

NOT_INITIALIZED

The UNDI is not initialized.

StatFlags

If the command was successful, the

CDB.StatFlags

field reports which external interrupt

enable types are currently set. Possible

CDB.StatFlags

bit settings are:

PXE_STATFLAGS_INTERRUPT_RECEIVE

PXE_STATFLAGS_INTERRUPT_TRANSMIT

PXE_STATFLAGS_INTERRUPT_COMMAND

The bits set in

CDB.StatFlags

may be different than those that were requested in

CDB.OpFlags

. For example: If transmit and receive share an external interrupt line, setting

either the transmit or receive interrupt will always enable both transmit and receive interrupts. In
this case both transmit and receive interrupts will be reported in

CDB.StatFlags

. Always

expect to get more than you ask for!