8/01/00
Am79C976
A-6
P R E L I M I N A R Y
descriptor, unless the previous STP descriptor in the
ring is also OWNED by the software.
When LAPPEN = 1, then hardware will use a modified
form of descriptor
parsing
as follows:
I
The controller will examine OWN and STP to deter-
mine where to begin placing an RCV frame. A new
RCV frame will only begin in a buffer that has
OWN = 1 and STP =1.
I
The controller will always obey the OWN bit for de-
termining whether or not it may use the next buffer
for a chain.
I
The controller will always mark the end of a frame
with either ENP = 1 or ERR = 1.
The controller will discard all descriptors with OWN = 1
and STP = 0 and move to the next descriptor when
searching for a place to begin a new frame. It discards
these descriptors by simply changing the ownership bit
from OWN = 1 to OWN = 0. Such a descriptor is unused
for receive purposes by the controller, and the driver
must recognize this. (The driver will recognize this if it
follows the software rules.)
The controller will ignore all descriptors with OWN = 0
and STP = 0 and move to the next descriptor when
searching for a place to begin a new frame. In other
words, the controller is allowed to skip entries in the
ring that it does not own, but only when it is looking for
a place to begin a new frame.
Some Examples of LAPP Descriptor
Interaction
Choose an expected frame size of 1060 bytes. Choose
buffer sizes of 800, 200, and 200 bytes.
I
Example 1
: Assume that a 1060 byte frame arrives
correctly, and that the timing of the early interrupt
and the software is smooth. The descriptors will
have changed from:
I
Example 2
: Assume that instead of the expected
1060 byte frame, a 900 byte frame arrives, either
because there was an error in the network, or be-
cause this is the last frame in a file transmission se-
quence
Note:
The Am79C976 controller might write a ZERO
to ENP location in the third descriptor. Here are the two
possibilities:
1. If the controller finishes the data transfers into buffer
number 2 after the driver writes the application
modified buffer pointer into the third descriptor, then
Descriptor
Number
1
2
3
Before the Frame Arrives
OWN
STP
1
1
0
After the Frame Arrives
OWN
0
0
0
Comments (After
Frame Arrival)
Bytes 1-800
Bytes 801-1000
Bytes 1001-1060
Controller
’
s current
location
Not yet used
Not yet used
Net yet used
ENP
a
X
X
X
STP
1
0
0
ENP
E
0
0
1
1
0
0
4
1
1
X
1
1
X
5
6
1
0
1
0
0
1
X
X
X
1
0
1
0
0
1
X
X
X
etc.
& b. ENP or ERR
Descriptor
Number
1
2
3
Before the Frame Arrives
OWN
STP
1
1
0
After the Frame Arrives
OWN
0
0
0
Comments (After
Frame Arrival)
Bytes 1-800
Bytes 801-1000
Discarded buffer
Controller
’
s current
location
Not yet used
Not yet used
Net yet used
ENP
a
X
X
X
STP
1
0
0
ENP
E
0
0
*
1
0
0
4
1
1
X
1
1
X
5
6
1
0
1
0
0
1
X
X
X
1
0
1
0
0
1
X
X
X
etc.
& b. ENP or ERR