
Chapter 3
Functional Operation
83
24674
Rev. 3.00
April 2003
AMD-8111 HyperTransport I/O Hub Data Sheet
AMD Preliminary Information
Whenever the DMA controller finishes copying a transmit frame from system memory, it sets the
TINTx bit of INT0 that corresponds to the descriptor ring number to indicate that the buffers are no
longer needed. This causes an interrupt signal if the INTREN bit of CMD0 the corresponding
TINTENx bit of INTEN0 have been set.
3.10.2.7
Receive Polling
The receive polling process is also started by the host CPU when it sets the Receive Demand
(RDMD) bit in the CMD0 register. Whenever the host CPU releases a receive buffer or group of
receive buffers to the controller, it must set the RDMD bit. If the controller does not already own a
receive buffer, the DMU polls the receive descriptor ring when RDMD is set. When a frame arrives
from the network, the controller copies the frame to the next available receive buffer and then
automatically polls the next descriptor.
The network controller provides a means to reduce the number of transmit interrupts by postponing
the interrupt to the CPU until a programmable number of interrupt events have occurred or a
programmable amount of time has elapsed since the first interrupt event occurred. See
Section 3.10.15 on page 123.
When receive activity is present on the channel, the controller waits until 64 bytes have been received.
If the frame is accepted based on all active addressing schemes at that time, the DMU is notified that
a frame has been received.
As receive buffers become available in system memory, the DMA controller copies frame data from
the receive FIFO into system memory. The controller sets the STP bit in the first descriptor of a frame.
If the frame length exceeds the length of the current buffer, the controller passes ownership back to
the system by writing 0s to the OWN and ENP bits of the descriptor when the first buffer is full. This
activity continues until the controller recognizes the completion of the frame (the last byte of this
receive message has been removed from the FIFO). The controller subsequently updates the current
receive descriptor with the frame status (message byte count, VLAN info, error flags, etc.) and sets
the ENP bit to 1. The controller then advances the internal ring pointer to make the next receive
descriptor the new current receive descriptor.
If the driver does not provide the network controller with a descriptor in a timely fashion, the receive
FIFO will eventually overflow. Subsequent frames are discarded and the RcvMissPkts MIB counter is
incremented. Normal receive operation resumes when a descriptor is provided to the controller and
sufficient data has been transferred from the network controller's receive FIFO into the system
memory.
3.10.3
Software Interrupt Timer
The network controller is equipped with a software programmable free-running interrupt timer. The
timer is constantly running and generates an interrupt STINT (INT0, bit 4) when STINTEN
(INTEN0, bit 4) is set to 1. After generating the interrupt, the software timer loads the value stored in
STVAL and restarts. The timer value STVAL is interpreted as an unsigned number with a resolution
of 10.24
μ
s. For instance, a value of 98 (62h) corresponds to 1.0 ms. The default value of STVAL is