SMSC LAN83C171

LAN83C171
ADVANCE INFORMATION
LAN83C171 - EPIC/XF
ACPI/PC 97 Compliant Integrated PCI 10/100
Mbps Fast Ethernet Controller
FEATURES
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
IEEE 802.3 Compatible 10/100 Mbps Fast
Ethernet Controller
Fully Compliant Glueless PCI Version 2.1
Bus Interface
Support Included for CardBus Status
Registers
PCI Universal 3V/5V Output Drives
Preemptive Interrupt Support for Efficient
Network Packet Processing
High Performance Two Channel Bus Master
(132 Mbps)
Scatter/Gather DMA Capability
Programmable Burst Length Counter
ACPI Compliant for
PCI Bus Class Specification
Network Device Class Specification
PC 97 Compliant
Wake-Up on Magic PacketTM Detection
and/or Network Link-Down Occurrence
Special Low Power State Mode For
Scanning Magic PacketsTM Upon PCI Bus
Power Loss
Supports Chaining of Transmit Packets
Optional Early Transmit and Early Receive
Optional Receive Lookahead Buffering
Mode
Automatic Rejection of Runt Packets
Automatic Retransmission of Collision
Frames from Internal Buffer
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Automatic Padding of Short Frames
4.5 Kbyte On-Chip Receive Buffer and 1.5
Kbyte On-Chip Transmit Buffer Eliminate
Bus Latency Issues
Optional Variable Depth, 32 Bit Wide
External Receive Buffer (0, 16, 32 or 128
Kbytes)
Big or Little Endian Byte Ordering
Capable of Supporting 64 Kbyte Expansion
Boot Flash RAM
IEEE Standard MII Interface to Physical
Layer
Interface to LAN83C694 - Shares MII Pins
Serial MII Management Interface
Serial EEPROM Interface for Storage of
LAN Address and Configuration Information
On-Chip Clock Multiplier
Low Power Sleep Mode
Support for Full Duplex Ethernet
Internal and External Loopback Diagnostic
Functions
Simple I/O Pin Mapping Scheme to
Facilitate In-Circuit Test
Single 5V Power Supply
208 Pin QFP Package
Software Drivers to Operate with Major
Operating Systems, Including:
NDIS 3.4 and 5 for Microsoft
DOS ODI for Novell
GENERAL DESCRIPTION
10Mb/s. An MII compliant serial management
interface is provided to control external media
dependent transceivers. The LAN83C171 is a
two channel bus master (one for transmit, one
for receive) capable of transferring data at the
maximum PCI transfer rate of 132Mbps. The
LAN83C171 has several features designed to
minimize CPU utilization, including the optional
Receive Lookahead Buffering Mode, which
eliminates the need to re-copy the data from one
host memory location to another.
The LAN83C171 EPIC/XF is a high-performance
and a low CPU utilization Ethernet network
controller designed to interface directly to the
PCI Local Bus on one side and to the 802.3
standard Media Independent Interface (MII) on
the other side. The network interface can also
be configured to communicate directly with the
LAN83C694 10BASE-T transceiver.
The LAN83C171 implements 802.3 Media
Access Control functions. It is capable of
running at Ethernet rates of both 100Mb/s and
2
TABLE OF CONTENTS
FEATURES ........................................................................................................................................1
GENERAL DESCRIPTION .................................................................................................................2
PIN CONFIGURATION.......................................................................................................................5
DESCRIPTION OF PIN FUNCTIONS .................................................................................................6
FUNCTIONAL DESCRIPTION..........................................................................................................10
PCI INTERFACE..........................................................................................................................12
TRANSMIT/RECEIVE ARBITRATION FOR PCI BUS .................................................................12
SYSTEM ERRORS ......................................................................................................................12
BIG/LITTLE ENDIAN SUPPORT ..................................................................................................12
POWER DOWN MODE ....................................................................................................................14
DMA OPERATION .......................................................................................................................14
TRANSMIT DMA..............................................................................................................................14
Direct Queuing Method.................................................................................................................14
Fragment List Method ..................................................................................................................16
Interrupting Transmit Chain..........................................................................................................18
Transmit Buffer Full .....................................................................................................................18
Transmit Underrun .......................................................................................................................18
Exception to Underrun ReTransmission........................................................................................18
Maximum Transmit Size and Burst Rate.......................................................................................18
RECEIVE DMA.................................................................................................................................19
Free Buffer Pool Method...............................................................................................................19
Adding Receive Buffers to the Pool...............................................................................................20
Receive Lookahead Method .........................................................................................................20
Stopping the Receive DMA...........................................................................................................25
Maximum Receive Size and Burst Rate ........................................................................................25
MAC OPERATION ...........................................................................................................................26
MII MANAGEMENT INTERFACE .................................................................................................32
EEPROM INTERFACE.................................................................................................................32
JUMPER OPTIONS (EEPROM/RAM)...........................................................................................33
Advanced Configuration and Power Interface (ACPI) Support .......................................................33
Wake-Up Events and Notification .................................................................................................33
EPIC Power States.................................................................................................................34
D3(Cold1) Software Driver Requirements .....................................................................................35
Supporting Power Management Options.......................................................................................35
PME Generates a PCI Bus Interrupt .............................................................................................35
Initial Power-On Reset (POR).......................................................................................................35
Special Power Management Mode................................................................................................36
POWER DOWN MODE ...............................................................................................................36
SOFT RESET ..............................................................................................................................37
CONFIGURATION ...........................................................................................................................37
Mapping of Control Functions.......................................................................................................37
Mapping of Flash RAM Functions.................................................................................................37
DMA DESCRIPTOR BITS DESCRIPTION........................................................................................39
TRANSMIT DMA DESCRIPTOR BITS DESCRIPTION .................................................................39
RECEIVE DMA DESCRIPTOR BITS DESCRIPTION....................................................................41
CONTROL REGISTER MAP/REGISTERS DECODE........................................................................43
CONFIGURATION REGISTERS MAP..............................................................................................44
3
CONTROL REGISTERS BITS DESCRIPTION .................................................................................45
PCI CONFIGURATION REGISTERS BITS DESCRIPTION...............................................................64
OPERATIONAL DESCRIPTION .......................................................................................................70
Maximum Guaranteed Ratings .....................................................................................................70
DC Electrical Characteristics ........................................................................................................70
TIMING DIAGRAMS ........................................................................................................................72
80 Arkay Drive
Hauppauge, NY 11788
(516) 435-6000
FAX (516) 273-3123
4
208
207
206
205
204
203
202
201
200
199
198
197
196
195
194
193
192
191
190
189
188
187
186
185
184
183
182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
N/C
VSSC
VSSC
VDDC
X20
VSSA
BIAS
ZENER
VDDA
RXD2
RXD1
RXD0
CRS
COL
RX_CLK
RX_DV
RX_ER
VDDC
TX_CLK
VSSC
nROMCS
EECS
nRAMOE
nRAMCS
VSSAC
EEDO/MD31
VDDAC
MD30
MD29
MD28
MD27
MD26
MD25
MD24
MD23
MD22
MD21
MD20
MD19
MD18
MD17
MD16
MD15
MD14
MD13
MD12
MD11
nROMWE
VSSAC
VSSC
VDDC
N/C
PIN CONFIGURATION
LAN83C171
208 Pin QFP
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
VSSPC
nPME
VDDIO
VSSPC
VDDIO
VSSA
AD22
AD21
AD20
VSSPC
AD19
AD18
AD17
VDDIO
AD16
nCBE2
VSSPC
nFRAME
nIRDY
VDDIO
VSSC
nTRDY
nDEVSEL
VSSPC
nSTOP
VSSG
nLOCK
VSSIO
VDDC
VSSPC
nPERR
nSERR
VDDIO
PAR
nCBE1
AD15
AD14
VSSPC
AD13
AD12
AD11
AD10
VDDIO
AD9
AD8
VSSC
nCBE0
VSSG
VDDIO
VSSPC
VDDIO
VSSPC
VSSC
VDDAC
VSSAC
SYSCLK
VDDC
RXD3
TXD0
TXD1
TXD2
TXD3
TX_EN
nPHYRST
n694EN
VSSC
MDC
MDIO
VDDC
n694LNK
TEST
GPIO1
GPIO2/PHY_INT
nINTA
nRST
VDDC
PCICLK
VSSC
VSSG
nCLKRUN
nGNT
VDDIO
nREQ
AD31
VSSPC
VDDIO
VSSG
AD30
AD29
VDDIO
AD28
AD27
VSSPC
AD26
AD25
VSSIO
AD24
nCBE
VSSPC
IDSEL
AD23
VDDIO
VSSPC
VDDIO
5
VDDC
VSSAC
VDDAC
MD10
MD9
MD8
MD7
MD6
MD5
MD/JMP4
MD/JMP3
MD/JMP2
MD/JMP1
MD/JMP0
VSSAC
VDDAC
MA15/nRAMWR
EESK/MA14
EEDI/MA13
MA12
MA11
MA10
VSSC
MA9
MA8
VDDC
VSSAC
VDDAC
MA7
MA6
VSSC
MA5
MA4
MA3
MA2
MA1
MA0
VSSIO
AD0
AD1
VDDIO
AD2
AD3
VSSPC
AD4
AD5
VDDC
AD6
AD7
VDDIO
VSSPC
VDDIO
DESCRIPTION OF PIN FUNCTIONS
PQFP PIN NO.
NAME
I/O
TYPE
PCI INTERFACE
IPCLK,
I
dc_lk1
IPCI,
I
dc_lk1
IOPCI,
I/O
dc_lk2
25
PCICLK
23
nRST
32,36,37,39,40,42,
43,45,49,59-61,
63-65,67,88,89,
91-94,96,97,108,
109,111,112,114,
115,117,118
46,68,87,99
AD
nCBE
I/O
IOPCI,
dc_lk2
PCI Multiplexed Command/Byte
Enable Signals
86
PAR
I/O
PCI Parity Signal
70
nFRAME
I/O
71
nIRDY
I/O
74
nTRDY
I/O
77
nSTOP
I/O
79
nLOCK
I
48
IDSEL
I
IOPCI,
dc_lk2
IOPCI,
dc_lk2
IOPCI,
dc_lk2
IOPCI,
dc_lk2
IOPCI,
dc_lk2
IOPCI,
dc_lk2
IPCI,
dc_lk1
75
nDEVSEL
I/O
PCI Device Select
31
nREQ
O
29
nGNT
I
83
nPERR
I/O
84
nSERR
O
IOPCI,
dc_lk2
OPCI,
dc_lk2
IPCI,
dc_lk1
IOPCI,
dc_lk2
OPCI,
dc_lk2
6
DESCRIPTION
PCI Clock
PCI System Reset
PCI Multiplexed Address/Data Bus
PCI Cycle Frame Signal
PCI Initiator Ready Signal
PCI Target Ready Signal
PCI Cycle Stop Signal
PCI Lock Signal
PCI Initiation Device Select Signal.
Used as a Chip Select for
Configuration Reads and Writes
PCI Bus Request
PCI Bus Grant
PCI Parity Error
PCI System Error (Open Drain)
PQFP PIN NO.
22
NAME
I/O
139-135,133,132,
128,127,125-120
MA
O
OTTL8,
dc_lk2
Address Bus to Shared RAM and
ROM. (EEDI Muxed Into MA[13],
EESK Muxed Into MA[14]
183,181-162,
153-143
MD/JMP
I/O
IOTTL2,
dc_lk2
Data Bus to Shared RAM, ROM and
EEPROM (EEDO Input Connected to
MD[31], JMP[4:0] Connected to
MD[4:0])
186
nRAMOE
185
nRAMCS
188
nROMCS
161
nROMWE
187
EECS
190
TX_CLK
11
TX_EN
10-7
TXD
194
RX_CLK
54
28
140
TYPE
DESCRIPTION
Open
nINTA
O
PCI Interrupt (Open Drain)
Drain
dc_lk2
Open
nPME
O
PCI Power Management Event (Open
Drain
Drain)
dc_lk2
IOPCI,
nCLKRUN
I/O
PCI Clock Control and Request Line
dc_lk2
EXTERNAL MEMORY INTERFACE
OTTL8,
MA15/nRAMW
O
Most Significant Address Bit to
dc_lk2 Expansion ROM/External RAM Write
R
Enable
OTTL8,
External RAM Output Enable
dc_lk2
OTTL8,
O
External RAM Chip Select
dc_lk2
OTTL4,
O
ROM Chip Select and Output Enable
dc_lk2
OTTL4,
O
External Flash ROM Write Select
dc_lk2
OTTL4,
O
EEPROM Chip Select
dc_lk2
NETWORK INTERFACE
IOTTL4,
I
MII Transmit Clock
dc_lk2
OTTL4,
O
MII Transmit Enable
dc_lk2
OTTL4,
O
MII Transmit Data
dc_lk2
IOTTL4,
I
MII Receive Clock
dc_lk2
O
7
PQFP PIN NO.
196
NAME
I/O
TYPE
IOTTL4,
dc_lk2
IOTTL4,
dc_lk2
IOTTL4,
dc_lk2
IOTTL4,
dc_lk2
IOTTL4,
dc_lk2
OTTL4,
dc_lk2
IOTTL4,
dc_lk2
DESCRIPTION
CRS
I
6,199-197
RXD
I
195
COL
I
193
RX_DV
I
192
RX_ER
I
15
MDC
O
16
MDIO
I/O
18
n694LNK
I
10Base-T Link Integrity Status
13
n694EN
O
694 Enable. Tri-States 694 Outputs
when PHY100 is in use
4
SYSCLK
20
GPIO1
I/O
General Purpose I/O. May also be
used to indicate if the source of power
is the PCI Bus. High(1) to indicate the
power source from PCI bus
21
GPIO2/PHY_INT
I/O
General Purpose I/O Can also be used
as a physical layer interrupt. It should
be passively pulled high
19
TEST
I
ITTL
Used for In-Circuit Device Test
204
X20
O
20 MHz Buffered Clock Output
202
BIAS
I
OTTL4,
dc_lk2
IAN
IAN
MII Carrier Sense
MII Receive Data
MII Collision Signal
MII Receive Data Valid Signal
MII Receive Error Signal
MII Management Interface Clock
MII Management Interface Data
GENERAL PURPOSE
ISCLK
I
System Clock (25 MHz) Input
201
ZENER
I
12
nPHYRST
O
5,17,24,81,110,131
,156,158,191,205
VDDC
Bias Current Input for Clock Multiplier
Regulated Voltage Input for Clock
Multiplier
Reset Output to Physical Layer Chip
POWER SUPPLY
PWR
Connect to +5V
8
PQFP PIN NO.
2,129,141,154,182
NAME
I/O
TYPE
DESCRIPTION
VDDAC
PWR
Connect to +5V
34,50,72,101,30,
38,52,55,85,95,
103,105,116,57,66,
107
200
VDDIO
PWR
Connect to +5V
VDDA
PWR
Connect to +5V
1,14,26,73,98,126,
134,159,189,206,
207
3,130,142,155,160,
184
27,35,78,100
VSSC
PWR
Connect to Ground
VSSAC
PWR
Connect to Ground
VSSG
PWR
Connect to Ground
33,41,47,51,53,56,
62,69,76,82,90,
102,104,106,113
44,80,119
VSSPC
PWR
Connect to Ground
VSSIO
PWR
Connect to Ground
58,203
VSSA
PWR
Connect to Ground
9
FUNCTIONAL DESCRIPTION
The transmit process consists of a DMA
controller, local transmit RAM, memory transfer
unit ("MTU") and CSMA/CD transmit state
machine. The transmit DMA copies packet data
from host memory into the local buffer. When
ready, the memory transfer unit feeds data from
the transmit buffer to the CSMA/CD state
machine, which is responsible for sending data
out on the network under the Ethernet protocol.
When transmission is complete, the transmit
DMA posts the transmit status into host
memory, interrupts the host (optionally) and
looks for the next transmit packet to be queued.
The LAN83C171 EPIC/100 is a high
performance
Ethernet
network
controller
designed to interface directly to the PCI Local
Bus on one side and to the 802.3 standard
Media Independent Interface (MII) on the other
side. The network interface can also be
configured to communicate directly with the
LAN83C694 10BASE-T transceiver.
The LAN83C171 implements 802.3 Media
Access Control functions. It is capable of
running at Ethernet rates of both 100 Mb/s and
10
Mb/s. An
MII
compliant serial
management interface is provided
to control
external media dependent transceivers. The
LAN83C171 is a two channel bus master (one
for transmit, one for receive) capable of
transferring data at the maximum PCI transfer
rate of 132 Mbps. Buffer format in host memory
is controlled by an independent linked list
structure for each channel.
Like the transmit process, the receive process
consists of a DMA controller, local receive RAM,
memory transfer unit and CSMA/CD state
machine.
Packets are received by the
CSMA/CD state machine and stored into local
memory by the receive MTU. The receive DMA
then copies the data from the local buffer into
host memory, posts the receive status and
interrupts the host. The LAN83C171 has several
features designed to minimize CPU utilization,
including the optional Receive Lookahead
Buffering Mode, which eliminates the need to recopy the data from one host memory location to
another. Figure 1 on the following page shows
a block diagram of the LAN83C171.
The LAN83C171's architecture is essentially
broken
into two independent transmit and
receive processes which share PCI bus and
network bandwidth. This architecture is ideal for
full-duplex networks where transmission and
reception of frames may occur simultaneously.
An internal arbiter controls which process has
access to the PCI bus at a given time (see
section on "transmit/receive arbitration for PCI
bus").
10
EXTERNAL
SERIAL
BOOT ROM
(OPTIONAL)
RECEIVE
EEPROM
BUFFER
(OPTIONAL)
EEPROM
CONTROL
PCI LOCAL BUS
PCI
BUS MASTER
PCI
INTERNAL
RECEIVE
DMA
4.5 KBytes
RECEIVE
MII INTERFACE
BUFFER
RECEIVE
CSMA/CD
MTU
TRANSMIT
LAN83C694
INTERFACE
MII
REGISTERS
MANAGEMENT
/ SLAVE
INTERFACE
PCI
TRANSMIT
DMA
1.5 KBytes
TRANSMIT BUFFER
TRANSMIT
MTU
CSMA/CD
TRANSMIT
CLOCK
MULT.
SYS CLOCK
FIGURE 1 - LAN83C171 BLOCK DIAGRAM
11
PCI INTERFACE
BIG/LITTLE ENDIAN SUPPORT
The transmit and receive DMA controllers
access the PCI bus through the PCI bus
Master/Slave Interface logic.
This block is
responsible for requesting the PCI bus and
conducting all bus master operations according
to the PCI bus protocol (including parity
generation and error detection). This block is
also responsible for responding to all slave
operations according to PCI bus protocol
(including
address
recognition,
parity
generation, and error detection).
In order to run in Big Endian machines, the
LAN83C171 can be programmed to swap bytes
on the data bus in certain circumstances. In
Macintosh Power PC computers the bridge
between the Big Endian processor data bus and
the Little Endian PCI bus swaps the order of the
bytes on the data bus (during data phase only addresses are never modified). This means that
byte size quantities transferred over the data
bus always end up in the correct location for
their given address, but when 32 bit (dword)
quantities are transferred they end up with their
bytes reversed.
TRANSMIT/RECEIVE ARBITRATION FOR PCI
BUS
When programmed into Big Endian mode, the
LAN83C171 automatically swaps the data bytes
internally when reading or writing descriptor
tables or fragment lists.
This allows the
software driver to treat the descriptor and
fragment list entries as 32 bit quantities and not
worry about byte ordering.
Another major function of the PCI Bus
Master/Slave Interface block is to arbitrate
between the transmit and receive DMA
controllers for access to the PCI bus.
SYSTEM ERRORS
In order to comply with the PCI specification, the
LAN83C171 does not swap the data bytes on
reads or writes to the configuration or control
register space. The software driver is
responsible for interpreting correctly the bytes
when performing 32 bit register read or writes
on a Big Endian machine.
There are four types of PCI bus errors that are
considered fatal by the LAN83C171. They are
Master Abort, Target Abort, Address Parity
Error, and Data Parity Error (see interrupt status
register for details). If any of these errors
occurs, the LAN83C171 will set the appropriate
interrupt and immediately discontinue all DMA
activity. The receiver will automatically be taken
offline and any transmissions in progress will be
completed without a valid CRC appended (in
case transmit data was corrupted). Normal
operation may only be resumed by resetting the
LAN83C171 with the soft reset bit. The software
driver should make sure the transmitter and
receiver have returned to their idle states (by
polling the TXIDLE and RXIDLE bits in the
interrupt status register) before resetting the
device.
When reading or writing Ethernet packet data,
the LAN83C171 does not perform any byte
swapping internally because the data on the PCI
bus is already in the correct order.
12
3
2
1
Little Endian (PCI) Bus
0
PCI Bridge Action
0
1
7
2
07
3
07
Big Endian (PowerPC) Bus
07
0
Byte Transfer
Control Register dword transfer:
3
2
1
Little Endian (PCI) Bus
0
PCI Bridge Action
0
1
7
2
0 15
Big Endian (PowerPC) Bus
3
8 23
24 Byte Transfer
16 31
Descriptor/Fragment list dword transfer:
31
0
3
2
1
0
Little Endian (PCI) Bus
PCI Bridge Action plus
internal SMC91C120 swap
0
1
2
3
31
Big Endian (PowerPC) Bus
0 Byte Transfer
FIGURE 2 - LITTLE ENDIAN/BIG ENDIAN BYTE TRANSFER
The number in the box refers to the address of
the byte. The numbers above and below the
boxes refer to the bit number (the bit
ordering increases from LSB to MSB for both
formats although some other documents choose
to label them differently).
13
POWER DOWN MODE
The LAN83C171 has a power down feature
which allows it to consume less power when
not in use. The host may power down the
LAN83C171 by writing a 1 to the power down
bit in the general control register. When the
bit is set, the chip's internal system clock is
gated off to reduce switching current (the
transmit and receive clocks will be shut off
internally if the LAN83C171 is in loopback
mode when power down is set). While the
LAN83C171 is powered down, the host may
read and write the configuration registers or
the
general control register.
All other
functions are disabled (attempting any other
operation will cause unpredictable behavior).
The power down bit must only be set when the
LAN83C171 is in its idle state.
When the nRST pin is asserted, the
LAN83C171 will automatically enter power
down mode after recalling the contents of the
EEPROM.
The host may power up the
LAN83C171 by writing a 0 to the power down
bit. If the host wishes to issue a software
reset to the LAN83C171, the power down bit
must be cleared. When the software reset has
completed, the power down bit will remain
cleared and the LAN83C171 will be ready to
operate.
The power down bit does not affect the PCI
clock inside the LAN83C171. Instead, the
LAN83C171 supports the PCI clock run
function which allows the host system to slow
down or temporarily shut off the PCI clock at
its source.
The clock run function is
implemented according to the PCI Mobile
design guide (revision 1.0).
independent chain (linked list) of descriptors for
each DMA. Each descriptor may point to a single
data buffer (which can hold a whole frame or
part of a frame) or to a fragment list, which in turn
contains a list of buffers for an entire frame. Each
descriptor also contains control and status
information and a pointer to the next descriptor.
The Descriptors Bit Description section explains
the bits in detail.
TRANSMIT DMA
The software driver initializes the transmit process
by writing the transmit control register, early
transmit threshold register (if early transmit will be
used), interpacket gap program register, interrupt
mask register and general control register. The
software must also program the PCI Transmit
Current Descriptor Address Register (PTCDAR)
with the address in host memory where the first
transmit descriptor will be located.
To begin packet transmissions, the software
driver programs the transmit descriptor chain with
the appropriate number of entries and then sets
the TXQUEUED bit in the COMMAND register.
Under no circumstances should the software
driver set up a circular transmit queue with a
single transmit descriptor pointing to itself. A
minimum of two descriptors is required for proper
EPIC operation.
Descriptor entries describe the location of transmit
data in host memory. Data for a single transmit
frame may not always be in a contiguous block in
host memory.
The LAN83C171 allows the
software to specify multiple data buffers for each
frame. Each frame may be queued in one of two
ways, both of which may be used in the same
descriptor chain.
DMA OPERATION
Direct Queuing Method
The software driver controls the transmit and
receive DMA controllers through the I/O
control registers and through "buffer
descriptors" in host memory. There is an
Descriptors point directly to the transmit data
buffers.
14
One or more descriptors may be used to point
to a single frame. All descriptors must have
the FRAGLIST control bit set to 0. The first
descriptor must contain the transmit length for
the frame. The last descriptor for the frame
must have the LASTDESCR bit set to 1 and
contain the desired values for the TXIAF and
NOCRC control bits. When the TXQUEUED
bit is set, the transmit DMA will read the 4
dword descriptor from the location in host
memory pointed to by its Current Descriptor
Address register. If the ownership bit in the
descriptor is equal to 1 then the LAN83C171
will accept the descriptor and update its
Current Descriptor Address register with the
value in the Next Descriptor Address field.
Otherwise, the TXQUEUED bit will be cleared
(and the transmit queue empty (TQE) interrupt
set) and the Current Descriptor Address
register will not be changed. The Transmit
Length field in the first descriptor will always
contain the number of bytes to be transmitted
on the network, and not necessarily the
number of bytes in the transmit buffers. The
transmit DMA will begin copying data from the
location in host memory specified by the
Buffer Address field in the first descriptor. It
will compare the transmit byte count to the
Data Length field, and copy the lesser number
of bytes into the local transmit RAM. If early
transmit is enabled, the LAN83C171 will
automatically initiate transmission on the
network when the number of bytes specified in
the Early Transmit Threshold register have
been loaded into the transmit buffer.
If the transmit byte count is less than the Data
Length field, or the LASTDESCR bit is set,
then the frame copy is complete after the
buffer has been read. The LAN83C171 will
initiate transmission on the network if it has
not already done so.
If the Data Length field is less than the
transmit byte count and the LASTDESCR bit is
not set, the LAN83C171 will attempt to read
another descriptor. The transmit DMA will
proceed as before, however this time it will not
read the Transmit Length field, but instead use the
remaining number of bytes in its transmit byte
counter (original byte count minus bytes already
copied).
This process will continue until a
descriptor is read with the LASTDESCR bit set or
the transmit byte count reaches zero.
If
LASTDESCR is set and the total number of bytes
copied do not add up to the transmit byte count,
the transmit MTU will pad the frame with random
data after copying all of the valid data out of the
transmit RAM. The CSMA/CD state machine will
not append the automatically generated CRC to
the frame if NOCRC is set in the last descriptor
for the frame.
After the LAN83C171 has initiated the first
transmission, it will check to see if there are any
more frames in the transmit queue.
If the
software does not have another frame ready for
transmission, the ownership bit in the next
descriptor must be 0. If the ownership bit is 0, the
LAN83C171 will clear TXQUEUED and set the
transmit queue empty interrupt. If the ownership
bit is 1, the LAN83C171 will begin copying the
next frame into the local transmit RAM. The DMA
will continue copying transmit buffers until the
frame has been completely loaded into the
transmit RAM or the first transmission has
completed. If the copy completes while the first
transmission is still in progress, the LAN83C171
will stop and wait. When the transmission is
finished, the LAN83C171 will post the status into
the first descriptor for that frame and immediately
initiate the second transmission.
If the
transmission completes before the copy is done,
the LAN83C171 will pause after the current
transmit buffer has been copied and post the
status from the first frame. If the early transmit
threshold has already been exceeded then the
second transmission will be initiated immediately.
The transmit DMA will then continue by reading
the next descriptor for the copy in progress.
When the transmit status is posted,
the
ownership bit will be written as 0 to indicate that
the host now owns that descriptor again. The
15
Transmit Length field will not be overwritten.
If TXIAF is true in the last descriptor for the
frame, then the transmit complete (TXC)
interrupt will be set. When there are no
frames left in the queue and the last
transmission has completed on the network,
the transmit DMA will set the transmit chain
complete (TCC) interrupt and return to its idle
state.
Note: The difference between the TQE and the
TCC interrupt is that the TQE interrupt is set
only when there are no frames left in the
queue. The TCC interrupt is set only when
there are no frames left in the queue AND the
last frame in the transmit queue buffer has
transmitted. Hence the TQE interrupt is set
first and may or may not be followed by a TCC
interrupt.
Fragment List Method
Descriptor points to a fragment list.
This method of queuing a transmit frame is
much like the first method, except that each
frame is always specified by one descriptor
which points to a list of buffers (fragment list)
instead of the buffers themselves. The
FRAGLIST bit in the descriptor must be set to
1 and the LFFORM bit must properly indicate
the format of the fragment list. The first entry
in the fragment list tells how many data buffers
(fragments) are listed. Up to 63 fragments are
allowed.
The remaining entries specify the
starting address and length of each buffer.
As in the direct queuing method, the transmit
DMA will copy fragments one at a time into the
local buffer until Transmit Length bytes have been
copied or all of the fragments have been read. If
early transmit is enabled, transmission will be
initiated when enough bytes have been copied to
meet the early transmit threshold. Otherwise
transmission will be initiated when the entire copy
is complete.
When more than one frame is queued, the
transmit DMA will begin copying a second frame
while the first is being transmitted. It will continue
copying fragments until the entire frame is loaded
or the first transmission has completed. If the
copy completes while the first transmission is still
in progress, the LAN83C171 will stop and wait.
When the transmission is finished, the
LAN83C171 will post the status into the first
descriptor and immediately initiate the second
transmission. If
the transmission completes
before the copy is done, the LAN83C171 will
pause between fragments to post the status and
then resume the copy. If the early transmit
threshold has already been exceeded then the
second transmission will be initiated immediately.
Figure 3 shows a drawing of the Transmit Buffer
Structure.
16
FRAME 1 STATUS
TX LENGTH/STATUS
FRAME DATA
BUFFER ADDRESS
CONTROL/BUF LENGTH
NEXT DESCR. ADDRESS
FRAME 1
TX LENGTH/STATUS
FRAME DATA
BUFFER ADDRESS
CONTROL/BUF LENGTH
NEXT DESCR. ADDRESS
FRAME 2 STATUS
NUMBER FRAGS
TX LENGTH/STATUS
FRAG1 ADDRESS
BUFFER ADDRESS
FRAG1 LENGTH
FRAME DATA
CONTROL/BUF LENGTH
NEXT DESCR. ADDRESS
FRAGn ADDRESS
FRAGLIST = 1
FRAGn LENGTH
LFORM = 0
FRAME 2
FRAME DATA
FIGURE 3 - TRANSMIT BUFFER STRUCTURE
The software may add transmit frames to the
queue at any time. If the transmit process is
already running (TXQUEUED may still be set)
then all of the descriptor and fragment list fields
for the new frame must be valid BEFORE the
ownership bit in the first descriptor is set. After
17
the descriptors are written, the TXQUEUED bit
should be set.
Transmit Underrun
A transmit underrun occurs in early transmit
mode when the transmit DMA cannot keep up
with transmission on the network. Data must be
read from the local RAM before it is available.
Usually, when an underrun occurs, the transmit
MTU will generate a transmit underrun (TXU)
interrupt and update its transmit status register.
The transmit DMA will continue to operate as
though nothing has happened. The software
driver will be allowed to read the transmit status
value from TXSTAT and set the "transmit
underrun go" (TXUGO) bit to tell the MTU to
retry the frame. The MTU will re-transmit the
entire frame out of the local transmit ram. When
transmission has completed successfully, the
DMA will post the transmit status for the retry to
the descriptor for that frame. Operation will
continue as it normally would for a non-underrun
situation.
TXQUEUED can be written regardless of
completion status and will ensure that the latest
frame is transmitted.
If
the LAN83C171
reaches the end of the transmit queue before the
new frame has been added, a transmit chain
complete interrupt is generated for the old
portion of the queue and another transmit chain
complete interrupt will be generated when the
added portion completes.
Interrupting Transmit Chain
The host may interrupt the transmit chain before
all frames have been transmitted by setting the
STOP_TDMA bit in the command register.
Setting this bit forces TXQUEUED to 0. The
transmit DMA will finish copying any frame that
it has already begun, and transmit all frames
that have been loaded into the transmit ram.
After the transmit DMA has posted the status
for the last frame, it will set the transmit chain
complete interrupt and return to its idle state
(exactly as if the next frame in the queue was
owned by the host). If the DMA reads a
descriptor owned by the host while a copy is still
in progress, it will set the transmit queued empty
interrupt and wait for the descriptor to be requeued. It will not return to the idle state until
the copy is completed.
Exception to Underrun ReTransmission
The only exception to this behavior is when the
transmit MTU cannot automatically retry an
underrun frame. This happens when the frame
size is larger than the transmit RAM (1.5
Kbytes) and the transmit DMA has overwritten
the beginning of the frame before the underrun
occurs. If such an event occurs, the transmit
DMA will abort the copy and reset its pointers to
the first descriptor for that frame. The DMA will
clear the TXQUEUED bit and return to its idle
state. Transmit queue empty and transmit
chain complete interrupts will be generated
along with the transmit underrun interrupt. The
software driver must set TXUGO to reset the
transmit MTU and then set TXQUEUED if it
wants to retry the frame. The frame will be
re-copied from scratch out of host memory
when TXQUEUED is set.
Transmit Buffer Full
Whenever the local transmit RAM becomes full,
the transmit DMA will wait until more space is
available before loading any more data. Space
is freed up as the transmit MTU reads data from
the local RAM and updates its pointers. In
some cases, the transmit MTU will leave its
pointers at the beginning of a frame until it
knows that the transmission will not have to be
retried. Automatic retries can occur due to
collisions or early transmit underruns.
Maximum Transmit Size and Burst Rate
The transmit DMA supports frame sizes up to 64
Kbytes. The maximum size for a single data
18
buffer (fragment) is also 64 Kbytes.
The
transmit DMA will run at the maximum PCI data
rate of 132 MByte/sec when the target memory
system supports zero wait state reads. The
transmit DMA will burst as many words as it can
before having to relinquish the PCI bus. It is
capable of bursting data continuously with no
wait states (even when a transmission is active
on the network) until the transmit RAM becomes
full. The transmit DMA, however, will most
likely lose possession of the PCI bus several
times before it can fill the entire 1.5 Kbyte
transmit buffer.
Free Buffer Pool Method
In this mode the software driver pre-allocates a
pool of free buffers for frames received by the
LAN83C171. The ONECOPY bit in the general
control register must be set so that the each
frame may be copied into the buffer pool without
host intervention. The descriptors for the free
buffer pool may point directly to the buffers, or
point to a fragment list which in turn specifies
the buffers.
When the RXQUEUED bit is set, the receive
DMA will attempt to read the first descriptor
from the address pointed to by its Current
Descriptor Address register. If the ownership bit
is 0, the RXQUEUED bit will be cleared (and the
receive queue empty (RQE) interrupt set) and
the Current Descriptor Address register will not
be changed. If the ownership bit is equal to 1,
the LAN83C171 will accept the descriptor and
update its Current Descriptor Address register
with the value in the Next Descriptor Address
field. The LAN83C171 will save the descriptor
information until a frame is received. If the
fraglist control bit is also 1, then the receive
DMA will read and save the address pointer and
data length for the first buffer in the fragment
list. The offset field in the descriptor (see buffer
length field) should be set to zero, otherwise the
copy will not begin at the start of the frame. The
fragment list format for the receive DMA is
identical to the format for the transmit DMA.
RECEIVE DMA
The software driver initializes the receive
process by writing the receive control register,
interrupt mask register and general control
register. The software must also program the
PCI Receive Current Descriptor Address
Register (PRCDAR) with the address in host
memory where the first receive descriptor will be
located.
To allow packet receptions, the software driver
programs the receive descriptor chain and then
sets the RXQUEUED and START_RX bits in the
COMMAND register. Setting START_RX brings
the CSMA/CD receiver online. The receive DMA
is enabled by setting RXQUEUED.
The
software driver should set RXQUEUED before
or simultaneous to bringing the receiver online
so that the receiver does not overflow the local
buffer while waiting for a descriptor to be
queued. The first descriptor must be valid
before the RXQUEUED bit is set. The first
descriptor will be read as soon as it is queued,
even if no receptions have occurred on the
network.
As soon as a frame is received, the LAN83C171
will begin copying it from the local receive
buffer into the allocated buffer in host memory.
If early receive is enabled, the LAN83C171 can
begin the copy while reception is still in
progress. The receive DMA always monitors the
local buffer contents so that a receive underflow
can never occur. As soon as the receive DMA
has copied the number of bytes in the PCI
Receive Copy Threshold register, it will set the
receive copy threshold (RCT) interrupt. When
the receive DMA has copied the entire packet
from the local RAM into host memory, it will
The receive lookahead method offers maximum
performance in most cases.
19
post the receive status into the first descriptor
for the frame and set the receive copy complete
(RCC) interrupt. The DMA will read the next
descriptor and, if owned by the NIC, check to
see if there are any more frames to copy out of
the local RAM. If the receive DMA fills the first
host buffer before the entire frame has been
copied, it will read the next descriptor or
fragment list entry to find more buffer space.
This process will continue until the entire frame
has been copied. If the DMA reads a descriptor
with the ownership bit set to 0, it will clear the
RXQUEUED bit (and set the receive queue
empty interrupt) and wait for a new descriptor to
be queued. In fragment list mode, the receive
DMA always expects the fragment list
to
contain enough buffer space for the entire
frame.
Adding Receive Buffers to the Pool
The software driver adds buffers to the pool by
writing the appropriate descriptors and setting
their ownership bit to 1. If the receive DMA has
stopped (RXQUEUED is cleared), the software
must set the RXQUEUED bit to queue the new
descriptors. The RXQUEUED bit may be set at
any time, even if the receive DMA is still active.
Receive Lookahead Method
When this buffering method is used, the
LAN83C171 first copies only the header of a
frame into host memory, and then waits for a
queue from the software driver before copying
the rest of the frame. The software usually
specifies the final destination of the frame data
with a fragment list. The advantage to this
buffering method is that the LAN83C171 may
copy frame data to its final destination instead
of a temporary buffer space, so the software
driver is not required to re-copy the data from
one host memory location to another.
If all the buffers in the fragment list are filled
before the copy is finished, the DMA will abort
the copy and set the fragment list error bit in the
PRSTAT register. The DMA receive status will
be posted to the descriptor for that frame and
the RXQUEUED bit will be cleared. If early
receive is enabled, the network portion of the
receive status may not be valid yet, as indicated
by the RSV bit posted in the status. The
software driver may poll the RSV bit in the
interrupt status register, and when it returns a 1
read the receive status from PRSTAT. The
software may attempt to re-copy the frame by
setting the RXQUEUED bit again, or may
discard the frame by setting the NEXTFRAME
bit before or simultaneous to setting
RXQUEUED. If RXQUEUED is set after or
along with NEXTFRAME, the DMA will begin to
copy the next frame (if any) in the receive buffer.
In receive lookahead mode, frames are usually
copied into the host memory one at a time, and
a handshake is performed between the software
driver and the LAN83C171 during each frame.
The handshake is performed using the
RXQUEUED and NEXTFRAME bits in the
COMMAND register, the receive copy complete
(RCC), and header copy complete (HCC)
interrupts.
The control bits in the receive
descriptors are also used to direct the receive
DMA.
The software driver begins by setting up a buffer
for the header of the first frame and setting
RXQUEUED. The HEADER control bit in the
descriptor should be set and the FRAGLIST bit
should be cleared. The buffer address pointer
and length are specified directly in the
descriptor. When a frame is received, the
receive DMA begins copying the beginning of
the frame into the header buffer until the buffer
is full, or until the entire frame has been copied.
Note:
The DMA rounds the number of bytes
copied up to the nearest dword. If the receive
buffer does not start on a dword boundary, the
number of bytes in the receive buffer may be
slightly less (up to 3 bytes) than the receive
copy threshold when the interrupt is generated.
20
the entire frame will have been received before
the fragment list is available.
The copy may begin before the entire frame has
been received if early receive is enabled. When
the header copy is complete, the receive DMA
status will then be posted to the descriptor for
the header buffer, and the header copy complete
interrupt will be set. If reception from the
network has completed, the network portion of
the posted status will be valid --and the RSV bit
will be set to 1. In early receive mode, the
receive DMA status may be posted before the
network status for the frame is available, in
which case the RSV bit in the descriptor will be
set to 0. If the entire frame fits into the header
buffer, the network receive status will always be
posted with the frame. After a header copy, the
receive DMA always clears the RXQUEUED bit
(also setting the receive queue empty interrupt,
which may be masked) and waits in the idle
state for the
software driver to queue a
fragment list for the rest of the frame.
When the copy is finished, the receive status is
posted and the receive copy complete interrupt
is set. The receive DMA will then read the next
descriptor, and if the ownership bit is set it will
immediately begin to copy the same frame into
host memory again. If the descriptor is owned
by the host, RXQUEUED will be cleared (and
receive queue empty interrupt set) and the
receive DMA will wait in the idle state for
another command. If the software driver wants
another copy of the frame, it may queue another
descriptor and set RXQUEUED without setting
NEXTFRAME. This procedure will be repeated
until the software chooses to go on to the next
frame.
The software driver discards a frame by setting
NEXTFRAME before or simultaneous to setting
RXQUEUED. If RXQUEUED is set after or
along with NEXTFRAME, the receive DMA will
begin to copy the next frame (if any) in the
receive buffer. The next descriptor queued
should contain a header buffer for the next
frame.
After examining the header data, the software
driver may discard the frame or have it copied
into host memory as many times as it would
like. The software requests copies of the frame
by programming descriptors (and fragments
lists) and setting RXQUEUED without setting
NEXTFRAME. The frame is copied exactly as it
would be in the free buffer pool mode, with the
exception that the offset field is used with
fragment list copies. The software may not
need all of the bytes at the beginning of the
frame to be copied, so it may specify an offset
into the frame where the copy should begin. The
offset field shares a location in the descriptor
with the buffer length field because the buffer
length is not specified in a descriptor for a
fragment list. The receive DMA copies the frame
into host memory beginning from the byte
number specified in the offset. If the offset field
is not zero, the copy will not begin until the
entire frame has been received from the
network, even if early receive is enabled. This is
so that the receive DMA does not copy invalid
data if the offset is greater than the number of
bytes that have been received so far. Usually,
Occasionally, the software driver may want to
discard a frame immediately after reading its
header, but still read the receive status for that
frame. If the valid network status is not posted
in the descriptor, the software driver may read it
from the PRSTAT register. The driver must set
NEXTFRAME and RXQUEUED to discard the
frame first, as described above. However, the
next descriptor in the receive descriptor list must
have the ownership bit cleared (host still owns
descriptor). This allows the LAN83C171 to
update the PRSTAT register without starting to
copy the following frame. The software driver
must poll the RQE (receive queue empty)
interrupt to determine when the status is
available. When the RQE interrupt is set, the
driver may read the receive status from the
PRSTAT register. The receive status valid bit in
21
guarantee that the header descriptor is
recognized. When the DMA is finished copying
the first frame, it will immediately read the next
descriptor and may begin copying the next
header without waiting for the software to
respond to an interrupt.
the interrupt status register will not indicate
when the receive status is available.
When the software driver wants only one more
copy of the current frame, it does not have to
wait for the copy to complete before setting
NEXTFRAME.
The
software
may
set
NEXTFRAME
immediately
after
setting
RXQUEUED (on the following I/O write) and
begin to queue the header descriptor for the next
frame. After the header descriptor is queued, the
software may set RXQUEUED again to
Note:
22
Software must never set NEXTFRAME
more
than
once
per
frame.
NEXTFRAME may only be set when
the copy is in progress or has already
been completed.
Figure 4 shows an example of the Receive
Buffer Structure and also shows a flow
diagram for the Receive Buffering Method.
FRAME 1 STATUS
RX LENGTH/STATUS
FRAME DATA
BUFFER ADDRESS
HEADER = 1
CONTROL/BUF LENGTH
NEXT DESCR. ADDRESS
FRAME 1 HEADER
RX LENGTH/STATUS
FRAGLIST ADDRESS
NUMBER FRAGS
PTR1(FRAG LENGTH)
CONTROL/OFFSET
FRAG LENGTH(PTR1)
NEXT DESCR. ADDRESS
FRAME DATA
FRAGLIST = 1
PTRn(FRAG LENGTHn)
RX LENGTH/STATUS
FRAG LENGTHn(PTRn)
FRAGLIST ADDRESS
FRAME 1 STATUS/LENGTH
CONTROL/OFFSET
NEXT DESCR. ADDRESS
FRAGLIST = 1
RX LENGTH/STATUS
FRAME 1
FRAME 2 STATUS/LENGTH
BUFFER ADDRESS
CONTROL/BUF LENGTH
HEADER = 1
NEXT DESCR. ADDRESS
FIGURE 4 - RECEIVE BUFFER STRUCTURE
23
FRAME DATA
RESET
WAIT
RXQUEUED SET
READ DESCRIPTOR
HEADER BIT SET
OWNER
GO TO NEXT
FRAME
HOST/CLEAR RXQUEUED
NIC
COPY HEADER
POST STATUS
DONE/CLEAR RXQUEUED SET HCC
WAIT
RXQUEUED SET
TRUE
NEXTFRAME
FALSE
READ DESCRIPTOR
(HEADER BIT CLEARED)
OWNER
NIC
HOST/CLEAR RXQUEUED
COPY FRAME
POST STATUS
DONE/SET RCC
RDMA STOPPED
(RXQUEUED=0)
YES
NO
FALSE
NEXTFRAME
TRUE
FIGURE 5 - RECEIVE LOCKAHEAD BUFFERING FLOW
24
receive RAM. The receive DMA loads data into
the receive burst FIFO at a maximum rate of
100Mb/s (when reception is not in progress) or
83 Mb/s (when reception is in progress). The
receive DMA will automatically initiate a burst on
the PCI bus whenever the FIFO reaches
programmed threshold level. The receive DMA
will continue to load data into the FIFO while it
is being emptied onto the PCI bus. The burst
will continue until the FIFO is empty or the
receive DMA loses control of the PCI bus (to the
internal transmit DMA or to another PCI
master). Another burst will begin when the
FIFO reaches the threshold level again, or when
the last of the data for the current copy has
been loaded into the FIFO. The PCI bus will be
requested immediately if the receive DMA loses
possession of the bus while the FIFO is above
the threshold level.
Stopping the Receive DMA
The receive DMA may be halted by setting the
STOP_RDMA bit in the command register.
Setting this bit forces RXQUEUED to 0. The
CSMA/CD receiver should also be taken offline
to prevent it from continuing to buffer receive
frames.
The receive DMA will attempt to
complete any copy in progress. When finished,
it will return to its idle state.
When the
CSMA/CD receiver is offline and has also
returned to its idle state, the RXIDLE bit in the
interrupt status register will become true (1). If
the DMA reads a descriptor owned by the host
before it completes its current copy, it will set
the receive queued empty interrupt and return to
the idle state. The DMA will continue the copy
when more buffers are queued. The software
driver can tell if a copy is still in progress or if
there are any more frames in the local receive
RAM by reading the RCIP and RBE bits in the
interrupt status register.
The STOP_RDMA bit can be set when the
receive DMA has read and saved the
information in a descriptor, but there are no
frames in the local receive RAM. In this case,
the receive DMA will reset its current descriptor
pointer back to that descriptor and return to the
idle state. When the RXQUEUED bit is set
again, the DMA will be re-read the descriptor.
THR_SEL
[1]
THR_SEL [0]
THRESHOLD
LEVEL
0
0
1/4 Full (32
Bytes)
0
1
1/2 Full (64
Bytes)
1
0
3/4 Full (96
Bytes)
1
1
Full (128
Bytes)
Maximum Receive Size and Burst Rate
The receive DMA supports frame sizes up to 64
Kbytes. The maximum size for a single data
buffer (fragment) is also 64 Kbytes. The receive
DMA will run at the maximum PCI data rate of
132 Mbps when the target memory system
supports zero wait state writes. DMA bursts, at
this rate, will run for a limited number of dwords.
The length of each burst is dependent on the
FIFO threshold level and access to the local
A lower threshold allows the LAN83C171 to
begin moving data on the PCI bus sooner, while
a higher threshold may allow longer bursts. A
higher threshold level will not result in longer
data bursts if the receive FIFO never reaches
the empty level (due to latencies on the PCI
bus). The default (reset) threshold level is 1/2
full.
25
MAC OPERATION
Transmit Serializer
The LAN83C171 is compliant with the 802.3
standard CSMA/CD protocol for 10 or 100Mb/s
Ethernet networks.
The LAN83C171 CSMA/CD transmitter is
capable of generating network data at rates of
10 and 100Mb/s.
It supports current
implementations of 10Mb/s physical layer
devices, and the 802.3u Media Independent
Interface (MII) for 10 and 100Mb/s.
The transmit serializer converts 8 bits of parallel
data from the transmit buffer to serial or nibble
wide data. The mode of operation is selected by
the MII configuration register. In serial mode,
the transmit data is shifted out of the TXD[0] pin
synchronous to transmit clock. Data is shifted
out least significant bit (LSB) first. In nibble
mode, data is shifted synchronous to the
transmit clock at a one nibble per clock rate.
The data is transmitted least significant nibble
first on pins TXD[3-0]. The LSB is transmitted
on pin TXD[0].
Basic Function
CRC Generator
The transmitter generates serial and nibble
wide data streams at 10 or 100Mb/s. It forms a
proper preamble and SFD field at the beginning
of each packet. The frame data is then shifted
serially or by nibbles from an internal transmit
buffer to the physical layer. The transmitter
completes the packet by computing and
appending the CRC field. During packet
transmission, the transmitter monitors the
network for collisions and retransmits frames
after a random backoff time when necessary.
The transmitter maintains the transmit statistics
and generates status information on each
attempted transmission. Optional operating
modes can be selected by programming the
transmit configuration register.
The transmitter calculates the CRC and
appends it to each packet. CRC data is clocked
out most significant bit (MSB) first. A packet
can be transmitted without an attached CRC
field by programming the transmit descriptor.
This is provided for bridging applications in
which the original checksum must remain
attached to the packet until the final destination.
MAC TRANSMITTER
Transmit Protocol FSM
The transmit protocol FSM controls the
transmission of packets by monitoring
collisions, deferring to active carriers and
collisions, and initiating backoff when needed.
Preamble Generation
At the beginning of each packet, the transmitter
generates 56 bits of preamble (an alternating
'1010' pattern). Following the preamble, a Start
of Frame Delimiter (a '10101011' sequence) is
transmitted.
26
Interframe Gap and Deference
Timers and Counters/Slot Timer
Deference is initiated when both CRS and COL
have terminated at the end of a packet. The
transmitter deference logic initiates a 2-part
timer at the end of network activity. While this
timer is running, no frame transmission will be
initiated. The first part of the timer (interFrame
SpacingPart1) is used to observe the network
for transmission activity by other stations. If this
station is transmitting, carrier is sensed, or
collision is detected during this part of the timer,
the timer will be reset to zero and held there
until the termination of line activity. When the
first part of the timer elapses, line activity is no
longer observed and the timer runs to
completion.
During transmit, the slot timer starts counting
once the receiver recognizes that a carrier is
present at the start of a returning preamble.
When backing off, the slot timer starts with the
end of transmit enable (TX_EN) for the collided
frame and is not reset by any other incoming
frames. The slot timer is programmable by the
transmit control register. The default slot time is
512 bit times.
Backoff Timer
After a transmission is terminated because of a
collision, a retransmission is attempted. The
backoff time is determined by the truncated
binary exponential backoff algorithm. This
algorithm is:
If any frame is queued up for transmission at
the moment of timer expiration, transmission
will be initiated regardless of line activity.
Draw a random integer r such that r 0<=r<2**k
The combination of interFrame SpacingPart1
and interFrame SpacingPart2 makes up the
Inter-Frame Gap (IFG) as defined by the 802.3
specification.
k is the number of retries already on this
transmission. The value k is initialized to 0.
The required backoff time is 'r' number of slot
times.
After the backoff time has been
completed, normal transmission deferral begins.
Collision Handling Logic
The backoff timer is a 12 bit counter that is
initialized to a random number when an
attempted transmission results in a collision.
The counter decrements once per slot time until
it reaches zero. The transmit protocol FSM
utilizes this timer to insert a variable amount of
delay ahead of its attempt to retransmit the
frame.
When collision is detected by the transmitter
section during the first slot timer of an active
transmission, the transmission terminates after
completion of the preamble and the jam
sequence. The jam sequence is 32 bits of logic
'1's. If collision is detected after the slot time is
passed, the transmission will be aborted after
the jam sequence. An out of window collision
interrupt will be generated and the collision
count status will be retained in the transmit
status register for software collection. After the
software has responded to the interrupt and reenabled transmissions, the transmit status will
be cleared and the packet will be automatically
retransmitted.
Collision Counter
Prior to the first attempt at each frame
transmission, the collision counter is initialized
to 0. Each attempted transmission of the frame
resulting in a collision causes the collision
counter to increment. If the maximum number
of collisions (16) is reached before a successful
attempt to transmit the frame, the frame
27
In parallel mode, the physical layer device
transfers data to the LAN83C171 four bits at a
time on the RXD[3-0] data bus. The data is
transferred synchronously to the falling edge of
RXC. The signal Receive Data Valid (RX_DV)
informs the MAC of the RXD bus status. The
physical layer can also notify the LAN83C171 of
invalid data on the medium with the Receive
Error signal (RX_ER). Selecting the receiver
interface mode is performed by programming
the MII Configuration register.
transmission is aborted.
An interrupt is
generated for an aborted frame indicating
transmission complete, and the collision count
value in the transmit status register is 16.
Heartbeat Detection
When the transmitter is configured in serial
mode, after each transmission, the transmit
logic opens a window 3.6µsec long during which
it looks for a pulse on the COL pin. This pulse
is normally generated by the MAU and is
received through the MII interface. If the pulse
is received, the CDH status bit of the transmit
status register is cleared. If no pulse is received,
the CDH bit is set.
Packet Reception/Serial Mode
After detection of carrier, serial bits received on
RXD[0] are synchronized to the rising edge of
RX_CLK. Each bit is shifted through an 8 bit
shift register scanning for a Start of Frame
Delimiter (SFD) pattern of '10101011' received
from left to right. Following detection of SFD, all
bits are byte aligned in the serial to parallel shift
register. Bits are received from least significant
bit to most significant bit within the byte. Data
from the shift register is transferred to the
receive FIFO where it waits for the receive DMA
to transfer it into local memory. The receive
process continues while CRS or COL are
active.
MAC RECEIVER
The LAN83C171 CSMA/CD receiver is capable
of operating with network data rates of 10 and
100Mb/s. It supports current implementations
of 10Mb/s physical layer devices, and the
802.3u Media Independent Interface for 10 and
100Mb/s.
Basic Function
The receiver processes serial or nibble wide
data streams at data rates of 10Mb/s or
100Mb/s. The receiver detects start of frame,
provides destination address recognition and
filtering, transfers recognized frames to
memory, and provides error detection and
reporting.
Parallel Mode
Packet reception begins with the first nibble after
detecting RX_DV active. Nibbles transferred on
RXD[3-0] are synchronized to the rising edge of
RX_CLK and shifted into a 2-nibble shift
register. RXD[0] is the least significant bit
(LSB). SFD is detected when the shift register
contains the value '10101011' from LSB to
MSB. The preamble and SFD pattern received
from the PHY device is required to be nibble
aligned. Bytes are aligned in the 2-nibble shift
register after detection of SFD. Each byte is
transferred to the receive FIFO.
Packet
reception continues while RXDV is active and
ends with the nibble preceding the falling edge
of RX_DV. While RX_DV is de-asserted, the
value of RXD[3-0] has no effect on the MAC.
Interface to Physical Layers
The receiver interfaces to the physical layer in
serial or parallel mode. When in the serial
mode, data is transferred serially on the RXD[0]
pin synchronous to the falling edge of the
receive data clock (RX_CLK). RX_CLK is a
10MHz clock signal recovered by the physical
layer device from the data stream. The CRS
and COL signals provide carrier sense and
collision detect respectively.
28
Reception of all multicast and broadcast frames
can be achieved by setting all bits in the
Multicast filter table and enabling reception of
multicast frames.
If the address is not
recognized by any of the above means, then the
frame will be ignored.
Error Detection
The receiver computes the CRC of incoming
frames for all data following the detection of
SFD in both parallel and serial mode until the
end of frame, including the CRC field.
When an address is recognized, the entire
frame will be saved into local memory.
Computation stops after the reception of the last
whole byte following loss of carrier in serial
mode or the transition of RX_DV from active to
inactive in parallel mode. The final value of the
CRC must be "C704DD7B" for the packet to be
validated. The CRC polynomial used is
AUTODIN II (X32 + X26 + X23 +X22 + X16 +
X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 +
X1 + 1).
Frame Processing
Frame processing begins following the detection
of SFD and continues until the last bit or nibble
of the frame has been received. Frame
processing counts the number of bytes in the
receive frame, transfers data to the receive
FIFO, checks for errors in both size and data,
posts status, generates interrupts, and counts
events. Frame processing can be controlled by
the receive control register to allow flexible
control of frame reception.
In addition, in parallel mode, the receive error
signal, RXER, forces a CRC error when it is
asserted while RX_DV is active.
Address Recognition
Receive Byte Count
The receiver is capable of recognizing
individual, multicast, and broadcast addresses.
It can also be programmed to operate in
promiscuous mode and receive all frames
regardless of address. In all cases, address
recognition begins with the first byte following
SFD and ends with the sixth byte after SFD.
Individual destination addresses are compared
against a 6 byte register station address.
Multicast addresses are recognized by taking a
6 bit snapshot of the partially computed CRC as
the end of the destination address field passes
through the CRC checker. If the address has the
multicast bit set, the 6 bits are used as a
hashed index to a 64 bit Multicast Filter table. If
reception of multicast frames has been enabled
and if the 6 bit hash index points to a bit in the
table that has been set, the multicast frame will
be recognized. Broadcast frames are received
when the broadcast enable bit is set and the
destination address specifies a broadcast frame,
or when the hashed bit in the Multicast Filter
table has been set.
The receive byte counter begins counting with
the first byte of SFD and counts all bytes of the
frame until the end of frame is detected or an
error condition causes the frame processing to
be aborted. The counter filters runt frames by
comparing the current byte count value to the
slot time programmed in the Transmit Control
register. The frame is considered a runt until the
byte count exceeds the slot time value. Runt
frames are not received under default
conditions. Reception of runt frames can be
enabled by setting the receive runts bit in the
receive control register.
Data Transfer
Receive data is stored temporarily in a 8-dword
receive FIFO. Data begins to be stored in the
FIFO after detection of SFD. If the destination
address is not recognized, data stops being
transferred into the FIFO and the FIFO is reset.
When the FIFO level reaches 6-dwords, a burst
29
incorrect, then an alignment error is also
indicated in the status register. When this
occurs, the alignment error counter will be
incremented.
A receive error interrupt is
generated when a CRC error is detected and
monitor mode is not set.
request to the local receive memory is made.
The return of acknowledge is guaranteed to
prevent the receive FIFO from overflowing. The
data path to the receive local memory is 32 bits.
If the receive local memory becomes full during
reception of a frame, the frame is aborted. The
host is notified of the condition with an overflow
interrupt.
Additionally, the missed
packet
counter is incremented for each frame which
could not be received due to the overflow
condition.
The receive control register can be programmed
to enable long frame checking (frames longer
than 1518 bytes). When a long frame is
detected the CRC and alignment counters are
not incremented.
Monitor Mode
Status
The data transfer process can be inhibited by
operating in monitor mode. This mode checks
validity of incoming frames and maintains error
statistics, but does not store the frame in
memory. Frames, which would otherwise have
been accepted, cause the Missed Packet
counter (MPCNT) to increment upon completion
of the frame.
A status register is updated at the completion of
each frame whether it completed normally or
aborted in error. The status register holds
important information about the frame until it is
transferred with the packet data to the receive
local memory. If the frame data is not being
saved due to an error or monitor mode, then the
contents of the status register will be lost after
the completion of the following packet. A
description of the status register contents is
located in the register definition section of this
data sheet.
MPCNT register records the number of overflow
packets when the EPIC is operating in normal
mode. It's function changes when in monitor
mode and counts the number of packets that
were meant for this node but not saved.
Event Counters
Three event counters record CRC errors,
alignment errors, and missed packets. The
counters are all 8 bits wide and count from zero
to 255. At 255 the counters stop until they have
been read by the host. The counters are self
clearing after the read. The counters generate a
shared interrupt when any one of them reaches
a count of 192.
Error Checking
Received frames are checked for CRC and
alignment errors. If the CRC of a received
frame is incorrect, a CRC error is indicated in
the status register and the CRC error counter is
incremented. Reception of the frame is aborted
unless the receiver has been programmed to
receive errored packets. If the frame does not
terminate on a byte boundary and the CRC is
The counter is also incremented for receive local
memory full errors. The missed packet counter
is 8 bits wide and generates an interrupt when
it reaches a count of 192.
30
MII MANAGEMENT INTERFACE
Word 4, Bits 5 - 0:
The
LAN83C171
supports
the
802.3
specification for the MII Serial Management
Interface. The interface consists of two pins: the
clock, MDC; and the data, MDIO.
The
LAN83C171 PHY interface Register allows
writing one bit at a time or the entire PHY
register once. Writing an entire PHY register
option permits lower PCI bus utilization. The
LAN83C171 serializes this data and writes it to
the PHY via MDC and MDIO.
Word 5, Bits 7 - 0:
Word 5, Bits 15 - 8:
Word 6, Bits 15 - 0:
Word 7, Bits 14 - 0:
The remaining words in the EEPROM are
available to software for general purpose nonvolatile storage. The LAN83C171 can operate
with four different size EEPROMs. An external
jumper selects which serial EEPROM is
installed. After the initial recall, the serial
EEPROM may be accessed through the
EEPROM control register. The inputs of the
EEPROM can be controlled directly through
three bits in the register, and the EEPROM size
and data can be read through the register. Each
time the register is written, there is a delay
before the read data is valid and/or the register
may be written again. The EERDY signal
indicates that this delay has expired (EERDY
will stay low for 1280-2560ns after the register
is written). The programming sequence for the
EEPROM may be found in the manufacturer's
data book. Because the EEPROM clock and
data input are multiplexed with the LAN83C171
memory address bus, software must set the
EEPROM enable signal and wait for EERDY
before the programming sequence may be
initiated. The EEPROM enable bit must remain
set until the entire programming sequence has
completed and EERDY has become true.
EEPROM INTERFACE
The LAN83C171 has a serial interface to an
external EEPROM.
The serial EEPROM
contains the LAN Address for the adapter and a
few bytes of configuration information. The LAN
address and configuration information is
automatically recalled from the first eight words
(each word is 16 bits) of the 8 bit parallel
EEPROM
after reset. Access to the
LAN83C171 is disabled during the initial
EEPROM recall. Any attempted access results
in a PCI target retry. The initial recall may be
bypassed through a test "jumper".
EEPROM Format
Word 0, Bits 7 - 0:
Word 0, Bits 15 - 8:
Word 1, Bits 7 - 0:
Word 1, Bits 15 - 8:
Word 2, Bits 7 - 0:
Word 2, Bits 15 - 8:
Word 3, Bits 7 - 0:
Word 3, Bits 15 - 8:
Non-Volatile Control
Register Contents
PCI Minimum Grant
Desired Setting
PCI
Maximum
Latency
Desired
Setting
Subsystem
Vendor
ID
Subsystem ID
LAN Address Byte 0
LAN Address Byte 1
LAN Address Byte 2
LAN Address Byte 3
LAN Address Byte 4
LAN Address Byte 5
Board ID
Checksum
31
JUMPER OPTIONS (EEPROM/RAM)
Advanced Configuration and Power Interface
(ACPI) Support
There are several operational modes in the
LAN83C171 which are selected by "jumpers" at
power-up reset. Actual jumpers do not need to
be installed on the board. The options can be
set by external pull-up or pull-down resistors at
manufacturing time. Pins MD[4:0] are used to
make the jumper selections. The pins are
latched shortly after nRST goes inactive. The
jumpers are not sampled after soft reset. A pulldown resistor sets the jumper value to 0, and a
pull-up sets it to 1. The jumpers are defined as
follows:
The EPIC incorporates all of the requirements
and most of the optional features needed to
comply with the network device class and PCI
bus class sub-specifications of the ACPI
specification. The provided power management
capabilities within the EPIC can be determined
by accessing the “Power Management Register
Block” located in the EPIC PCI configuration
address space.
The Power Management
Register Block also provides an interface to set
or query the chip power state and to enable
wake-up notification.
MD[5] AUXILIARY POWER PRESENT - When
set to 1, indicates the presence of auxiliary
power to support the monitoring of the network
for wake-up events upon the loss of PCI Bus
power.
Wake-Up Events and Notification
The EPIC can be enabled to provide wake-up
notification upon the occurrence of a power
management event (PME). The EPIC supports
the detection of a Magic Packet and the
occurrence of a network link-down event as
PMEs. The detection of a Magic Packet can be
enabled to generate a wake-up notification by
setting the Magic Packet Enable bit in the
General Control Register.
Likewise, the
occurrence of a link-down event can be enabled
to generate a wake-up notification by setting the
appropriate enable bit in the PHY’s interrupt
mask register.
The monitoring of wake-up
events will only occur when the EPIC is in one of
the low power modes.
MD[4] EEPROM TEST - When set to 1, the
EEPROM clock is sped up for test purposes.
MD[3] BYPASS EEPROM RECALL - When set
to 1, the EEPROM recall is not performed after
power-up reset. Used for test purposes only.
MD[2] nBIG EEPROM - Indicates the size of the
serial EEPROM.
0 = 128x16 or 256x16, 1 =
16x16 or 64x16.
MD[1:0] EXTERNAL BUFFER SIZE SELECT Indicates the size of the external receive RAM
according to the following table:
MD [1]
MD [0]
BUFFER SIZE
0
0
0 Kbytes
0
1
16 Kbytes
1
0
32 Kbytes
1
1
128 Kbytes
The software driver can specify if the EPIC
notifies the OS of the occurrence of a PME via
the Power Management Control and Status
Register (bits 23 through 0/PMCSR - address
E0h Configuration Address Space).
If an
enabled PME has occurred (bit 15/PMCSR set)
and the EPIC is enabled to notify the OS (bit
8/PMCSR set), the EPIC will assert the signal
nPME. (Note: nPME can be asserted and
deasserted asynchronously to the PCI clock).
The EPIC will deassert nPME when the driver
either clears the PME status bit (bit 15) or
disables the notification of a PME (bit 8) in the
32
PMCSR. The PME status and enable bits in the
PMCSR will not be altered by the assertion of
PCI reset. The bits will, however, be cleared at
initial power-up by the EPIC as described below.
Therefore, the EPIC will maintain the bits’ states
even during the loss of PCI sourced power to
the chip (assuming that the EPIC is receiving
power from an alternate source).
EPIC Power States
The software driver can place the EPIC into the
fully operational mode D0 or one of the low
power modes D1, D2, or D3 via the PMCSR.
The effects of the assertion of the PCI Bus reset
on the controller’s power state will be selectable
as described below. The EPIC power state will,
however, be set to D0 at initial power-up. The
EPIC will maintain a state even during the loss
of PCI Bus sourced power to the EPIC
assuming the EPIC is receiving power from an
alternate source. The EPIC power states are:
Note: The EPIC will not drive nPME to ground
when not being asserted by the chip and the PCI
sourced power to the EPIC has been removed.
MODE
i
D0
DESCRIPTION
•
Fully operational mode
•
Will not scan the network for a Magic Packet
•
If nPME was asserted in one of the other power states prior to transitioning
to power state D0, nPME will remain asserted during power state D0 until
either bit 15 and/or bit 8 within the PMCSR is cleared
ii
D1
•
Same as D3(Hot)
iii
D2
•
Same as D3(Hot)
iv
D3(Hot)
•
Low power mode (PCI power present)
•
Will assert the Power Down bit (bit 3) in the General Control Register
(address 0Ch - EPIC I/O address space). Setting this bit will gate-off the
controller’s internal system clock
•
If the PCI clock is still active, then PCI configuration space transactions will
be possible
•
Access to the EPIC I/O and memory address spaces will not be possible
•
EPIC PCI-Bus-Master capabilities will be disabled
•
EPIC PCI interrupt capabilities will be disabled
•
Will scan the network for a Magic Packet
•
Will maintain internal state intact
•
Additional reductions in power consumption may be realized by gating-off
the EPIC transmit clock. This can be accomplished by setting bits 15 and
14 to 11b in the MII Configuration Register (address 38h - EPIC I/O address
space)
33
MODE
v
vi
D3(Cold1)
D3(Cold2)
DESCRIPTION
•
Auxiliary powered mode (no PCI sourced power)
•
Same as D3(Hot) with the following exception. As the PCI Bus clock will be
disabled, access to the EPIC Configuration Address space will not be
possible
•
No power mode (auxiliary power not supplied)
•
Will not scan the network for a Magic Packet
•
No transactions possible on any bus
•
Internal state not preserved
34
Before placing the EPIC into one of the low
power states, the driver shall ensure that there
are no ongoing network receptions or
transmissions in progress involving the EPIC
(i.e. the EPIC is in an idle state). Otherwise, the
corruption of such a transfer will be a distinct
possibility.
Supporting Power Management Options
If the effects of the PCI Bus reset on the EPIC
are to be avoided during power state D3(Cold1),
bit 17 in the General Control Register (address
0Ch - EPIC I/O address space) may be set to a
one(1) to make the EPIC ignore the transitions
of the PCI Bus reset.
D3(Cold1) Software Driver Requirements
Also, the affect of gating-off the internal system
clock during the low power states can be
avoided by setting bit 16 in the General Control
Register (address 0Ch - EPIC I/O address
space) to a one(1) to make the EPIC restore its
internal system clock.
For the EPIC to scan the network for a Magic
Packet, monitor the PHY’s interrupt, and provide
wake up notification during power state
D3(Cold1), the driver is required to place the
EPIC into low power state D3, set the Magic
Packet enable bit (bit 18 of the General Control
Register - address 0Ch - EPIC I/O address
space) as desired, set the PHY’s interrupt mask
register as desired, and enable PME notification
(bit 8/PMCSR) prior to the removal of PCI Bus
power.
BIT 21
0
BIT 20
0
0
1
1
0
1
1
PCI Bus reset assertion effect on the current
power state can be selected by setting bits 21
and 20 in the General Control Register (address
0Ch - EPIC I/O address space) as follows:
DESCRIPTION
Initial Power Up State. The assertion of PCI Bus reset will immediately
transition the EPIC power state to D0
The assertion of the PCI Bus reset will not have any effect on the chip
power state. However, the transition from the PCI Bus reset being
asserted to deasserted will change the chip power state to D0
Transitions on the PCI Bus reset will not have any effect on the chip
power state
Same as “10”
interrupt in the Interrupt Status Register. It will
be necessary to clear the PME status bit in the
PMCSR as described above.
PME Generates a PCI Bus Interrupt
The EPIC provides the ability for an enabled
PME assert the PCI Bus interrupt line (nINTA).
To enable this feature during the low power
modes, it will be necessary to set bit 19 to
one(1) in the General Control Register (address
0Ch - EPIC I/O address space). Additionally, bit
14 of the Interrupt Mask Register (address 08h EPIC I/O address space) should be set to
one(1) to have the occurrence of a PME assert
the PCI Bus interrupt. Writing one(1) to bit 14 in
the Interrupt Status Register (address 04h EPIC I/O address space) will not clear the PME
Initial Power-On Reset (POR)
A POR circuit is implemented in the EPIC to
detect the initial assertion of power and provide
the controller with a reset. The circuit keeps the
reset signal in the asserted state until stable
power is detected. The POR also clears the
PME status and enable bits (bits 15 and
8/PMCSR) and puts the EPIC in the D0 power
state (bits 1 and 0/PMCSR set to 00b).
35
Special Power Management Mode
POWER DOWN MODE
A special mode can be enabled to have the
EPIC transition to power state D3(Cold1) upon
the loss of PCI Bus sourced power to the EPIC.
The EPIC/100 has a power down feature which
allows it to consume less power when not in
use. The host may power down the EPIC/100
by writing a 1 to the POWER DOWN bit in the
general control register. When the bit is set, the
chip’s internal system clock is gated off to
reduce switching current (the transmit and
receive clocks will be shut off internally if the
EPIC is in loopback mode when power down is
set). While the EPIC/100 is powered down, the
host may read and write the configuration
registers or the general control register. All
other functions are disabled (attempting any
other operation will cause unpredictable
behavior). The POWER DOWN bit must only
be set when the EPIC/100 is in its idle state.
a)
b)
c)
d)
This special mode can be enabled by
setting bit 22 to one(1) in the General
Control Register (address 0Ch - EPIC
I/O address space). This mode comes
up disabled at initial power-up.
Therefore, the EPIC maintains the state
of this bit through any loss of PCI Bus
sourced power and/or the assertion of
the PCI Bus reset.
The EPIC is notified of the PCI Bus
sourced power loss by way of a board
mechanism connecting a “PCI Bus
Power Good” indication to the EPIC
GPIO1 pin. A high (1) level on this pin
indicates the presence of PCI Bus
sourced power and a low(0) level on
this pin indicates the loss of PCI Bus
sourced power.
While in this mode, the transition from
PCI Bus sourced power “Not Present”
to “Present” will cause the EPIC to
transition its power state from
D3(Cold1) to D0.
As it would not be possible to configure
the
EPIC
power
management
capabilities (as described above) after
the power state has transitioned to D3
(Cold1), such capabilities should be
customized to the particular system
environment prior to the loss of PCI
Bus sourced power.
When the nRST pin is asserted, the EPIC will
automatically enter power down mode after
recalling the contents of the EEPROM. The
host may power up the EPIC/100 by writing a 0
to the POWER DOWN bit. If the host wishes to
issue a software reset to the EPIC/100, the
POWER DOWN bit must be cleared. When the
software reset has completed, the POWER
DOWN bit will remain cleared and the EPIC/100
will be ready to operate.
The power down bit does not affect the PCI
clock inside the EPIC/100.
Instead, the
EPIC/100 supports the PCI clock run function
which allows the host system to slow down or
temporarily shut off the PCI clock at its source.
The clock run function is implemented according
to the PCI Mobile design guide (revision 1.0).
36
C) 64 Kbyte expansion ROM space (may be
mapped anywhere in 32 bit host memory
space - will be disabled after boot
sequence).
D) Interrupt hardwired to PCI nINTA line.
SOFT RESET
The software driver may reset the LAN83C171
to its initial state by setting the soft reset bit in
the general control register. All state machines
and pointers to the internal RAMS will be reset.
Soft reset can only take place when the
LAN83C171 is powered up. (POWER DOWN bit
= 0 in general control register). Soft reset does
NOT affect the configuration of the LAN83C171.
(The
configuration
registers
(excluding
EEPROM control) will only be reset and the
EEPROM will only be recalled after hard reset).
As resources are relocatable, device drivers
must read the configuration registers after boot
time to determine where the device is mapped.
Mapping of Control Functions
The LAN83C171 is automatically configured by
the host system power-up software before the
machine is booted to an operating system.
Configuration is performed through the PCI
configuration space. The LAN83C171 indicates
its requirements and the power-up software
allocates the appropriate resources.
The LAN83C171 control registers are mapped
into both host I/O and memory space (to
accommodate host systems with no I/O space).
In machines with I/O space, mapping into
memory address space may optionally be
disabled by a bit in EEPROM. Any change in
the memory map enable bit will not take effect
until the system is reset (hard reset). The I/O
base address for the control registers will be
stored in the I/O Base Address Register (10h in
the configuration space). The memory base
address for the control registers will be stored in
the Memory Base Address Register (14h in the
configuration space). The I/O space is 256 bytes
long and is always naturally aligned. When
mapped into memory, the control registers
consume 4 Kbytes even though only the first
256 bytes are used. They are always aligned to
a 4 Kbyte boundary. Access to the control
registers is enabled by the memory space and
I/O space enable bits in the PCI Command
Register (04h in the configuration space). Both
memory space and I/O space will be disabled
after reset. All control registers are dword
accessible only.
The LAN83C171 has the following requirements:
Mapping of Flash RAM Functions
A) 256 byte I/O space (may be mapped
anywhere in 32 bit I/O address space)
B) 4 Kbyte memory space (may be mapped
anywhere in 32 bit host memory space may be disabled on any host with I/O
space).
The expansion Flash RAM is accessible when
the "address decode enable" bit in the ROM
base address register (30h in the configuration
space) is set and the memory space enable bit
is set. The flash RAM code is not executable in
place. It must be copied into system RAM and
executed from RAM (as per PCI specification).
Each time the software driver is loaded, it
must set soft reset before enabling the
LAN83C171 to act as a bus master. The
driver may be loaded after a warm boot, and the
LAN83C171 DMA controllers could be left in an
unknown state. If the LAN83C171 is enabled
as a bus master before a soft reset is issued,
the DMA controllers could corrupt host memory
with a bus master operation that was started
before the warm boot. When the soft reset bit is
set, the LAN83C171 takes 15 PCI clocks to reinitialize itself.
The device must not be
accessed within that time period.
CONFIGURATION
37
The data can be programmed into the flash
RAM by following the specifications supplied by
the flash manufacturer. The write pulse for each
individual byte write will be 200 ns.
The
EPIC/100 will write all bytes in a dword that
have valid byte enables during the data phase. If
an access is made to the LAN83C171 while a
flash write is physically taking place, a retry will
be issued on the PCI bus.
LAN83C171 control functions will not be
accessible through memory address space
while the ROM address decode enable bit is
set.
When the expansion Flash RAM is read,
the LAN83C171 always returns all four bytes in
the dword being accessed regardless of the byte
enables active. The Flash RAM can also be
written by writing to an address in the range
defined by the ROM base address register.
ROM
DECODE
ENABLE
1
MEMORY
MAP ENABLE
X
MEMORY
SPACE
ENABLE
1
I/O SPACE
ENABLE
1
EXPANSION
ROM
Enabled
CONTROL
REGISTERS
I/O Space
1
X
1
0
Enabled
Disabled
1
X
0
1
Disabled
I/O Space
1
X
0
0
Disabled
Disabled
0
1
1
1
Disabled
I/O & Memory
0
1
1
0
Disabled
Mem. Space
0
1
0
1
Disabled
I/O Space
0
1
0
0
Disabled
Disabled
0
0
X
1
Disabled
I/O Space
0
0
X
0
Disabled
Disabled
After reset, the ROM will be disabled and the
ROM base address will be unknown. The
system POST code will map the ROM into host
memory space, copy its contents into system
RAM and execute the ROM initialization code (if
no ROM signature is found, the system will
disable the ROM and proceed with the next PCI
device). The ROM initialization code is allowed
to perform dynamic re-sizing of the runtime
code in order to use as little of the host memory
space as possible.
38
DMA DESCRIPTOR BITS DESCRIPTION
TRANSMIT DMA DESCRIPTOR BITS DESCRIPTION
The following diagram shows the format of the transmit descriptor table:
31
0
TX LENGTH
TX STATUS
BUFFER ADDRESS
CONTROL
BUF LENGTH
NEXT DESCRIPTOR ADDRESS
DWORD 0 - STATUS/LENGTH Bit Number
Description
31 through 16: Transmit Length
15 - OWNER: Descriptor ownership bit - set
to 0 when the host owns the descriptor, 1
when the NIC owns the descriptor.
14 and 13 - Reserved.
12 through 8 - COLLISION COUNT: These
bits contain the number of collisions detected
while attempting to transmit the current
packet. Bit 12 also indicates transmit abort
for excessive collisions.
7 - DEFERRING: This bit is set when the
interframe gap state machine is deferring. If
the PHY has asserted the collision line as a
result of jabber, this bit will stay set indicating
the jabber condition. Otherwise, returns 0.
6 - OUT OF WINDOW COLLISION: This bit is
set if a collision is detected more than one slot
time after the start of transmission.
Transmission is aborted under these
conditions.
dword 0
dword 1
dword 2
dword 3
5 - COLLISION DETECT HEARTBEAT: This bit is
set to a '1' during transmission of each packet. It
is set to '0' if a collision is detected within 36 bit
times of the end of each packet transmission. If
no collision is detected within this window, it
remains '1'. This bit always returns zero in full
duplex mode.
4 - UNDERRUN: This bit is set when the transmit
DMA is unable to supply the transmitter enough
data to maintain frame transmission. Otherwise,
returns 0.
3 - CARRIER SENSE LOST: This bit is set if the
carrier is lost during packet transmission. Carrier
sense is monitored from its rising edge at the start
of the outgoing frame's echo. Transmission is not
aborted upon loss of carrier. This bit will always
return zero in full duplex mode.
2 - TRANSMITTED WITH COLLISIONS: When
set, this bit indicates the frame collided at least
once with another frame on the network. It is not
set for either out-of-window collisions or
excessive collision aborts.
39
1 - NON-DEFERRED TRANSMISSION: This
bit is
set if the frame is transmitted
successfully without deferring. A deferred
transmission can only occur the first time an
attempt is made to send a packet. Collisions
are not deferred transmissions.
0 - PACKET TRANSMITTED: This bit is set to
indicate transmission of a packet without
excessive collisions or abort.
DWORD 1 - DATA BUFFER/START OF
FRAGLIST
POINTER
bit
Number
Description
31 through 0: Starting address of data buffer
or
fragment list in host memory space.
Fragment list must be DWORD aligned. Data
buffer may be aligned on any byte.
DWORD 2 - CONTROL/DATA LENGTH Bit
Number Description
31 through 21 Reserved: Must always be set
to 0.
19 - NOCRC: Disable automatic CRC generation
for this packet when set.
18 - IAF: When set, interrupt after this frame is
transmitted.
17 - LFFORM: Fragment list format - A "1"
indicates that the data length field comes before
the pointer in the fragment list. "0" indicates that
the pointer comes before the data length.
16 - FRAGLIST: Indicates that this descriptor
points to a fragment list.
15 through 0 - Length of data buffer (Not used
when FRAGLIST = 1).
DWORD 3 - NEXT DESCRIPTOR POINTER Bit
Number Description
31 through 2 - Starting address of next descriptor
in host memory space. Descriptors must be
DWORD aligned.
1 - 0: Unused.
20 - LASTDESCR: Indicates that this is the
last descriptor for the current transmit frame
(Not used when FRAGLIST = 1).
40
receive descriptor table. Note: The descriptor is
not updated when EPIC is put into the monitor
mode. This is true only if RXSTAT Register is
not read while in the monitor mode.
RECEIVE DMA DESCRIPTOR BITS
DESCRIPTION
The following diagram shows the format of the
31
0
RX LENGTH
RX STATUS
BUFFER ADDRESS
CONTROL
dword 0
dword 1
BUF LENGTH
NEXT DESCRIPTOR ADDRESS
dword 2
dword 3
if RXSTAT is read during monitor mode. While
in monitor mode, RXSTAT is expected to be
read during test only).
DWORD 0 - LENGTH/STATUS Bit Number
Description
31 through 16 - RECEIVE FRAME LENGTH:
Number of bytes in the received frame.
5 - BROADCAST ADDRESS RECOGNIZED:
This bit is set when a broadcast address has
been recognized.
15 - OWNER: Descriptor ownership bit - set to 0
when the host owns the descriptor, set to 1
when the NIC owns the descriptor.
4 - MULTICAST ADDRESS RECOGNIZED: This
bit is set when a multicast address which
passes the hash filter has been recognized.
14 - HEADER COPIED: Set when the receive
status is posted after a header copy.
3 - MISSED PACKET: This bit is set when a
packet with a recognized address and without
errors (or with masked errors) is not buffered
because the device is in monitor mode. This bit
is also set when the packet overflows the
receive buffer space and cannot be received.
Otherwise, returns 0.
13 - FRAGMENT LIST ERROR: Set when all
buffers in the fragment list have been filled
before the entire receive frame is copied.
12 - NETWORK STATUS VALID: Set when bits
6 - 0 contain the status from the current frame
and bits 31-16 contain the frame length. In the
case of a header copy or fragment list error, the
receive status from the current frame may or
may not be posted. In all other cases this bit
will be set.
11 through 7 - Reserved
2 - CRC ERROR: This bit is set when a frame's
computed CRC does not match the CRC
appended to the frame. If the frame is a runt,
this bit will be clear. In MII mode, this bit will
also be set if receive error was asserted on the
MII interface during reception of the frame.
6 - RECEIVER DISABLED: This bit indicates if
the receiver is disabled. This bit is meaningless
in monitor mode. (The bit will read back as one
1 - FRAME ALIGNMENT ERROR: This bit is
set if a CRC error has occurred and the frame
is not byte aligned.
41
17 - LFFORM: Fragment list format - a 1
indicates that the data length field comes
before the pointer in the fragment list. A 0
indicates that the pointer comes before the data
length.
0 - PACKET RECEIVED INTACT: This bit is set
when a packet is received into the buffer space
without error.
DWORD 1 - DATA BUFFER/START OF
FRAGLIST POINTER Bit Number Description
16 - FRAGLIST: Indicates that this descriptor
points to a fragment list.
31 through 0 - Starting address of data buffer or
fragment list in host memory space. Fragment
list must be DWORD aligned. Data buffer may
be aligned on any byte.
15 through 0 - Length of data buffer (when
FRAGLIST = 0) or Offset into frame where copy
begins (when FRAGLIST = 1).
DWORD 2 - CONTROL/DATA LENGTH OR
FRAME OFFSET Bit Number Description
DWORD 3 - NEXT DESCRIPTOR POINTER Bit
Number Description
31 through 19 - Reserved: Must always be set
to 0.
31 through 2 - Starting address of next
descriptor in host memory space. Descriptors
must be DWORD aligned.
18 - HEADER: Indicates that this descriptor is
for a header copy.
1 - 0: Not used.
42
The following table shows the address mapping
of the LAN83C171 control registers. All registers
are dword accessible only.
CONTROL REGISTER MAP/REGISTERS
DECODE
00
COMMAND
40
LAN01
80
PRFDAR1
C0
PTFDAR1
1
1
04
INTSTAT
44
LAN1
84
PRCDAR
C4
PTCDAR1
1
4
08
INTMASK
48
LAN2
88
PRHDAR
C8
PTHDAR4
1
4
0C
GENCTL
4C
ID/CHK
8C
PRFLAR
CC
PTFLAR4
1
4
10
NVCTL
50
MC0
90
PRDLGTH
D0
PTDLGTH4
1
4
14
EECTL
54
MC1
94
PRFCNT
D4
PTFCNT4
1
4
18
PBLCNT
58
MC2
98
PRLCAR
D8
PTLCAR4
4
1
4
1C
Reserved
5C
MC3
9C
PRLPAR
DC
ETXTHR1
1
4
20
CRCCNT
60
RXCON
A0
PREFAR
E0
PTETXC4
4
3
24
ALICNT
64
RXSTAT
A4
PRSTAT
E4
PTSTAT4
4
4
28
MPCNT
68
RXCNT
A8
PRBUF
E8
PTBUF4
4
4
4
2C
RXFIFO
6C
RXTEST
AC
RDNCAR
EC
PTFDAR24
1
1
30
MMCTL
70
TXCON
B0
PRCPTHR
F0
FEVTR
34
MMDATA
74
TXSTAT2
B4
ROMDATA
F4
FEVTRMSKR
38
MIICFG1
78
TDPAR4
B8
F8
FPRSTSTR
3C
IPG1
7C
TXTEST4
BC
PREEMPR1
FC
FFRCEVTR
Notes:
1
Used only during initialization (illegal to access when not idle).
2
Legal to access during transmit underrun only.
3
Legal to access only when frame is discarded after header copy and INTSTAT.RSV is 1.
4
Legal to access only in test mode.
43
CONFIGURATION REGISTERS MAP
The following table shows the address mapping
for the LAN83C171 configuration registers.
Registers are byte, word or dword accessible
(reads always return all four bytes).
31
0
00
Device ID
04
Status
08
0C
Vendor ID
Command
Class Code
Unused
Rev ID
HDR Type
LAT Timer
10
I/O Base Address
14
Memory Base Address
18
Unused
1C
Unused
20
Unused
24
Unused
28
CIS Pointer
2C
Subsystem ID
Subsystem Vendor ID
30
Expansion ROM Base Address
34
Reserved
38
Reserved
3C
Max Lat
Min Gnt
40
:
D8
DC
E0
E4
:
FF
Note:
Unused
Int. Pin
Int. Line
Next Capabilities Ptr
PMRB Capabilities
ID
Unused
Power Management(PM) Capabilities
Unused
PM Control / Status
Unused
All unused and reserved registers return zeroes, when read. Writes to unused and reserved
registers are ignored.
44
CONTROL REGISTERS BITS DESCRIPTION
00 - COMMAND Register
Reset Value: 0000000
register test mode writing 0 clears the bit). The
host may clear this bit by writing a 1 to
TDMA_STOP.
31 through 8 - Reserved: These bits will return
unknown values and should never be written to
1. 7 - TXUGO: This bit is set to restart
transmission after a transmit underrun error.
Setting(1) this bit automatically clears
the
transmit underrun interrupt. Writing a zero to
this bit has no effect. This bit always returns 0
when read.
1 - START_RX: Writing a 1 to this bit will bring
the LAN83C171 receiver on line. When this bit
is cleared, the receiver will stay online until the
stop bit is set.
0 - STOP_RX: Writing a 1 to this bit will take
the LAN83C171 receiver off line. When this bit
is cleared, the receiver will stay offline until the
start bit is set.
6 - STOP_RDMA: This bit is used to halt the
receive DMA. Writing a 1 to this bit clears
RXQUEUED. Writing a 0 to this bit has no
effect. This bit always returns 0 when read.
04 - INTERRUPT STATUS Register
Reset Value: 01001100000000000000000
5 - STOP_TDMA: This bit is used to halt the
transmit DMA. Writing a 1 to this bit clears
TXQUEUED. Writing a 0 to this bit has no
effect. This bit always returns 0 when read.
31 through 28: Unused.
27 - PTA:
PCI Target abort - set when
EPIC/100 cannot complete a bus master
transaction
because
target
aborts
the
transaction.
4 - NEXTFRAME: This bit is set by the host to
indicate that it does not need any more copies
of the current receive frame. The bit will be
cleared by the LAN83C171 the next time it reads
a descriptor. Writing a 0 to this bit has no effect
(in register test mode writing 0 clears the bit.)
26 - PMA: PCI Master abort - set when
EPIC/100 cannot complete a bus master
transaction because no target is found.
3 - RXQUEUED: This bit is set to queue a
receive descriptor. It will be cleared by the
LAN83C171 when it reads a descriptor that is
still owned by the host.
Setting this bit
automatically clears the receive queue empty
interrupt. Writing a 0 to this bit has no effect (in
register test mode writing 0 clears the bit.) The
host may clear this bit by writing a 1 to
RDMA_STOP.
25 - APE: PCI address parity error - set when
an address parity error occurs on the PCI bus
while EPIC/100 is not bus master. This interrupt
will only be set when the Parity Error Response
bit in the PCI configuration space is set.
24 - DPE: PCI data parity error - set when a
data parity error occurs on the PCI bus while
EPIC/100 is bus master. This interrupt will only
be set when the Parity Error Response bit in the
PCI configuration space is set.
2 - TXQUEUED: This bit is set to queue a
transmit descriptor. It will be cleared by the
LAN83C171 when it reads a descriptor that is
still owned by the host.
Setting this bit
automatically clears the transmit queue empty
interrupt. Writing a 0 to this bit has no effect (in
23 - RSV: Receive status valid (read only does not generate an interrupt) - indicates that
the PRSTAT register contains valid status for
the frame currently being processed.
45
22 - RCTS: Receive copy threshold status (read
only - does not generate an interrupt) - indicates
that the copy in progress that has passed the
early receive copy threshold. This bit returns
zero when there is no receive copy currently in
progress or when the current copy has not
passed the threshold.
14 - PME: Power management event (read
only) - indicates that a “Magic Packet” and/or a
link-down event has occurred during one of the
low power states. This bit may only be cleared
by writing a 1 to bit 15 of the PMCSR.
21 - RBE: Receive buffers empty (read only does not generate an interrupt) - indicates that
there is no data ready for copy in the receive
buffer.
12 - FATAL_INT: This signal becomes true if
any fatal error occurs. These are DPE, APE,
PMA, and PTE. Note that these are also
reflected in the interrupt status word (27:24).
20 - TCIP: Transmit copy in progress (read only
- does not generate an interrupt) - indicates that
a transmit DMA copy is partially completed.
The bit is set each time the receive DMA begins
to copy a frame. The bit is reset after the copy
completes and the status is posted.
11 - RCT: Receive copy threshold crossed - set
when the receive copy in progress crosses the
PCI receive copy threshold.
13 - unused.
10 - PREI: This preemptive interrupt event
indicates that a packet is being received, with
the probability that by the time the host
responds to the interrupt, the packet will have
been completely received, reducing latency.
19 - RCIP: Receive copy in progress (read only
- does not generate an interrupt) - indicates that
receive DMA copy is partially completed. The bit
is set each time the receive DMA begins to copy
a frame.
The bit is reset after the copy
completes and the status is posted.
9 - CNT: Counter overflow - indicates that one
of the error counters is nearing its maximum
count.
8 - TXU: Transmit underrun - set when an early
transmit underrun occurs. This interrupt is
cleared automatically when the TXUGO bit in
the command register is set. Clearing this
interrupt manually (by writing to this register)
does not effect the TXUGO bit.
18 - TXIDLE: Transmit idle (read only - does
not generate an interrupt) - indicates that the
NIC transmitter and PCI transmit DMA have
returned their reset states.
17 - RXIDLE: Receive idle (read only - does not
generate an interrupt) - indicates that the NIC
receiver and PCI receive DMA have returned
their reset states.
7 - TQE: Transmit queue empty - set when NIC
reads a transmit descriptor that is still owned by
the host. This interrupt is cleared automatically
when the TXQUEUED bit in the command
register is set. Clearing this interrupt manually
(by writing to this register) does not effect the
TXQUEUED bit.
16 - INT_ACTV: Interrupt active (read only does not generate an interrupt) - indicates that
an interrupt which is not masked is currently set.
This allows the host to read the interrupt status
through a register, even when interrupts are
disabled.
6 - TCC: Transmit chain complete - set when
the complete transmit chain has been
processed.
15 - GP2_INT: This interrupt becomes active
when the pin GPIO(2) goes low. It is typically
used by the PHY to indicate an event.
46
5 - TXC: Transmit complete - set when a packet
has been successfully transmitted or aborted
and the IAF bit is set for that frame.
0C - GENERAL CONTROL
Reset Value: 00000000000000100000000
(Note:
The
POWER
DOWN
bit
will
automatically be set following the EEPROM
recall when the nRST pin is asserted, it will also
be set when the EPIC is placed in one of the low
power states. The POWER DOWN bit will
remain clear after a soft reset.)
4 - RXE: Receive error - set when a CRC error
occurs and Monitor mode is off.
3 - OVW: Receive buffer overflow warning - set
when a frame is received and local receive
buffer space is full.
31 through 23 - Unused.
2 - RQE: Receive queue empty - set when NIC
reads a receive descriptor that is still owned by
the host. This interrupt is cleared automatically
when the RXQUEUED bit in the command
register is set. Clearing this interrupt manually
(by writing to this register) does not effect the
RXQUEUED bit.
22 - D3 ON POWER LOSS ENABLE: This bit
enables the EPIC to enter the D3 power state
upon the loss of PCI Bus sourced power.
21 and 20 - POWER STATE RESET SELECT:
These bits control the effect of the PCI Bus reset
on the EPIC power state as follows:
1 - HCC: Header copy complete - set when
receive frame header has been copied into host
memory.
1)
0 - RCC: Receive copy complete - set when
receive frame has been copied into host
memory.
2)
08 - INTERRUPT MASK Register
Reset Value: 000000000000000
This register is used to enable certain interrupt
sources selectively. Bits that are 1 allow the
corresponding interrupt to cause an interrupt
request. Bits that are 0 block their interrupt
sources.
3)
4)
31 through 16: Unused.
15 through 0: Interrupt enables.
47
“00”
- The assertion of PCI Bus
reset will immediately transition the
EPIC power state to D0. At initial
power-up, this is the state of these two
bits.
“01”
- The assertion of the PCI Bus
reset will not have any effect on the
EPIC power state.
However, the
transition from the PCI Bus reset being
asserted to deasserted will change the
EPIC power state to D0.
“10”
- Transitions of the PCI Bus
reset will not have any effect on the
EPIC power state.
“11”
- Same as “10”.
9 and 8 - RECEIVE FIFO THRESHOLD:
Controls the level at which the PCI burst state
machine begins to empty the receive FIFO.
Default is ½ full. D9 = THR_SEL[1], D8 =
THR_SEL[0].
19 - PME INTA ENABLE: This bit enables the
occurrence of an enabled PME during one of the
low power states to set bit 14 of the Interrupt
Status register.
18 - MAGIC PACKET ENABLE:
This bit
enables the detection of a “Magic Packet” to set
the PME status bit in the PMCSR.
17 - RESET DISABLE: This bit when set
disables the effects of the PCI Bus reset on the
EPIC.
16 - SCLK ENABLE:
This bit, when set,
restores the EPIC internal system clock when
the POWER DOWN bit is set.
[9]
[8]
THRESHOLD LEVEL
0
0
1/4 Full (32 Bytes)
0
1
1/2 Full (64 Bytes)
1
0
3/4 Full (96 Bytes)
1
1
Full (128 Bytes)
7 - TRANSMIT DMA PRIORITY: When this bit
is set, the transmit DMA may preempt the
receive DMA for access to the PCI Bus.
Preemption occurs when the PCI latency timer
expires.
15 - Unused.
14 - RESET PHY: This bit is OR’ed with the
PCI nRST input to generate the nPHYRST
output for the physical layer device.
6 - RECEIVE DMA PRIORITY: When this bit is
set, the receive DMA may preempt the transmit
DMA for access to the PCI Bus. Preemption
occurs when the PCI latency timer expires.
13 and 12 - SOFT[1:0]: These two read/write
bits are provided for use by the software driver.
They do not affect hardware operation.
5 - BIG ENDIAN: This bit controls the order of
the bytes on the data bus when the EPIC is
used in a big endian machine. When this bit is
set to a 1, the EPIC performs byte swapping on
the descriptor and fragment list entries to
compensate for byte swapping by the PCI
bridge.
11 and 10 - MEMORY READ CONTROL:
These bits control which PCI command the
transmit DMA will use when bursting data over
the PCI Bus. When bit 11 is set, the transmit
DMA will use the PCI “memory read line”
command. When bit 10 is set, the transmit
DMA will use the PCI “memory read multiple”
command. When neither bit is set the transmit
DMA will use the PCI “memory read” command.
Use of “memory read multiple” or “memory read
line” may enhance performance on some
machines.
4 - ONECOPY: When this bit is set to a 1, the
EPIC will give the host only one copy of each
receive frame. This bit causes NEXTFRAME to
be set automatically at the end of each frame.
This bit should not be modified when the receive
DMA is not idle.
48
3 - POWER DOWN: Setting this bit puts the
EPIC into a low power sleep mode. When this
bit is cleared (I/O writes to this register are still
enabled in sleep mode) the EPIC will resume in
the state it was in prior to the power down. This
bit may only be set when the chip is idle.
6 - CB_MODE: This bit designates whether the
Epic is in a PCI or a CardBus environment. A
one (1) is CardBus mode while a zero (0) is PCI
mode. It determines whether an interrupt comes
straight out from the interrupt status lines, or if
the CardBus functional event register is used.
2 - SOFTWARE INTERRUPT: When this bit is
set to a 1, the EPIC interrupt pin nINTA will
become active (driven low).
5 - GENERAL PURPOSE I/O[2]: This bit
controls the value of the GPIO[2] pin when
used as an output. When read, this bit always
returns the external value on GPIO[2].
1 - INTERRUPT ENABLE: Setting this bit
enables the EPIC interrupt line. When one of
the interrupt status bits and its corresponding
mask bit are both set, the EPIC will drive the
nINTA pin low. Clearing this bit masks all
interrupts (except software interrupt).
4 - GENERAL PURPOSE I/O[1]: This bit
controls the value of the GPIO[1] pin when
used as an output. When read, this bit always
returns the external value on GPIO[1].
3 - GENERAL PURPOSE OUTPUT ENABLE[2]:
When set, GPIO[2] is driven by
the
LAN83C171. When cleared, GPIO[2] is tristated and may be used as an input. When
used as an input, this pin is reflected in
INTSTAT(15), and is normally used as an
interrupt indication from the physical layer.
0 - SOFT RESET: Setting this bit to a 1 resets
the EPIC to its initialization state. All state
machines and pointers to the internal RAMs will
be reset. The configuration registers and the
non-volatile control register will not be reset and
EEPROM recall will not take place after a soft
reset. This register will return to its reset value
after the operation is complete, regardless of the
data written. The POWER DOWN bit must also
be cleared for the soft reset to take effect.
2 - GENERAL PURPOSE OUTPUT ENABLE[1]:
When set, GPIO[1] is driven by the LAN83C171.
When cleared, GPIO[1] is tri-stated and may be
used as an input.
10 - NON-VOLATILE CONTROL Register
Reset Value (Power Up): 00000000000
1 - CLOCK RUN SUPPORTED:
This bit
enables the LAN83C171 to perform the PCI
clock run function. When set, the clock run
function is enabled.
When cleared, the
nCLKRUN output is tri-stated. This bit is only
writable in register test mode. During normal
operation, it should only be changed by reprogramming the EEPROM and resetting the
system (hard reset.)
This register is loaded from the EEPROM after
reset.
31 through 11: Unused.
10 through 7 - IPG_DLY: This register holds the
inter-packet gap timer. It is used to increase the
amount of delay between packets as they are
being transmitted to decrease the chance of
collisions. The delays can vary between 0 and
19.2 µs in 1.28 µs intervals.
0 - ENABLE MEMORY MAP: This bit controls
whether or not the LAN83C171 control registers
are visible in memory space. When set, the
LAN83C171 control registers will be mapped
into I/O space and memory space (for host
systems that do not have I/O space). When
cleared, the control registers will only be
49
mapped into I/O space. This bit controls how
the host system maps the control registers at
power up by changing the appearance of the
memory base address register in PCI
configuration space. This bit is only writable in
register test mode. In normal operation, it
should only be changed by re-programming the
EEPROM and resetting the system (hard reset.)
Default is disabled when EEPROM recall is
bypassed.
18 – PBLCNT Register
Reset Value: 000000
This programmable burst length counter sets a
maximum number of dwords that can be
transferred during any DMA read or write by the
EPIC/100.
5 through 0 - PBLCNT: The value in this
register reflects the maximum number of dwords
allowed to be transferred in a read or write
burst.
14 - EEPROM CONTROL Register
Reset Value: XXX0000
18 - Reserved
6 - EEPROM SIZE: This read only bit indicates
the size of the external serial EEPROM (1 =
16x16 or 64x16, 0 = 128x16 or 256x16). The
size is selected by an external "jumper" at
power-on reset.
Do not write to this address.
20 - CRC ERROR COUNTER Register
Reset Value: 00000000
5 - EERDY: This read only bit indicates when
the EEPROM input data is valid and/or when
any of the EEPROM outputs may be changed
(1 = ready, 0 = not ready.)
31 through 8: Unused.
4 - EEDO: DATA output from EEPROM - Used
to read back data from serial EEPROM. This
bit is wired directly to the MD[31] input.
7 through 0: Reports the number of CRC errors
since the last time this register was read. The
count will stay at 255 when reached the max.
When the count reaches 192, the counter
overflow interrupt will be set. The count is
cleared when read.
3 - EEDI: Data input to EEPROM - Used to
supply address and data to serial EEPROM.
This bit is muxed onto MA[13] when EEPROM
ENABLE is set.
24 - FRAME ALIGNMENT ERROR COUNTER
Register
Reset Value: 00000000
31 through 8: Unused.
2 - EESK: EEPROM clock - Used to supply the
clock to the serial EEPROM. The value of this
bit is muxed onto MA[14] when EEPROM
ENABLE is set.
7 through 0: Reports the number of frame
alignment errors since the last time this register
was read. The count will stay at 255 when
reached the max. When the count reaches
192, the counter overflow interrupt will be set.
The count is cleared when read.
1 - EECS: EEPROM chip select - This bit is
wired directly to the EECS output pin on the
LAN83C171.
28 - MISSED PACKET COUNTER Register
Reset Value: 00000000
0 - EEPROM ENABLE: When this bit is set,
EESK and EEDI are multiplexed onto the MA
pins.
31 through 8: Unused.
50
management frame is filled with the contents of
the Management Interface Data register. The bit
is self clearing after completion of the
operation.
7 through 0: Reports the number of missed
packet errors since the last time this register
was read. The count will stay at 255 when
reached the max. When the count reaches 192,
the counter overflow interrupt will be set. The
count is cleared when read.
30 - MII MANAGEMENT
CONTROL Register
Reset Value: 00000000000000
0 - READ: This bit is set to 1 to initiate a read
operation on the management interface. When
set, a properly formatted management frame
will be sent on the MDIO line with corresponding
cycles on MDC. Data returned by the PHY is
shifted into the Management Interface Data
register. The bit is self clearing after completion
of the operation.
INTERFACE
This register provides management interface
control for functions such as read, write, and
synchronize. It also contains the PHY address
field and the PHY register address field - to be
sent in the command word to the PHY. A
management operation is executed by writing
the corresponding operation bit to this register.
When the operation is complete, the bit is
cleared automatically.
34 - MII MANAGEMENT INTERFACE DATA
Register
Reset Value: 0000000000000000
This 16 bit register is used by the MII
management unit for all data transfers between
the management and PHY(s).
31 through 14: Unused.
31 through 16: Unused.
13 through 9 - PHY ADDRESS FIELD: This 5 bit
field is sent in the management frame to the
PHY. D13 is the MSB.
15 through 0 - FRAME DATA: A 16 bit value
written to this register will be used in the data
field of a management interface write operation.
For read operations, this 16 bit value will store
the data transferred from the PHY.
8 through 4 - PHY REGISTER ADDRESS
FIELD: This 5-bit field is sent in the
management frame to the PHY. D8 is the MSB.
38 - MII CONFIGURATION Register
Reset Value: 0001XX00
3 - RESPONDER: This bit returns a 1 during a
read operation if a PHY responded with a zero
level on the MDIO line during the first SMCLK
cycle following the idle bit time when both, the
management entity and the PHY, do not drive
the MDIO. This bit can be used to determine if
a PHY responded to the read operation. This bit
is self clearing following a register read. This
bit is read only.
This register
functions.
provides
MII
configuration
31 through 16: Unused.
15 - SET NO TX CLOCK: When bit 14 of this
register is set to one (1), bit 15 will specify the
clock source. Setting this bit to one (1) will
force the TX clock based internal registers to
use the inverted SYSCLK as a clock reference
instead of the TX_CLK input. SYSCLK being
gated-off in the specified powerdown modes, will
help conserve current for the TX clock
dependent registers also.
2 - Unused.
1 - WRITE: This bit is set to 1 to initiate a write
operation on the management interface. When
set, a properly formatted management frame is
sent to the PHY.
The data field of the
51
14 - SELECT TX CLOCK F/F:
description.
PHY device. When clear, the MII interface
operates as defined by the IEEE 802.3µ
Reconciliation Sublayer and Media Independent
Interface(MII) Draft Standard.
See bit 15
13 through 8: Unused.
7 - ALTERNATE DIRECTION: When set, the
alternate data value is input from the MII
management data pin, if serial management
interface is disabled.
3C - INTERPACKET GAP Register
Reset Value: 011110001100000
This register is used to program the interpacket
gap protocol timer. It contains two values. The
first 8 bit value is used to set the total
interpacket gap time used by the transmit state
machine for deferral. The second 7-bit value
sets the first interframe spacing value used in
the deference process.
6 - ALTERNATE DATA: Reading this bit returns
the value at the MII management data pin. A
value written to this bit will be driven onto the
MII management data pin when the serial
management interface is disabled and the
alternate direction bit is set to ouput.
31 through 15: Unused.
5 - ALTERNATE CLOCK SOURCE:
This
register bit is muxed to the MII management
clock pin when the serial management interface
is disabled. When set, the management
interface clock is set.
14 through 8 - INTERFRAME SPACING -PART
ONE: This 7 bit value sets the first part of the
interframe spacing delay time. The default is 60
bit times.
4
ENABLE
SERIAL
MANAGEMENT
INTERFACE: This bit selects between the
serial management interface and a general
purpose interface muxed with the management
interface clock and data pins. When set, the
serial management interface is selected. The
default for this bit is set (1).
7 through 0 - INTERPACKET GAP TIME: This
8 bit value sets the interpacket gap delay time.
The default is 96 bit times.
40 through 48 - LAN ADDRESS Registers
Reset Value (Power Up): Unknown
These registers hold the 48-bit LAN address for
the adapter.
They are recalled from the
EEPROM after (hard)reset.
3 - PHY PRESENT: This bit is read only. It is
set to one when the MDIO line is at a logic one
value indicating the presence of a PHY device.
31 through 16: Unused.
2 - 694 LINK STATUS: This bit is read only and
returns the value of the 694LNK pin on the
LAN83C171.
15 through 0 - LAN ADDRESS: The Destination
address described as:
1 - ENABLE 694: When set, the EN694 pin of
the LAN83C171 is driven to a logic one. When
clear, the EN694 pin is driven low.
[N1][N0][N3][N2][N5][N4][N7][N6][N9][N8][N11][N10]
Where each N is one nibble it will be mapped to
the LAN address registers as follows:
0 - SERIAL MODE ENABLE: When set, the MII
interface functions serially as a 7-wire interface.
This mode should be enabled when the
LAN83C171 is connected to a 10Mb/s serial
LAN0
LAN0
LAN0
52
[15-12] = N3
[11-8] = N2
[7-4] = N1
LAN0
LAN1
LAN1
LAN1
LAN1
LAN2
LAN2
LAN2
LAN2
[3-0] = N0
[15-12] = N7
[11-8] = N6
[7-4] = N5
[3-0] = N4
[15-12] = N11
[11-8] = N10
[7-4] = N9
[3-0] = N8
60 - RECEIVE CONTROL Register
Reset Value: XX00000000
31 through 10: Unused.
9 and 8 - EXTERNAL BUFFER SIZE SELECT:
When D9:8 = <00>, external buffer access is
disabled and all packets are buffered internally.
D9:8 = <01> -> 16Kbyte, D9:8 = <10> ->
32Kbyte, and D9:8 = <11> -> 128Kbyte. These
bits are jumper set on reset.
4C - BOARD ID/CHECKSUM Register
Power Up Reset Value: XXXXXXXXXXXXXXXX
7 - EARLY RECEIVE ENABLE: When set, the
receiver operates in early receive mode. When
early receive is enabled, save errored packets
must be set. The runt size (slot time) must be
programmed to a value greater than or equal to
224 bit times.
This register holds the board ID and the
checksum for the adapter. It is recalled from the
EEPROM after reset.
31 through 16: Unused.
6 - MONITOR MODE: Disables the buffering of
receive packets. Receive status and counters
continue to function. Receive error interrupt is
not posted in monitor mode.
15 through 8 - BOARD ID: Used as the 8 bit
LAN adapter ID field.
7 through 0 - CHECKSUM: Used as the
checksum for the LAN address and board ID.
The sum of the 6 LAN address bytes, the board
ID, and the checksum should be FF.
5 - PROMISCUOUS MODE: When set, address
filtering is bypassed and all frames with
individual addresses are received.
4 - RECEIVE INVERSE INDIVIDUAL ADDRESS
FRAMES: When set, individually addressed
frames are received that do NOT match the
programmed LAN address register.
50 through 5C - MULTICAST ADDRESS
HASH TABLE Registers
Reset Value: Unknown
These 4 registers hold the node's multicast filter
table.
3 - RECEIVE MULTICAST FRAMES: When set,
multicast address filtering is enabled. Frames
with multicast addressing and that pass the
multicast hash filter, will be received.
31 through 16 (MC0): Unused.
15 through 0 - HASH TABLE: The bits in the
hash table are decoded in the following order:
2 - RECEIVE BROADCAST FRAMES: When
set, broadcast frames are received.
MC0 = 15-0
MC1 = 31-16
MC2 = 47-32
MC3 = 63-48
1 - RECEIVE RUNT FRAMES: When set,
frames less than one slot time (in length) are
received.
0 - SAVE ERRORED PACKETS: When set,
frames with CRC and alignment errors are
saved in the receive buffers.
53
64 - RECEIVE STATUS
Reset Value: 0000000
68 - RECEIVE BYTE COUNT
Reset Value: 0000000000000000
The receive status register reports the status of
the most-recently received packet. It reports
receive errors and address recognition type. All
bits are cleared at the start of reception except
for receiver disabled. The contents of the lower
order bits in this register ([6:0]) make up the
lower order bits of the receive packet stamp in
the receive buffer.
This 16 bit register contains the receive byte
count for the most recently received frame. It is
cleared by the receive unit at the start of
reception of each frame.
5-0 - RECEIVE BYTE COUNT: D15 is the MSB
and D0 is the LSB.
6C - RECEIVE TEST
31 through 7 - Unused.
Reset Value: 00000xx00000000
6 - RECEIVER DISABLED: This bit is set when
the receiver is in monitor mode.
31 through 15 - Unused.
14 through 10 - RECEIVE FIFO LEVEL: This 5
bit value returns the receive fifo level.
5 - BROADCAST ADDRESS RECOGNIZED:
This bit is set when a broadcast address has
been recognized.
9 and 8 - Unused.
4 - MULTICAST ADDRESS RECOGNIZED:
This bit is set when a multicast address which
passes the hash filter has been recognized.
7 - RUNT STATUS: Returns 0 when the current
reception is not a runt or receive runt frames is
set. Returns zero when the current receive byte
count is less than the runt size. This bit is read
only.
3 - MISSED PACKET: This bit is set when a
packet with a recognized address and without
errors (or with masked errors) is not buffered
because the device is in monitor mode. This bit
is also set when the packet overflows the
receive buffer space and cannot be received.
Always returns 0.
6 through 0 - Reserved: Do not write ‘1’ to these
bits.
70 - TRANSMIT CONTROL Register
Reset Value: 01111000
2 - CRC ERROR: This bit is set when a frame’s
computed CRC does not match the CRC
appended to the frame. If the frame is a runt,
this bit will be clear. In MII mode, this bit will
also be set if receive error was asserted on the
MII interface during reception of the frame.
31 through 8: Unused.
7 through 3 - SLOT TIME: Selects the number
of bit times to use for the slot time. The value
programmed plus one is multiplied by 32 to
generate the slot time. This value is used for
both the backoff timer and for runt checking.
Default is 0Fh which gives a slot time of 512 bit
times.
1 - FRAME ALIGNMENT ERROR: This bit is
set if a CRC error has occurred and the frame is
not byte aligned.
0 - PACKET RECEIVED INTACT: This bit is set
when a packet is received into the buffer space
without error.
54
time after the start of transmission.
Transmission is aborted under these conditions.
2 and 1 - LOOPBACK MODE SELECT:
D2 D1 Mode
0 0 Normal operation.
0 1 Internal loopback. Packets transmitted
are internally looped back to the
receiver without transmission to the
MII.
1 0 External loopback.
Turns on the
external loopback mode to signal the
PHY to loop back transmit packets.
1 1 Full Duplex mode. Decouples transmit
and receive blocks to allow full duplex
operation without collisions.
5 - COLLISION DETECT HEARTBEAT: This bit
is
set to a '1' during transmission of each packet.
It is set to '0' if a collision is detected within 36
bit times of the end of each packet transmission.
If no collision is detected within this window, it
remains '1'. This bit always returns zero in full
duplex mode.
4 - UNDERRUN: This bit is set when the
transmit DMA is unable to supply the transmitter
enough data to maintain frame transmission.
0 - EARLY TRANSMIT ENABLE: When set, the
transmitter operates in early transmit mode.
3 - CARRIER SENSE LOST: This bit is set if the
carrier is lost during packet transmission.
Carrier sense is monitored from its rising edge
at the start of the outgoing frames echo.
Transmission is not aborted upon loss of carrier.
This bit will always return zero in full duplex
mode.
74 - TRANSMIT STATUS Register
Reset Value: 0000000000000
The transmit status register reports events that
occur on the media at the end of packet
transmission.
All bits are cleared prior to
transmission of a packet and are set as needed.
This register may be read when a transmit
underrun occurs (before the TXUGO bit is set),
otherwise it should only be accessed for test
purposes.
2 - TRANSMITTED WITH COLLISIONS: When
set, this bit indicates the frame collided at least
once with another frame on the network. It is
not set for out-of-window collisions or excessive
collision aborts.
1 - NON-DEFERRED TRANSMISSION: This bit
is set if the frame was transmitted successfully
without deferring. A deferred transmission can
only occur the first time an attempt is made to
send a packet. Collisions are not deferred
transmissions.
31 through 13: Unused.
12 through 8 - COLLISION COUNT: These bits
contain the number of collisions detected while
attempting to transmit the current packet. Bit 12
also indicates transmit abort for excessive
collisions.
0 - PACKET TRANSMITTED: This bit is set to
indicate transmission of a packet without
excessive collisions or abort.
7 - DEFERRING: This bit is set when the
interframe gap state machine is deferring. If the
PHY has asserted the collision line as a result of
jabber, this bit will stay set indicating the jabber
condition. Always returns 0.
78 - TRANSMIT PACKET ADDRESS
Reset Value: 000000000
6 - OUT OF WINDOW COLLISION: This bit is
set if a collision is detected more than one slot
This register contains the transmit MTU’s
pointer to the starting address of the current
frame in the local transmit ram. The register
55
contains the dword address and is write only.
Reads to this register return unknown data.
84 - PCI RECEIVE CURRENT DESCRIPTOR
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
31 through 9 - Unused.
8 through 0 - Address.
This register contains the byte address (in host
memory) of the next descriptor that the receive
DMA will read. The two LSBs are fixed at zero
so that the address will always be DWORD
aligned. Data written into this register will
automatically be stored in the PRFDAR register
at the same time.
7C - TRANSMIT TEST
31 through 12 - Unused.
11 through 8 - Reserved:
these bits.
Do not write ‘1’ to
31 through 2 - PCI ADDRESS.
7 - Force collision.
1and 0 - Not writable - always return zeroes.
6 through 0 - Reserved: Do not write ‘1’ to these
bits.
88 - PCI RECEIVE HOST DATA ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
80 - PCI RECEIVE FIRST DESCRIPTOR
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
This register contains the address where the
receive packet data is to be written in host
memory. The upper 30 bits are driven onto the
PCI Bus as the DWORD address, and are
incremented each time a DWORD is written to
host memory. The two LSBs always contain the
starting byte address of the data buffer, and are
used by the receive DMA to control byte
alignment.
This register contains the byte address of the
first descriptor for the current receive packet. It
is the location in host memory where the receive
status will be posted when the receive copy is
complete. The two LSBs are fixed at zero so
that the address will always be DWORD
aligned. This register is automatically written
with the same data as the PRCDAR register
whenever a write to that register occurs.
31 through 2 - PCI ADDRESS.
1 and 0 - STARTING BYTE ADDRESS.
31 through 2 - PCI ADDRESS.
8C - PCI RECEIVE FRAGMENT
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
1 and 0 - Not writable - always return zeroes.
LIST
This register contains the current fragment list
address. It is the location in host memory of the
next fragment list entry that the receive DMA will
read. The two LSBs are fixed at zero so that the
address will always be DWORD aligned.
56
31 through 2 - ADDRESS.
31 through 6 - Unused.
1 and 0 - Not writable - always return zeroes.
5 through 0 - FRAGMENT COUNT.
90 - PCI RECEIVE DMA DATA LENGTH /
CONTROL BITS
Reset Value: xxxxxxxxxxxxxxxxxxxx
98 - PCI RECEIVE RAM CURRENT ADDRESS
Reset Value: xxxxxxxxxxxxxxxxxx
This register contains the byte address of the
data currently being accessed in the local
receive RAM.
This register contains the number of bytes
remaining in the current data buffer being filled
by the receive DMA. This register is a down
counter and is decremented by the number of
bytes written each time data is written to the
buffer. This register is also used as a temporary
holding space for the offset into a frame at
which a fragment list based copy begins. The
receive DMA control bits may also be read and
written through this I/O port.
31 through 18 - Unused.
17 through 0 - RX RAM ADDRESS.
9C - PCI RECEIVE RAM PACKET ADDRESS
Reset Value: The PRLPAR register will always
point to the starting address of the internal
receive memory after reset. The actual address
will be determined by the memory size jumper
settings:
31 through 20 - Unused.
19 - OWNER:
Indicates whether the last
descriptor read was owned by the NIC (1) or the
host (0). This bit is read only at this location. It
may be written through the PRSTAT register.
Size
128K
32K
16K
0
18 - HEADER: Indicates that this descriptor is
for a header copy.
Reset Value
100000000000000000
001000000000000000
000100000000000000
000000000000000000
17 - LFFORM: Fragment list format - a ‘1’
indicates that the data length field comes before
the pointer in the fragment list. A ‘0’ indicates
that the pointer comes before the data length.
This register contains the byte address of the
beginning of the frame currently being copied
from the local receive RAM. The two LSBs are
fixed at zero so that the address will always be
DWORD aligned.
16 - FRAGLIST: Indicates that this descriptor
points to a fragment list.
31 through 18 - Unused.
17 through 2 - RX RAM ADDRESS.
15 through 0 - BUFFER LENGTH / OFFSET.
1 and 0 - Not writable - always return zeroes.
94 - PCI RECEIVE FRAGMENT COUNT
Reset Value: xxxxxx
This register contains the number of fragments
in the current receive DMA fragment list. It is
decremented just before each fragment is read.
57
12 - NETWORK STATUS VALID: Set when bits
6 through 0 contain the status from the current
frame and bits 31-16 contain the frame length.
In the case of a header-copy or fragment-list
error, the receive status from the current frame
may or may not be posted. In all other cases,
this bit will be set. This bit is read only.
A0 - PCI RECEIVE END OF FRAME ADDRESS
Reset Value: xxxxxxxxxxxxxxxxxx
This register contains the byte address of the
DWORD location immediately following the end
of the current frame in the local receive RAM.
The two LSBs contain the number of valid bytes
in the last DWORD of the frame.
11 through 7: Reserved.
31 through 18 - Unused.
6 - RECEIVER DISABLED: This bit is set when
the receiver is in monitor mode. Otherwise,
returns 0.
17 through 2 - RX RAM ADDRESS.
1 and 0 - ENDING BYTE COUNT.
5 - BROADCAST ADDRESS RECOGNIZED:
This bit is set when a broadcast address has
been recognized.
A4 - PCI RECEIVE DMA STATUS Register
Reset Value:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4 - MULTICAST ADDRESS RECOGNIZED: This
bit is set when a multicast address (that passes
the hash filter) has been recognized.
This register contains the status word that is
posted to the receive descriptor chain after a
frame has been copied. It includes the status
and length of the copied frame as well as the
receive DMA status. This register may be read
when the host chooses not to copy a frame in
receive lookahead mode. Otherwise, it should
only be accessed for test purposes.
3 - MISSED PACKET: This bit is set when a
packet with a recognized address and without
errors (or with masked errors) is not buffered
because the device is in monitor mode. This bit
is also set when the packet overflows the
receive buffer space and cannot be received.
Otherwise, returns 0.
31 through 16 - RECEIVE FRAME LENGTH:
Number of bytes in the received frame.
15 - OWNER: Descriptor ownership bit - This bit
is writable at this location but may only be read
at bit 19 in the PRDLGTH register. When read
here, this bit always returns 0 to set descriptor
ownership to the host.
2 - CRC ERROR: This bit is set when a frames
computed CRC does not match the CRC
appended to the frame. If the frame is a runt,
this bit will be clear. In MII mode, this bit will
also be set if receive error was asserted on the
MII interface during reception of the frame.
14 - HEADER COPIED: Set when the receive
status is posted after a header copy. This bit is
read only.
1 - FRAME ALIGNMENT ERROR: This bit is set
if a CRC error has occurred and the frame is not
byte aligned.
13 - FRAGMENT LIST ERROR: Set when all
buffers in the fragment list have been filled
before the entire receive frame is copied. This
bit is read only.
0 - PACKET RECEIVED INTACT: This bit is set
when a packet is received into the buffer space
without error.
58
A8 - RECEIVE RAM BUFFER
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
B4 - ROMDATA
Reset Value:
00000000000000000000000000000000
31 through 0 - The receive RAM can be read
and written through this I/O port (for test
purposes only). The read or write will occur at
the address specified in the PRLCAR register.
The PRLCAR register will be incremented by
four (one DWORD) each time this port is read
or written.
When data is written to the external flash ROM,
it is written 8 bits at a time. However, the host
will write data to the EPIC 32 bits at a time. The
data is written here and stored. It is then
accessed 8 bits at a time while the write takes
place. Note, however, that this register is
accessible for testing purposes only. During
normal operation, the host will execute a write to
the flash memory by executing a PCI memory
write operation to the memory space defined for
the ROM.
AC - RECEIVE MTU CURRENT ADDRESS
Reset Value: 1000000000000000
This register contains the receive MTU’s pointer
to the next location it will write in the local
receive RAM.
This register contains the
DWORD address and is write only. Reads to
this register return unknown data.
31 through 0 - ROMDATA:
Data is
automatically written here when executing a
memory write to the ROM address space.
BC - PREEMPTIVE INTERRUPT
Reset Value: 00000000000
31 through 16 - Unused.
This register is used to set the preemptive
interrupt value, the number of bytes before the
end of a packet that a packet received interrupt
will be issued.
15 through 0 - ADDRESS.
B0 - PCI RECEIVE COPY THRESHOLD
Register
Reset Value: 11111111XX
10 through 0 - PREEMPTIVE INTERRUPT
VALUE: This value is the number of bytes
before the end of the packet that the interrupt
will be issued.
This register is programmed with the PCI
receive copy threshold for the LAN83C171. An
early receive warning interrupt will be generated
for each frame after the number of bytes,
specified in this register, have been copied into
the receive data buffers in the host memory.
Bits 1 and 0 are ignored; so, the granularity of
the threshold is four bytes. The register should
only be written at the initialization time.
C0 - PCI TRANSMIT FIRST DESCRIPTOR
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
This register contains the byte address of the
first descriptor for the current transmit packet. It
is the location in host memory where the
transmit status will be posted when the
transmission is completed. The two LSBs are
fixed at zero so that the address will always be
DWORD aligned. This register is automatically
written with the same data as the PTCDAR
register whenever a write to that register occurs.
31 through 11: Unused.
9 through 2: THRESHOLD: For early warning
receive interrupt.
1 and 0: Not writable - return unknown data.
59
31 through 2 - PCI ADDRESS.
CC - PCI TRANSMIT FRAGMENT
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
1 and 0 - Not writable - always return zeroes.
C4 - PCI TRANSMIT CURRENT DESCRIPTOR
ADDRESS Register
Reset Value:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX00
LIST
This register contains the current fragment list
address. It is the location in host memory of the
next fragment list entry that the transmit DMA
will read. The two LSBs are fixed at zero so that
the address will always be DWORD aligned.
This register contains the byte address (in host
memory) of the next descriptor that the transmit
DMA will read. The two low significant bits are
fixed at zero so the address will always be
dword aligned.
This register must be
initialized once after reset.
31 through 2 - ADDRESS.
1 and 0 - Not writable - always return zeroes.
D0 - PCI TRANSMIT DMA DATA LENGTH /
CONTROL BITS
Reset Value: xxxxxxxxxxxxxxxxxxxx
31 through 2: PCI ADDRESS: Address for the
next transmit descriptor in the host memory.
This register contains the number of bytes
remaining in the current data buffer being read
by the transmit DMA. This register is a down
counter and is decremented by the number of
bytes copied each time data is read from the
buffer. The transmit DMA control bits may also
be read and written through this I/O port.
1 and 0: Not writable - always return zeroes.
C8 - PCI TRANSMIT HOST DATA ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
This register contains the address where the
transmit packet data is to be read from host
memory. The upper 30 bits are driven onto the
PCI Bus as the DWORD address, and are
incremented each time a DWORD is read from
the host memory. The two LSBs always contain
the starting byte address of the data buffer, and
are used by the transmit DMA to control byte
alignment.
31 through 22 - Unused.
21 - OWNER:
Indicates whether the last
descriptor read was owned by the NIC (1) or the
host (0). This bit is read only at this location. It
may be written through the PTSTAT register.
20 - LASTDESCR: Indicates that this is the last
descriptor for the current transmit frame (Not
used when FRAGLIST = 1).
31 through 2 - PCI ADDRESS.
1 and 0 - STARTING BYTE ADDRESS.
19 - NOCRC:
Disable automatic
generation for this packet when set.
CRC
18 - IAF: When set, interrupt the host after this
frame is transmitted.
17 - LFFORM: Fragment list format - a 1
indicates that the data length field comes before
60
31 through 11: Unused.
the pointer in the fragment list. A 0 indicates
that the pointer comes before the data length.
10 through 2: THRESHOLD: Early transmit.
16 - FRAGLIST: Indicates that this descriptor
points to a fragment list.
1 and 0: Not writable - return unknown data.
15 through 0 - BUFFER LENGTH.
E0 - PCI EARLY TRANSMIT COUNT
Reset Value: xxxxxxxxx
D4 - PCI TRANSMIT FRAGMENT COUNT
Reset Value: XXXXXX
This counter contains the number of bytes to be
copied into the local transmit buffer before the
early transmit threshold is reached. The counter
is loaded with the early transmit threshold value
at the beginning of each frame and counts down
to zero. This register is automatically written
with the same data as the ETXTHR register
whenever a write to that register occurs.
This register contains the number of fragments
in the current transmit DMA fragment list. It is
decremented just before each fragment is read.
31 through 6 - Unused.
5 through 0 - FRAGMENT COUNT.
31 through 11 - Unused.
D8 - PCI TRANSMIT
ADDRESS
Reset Value: 00000000000
RAM
CURRENT
10 through 2 - EARLY TRANSMIT COUNT.
1 and 0 - Not writable - return unknown data.
This register contains the byte address of the
data currently being accessed in the local
transmit RAM.
E4 - PCI TRANSMIT DMA STATUS
Reset Value: xxxxxxxxxxxxx
This register contains a copy of the transmit
status from the most recently completed
transmission. The value is stored in this register
until it can be posted to the transmit descriptor
chain. Data from the host may not be written in
to this register. When this register is written by
the host, it will be loaded with the current value
in the TXSTAT register. Reads work normally.
31 through 18 - Unused.
10 through 0 - TX RAM ADDRESS.
DC - EARLY TRANSMIT
Register
Reset Value: XXXXXXXXXXX
THRESHOLD
This register is programmed with the early
transmit threshold for the LAN83C171.
Transmission will begin on the network after the
number of bytes, specified in this register, have
been loaded into the local transmit RAM. Bits 1
and 0 are ignored; so, the granularity of the
threshold is four bytes. Data written into this
register will automatically be stored in the early
transmit count register at the same time. The
register should only be written at the
initialization time.
The transmit length register and transmit length
counter are also writable through the upper word
at this address.
31 through 16 - TRANSMIT LENGTH: When
this register is written, these bits are stored into
both the transmit length register and the
transmit length counter. These bits are not
readable, and return unknown data when read.
61
15 - OWNER: Descriptor ownership bit - This
bit is writable at this location, but may only be
read at bit 21 in the PTDLGTH register. When
read here, this bit always returns a ‘0’ to set the
descriptor ownership to the host.
2 - TRANSMITTED WITH COLLISIONS: When
set, this bit indicates that the frame collided at
least once with another frame on the network. It
is not set for either out-of-window collisions or
excessive collision aborts.
14 and 13 - Unused.
1 - NON-DEFERRED TRANSMISSION: This bit
is set if the frame was transmitted successfully
without deferring. A deferred transmission can
only occur the first time an attempt is made to
send a packet. Collisions are not deferred
transmissions.
12 through 8 - COLLISION COUNT: These bits
contain the number of collisions detected while
attempting to transmit the current packet. Bit 12
also indicates if a transmit abort for excessive
collisions occurred.
0 - PACKET TRANSMITTED: This bit is set to
indicate the transmission of a packet without
excessive collisions or an abort.
7 - DEFERRING: This bit is set when the
interframe gap state machine is deferring. If the
PHY has asserted the collision line as a result of
jabber, this bit will stay set indicating the jabber
condition.
E8 - TRANSMIT RAM BUFFER
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 - OUT OF WINDOW COLLISION: This bit is
set if a collision is detected more than one slot
time after the start of a transmission. The
transmission is aborted under these conditions.
31 through 0 - The transmit RAM can be read
and written through this I/O port (for test
purposes only). The read or write will occur at
the address specified in the PTLCAR register.
The PTLCAR register will be incremented by
four (one DWORD) each time this port is read
or written.
5 - COLLISION DETECT HEARTBEAT: This bit
is set to a ‘1’ during the transmission of each
packet. It is set to a ‘0’ if a collision is detected
within 36 bit times of the end of each packet
transmission. If no collision is detected within
this window, it remains a ‘1’. This bit always
returns a ‘0’ during full duplex mode.
EC - PCI TRANSMIT 2 FIRST DESCRIPTOR
ADDRESS
Reset Value:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00
4 - UNDERRUN: This bit is set when the
transmit DMA is unable to supply the transmitter
with enough data to maintain the frame
transmission.
If two frames are loaded into the local transmit
RAM, this register contains the byte address of
the first descriptor for the second transmit
packet. It is the location in host memory where
the transmit status will be posted when the
transmission of that frame is completed. The
two LSBs are fixed at zero so that the address
will always be DWORD aligned.
31 through 2 - PCI ADDRESS.
3 - CARRIER SENSE LOST: This bit is set if
the carrier is lost during a packet transmission.
Carrier sense is monitored from its rising edge
at the start of the outgoing frame’s echo. The
transmission is not aborted upon the loss of the
carrier. This bit will always return a ‘0’during
full duplex mode.
1 and 0 - Not writable - always return zeroes.
62
14 through 0: Unused.
FO – FEVTR Register
Reset Value: 0XXXXXXXXXXXXXXX
F8 – FPRSTR Register
Reset Value: 01
This bit is used for CardBus purposes. CardBus
mode must be set in the NVCTL register bit 6 for
this function to be available.
This register is the function present register for
CardBus operations. CardBus mode must be set
in the NVCTL register bit 6 for this function to be
available.
15 - FEVTR: This function event register bit is a
register for holding interrupts in the CardBus
environment.
1 - FPRST_INT: This bit reflects the interrupt
status before it has been sent to the function
event register.
14 through 0: Unused.
F4 – FEVTRMSKR Register
Reset Value: 0XXXXXXXXXXXXXXX
0 - The CardBus bus functions are always
present, and this will always return a ‘1’, and it
can not be written.
This bit is the mask for the fevtr bit in CardBus
operations. CardBus mode must be set in the
NVCTL register bit 6 for this function to be
available.
FC – FFRCEVTR Register
Reset Value: 0XXXXXXXXXXXXXX
This register is the function force event register
for CardBus operations. CardBus mode must be
set in the NVCTL register bit 6 for this function
to be available.
15 - FEVTRMSKR: This bit is used for holding
the mask for the fevtr interrupt. If it is ‘1’, an
interrupt derived from fevtr will not go out to the
host.
15 - FFRCEVTR: When this bit is written to, the
fevtr register will become ‘1’.
14 through 0: Unused.
63
PCI CONFIGURATION REGISTERS BITS DESCRIPTION
27 - SIGNALLED TARGET ABORT: This bit is
not implemented because the LAN83C171 never
signals target abort (always returns 0).
00 - DEVICE ID/VENDOR ID Register
31 through 16 - DEVICE ID: This read only field
returns the LAN83C171 device ID (0005h). Bit
31, when 1, indicates the Component Products
Division and when 0, indicates the System
Products division.
The remaining bits are
assigned arbitrarily to identify each System
Products Division PCI device uniquely.
26 and 25 - DEVSEL TIMING: These two read
only bits always return "00" to indicate that the
LAN83C171 always asserts DEVSEL with fast
timing (zero wait states).
24 - DATA PARITY DETECTED: This bit is set
whenever the following three conditions are met:
1) the LAN83C171 is acting as bus master on
the PCI bus; 2) the LAN83C171 asserts
nPERR or observes nPERR asserted; 3) the
Parity Error Response bit is set.
15 through 0 - VENDOR ID: This read only field
returns the SMSC Vendor ID (10B8h).
04 - PCI STATUS/COMMAND Register
Status Register
Reset Value: 0000000010000000
23 - FAST BACK-TO-BACK CAPABLE: This
read only bit always returns 1 to indicate that
the LAN83C171 is capable of accepting fast
back-to-back transactions when the transactions
are not to the same agent.
Bits in this register are set internally by the
LAN83C171. Bits are cleared by writing a 1 to
their respective locations. Writing 0 to a bit has
no effect (in register test mode, writing 0 sets
the bit).
22 - UDF SUPPORTED: This read only bit tells
the host system whether or not the LAN83C171
supports user definable features. The value of
this bit is recalled from EEPROM at power up
and stored in the NVCTL register. This bit
should be programmed to zero in the EEPROM
to indicate that the LAN83C171 does not
support user definable features.
31 - DETECTED PARITY ERROR: This bit is
set whenever the LAN83C171 detects a parity
error, even if parity error handling is disabled.
30 - SIGNALLED SYSTEM ERROR: This bit is
set whenever the LAN83C171 asserts system
error. The LAN83C171 asserts system error
when an address parity error is detected and
both ‘nSERR enable’ and ‘Parity Error
Response’ bits are set.
21 - 66 MHz CAPABLE: This bit always returns
zero to indicate that the LAN83C171 is not 66
MHz capable.
20 through 16: Reserved (always return 0).
29 - RECEIVED MASTER ABORT: This bit is
set whenever an LAN83C171 bus master
transaction is terminated with master-abort.
COMMAND Register
Reset Value: 0000000000000000
28 - RECEIVED TARGET ABORT: This bit is
set whenever an LAN83C171 bus master
transaction is terminated with target-abort.
15 through 10: Reserved (always return 0).
9 - FAST BACK-TO-BACK ENABLE: This bit is
not implemented as the LAN83C171 never
64
performs bus master transactions
different devices (always returns 0).
to
15 through 8 - PROGRAMMING INTERFACE:
This read only field returns 00h (no specific
register-level programming interface defined).
two
8 - nSERR ENABLE: When this bit is set the
LAN83C171 may assert nSERR. When this bit
is cleared nSERR signaling is disabled.
7 through 0 - REVISION ID: This read only field
returns the LAN83C171 silicon revision ID 06h
7 - WAIT CYCLE CONTROL: This bit is not
implemented as the LAN83C171 does not
employ address/data stepping (always returns
0).
0C - HEADER
Register
6 - PARITY ERROR RESPONSE: When this bit
is set, the LAN83C171 responds to parity errors.
When cleared, the LAN83C171 ignores parity
errors.
23 - MULTI-FUNCTION DEVICE:
This bit
returns 0 to indicate that the LAN83C171 is a
single function PCI device.
TYPE/LATENCY
TIMER
31 THROUGH 24: Unused (returns 00h).
22 through 16 - HEADER TYPE: Specifies the
format of bytes 10h - 3Ch in the configuration
space (00h).
5 through 3 - VGA PALETTE SNOOP,
MEMORY WRITE AND INVALIDATE ENABLE,
SPECIAL CYCLES: Not implemented (always
return 0).
15 through 8 - LATENCY TIMER: This byte is
programmed with the value of the Latency Timer
(in PCI bus clocks) for LAN83C171 bus master
operations. The bottom three bits are hardwired
to 0, giving the latency timer a granularity of 8
clocks. This register is 00h after reset.
2 - BUS MASTER ENABLE: The LAN83C171
may only act as bus master on the PCI bus
when this bit is set. When this bit is cleared, the
LAN83C171 disables its PCI request signal.
1 - MEMORY SPACE ENABLE:
The
LAN83C171 may respond to memory space
accesses when this bit is set. When the bit is
cleared, the LAN83C171 does not respond to
memory space accesses.
7 through 0: Unused (returns 00h).
0 - I/O SPACE ENABLE: The LAN83C171 may
respond to I/O space accesses when this bit is
set. When the bit is cleared, the LAN83C171
does not respond to I/O space accesses.
31 through 8: BASE ADDRESS
CLASS CODE/REVISION ID
1: Reserved (always returns zero).
31 through 24 - BASE CLASS: This read only
field returns the Network Controller Base Class
(02h).
0 - I/O SPACE INDICATOR: This read only bit
returns a 1 to map the control registers into I/O
space.
23 through 16 - SUB CLASS: This read only
field returns the Ethernet Controller Sub-Class
(00h).
14 - MEMORY BASE ADDRESS Register
Reset Value:
XXXXXXXXXXXXXXXXXXXX000000000000
10 - I/O BASE ADDRESS Register
Reset Value:
XXXXXXXXXXXXXXXXXXXXXXXX00000001
7 through 2: Return zeroes to indicate that 256
bytes of address space are required.
65
31 through 12 - BASE ADDRESS: When the
memory map enable bit in the NVCTL register is
set to 1, these are read/write register bits. When
memory mapping is disabled, these bits return
zeroes.
2C - SUBSYSTEM ID/SUBSYSTEM VENDOR
ID Register
Reset Value:
0XXXXXXXXXXXXXXX0000000000000000
This read only register is used to uniquely
identify the add-in board or subsystem with
LAN83C171 residing on it. The value is recalled
from EEPROM after power-up reset.
11 through 4: Return zeroes to indicate that 4
Kbytes of address space are required.
3 - PREFETCHABLE: This read only bit returns
0 to indicate that this address space is not
prefetchable.
31 through 16 - SUBSYSTEM ID: This field is
vendor specific and may be assigned freely. Bit
31 is hardwired to 0. The remaining bits are
recalled from EEPROM.
2 and 1 - TYPE: These two read only bits
return "00" to indicate that the control registers
may be mapped anywhere in the 32 bit address
space.
15 through 0 - SUBSYSTEM VENDOR ID: This
field identifies the subsystem vendor. The value
is assigned by the PCI SIG.
0 - MEMORY SPACE INDICATOR: This read
only bit returns a 0 to map the control registers
into memory space.
30 - EXPANSION ROM BASE ADDRESS
Register
Reset Value:
XXXXXXXXXXXXXXXX0000000000000000
28 - CIS POINTER Register
Reset Value:
01110000000000000000000100000000
31 through 16: BASE ADDRESS
This read only register points to the location of
the CardBus "Card Information Structure (CIS)."
15 through 1: Return zeroes to indicate that 64
Kbytes of address space are required.
31: Reserved (always returns zero).
1 - ADDRESS DECODE ENABLE: Controls
whether or not the LAN83C171 accepts
accesses to its expansion ROM.
30 through 28 - ADDRESS SPACE
INDICATOR: Returns 7h to indicate that the
CIS is mapped into expansion ROM space.
3C - BUS REQUIREMENTS/INTERRUPT MAP
Register
Reset Value:
000000000000000000000001XXXXXXXX
27 through 24 - ROM IMAGE NUMBER: Returns
0h to indicate that the CIS is located in image 0
in the expansion ROM.
31 through 24 - MAXIMUM LATENCY: This
read only field specifies how often the
LAN83C171 needs to gain access to the PCI
bus.* To enable performance tuning, the value
is recalled from EEPROM after reset.
23 through 0 - OFFSET: Returns 000100h to
indicate that the CIS starts 256 bytes into image
0 of the expansion ROM.
23 through 16 - MINIMUM GRANT: This read
only field specifies the length of a burst period
the LAN83C171 needs assuming a 33 MHz PCI
66
* The maximum latency and minimum grant
registers are used to indicate the LAN83C171's
desired settings for Latency Timer values. Both
registers specify a period of time in units of 1/4
microsecond. For example, if the LAN83C171
needs to perform a 2 microseconds long burst
every 11 microseconds (on the average), then
the maximum latency register would read 44
(1Ch) and the minimum grant register would
read 8 (08h).
clock rate.* To enable performance tuning, the
value is recalled from EEPROM after reset.
15 through 8 - INTERRUPT PIN: This read only
field returns 01h to indicates that the
LAN83C171's interrupt output is connected to
the nINTA pin on the PCI connector.
7 through 0 - INTERRUPT LINE: This byte is
programmed with interrupt routing information.
The value indicates the input of the systems
interrupt
controller(s)
that
LAN83C171's
interrupt pin is connected to. Values in this
register are system architecture specific.
67
20 - AUXILIARY POWER SOURCE: This bit will
read back as a ‘1’ to indicate that the EPIC
requires auxiliary power during power state
D3(Cold1) in order to generate a PME. This is
true only if the board on which the EPIC is
currently implemented supports PME generation
during D3 (Cold1) as indicated by bit 31 of this
register. If, however, the board on which the
EPIC is currently implemented does not support
PME generation during D3 (Cold1), then bit 20
will read back as zero(0).
DC – POWER MANAGEMENT REGISTER
BLOCK (1st Half)
Reset Value:
x1110110001x00010000000000000001
Bits 31 through 16 of this register are
collectively known as the “Power Management
Capabilities”. This entire register is read only.
31 - D3(COLD1) PME SUPPORT: This bit
indicates whether the EPIC can generate a PME
during power state D3(Cold1) based on the
capabilities of the board on which it is
implemented. To determine this, the EPIC will
latch the state of I/O pin MD(5) during initial
power-up. If the board is capable of supplying
auxiliary power to the EPIC upon the removal of
PCI Bus power, then this bit should be pulled to
a high(1). Otherwise, it should be pulled to a
low(0).
19 - PME CLOCK: This bit will read back as a
zero(0) to indicate that the EPIC does not rely
on the presence of the PCI Bus clock to
generate a PME.
18 through 16 - VERSION SUPPORT: These
bits will read back as “001” to indicate that the
EPICXF implements the registers as described
in revision 1.0 of the PCI power management
specification.
30 through 27 - D3(HOT) THROUGH D0 PME
SUPPORT: These bits will read back as “1110”
to indicate that the EPIC can generate a PME
during power states D3(Hot), D2, and D1, but
not power state D0.
15 through 8 - NEXT CAPABILITY POINTER:
These bits contain the pointer address for the
next capability within the capabilities list. Will
read back as 00h to indicate that there are no
other capabilities available for the EPIC.
26 through 25 - D2 AND D1 SUPPORT: These
bits will read back as “11” to indicate that the
EPIC supports power states D1 and D2.
7 through 0 - CAPABILITY ID: These bits
contain the “Capability Identifier” code. The
code for the “Power Management Register
Block” is 01h.
24 through 22 - Reserved. Will read back as
“000.”
E0 – POWER MANAGEMENT REGITER
BLOCK (2nd Half)
Reset Value:
00000000000000000000000000000000
21 - DEVICE SPECIFIC INITIALIZATION: This
bit will read back as a ‘1’ to indicate that the
EPIC requires device specific initialization
(beyond the standard PCI configuration header)
prior to being usable as a NIC.
Bits 23 through 0 of this register are collectively
referred to as the “Power Management
Control/Status Register.”
68
31 through 24 - PM DATA: These bits will
return 00h (read only) since the EPIC does not
support the read back of power and heat
dissipation information.
14 and 13 - PM DATA SCALE: These bits will
return “00” (read only) since the EPIC does not
support the read back of power and heat
dissipation information.
23 through 16 - BRIDGE SUPPORT
EXTENSIONS: These bits will return 00h (read
only) since the EPIC is not a PCI-to-PCI bridge.
12 through 9 - PM DATA SELECT: These bits
will return “0000” (read only) since the EPIC
does not support the read back of power and
heat dissipation information.
15 - PME STATUS: This bit will indicate if the
EPIC has detected an enabled PME while in one
of the low power states regardless of whether it
is enabled to notify the OS. This bit can be
cleared by writing a ‘1’ to it. Writing a ‘0’ to this
location has no effect.
8 - PME ENABLE: This bit enables the EPIC to
notify the OS of the occurrence of a PME.
7 through 2 - Reserved.
“000000” (read only).
Will read back as
1 and 0 - POWER STATE: These bits allow the
driver to specify and query the power state of
the EPIC. D0 corresponds to 00b, D1 to 01b, D2
to 10b, and D3 to 11b.
69
OPERATIONAL DESCRIPTION
Maximum Guaranteed Ratings
Operating Temperature Range......................................................................................... 0°C To +70°C
Storage Temperature Range....................................................................................... -55°C To +150°C
Lead Temperature Range (soldering, 10 Seconds).................................................................... +325°C
Positive Voltage on any pin with respect to Ground .............................................................. VDD + 0.3V
Negative Voltage on any pin with respect to Ground..................................................................... -0.3V
Maximum VDD ....................................................................................................................................................................................................................................... +5.5V
The above is a stress rating only. Stresses greater than the ones listed above could damage the
device permanently. Device operation outside of the above stated conditions is not recommended.
Note: When powering this device from a laboratory or system power supply, it is important that the
Absolute Maximum Ratings are not exceeded. Some power supplies exhibit voltage spikes on their
outputs when the AC power is switched on or off. Also, voltage transients on the AC power line may
appear on the DC outputs. If such possibilities exist, a clamping circuit should be used.
DC Electrical Characteristics
(TΑ = 0°C — +70°C; VDD = +4.7V — +5.3V)
PARAMETER
SYMBOL
Current Supply
ICCOP
EPIC Power Mode D0
Current Supply
ICCLP
EPIC Power Mode D1-D3
(hot)
Current Supply
ICCAUX
EPIC Power Mode D3 (cold1)
Input Current Leakage dc_lk1
Low Input Leakage
IIL
High Input Leakage
IIH
Output Current Leakage dc_lk2
Low Output Leakage
IOL
High Output Leakage
IOH
(Buffer Types: TBS -for
buffers w/o internal Pulls)
PCI Clock - IPCLK
Low Input Voltage
VIL
High Input Voltage
VIH
System Clock - ISCLK
Low Input Voltage
VIL
High Input Voltage
VIH
MIN
TYP
MAX
130
UNITS
mA
COMMENTS
Operating Mode
75
mA
Low Power Mode
72
mA
Aux. Power Mode
-10
-10
+10
+10
µA
µA
VIN = 0.5V
VIN = 2.7V
-10
-10
+10
+10
µA
µA
VIN = 0.0V
VIN = 5.3V
0.8
V
V
0.8
V
V
2.2
2.6
70
PARAMETER
IPCI , ITTL , IOPCI , IOTTLX
Low Input Voltage
High Input Voltage
IAN
Low Input Voltage
High Input Voltage
OTTLX , IOTTLX
Low Output Voltage
High Output Voltage
OPCI , IOPCI
Low Output Voltage
High Output Voltage
SYMBOL
MIN
VIL
VIH
2.0
VIL
VIH
2.5
VOL
VOH
2.4
VOL
VOH
2.5
TYP
MAX
UNITS
0.8
V
V
0.0
V
V
0.4
V
V
0.55
V
V
COMMENTS
IIL = TBDmA
IIH = TBDmA
X for IL = 2, 4, & 8mA
loads for the respective
pins
IL = 6mA
Capacitance (TΑ = 25°C; fC = 1MHz; VDD = +5V)
PARAMETER
PCI Clock Input
Capacitance
SYS Clock Input
Capacitance
Input Capacitance
Output Capacitance
SYMBOL
CINPCLK
MIN
TYP
MAX
TBD
UNITS
pF
COMMENTS
The pin under test tied
CINSCLK
TBD
pF
to AC ground. All other
CIN
COUT
TBD
TBD
pF
pF
pins tied to TBD ground
71
TIMING DIAGRAMS
PCICLK
t3
t1
t2
t1
nFRAME
t3
t2
nCBE
PCI_CBE.TD
FIGURE 6 - PCI COMMAND TIMING
NAME
t1
t2
t3
MASTER
MIN
MAX
2ns
11ns
2ns
11ns
TARGET
MIN
MAX
7ns
0ns
72
DESCRIPTION
Input setup to clock
(Master) Clock to signal valid delay
(Target) Input hold time from clock
Clock to signal valid delay
t2
t2
PCICLK
nFRAME
nTRDY
t1
nDEVSEL
t1
PCI_DVSL.TD
FIGURE 7 - PCI/nDEVSEL TIMING
NAME
t1
t2
MASTER
MIN
MAX
0ns
TARGET
MIN
MAX
2ns
11ns
7ns
73
DESCRIPTION
(Master) Input hold time from clock
(Target) Clock to signal valid delay
Input setup to clock
PCICLK
t5
t6
t1
nIRDY
t2
t3
nTRDY
t4
PCI_IRTR.TD
FIGURE 8 - PCI/nIRDY AND nTRDY TIMING
NAME
t1
t2
MASTER
MIN
MAX
2ns
t3
t4
7ns
0ns
t5
t6
2ns
11ns
TARGET
MIN
MAX
7ns
0ns
2ns
11ns
2ns
11ns
11ns
74
DESCRIPTION
Input setup time to clock
(Master) Clock to signal valid delay
(Target) Input hold time from clock
Input setup time to clock
(Master) Input hold time from clock
(Target) Clock to signal valid delay
Clock to signal valid delay
Clock to signal valid delay
t3
t2
PCICLK
nFRAME
nTRDY
t1
AD (Add/Data)
PCI_RD.TD
FIGURE 9 - PCI/DATA READ TIMING
NAME
t1
t2
t3
MASTER
MIN
MAX
0ns
TARGET
MIN
MAX
2ns
11ns
7ns
2ns
11ns
75
DESCRIPTION
(Master) Input hold time from clock
(Target) Clock to signal valid
Input setup time to clock
Clock to signal valid
t2
PCICLK
nFRAME
nTRDY
t1
t2
AD (Add/Data)
PCI_WR.TD
FIGURE 10 - PCI/DATA WRITE TIMING
NAME
t1
t2
MASTER
MIN
MAX
2ns
11ns
TARGET
MIN
MAX
7ns
0ns
76
DESCRIPTION
Input setup time to clock
(Master) Clock to signal valid delay
(Target) Input hold time from clock
PCICLK
IDSEL
nFRAME
AD
Config Addr
Config Data
nCBE
Config Write
BE
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Data Par
Addr Par
TRG_CFWR.TD
FIGURE 11 - PCI - TYPICAL CONFIGURATION WRITE/EPIC IS TARGET
PCI Bus Cycle Illustration
77
PCICLK
IDSEL
nFRAME
AD
Config Addr
nCBE
Config Read
Config Data
BE
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Data Par
Addr Par
TRG_CFRD.TD
FIGURE 12 - PCI - TYPICAL CONFIGURATION READ/EPIC IS TARGET
PCI Bus Cycle Illustration
78
PCICLK
nFRAME
AD
Address
nCBE
I/O Read
Data
BE
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Addr Par
Data Par
TRG_IORD.TD
FIGURE 13 - PCI - TYPICAL I/O READ/EPIC IS TARGET
PCI Bus Cycle Illustration
79
PCICLK
nFRAME
AD
Address
Data
nCBE
I/O Write
BE
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Addr Par
Data Par
TRG_IOWR.td
FIGURE 14 - PCI - TYPICAL I/O WRITE/EPIC IS TARGET
PCI Bus Cycle Illustration
80
PCICLK
nREQ
nGNT
nFRAME
AD
nCBE
Address
Read Cmd
Data 1
BE 1
Data 2
Data N
BE 2
BE N
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Data Par 1Data Par 2
Addr Par
Data Par N
M_RD_S_C.TD
FIGURE 15 - PCI - TYPICAL READ TRANSACTION/SYSTEM MEMORY TO CHIP
EPIC IS BUS MASTER
PCI Bus Cycle Illustration
81
PCICLK
nREQ
nGNT
nFRAME
AD
nCBE
Address
Write Cmd
Data 1
BE 1
Data 2
BE 2
Data N
BE N
nIRDY
nTRDY
nSTOP
nDEVSEL
PAR
Addr Par Data Par 1Data Par 2
Data Par N
M_WR_C~S.TD
FIGURE 16 - PCI - TYPICAL WRITE TRANSACTION/CHIP TO SYSTEM MEMORY
EPIC IS BUS MASTER
PCI Bus Cycle Illustration
82
TX_CLK
t1
nibble 1
TXD
t1
nibble x
t1
last nibble
t1
t2
TX_EN
t3
t4
CRS (1/2 Dup)
MII_TX.TD
FIGURE 17 - MII - TRANSMIT TIMING FOR 10/100Mb/s
Note: Clock Frequency Changes to 2.5 MHz for 10 Mb/s Nibble Transfers
NAME
t1, t2
t3
t4
MIN
0ns
0ns(100Mb/s)
0ns(10Mb/s)
0ns(100Mb/s)
0ns(10Mb/s)
MAX
25ns
40ns(100Mb/s)
400ns(10Mb/s)
160ns(100Mb/s)
1.6µs(10Mb/s)
83
DESCRIPTION
Clock to output delay
Min: 0 bit times
Max: 4 bit times
Min: 0 bit times
Max: 16 bit times
RX_CLK
t1
t2
RXD
t4
t3
t5
RX_DV
CRS (1/2 Dup)
MII_RX1.TD
FIGURE 18 - MII - RECEIVE TIMING FOR 100Mb/s
Note: Clock Frequency Changes to 2.5MHz for 10Mb/s Nibble Transfers
NAME
t1, t3
t2, t4, t5
MIN
10ns
10ns
MAX
84
DESCRIPTION
Input Setup Time
Input Hold Time
RX_CLK
t1
t2
RXD
t4
t3
RX_DV
t4
t3
RX_ER
RX_ER expected to be at least 1 clk if CRS (1/2 Dup) error, otherwirse 2 clks
MII_RX2.TD
FIGURE 19 - MII - RECEIVE ERROR (RX_ER) TIMING FOR 100Mb/s
Note: Clock Frequency Changes to 2.5 MHz for 10 Mb/s Nibble Transfers
NAME
t1, t3
t2, t4
MIN
10ns
MAX
10ns
85
DESCRIPTION
Input Setup Time
Input Hold Time
W
MDC
R
t1
t2
Write Data
MDIO
t3
Read Data
WRITE
READ
MII_MDIO.TD
FIGURE 20 - MII - SERIAL MANAGEMENT WRITE/READ
NAME
t1
MIN
10ns
t2
10ns
t3
0ns
MAX
300ns
86
DESCRIPTION
Data ready before the rising
edge of MCLK (Setup time)
Data hold after the rising edge
of MCLK
Data ready to MCLK (Required
by EPIC)
MA
Address
t1
nRAMOE
nRAMCS
t3
t2
MD/JMP
t4
Data from RAM
RAM_RD.TD
FIGURE 21 - EXTERNAL(OPTIONAL) RAM READ
NAME
t1
t2
t3
t4
MIN
0ns
MAX
250ns
250ns
0ns
87
DESCRIPTION
Address setup before output
enable
Chip select access time
Output enable to data valid
Output hold from address
change
t1
Address
MA
t2
nRAMOE
t4
nRAMCS
t5
MA/15nRAMWR
t6
t7
Data to RAM
MD/JMP
RAM_WR.TD
FIGURE 22 - EXTERNAL (OPTIONAL) RAM WRITE
NAME
t1
t2
t4
t5
t6
t7
MIN
210ns
120ns
110ns
180ns
200ns
120ns
MAX
88
DESCRIPTION
Address valid to end of write
Address hold time
Chip select hold time
Write Pulse width
Data setup time
Data hold time
FIGURE 23 - 208 PIN PQFP PACKAGE OUTLINE, 2.6 MM FOOTPRINT
See Table on the following page.
89
PACKAGE DIMENSIONS
A
A1
A2
D
D/2
D1
E
E/2
E1
H
L
L1
e
q
W
R1
R2
ccc
MIN
~
0.05
3.17
30.35
15.175
27.90
30.35
15.175
27.90
0.90
0.35
~
0o
0.10
~
~
~
NOMINAL
~
~
~
30.60
15.30
28.00
30.60
15.30
28.00
~
0.50
1.30
0.50 Basic
~
~
0.20 or 0.15
0.30 or 0.20
~
MAX
4.07
0.5
3.67
30.85
15.425
28.10
30.85
15.425
28.10
0.23
0.65
~
o
7
0.30
~
~
0.08
REMARK
Overall Package Height
Standoff
Body Thickness
X Span
1
/2 X Span Measure from Centerline
X Body Size
Y Span
1
/2 Y Span Measure from Centerline
Y Body Size
Lead Frame Thickness
Lead Foot Length from Centerline
Lead Length
Lead Pitch
Lead Foot Angle
Lead Width
Lead Shoulder Radius
Lead Foot Radius
Coplanarity
Notes:
1
Controlling Units: millimeter
Tolerance on the position of the leads is ± 0.04 mm maximum.
3
Package body dimensions D1 and E1 do not include the mold protrusion. Maximum mold
protrusion is 0.25 mm.
4
Dimension for foot length L measured at the gauge plane 0.25 mm above the seating plane.
5
Details of pin 1 identifier are optional but must be located within the zone indicated.
2
1997© STANDARD MICROSYSTEMS
CORP.
Circuit diagrams utilizing SMSC products are included as a means of illustrating
typical applications; consequently complete information sufficient for construction
purposes is not necessarily given. The information has been carefully checked and
is believed to be entirely reliable. However, no responsibility is assumed for
inaccuracies. Furthermore, such information does not convey to the purchaser of the
semiconductor devices described any licenses under the patent rights of SMSC or
others. SMSC reserves the right to make changes at any time in order to improve
design and supply the best product possible. SMSC products are not designed,
intended, authorized or warranted for use in any life support or other application
where product failure could cause or contribute to personal injury or severe property
damage. Any and all such uses without prior written approval of an Officer of SMSC
and further testing and/or modification will be fully at the risk of the customer.
LAN83C171 Rev. 08/26/97