E.4.15.2 waiting for the command to execute, E.4.15.3 checking command execution results – Intel Extensible Firmware Interface User Manual
Page 943
32/64-Bit UNDI Specification
Version 1.10
12/01/02
E-77
Bulk NvData CPB
// When using bulk update, the size of the CPB structure must be
// the same size as the nonvolatile NIC storage.
typedef union u_pxe_cpb_nvdata_bulk {
// Array of byte-wide data items.
PXE_UINT8
Byte[n];
// Array of word-wide data items.
PXE_UINT16
Word[n];
// Array of dword-wide data items.
PXE_UINT32
Dword[n];
} PXE_CPB_NVDATA_BULK;
E.4.15.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. Nonvolatile data is updated from CPB
and/or written to DB.
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.15.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. Nonvolatile data is updated from CPB
and/or written to DB.
INVALID_CDB
One of the CDB fields was not set correctly.
INVALID_CPB
One of the CPB 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.
UNSUPPORTED
Requested operation is unsupported.