EasyManua.ls Logo

Intel Extensible Firmware Interface - Page 449

Intel Extensible Firmware Interface
494 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
32/64-bit UNDI Specification
Version 1.02 12/12/00 431
Preparing the CPB
If the MemoryRequired field returned in the PXE_DB_GET_INIT_INFO structure is zero, the
Initialize command does not need to be given a memory buffer or even a CPB structure. If the
MemoryRequired field is non-zero, the Initialize command does need a memory buffer.
#pragma pack(1)
typedef struct s_pxe_cpb_initialize {
// Address of first (lowest) byte of the memory buffer. This
// buffer must be in contiguous physical memory and cannot be
// swapped out. The UNDI will be using this for transmit and
// receive buffering.
PXE_UINT64 MemoryAddr;
// MemoryLength must be greater than or equal to MemoryRequired
// returned by the Get Init Info command.
PXE_UINT32 MemoryLength;
// Desired link speed in Mbit/sec. Common ethernet values are
// 10, 100 and 1000. Setting a value of zero will auto-detect
// and/or use the default link speed (operation depends on
// UNDI/NIC functionality).
PXE_UINT32 LinkSpeed;
// Suggested number and size of receive and transmit buffers to
// allocate. If MemoryAddr and MemoryLength are non-zero, this
// allocation comes out of the supplied memory buffer. If
// MemoryAddr and MemoryLength are zero, this allocation comes
// out of memory on the NIC.
// If these fields are set to zero, the UNDI will allocate buffer
// counts and sizes as it sees fit.
PXE_UINT16 TxBufCnt;
PXE_UINT16 TxBufSize;
PXE_UINT16 RxBufCnt;
PXE_UINT16 RxBufSize;

Table of Contents

Related product manuals