Intel 82557 Switch User Manual


 
Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual 109
Host Software Interface
Frames arrive at the device independent of the state of the RU. When a frame is arriving, the 8255x
is referred to as actively receiving, even when the RU is not in the ready state and the frame is
being discarded.
Software can affect RU operation in three ways: by issuing an RU control command, by setting bits
in the RFD. In general, software can cause the RU to do the following:
Start frame reception.
Resume reception if the RU is in the suspended state.
Abort reception immediately and return to the idle state.
Stop reception after a specified RFD is filled (frame received). This RFD is referred to by the
8255x as the last RFD on the list.
Suspend reception after a specified RFD is filled (frame received).
The RU issues an interrupt after every received frame. The 8255x may issue two interrupts for one
frame if the RU is using header RFDs. There are two important points of time in frame reception:
Acceptance time. This is the time after an RU command is issued by software (written to the
SCB command byte). It is when the RU reads the control command, takes initial action, and
clears the SCB command byte.
Completion of Reception. This is the time the RU finishes receiving or discarding an
incoming frame.
The RU uses an internal RU start request flag to remember RU start requests from acceptance time
that are to be acted on at completion of reception. The RU starts analyzing the command at
acceptance time after the CU has passed the control command to the RU and finished accepting its
own control command. The SCB RU control field can take one of the following values:
RU_START, RU_ABORT, or LOAD_HDS.
6.5.4.1 RU Start Command
For the RU start (RU_START) command, the CPU activates the RU for frame reception. At
acceptance time, the RU may or may not be actively receiving a frame. The RU performs the
following when it is actively receiving a frame when an RU_START command is accepted:
1. Reads the RFA Offset word from the SCB and saves it internally as the pointer to the next
RFD.
2. Sets the internal RU_START_REQUEST flag. When the current frame has been received or
discarded the RU goes to the Ready state and sets up the next RFD.
When an RU_START command is accepted, the RU performs the following sequence when NOT
actively receiving a frame.
Clears the internal RU_START_REQUEST flag.
Reads the RFA Offset word from the SCB and saves it internally as the pointer to the next RFD.
If the RU is not in the READY state and the DMA did not transfer any data to the current RFD, it
does the following. It stops discarding, goes to the READY state, gives up the pre-fetched current
buffers, and sets up a new RFD. Setting up a new RFD uses the pointer to the next RFD to prepare
to receive the next frame.