















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Main points are: Transmit Works, List of Buffer-Descriptors, Random Access Memory, Registers’ Names, Circular Buffer, Descriptor Control, Transmit Control, Configuration Word, Suggested C Syntax, Bit-Mask Definitions
Typology: Slides
1 / 23
This page cannot be seen from the preview
Don't miss anything!
















We setup each data-packets that we want to be transmitted in a ‘Buffer’ area in ram
We also create a list of buffer-descriptors and inform the NIC of its location and size
Then, when ready, we tell the NIC to ‘Go!’ (i.e., start transmitting), but let us know when these transmissions are ‘Done’
Memory-information registers
TDBA(L/H) = Transmit-Descriptor Base-Address Low/High (64-bits)
TDLEN = Transmit-Descriptor array Length
TDH = Transmit-Descriptor Head
TDT = Transmit-Descriptor Tail
Transmit-engine control registers
TXDCTL = Transmit-Descriptor Control Register
TCTL = Transmit Control Register
Notification timing registers
TIDV = Transmit Interrupt Delay Value
TADV = Transmit-interrupt Absolute Delay Value
0 0 0 0 0 0 0
“This register controls the fetching and write back of transmit descriptors. The three threshhold values are used to determine when descriptors are read from, and written to, host memory. Their values can be in units of cache lines or of descriptors (each descriptor is 16 bytes), based on the value of the GRAN bit (0=cache lines, 1=descriptors). When GRAN = 1, all descriptors are written back (even if not requested).” --Intel manual
SW XOFF
COLD (upper 6-bits) (COLLISION DISTANCE)
COLD (lower 4-bits)
mode
EN = Transmit Enable SWXOFF = Software XOFF Transmission
PSP = Pad Short Packets RLTC = Retransmit on Late Collision
CT = Collision Threshold (=0xF) UNORTX = Underrun No Re-Transmit
COLD = Collision Distance (=0x3F) TXCSCMT = TxDescriptor Minimum Threshold
MULR = Multiple Request Support
DD = Descriptor Done
this bit is written back after the NIC processes the descriptor provided the descriptor’s RS-bit was set (i.e., Report Status)
EC = Excess Collisions
indicates that the packet has experienced more than the maximum number of excessive collisions (as defined by the TCTL.CT field) and therefore was not transmitted. (This bit is meaningful only in HALF-DUPLEX mode.)
LC = Late Collision
indicates that Late Collision has occurred while operating in HALF-DUPLEX mode. Note that the collision window size is dependent on the SPEED: 64-bytes for 10/100-MBps, or 512-bytes for 1000-Mbps.
enum {
DD = (1<<0), // Descriptor Done
EC = (1<<1), // Excess Collisions
LC = (1<<2), // Late Collision
EOP = (1<<0), // End Of Packet
IFCS = (1<<1), // Insert Frame CheckSum
IC = (1<<2), // Insert CheckSum as per CSO/CSS
RS = (1<<3), // Report Status
DEXT = (1<<5), // Descriptor Extension
VLE = (1<<6), // VLAN packet
IDE = (1<<7) // Interrupt-Delay Enable
};
GIO Master EN
PHY reset ASDV
F D
Function ID
L U
SPEED
some undocumented functionality?
Tx LS Flow =
Phy Pwr Down En
Dyn GE
ASDCHK = AutoSpeed Detection Check TxLSFlow = Tx Large-Send Flow EERST = EEPROM Reset TxLS = Tx Large-Send functionality SPDBYPS = Speed-selection Bypass PBPAREN = Packet-Buffer Parity-Error Detect RODIS = Relaxed-Ordering Disable DFPAREN = Descriptor-FIFO Parity-Error Detect DMADynGE = DMA Dynamic-Gating Enable IAME = Interrupt-Acknowledge Auto-Mask Enable PhyPwrDownEn = Phy PowerDown Enable ITCE = Interrupt Timers Cleared Enable