E.2.2 undi command format – Intel Extensible Firmware Interface User Manual

Page 879

Advertising
background image

32/64-Bit UNDI Specification

Version 1.10

12/01/02

E-13

E.2.2

UNDI Command Format

The format of the CDB is the same for all UNDI commands. Figure E-4 shows the structure of the
CDB. Some of the commands do not use or always require the use of all of the fields in the CDB.
When fields are not used they must be initialized to zero or the UNDI will return an error. The
StatCode and StatFlags fields must always be initialized to zero or the UNDI will return an error.
All reserved fields (and bit fields) must be initialized to zero or the UNDI will return an error.

Basically, the rule is: Do it right, or don’t do it at all.

OM13185

CDB

Command Descriptor Block

Offset

0x00

0x04

0x08

0x0C

0x00

0x01

0x02

0x03

OpCode OpFlags

CPBaddr

DBaddr

0x10

0x14

0x18

0x1C

CPBsize DBsize

StatCode StatFlags

IFnum Control

Figure E-4. UNDI Command Descriptor Block (CDB)

Descriptions of the CDB fields are given in Table E-5.

Table E-5. UNDI CDB Field Definitions

Identifier Description

OpCode

Operation Code (Function Number, Command Code, etc.)

This field is used to identify the command being sent to the UNDI. The meanings of
some of the bits in the OpFlags and StatFlags fields, and the format of the CPB and DB
structures depends on the value in the OpCode field. Commands sent with an OpCode
value that is not defined in this specification will not be executed and will return a
StatCode of

PXE_STATCODE_INVALID_CDB

.

OpFlags

Operation Flags

This bit field is used to enable/disable different features in a specific command operation.
It is also used to change the format/contents of the CPB and DB structures. Commands
sent with reserved bits set in the OpFlags field will not be executed and will return a
StatCode of

PXE_STATCODE_INVALID_CDB

.

continued

Advertising