Intel 82558 Switch User Manual


 
Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual 103
Host Software Interface
For every frame, the RU configures a RFD in memory. The loading of each buffer is done by the
receive DMA in parallel with pre-fetching the next buffer by the RU. After completing frame
reception, the RU closes the last RFD and configures the structure for receiving the next frame.
6.4.3.3.1 Configuring the Next RFD
The RU performs the following sequence to set up a RFD.
1. Reads the 4 Dwords of the current RFD and saves the EL and S bits internally.
2. Analyzes the link offset of the current RFD and saves it as the address of the next RFD.
3. Initiates a receive DMA if the size of the data field in the RFD is greater than zero. The receive
DMA is initiated with the address of the first byte of the destination address to the byte count
specified by the RFD.
4. Forces a receive DMA completion if the size of the data field in the RFD is zero.
5. Goes to the buffer pre-fetch and transfer cycle.
6.4.3.3.2 Close Frame
When the RU reads an end of frame from the receive FIFO (indicating the end of a received or
discarded frame), it performs the following sequence to close the frame:
1. Reads the status from the receive FIFO and saves it internally.
2. Skips to the completion of reception sequence if the RU is not in the ready state.
3. Reclaims the RFD if the frame status indicates that there is an error (including short frame)
and the save bad frame configuration parameter is zero. In addition to reclaiming the RFD, the
device backs up the current RFD to the next RFD and jumps to step 8. If a header RFD is being
used and the header field was filled, the RFD is not reclaimed.
4. Writes C equal to 1, OK equal to 0, status bit 9 equal to 1, and the remaining bits from the
CSMA/CD module to the status word of the current RFD if the RU ran out of resources during
reception of this frame.
5. Writes C equal to 1 and the remaining bits from the CSMA/CD module to the status word if
the RU did not run out of resources.
6. Requests FR interrupt.
7. Creates a new RFD if the S bit was not set and the RU did not run out of resources.
8. Goes to completion of reception of frame.
6.4.3.3.3 Completion of Reception
Reception completion occurs when the RU encounters an end of frame regardless of its state. The
procedure is determined by the following: EL bit, S bit, RU start request, and RU resources. The
following sequence is performed by the RU at the completion of reception:
1. If the RU ran out of buffers or frame descriptors during current frame reception, then the state
changes to no resources. The RU requests an RNR interrupt, sets the internal S bit, and starts
discarding frames.
2. If the S bit of current frame is set but the RU start request is not and the RU is in the ready
state, an RNR interrupt request is initiated and the state is changed to suspended.
3. If the RU start request bit is set but the S bit is not, then the RU state is changed to ready and a
new RFD is created.