Professional Documents
Culture Documents
Page 1
TX flow:
Memory 1. The Host creates a descriptor
Host Descriptor ring and configure one of Odem
transmit queues with the
address location, length, head
Descriptor Head and tail pointers of the ring
Odem
2. On packet arrival from the
Tail TDT=2 application, Host initializes
descriptor (s) that point to the
data buffer(s). The host place
the descriptor in the correct
location at the appropriate Tx
ring
3. The Host updates the
appropriate queue tail pointer
Packet
0x123456 TDT
4. Odem reads the descriptor
5. Using the address in the
descriptor, Odem reads packet
6. Odem send packet to network
7. Odem writes back the descriptor
and interrupts the driver it is
Packet done
0x123456
DD bit Length
2 The host is requested by the TCP/IP stack to transmit a packet, it gets the packet data within one or more data buffers.
The host initializes the descriptor(s) that point to the data buffer(s) and have additional control parameters that describes the needed
3
hardware functionality. The host places that descriptor in the correct location at the appropriate Tx ring.
An interrupt is generated to notify the host driver that the specific packet has been read to Odem and the driver can then release the
15
buffer(s).
Page 5 Intel Confidential
Receive Flow basics
Page 6
RX Flow:
Packet
6. Odem writes back the
0x789ABC descriptor which contains
Length
the status of packet and
interrupts the driver that
packet received.
The host initializes descriptor(s) that point to empty data buffer(s). The host places these descriptor(s) in the
2
correct location at the appropriate Rx ring.
9 The receive DMA fetches the next descriptor from the appropriate host memory ring to be used for the next received packet.
After the entire packet is placed into an Rx FIFO, the receive DMA posts the packet data to the location indicated by the descriptor
10 through the Primary IOSF bus. If the packet size is greater than the buffer size, more descriptor(s) are fetched and their buffers are used
for the received packet.
11 When the packet is placed into host memory, the receive DMA updates all the descriptor(s) that were used by the packet data.
The receive DMA writes back the descriptor content along with status bits that indicate the packet information including what offloads
12
were done on that packet.
13 Odem initiates an interrupt to the host to indicate that a new received packet is ready in host memory.
The host reads the packet data and sends it to the TCP/IP stack for further processing. The host releases the associated buffer(s) and
14
descriptor(s) once they are no longer in use.
Page 9
Configuration – VRP programming
Page 10
Common programming problems
Check the “south” VRP tracker file to see if transactions are being
routed through VRP correctly.
MGPK registers must have B:D:F programmed correctly (normally
set correctly during model boot).
BARs should be programmed correctly (RAL automatically ties
BAR writes into the appropriate registers) but check for
misconfigured registers.
Check for overlapping memory regions or multiple devices
getting the same bus value (will cause routing errors in PSF).
Page 11
Scoreboards
Page 12
Transmit bring up flow
Gen TX packet with 1 Read until
descriptor RX descriptor[n].status.dd==1
Platform Reset and
init sequences
Read RX packet from
Write the TX packet HM associated with this
Platform Reset and the associate Descriptor using the
Init TX data phase
descriptor to the HM RX data
packetphase
length field
and
GBE initGBE
sequences per function per function
Configuration per queue per queue
Send RX packet to
phase Increment TDT by 1 SCBD in order to
compare it with TX
Initialized RX/TX
packet
Ring descriptors
Add Compare
SCBD
Page 14