Extensible Firmware Interface Specification
422 12/12/00 Version 1.02
// This field can be set to zero if virtual and physical
// addresses are equal.
PXE_UINT64 Virt2Phys;
PXE_UINT64 Mem_IO;
} PXE_CPB_START;
#pragma pack()
#define PXE_DELAY_MILLISECOND 1000
#define PXE_DELAY_SECOND 1000000
#define PXE_IO_READ 0
#define PXE_IO_WRITE 1
#define PXE_MEM_READ 2
#define PXE_MEM_WRITE 4
G.4.3.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. UNDI is now started.
COMMAND_FAILED Command failed. StatCode field contains error code.
COMMAND_QUEUED Command has been queued.
INITIALIZE Command has been not executed or queued.
G.4.3.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. UNDI is now started.
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.
ALREADY_STARTED The UNDI is already started.
G.4.4 Stop
This command is used to change the UNDI operational state from started to stopped.