Intel 82550 Switch User Manual


 
108 Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual
Host Software Interface
6.5.4 Receive Unit Control
The receive unit (RU) is the logical unit that receives frames and stores them in memory. It uses
free buffers and descriptors prepared by the CPU. This section describes how the CPU controls
frame reception (starts, stops, suspends, and resumes the RU). Reception can also be halted due to
a no resource condition.
The RU is modeled as a logical machine that takes one of the following states at any given time.
Software can determine the current RU status by reading the SCB status word in the CSR (bits 5:2).
Idle (0000). The RU has no memory resources and is discarding incoming frames. This is the
initial RU state after reset.
No Resources Due to No More RFDs (0010). The RU has no memory resources due to a
lack of RFDs and is discarding incoming frames. This state differs from the idle state in that
the RU accumulates statistics on the number of frames it has to discard. The 8255x enters this
state after it processes an RFD that its EL bit set.
Suspended (0001). The RU discards all incoming frames even though free memory resources
exist to store incoming frames. The 8255x enters this state after it processes an RFD with its S
bit set.
Ready (0100). The RU has free memory resources and is ready to store incoming frames.
Table 56. RU Control Commands: Actions at Acceptance Time
RU Start RU Resume RU Abort
Present
State
Next
State
Action
Next
State
Action
Next
State
Action
RU Not Actively Receiving
Idle Ready
Set Up
RFD
Idle None Idle None
No
Resources
due to no
RFDs
Ready
Set Up
RFD
Prohibited N/A Idle None
Suspended Ready
Set Up
RFD
Ready
Set Up
RFD
Idle None
Ready Prohibited N/A Prohibited N/A Idle
Start
Discard -
RNR
Interrupt
RU Actively Receiving
Idle Idle
Request
Start
Idle None Idle None
No
Resources
due to No
RFDs
No
Resource
due to No
RFDs
Request
Start
Prohibited N/A Idle None
Suspended Suspend
Request
Start
Suspend
Request
Resume
Idle None
Ready Prohibited N/A Prohibited N/A Idle
Abort
DMA -
Start
Discard -
RNR
Interrupt