32/64-bit UNDI Specification
Version 1.02 12/12/00 383
G.2.1.1 Issuing UNDI CommandsHow commands are written and status is checked varies a little depending on the type of UNDI
(H/W or S/W) implementation being used. The command flowchart below is a high level diagram
on how commands are written to both H/W and S/W UNDI.
Step 1.
Fill in CDB(s). Commands may
be linked if supported by UNDI.
Step 2 (H/W UNDI)
Write physical address of first
CDB to CDBaddr register.
Step 3 (H/W UNDI)
Initiate command execution (write
to UNDI Command port).
Step 4 (H/W UNDI)
Wait for completion status. Can
be polled in separate thread or
interrupt driven, if supported by
UNDI.
Step 5.
Issue more commands.
Step 2 (S/W UNDI)
Push virtual address of first CDB
onto CPU stack.
Step 3 (S/W UNDI)
Initiate command execution (Call
S/W UNDI API entry point).
Step 4 (S/W UNDI)
Wait for completion status. Some
S/W UNDI implementations can
be polled or interrupt driven,
others will not return until
command execution completes.
CDB
CDB
CDB
CDB
CDB