WINBOND W89C840AF

W89C840AF
Winbond LAN
W89C840AF
100/10Mbps Ethernet Controller
-1 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
-2 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
W89C840AF is a highly integrated Ethernet LAN controller for both 100BaseT and 10BaseT Ethernet.
It provides a host bus interface complying with the PCI local bus specification revision 2.1, and the MII
interface complying with the IEEE802.3u standard for easily implementing an Ethernet LAN adapter. The
built-in 2K bytes transmit FIFO and 4K bytes receive FIFO, controlled by the on-chip bus master, are designed
for improving network performance and reducing the host bus utilitzation.
The on-chip DMA controller handles the data transfer between the host memory and the FIFOs. The data
received from network are queued into the receive FIFO and then, directly moved into the host memory
through the PCI bus. On the other hand, the transmitted data are fetched from the host memory and directly
queued into the transmit FIFO. No extra on-board memory is needed for data buffering during the data
transceiving operation.
For featuring the specifications of PC97/98, W89C840AF implements power management functinos
which are compliant with Advanced Configuration and Power Interface ( ACPI) specification Rev. 1.0, PCI
Power Management Interface specification Rev. 1.0, and Network Device Class Power Management Reference
specification V1.0a as well as remote wakeup function based on the OnNow initiative and the ACPI
specification requirement of PC 97 and PC 98.
Many versatile registers, total 48 inside, including host bus control registers, direct memory
access(DMA) control registers, media access control registers(MAC), power management control/status
registers and signature identification registers, are implemented for system configuring and control. All of these
long word accessible registers perform the status report and the precisely control on the operation of transmit
and receive. It also provides an extra channel for the on-line application program to update the on-board
expansion ROM device in some specific application environment.
Features
l
Complies with IEEE 802.3, 802.3u, ANSI 8802-3 and Ethernet standards
l
Supports PCI bus master mode for DMA operation, fully complying with PCI 2.1 standard
l
Compliant with APCI R1.0, PCI power management R1.0 and Network device Class Power
management Reference specification V1.0a
l
Supports remote wakeup function
l
Both half duplex and full duplex available for 10/100M operation
l
Flexible data structure for host compatibility and system performance
l
Supports 25 to 33 Mhz PCI clock speed
l
Supports full MII management function
l
Provides EEPROM and flash memory on-board programming function
l
Supports both big and little endian byte ordering for descriptor and buffer
l
Flexible address filtering modes
-- 64-bit hash-table and one perfect address
-- all multicast and promiscuous
l
A boot ROM interface, capable of supporting up to 256KB
l
Supports automatic loading configuration register
l
Internal and external loopback mode for diagnostic
-3 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
l
Single 5 volt power supply
l
128 pins PQFP package
MIRXCLK
MIRXER
MIRXDV
MICOL
MICRS
GND
VCC
MIMDIO
MIMDC
MITXEN
MITXD3
MITXD2
MITXD1
MITXD0
GND
MITXCLK
VCC
GND
VCC
BTADD17
BTADD16
BTADD15
BTADD14
BTADD13
BTADD12
BTADD11
BTADD10
BTADD9
GND
VCC
BTADD8
BTADD7
BTADD6
BTADD5
BTADD4
BTADD3
BTADD2
BTADD1
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
Pin Assignment
BTADD0
GND
VCC
BTADATA7
BTADATA6
BTADATA5
BTADATA4
EEDO/BTADATA3
EEDI/BTADATA2
EECK/BTADATA1
BTADATA0
GND
VCC
EECS
BTCSB
BTOEB
BTWEB
GND
VCC
AD0
AD1
AD2
AD3
AD4
AD5
AD6
W89C840AF
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
VCC
GND
C_BEB3
IDSEL
AD23
AD22
AD21
AD20
AD19
AD18
AD17
AD16
VCC
GND
C_BEB2
FRAMEB
IRDYB
TRDYB
DEVSELB
STOPB
PERRB
SERRB
PAR
C_BEB1
VCC
GND
AD15
AD14
AD13
AD12
AD11
AD10
AD9
AD8
C_BEB0
VCC
GND
AD7
GND
MIRXD0
MIRXD1
MIRXD2
MIRXD3
VCC
GND
RMGWKU
INTAB
RSTB
PWGD
PCICLK
GND
GNTB
REQB
PMEB
VCC
GND
AD31
AD30
AD29
AD28
AD27
AD26
AD25
AD24
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Fig 1: W89C840AF pin configuration
-4 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Block Diagram
PCI
MII
long word
aligning buffer
TX FIFO
PCI interface
data driver
RX FIFO
MII
data
buffer
MII
receive data
DMA machine
control
signals
PCI bus
master
transmit data
DMA machine
Media
Access
Controller
memory
interface
PCI bus slave
controller
configuration
registers
control
registers
Expansion
ROM
interface
EEPROM
access
interface
status
registers
Fig. 2 W89C840AF Block Diagram
System Diagram
System
M emory
W89C840AF
Physical layer
Controller &
Transceiver
Media
Host
Controller
W 8 9 C 8 4 0 A F T y p ical Application
Fig. 3
-5 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Pin Descriptions
1) PCI Interface
Signal Name
Pin
Type
Pin
Number
PCICLK
I
114
Pin Description
PCI Clock Input:
W89C840AF supports PCI clock rate ranged from
25Mhz to 33MHz continuously. All PCI signals except
RST# and INTA#, are referenced on the rising edge of
this clock.
RSTB
I
112
PCI Hardware reset signal:
When asserted(active low), all PCI output pins of
W89C840AF will be in high impedance state, and all
open drain signals will be floated. The configurations
inside W89C840AF will be in its initial state. This
signal must be asserted for a period of at least 10 PCI
clocks to correctly take effect of a reset on hardware.
AD[31:0]
IO/TS
121-128,
5-12,
27-34,
PCI Multiplexed Address and Data bus:
During the first cycle that FRAME# asserts, they act as
an address bus; on the other cycles, they are switched to
be a data bus.
38-45
C_BEB[3:0]
PAR
IO/TS
IO/TS
3,15,24,
Multiplexed command and byte enables:
35
These signals are driven by current bus master. During
address phase, they mean a bus command; on the other
phase, they present the byte enable of the transaction.
23
Parity signal.
This PAR represents the even parity across AD[31:0]
and C_BEB[3:0]. It has the same timing as AD[31:0]
but is delayed by one clock.
FRAMEB
IO/STS
16
PCI Cycle Frame:
The current bus master asserts FRAMEB to indicate the
beginning and duration of a bus access. This signal
keeps asserted while the current transaction is ongoing
and keeps deasserted to indicate that the next data
phase is the final data phase.
-6 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
IRDYB
IO/STS
17
Initiator Ready:
The IRDYB is asserted by the current initiator to
indicate the ability to complete the data transfer at the
current data phase. The initiator asserts IRDYB to
indicate the valid write data, or to indicate it is ready to
accept the read data. More than or exactly one wait state
will be inserted if IRDYB is deasserted during the
current transaction. Data is transferred at the clock
rising edge when both IRDYB and TRDYB are asserted
at the same time.
TRDYB
IO/STS
18
Target Ready:
Asserted by the current target to indicate ability to
complete data transfer at the current data phase. When
W89C840AF is operating at the bus slave mode, it
asserts TRDYB to indicate that the valid read data
presents on the bus or to indicate it is ready to accept
data. Wait states will be inserted if TRDYB is
deasserted. Data is transferred at the rising edge of the
PCI clock when IRDYB and TRDYB are both asserted
at the same time.
STOPB
IO/STS
20
PCI Stop:
Asserted by the current target to request PCI bus master
to stop the current transaction.
IDSEL
I
4
PCI Initialization Device Select:
Asserted by host to signal the configuration access
request to W89C840AF.
DEVSELB
IO/STS
19
PCI Device Select:
Asserted by the current target to indicate that it has
finished decoding its address as the current access
target. When W89C840AF is the current master, it
checks if the target asserted this signal within 5 PCI
clocks after having issued command. If not,
W89C840AF will abort the access operation, releases
PCI bus access right and acts no more bus master. When
W89C840AF is the target, it asserts DEVSELB in a
medium speed, i.e., within 2 clocks.
REQB
O/TS
117
PCI Request:
Asserted by W89C840AF to request bus ownership.
REQB will be tri-stated when RSTB asserted.
GNTB
I/TS
116
PCI Grant:
Asserted by host to grant that W89C840AF have got the
bus ownership. When RSTB asserted, W89C840AF will
ignore GNTB.
-7 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
PERRB
IO/STS
21
PCI Parity Error:
Asserted by the current data receiptor. When
W89C840AF acts the bus master, if a data parity error
is detected and the parity error response bit (FCS<6>) is
also set, it will set both bits of FCS<24> and C14<13>
as 1 to terminate the current transaction after the
current data phase is finished. When W89C840AF acts
the target, if a data parity error is detected and the bit
FCS<6> is set, it will assert PERRB only.
SERRB
O/OD
22
System Error:
This pin is asserted with one PCI clock width within
two PCI clocks after an address parity error is detected,
and keeps in high impedance state when idle.
The interrupt function caused by this event is gated by
the bits in FCS register.
W89C840AF will assert SERRB and will set a high to
the Detect Parity Error bit FCS<31> and the Signal
System Erro bit FCS<30> if an address parity error is
detected and SERRB enable bit FCS<8> is previously
set to 1.
The Bus Error Status bit C14<13> will be set to high if
both an address parity error is detected and the parity
error response bit FCS<6> is set to high.
INTAB
O/OD
111
Interrupt A:
INTAB is asserted when any one of unmasked interrupt
bits in C14/CISR is set. It keeps asserted until all of the
unmasked interrupt bits is cleared.
2) Power Managment Interface
Symbol
Pin Type
Pin
Number
PWGD
I
113
Pin Description
Power Good
When PWGD=1, W89C840A is put in normal operation
mode.
When PWGD=0, it isolates whole PCI bus except PMEB.
The PCI bus power can be off by operating system.
PMEB
O/OD
118
Power Management Event
The PMEB signal indicates that a power management
event has occurred, i.e. there is a magic packet received in
suspend mode etc. This pin is open drain.
RMGWKU
O/OD
110
Remote Magic Packet WakeUp
After received magic packet, this
motherboard to execute wakeup process.
-8 -
output
signal
Publication Release Date:October 2000
Revision 1.01
W89C840AF
2) BootROM and EEPROM Interface
Signal Name
Pin Type
Pin
Number
Pin Description
BtAdd[17:0]
O
83-75,7264
BootROM address bits 0 - 17
BtAdata[7:4]
I/O
61-58
BtAdata[3]/EEDO
I/O
57
EEPROM data output; BootROM data bit 3
BtAdata[2]/EEDI
I/O
56
EEPROM data input; BootROM data bit 2.
BtAdata[1]/EECK
I/O
55
EEPROM data clock; BootROM data bit 1.
BtAdata[0]
I/O
54
BootROM data bit 0
BtCSB
I/O
50
BootROM chip select
EECS
I/O
51
EEPROM chip select
BtOEB
O
49
BootROM read enable
BtWEB
O
48
BootROM write enable
BootROM data bits 4 - 7
3) MII Interface
Signal Name
Pin
Type
MTXCLK
I
Pin
Number
87
Pin Description
MII Transmit clock:
MTXCLK is a continuous uniformed clock source
driven by the external PHY. It provides the timing
reference for the signals MTXEN and MTXD.
MTXCLK should be either 25MHz or 2.5MHz clock.
MTXD[3:0]
O
92-89
MII Transmit Data:
This nibble byte width transmit data bus is synchronized
with MTXCLK. It should be latched by the external
PHY at the rising edge of MTXCLK. MTXD[0] is the
least significant bit.
MTXEN
O
93
MII Transmit enable:
It indicates that transmits activity to an external PHY. It
will be synchronized with MTXCLK.
MMDC
O
94
MII management reference clock.
It is the reference clock of MMDIO. Each data bit will
be latched at the MMDC rising edge.
-9 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
MMDIO
I/O
95
MII management data input/output.
This pin is used to transfer the MII control and status
information between PHY and MAC.
MCRS
I
98
Carrier Sense Signal:
This shall be asserted by PHY device when media is
busy, and deasserted when media is idle. MCRS shall
keep asserted, even at the duration of a collision.
MCOL
I
99
MII Collision detected:
This shall be asserted by the PHY device upon detecting
a collision happened over the medium. It will be asserted
and lasted until collision condition wholly vanishes.
MRXDV
I
100
MII Received data valid:
This pin is driven by PHY device. It will be asserted
when received data is coming and present, and
deasserted at the end of the frame. MRXDV is
synchronized with MRXCLK from PHY device.
MRXER
I
101
MII Received data error:
This pin is driven by PHY device. It indicates a data
conversion error is detected by PHY device. The
assertion of MRXER should be lasted for longer than a
period of MRXCLK. When MRXER asserted,
W89C840AF will report a Receive Error detection and a
CRC error.
MRXCLK
I
102
MII Received clock source:
This clock is from PHY device. It will be either 25Mhz
or 2.5Mhz receive clock, determined by auto-negotiation
device in PHY and supported by W89C840AF. The
minimun duty cycle at its high state or low state of
MRXCLK should be 35% of the nominal period under
all condition. PHY device should drive MRXCLK as a
continuous clock.
MRXD[3:0]
I
107-104
Received data pins:
This is driven by external 100/10 Mbps PHY. MRXD
should be syncronized with clock source MRXCLK and
valid only when MRXDV is valid. MRXD[0] is the least
significant bit.
VDD
1,12,25,3
6,46,52,6
2,73,84,8
6,96,108,
119
Power supply pins.
GND
2,14,20,3
7,47,53,6
Ground pins.
-10 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
3,74,85,8
8,97,103,
109,115,
120
Functional Description
Power management functions
The W89C840AF supports power management as defined in the PCI Bus Power Management
Interface Specification Rev 1.0 and Network Device Class Power Management Reference
Specification V1.0a and ACPI Specification Rev 1.0. These three specifications define how a PCI
network device can be controlled in an Operating System Directed Power Management (OSPM)
environment.
Power management state and wake-Up events operation
A power management event (PME) is a device used to report events that might change the system’s
power state. Typically, a device uses a PME to request a change from a power savings state to the fully
operational power state. However, a device could use a PME to request a change to a lower power state.
The following two power management events for W89C840AF are defined in Network Device Class
Power Management Reference Specification V1.0a.
Magic Packet: Magic packet is a packet composed of a sequence of specific bits pattern and is used to
notice mother board to run a wake-up process. It is consisted of the form of Destination Mac address +
Source MAC address + data + CRC.
Wake-up frame:
Wake-Up events notification
The W89C840AF can wake-up the system when it receive a frame that matches as a wake-up packet.
This packet can be configured to be one or both of the the following:
l
Magic Packet (see Magic Packet).
l The received wake-up frame matches one of the W89C840AF active address filtering and CRC
check mechanisms.
The W89C840AF can be enabled to provided wake-up notification upon the occurrence of a PME. The
system software enables the PMEB signal (pin 118) by setting the PME_EN bit in the Power Management
Control and Status Register (FPMCSR) and clear this bit deassert the PMEB signal. When a wake-up event
is detected, the W89C840AF sets the PME_STS bit in the FPMCSR register setting this bit causes the PMEB
signal to be asserted. Assertion of the PMEB signal causes external hardware to be wake up the system.
If there is not any power supplying PCI slot and W89C840AF, the PMEB signal will stay at low when
W89C840AF adapter card is inserted into PCI slot.
The W89C840AF detects the network for receipt of Magic Packet and wake-up frame can be enabled to
generate a wake-up notification by setting the MGPE and WUPFE bit of Wake-Up Control and Status
-11 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Register (FWUPCS) and it should be ensure the PME_EN bit is set only when the W89C840AF is in the D3
state.
Below table describes the Wake-Up, Power Management Control and Status registers with EEPROM
bits that control the PMEB signal.
Bit
Location
FPMCSR<8>
PME_EN
FPMCSR<15>
PME_STS
FCS<20>
CAPS
Descriptin
PCI configuration
space
PME_EN---Power management enable bit set enables the
assertion of the PMEB signal when a PME occurs.
PCI configuration
space
PME_STS---Power management status bit is indicates that a
PME has occurred. When this bit is cleared, the PMEB signal is
deasserted.
PCI configuration
space
CAPS---The value of this bit determines whether the
W89C840AF implements the PCI power management
capabilities. The value of this bit is loaded from EEPROM
08H<15> bit (power management capability support).
PCI configuration
space
RWUL---The value of this bit is loaded from EEPROM 08H<14>
bit (Remote wake-up from LAN). After Hard-Reset, if RWUL=1
and PMCSP=1 the W89C840AF will enable Remote Wake-Up
from LAN mode. While in Remote Wake-Up from LAN mode,
W89C840AF will assert PMEB signal if Magic Packet has been
received. The W89C840AF PMEB signal will remain asserted
during power state changes from D3 (hot) to D0 (un-initialized)
until either bit 15 and/or bit 8 in the FPMCSR is cleared.
PCI configuration
space
MGPE---After Hard-Reset, if RWUL=1 and PMCSP=1 Magic
Packet detector enable bit set to 1 to enable the operation of
Magic Packet detector. This bit is reset when W89C840AF power
state changes from D3 (hot) to D0 (un-initialized).
FWUPCS<31>
PMCSP
FWUPCS<30>
RWUL
FWUPCS<0>
MGPE
Magic Packet
While in Remote Wake-Up from LAN mode, the W89C840AF is in low power state (W89C940A all
VDD and pins must remains at their supply levels). The device will not generate any bus master transfers, no
transmit operations will be initiated on the network. it require the received packet match as a Magic Packet,
after which it generates a weak-up signal.
The Magic Packet's packet matches as following rules:
1. The valid destination address that pass of the W89C840AF address filtering machine
2. The received Magic Packet does not contain CRC error.
3. Includes, anywhere in the packet with no breaks sequence of 6 bytes FFh synchronization stream
followed by 16 duplications of the destination address.
-12 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The W89C840AF scans for the sequence of 16 duplications address of its node ID. If the W89C840AF
detects this sequence it assertion the PMEB signal and is reflected in the Power Management Control and
Status Register (FPMCSR) and Wake-Up Control and Status Register (FWUPCS).
2. W89C840AF Power Management State and Wake-Up Operation
Operation
State
Hard-Reset
w/
PMCSP=0,
RWUL=x
Fx
Register
Cx Register
Tx/Rx
DMA
CAPS
Initial default Initial default
or/from
or/from
EEPROM
EEPROM
initial
default
fixed at 0
CAPPR
WUPFE
MGPE
PME_EN
fixed at
fixed at 0
fixed at
0
fixed at 0
fixed at
dcH
cleared
cleared
to 0
cleared to
0
fixed at
dcH
cleared to
0
set to 1
set to 1
00H
Hard-Reset
w/
PMCSP=1,
RWUL=0
Initial
default
or/from
EEPROM
Initial default
or/from
EEPROM
initial
default
fixed at 1
Hard-Reset
w/
PMCSP=1,
RWUL=1
Initial
default
or/from
EEPROM
Initial default
or/from
EEPROM
initial
default
fixed at 1
software reset
unchanged
*C38,C3c,C40,
C44,C48
unchanged
initial
default
unchanged unchanged
unchanged
unchanged unchanged
disable
unchanged unchanged
unchanged
unchanged unchanged
disable
unchanged unchanged
unchanged
unchanged unchanged
initial
default
equivalent equivalent
to
to
HardReset HardReset
equivalent
to
HardReset
equivalent equivalent
to
to
HardReset HardReset
(C00[0])
to 0
*initial
default for
other
to D1 state
to
state
D3(hot)
*F04[1:0]
masked by
D1 state
*C18[13],C18
[1] masked by
D1 state
*unchanged
for other
*unchanged
for other
*F04[1:0]
masked by
D3(hot)
state
*C18[13],C18
[1] masked by
D3(hot) state
*unchanged
for other
D3(hot) to D0
(un-initialized)
state
initial
default or
from
EEPROM
*unchanged
for other
initial default
or from
EEPROM
The W89C840AF PCI Bus Power Management Interface Specification Rev 1.0 and Network Device
Class Power Management Reference Specification V1.0a and ACPI Specification Rev 1.0. These three
specifications define how a PCI network device can be controlled in an Operating System Directed Power
Management (OSPM) environment.
-13 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Receive direct memory access function
On receiving a data packet, the receive DMA function will transfer these data from the internal receive FIFO
which has a size of 4k bytes to the host memory with the assistance of the on-chip PCI bus master. During the
transaction cycle, the media access controller(MAC) requests the receive DMA state machine to move the data in
the receive FIFO onto the PCI bus, and then move it to the host memory with a kind of data structure which is
constructed and described by descriptors.
A number of receive descriptors in the chip, which generated by chip itself, are used to specify the descriptor
structure and indicate the memory spaces for storing the received packet data. The receive descriptors are also used
to store the received packet status when a valid packet is received. Each descriptor has a size of 4 long words that
resides in the host memory. The first 32 bits are used to keep the received packet status information. The second 32
bits are used to specify the descriptor structure type and the size of the received data buffer. The remains 64 bits are
used to specify the size and the address of the allocated memory for this data buffer and the next one.
The received packet can be described by a single descriptor or multiple descriptors. It depends on the
configuration, previously set by software driver, and the received packet length. The received packet data also can be
stored in a single data buffer or multiple data buffers.
The descriptor structure can be either a ring structure or a chain structure. A mixed structure mode is also
allowed, too.
In the descriptors with the ring structure, Host allocates a big continuous memory for keeping all the descriptor
information. Each descriptor can point to two data buffer addresses to store the received packet data. Though the
data buffers are not necessarily be contiguous, the descriptors must be contiguous one after the other.
The following figures describe the ring structures of receive descriptor.
-14 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
first descritpor of Rx descriptor list
status register
structure constructing register
data buffer 1 pointer
data buffer 2 pointer
data buffer 1
for storing the first RX packet data
data buffer 2
for storing the first RX packet data
data buffer 1
for storing the 2nd RX packet data
data buffer 2
for storing the 2nd RX packet data
data buffer 1
for storing the 3rd RX packet data
data buffer 2
for storing the 3rd RX packet data
data buffer 1
for storing the nth RX packet data
data buffer 2
for storing the nth RX packet data
second descritpor of Rx descriptor list
status register
structure constructing register
data buffer 1 pointer
data buffer 2 pointer
third descritpor of Rx descriptor list
status register
structure constructing register
data buffer 1 pointer
data buffer 2 pointer
last descritpor of Rx descriptor list
status register
structure constructing register
data buffer 1 pointer
data buffer 2 pointer
The software driver can request more than one descriptors and data buffers at a time. As described in the
above diagram, the total descriptors are constructed as a ring. A packet can be stored in more than one data
buffers. In that case, the data buffer 1 is stored first and then data buffer 2. If a packet contains more data than the
two data buffer can accommodate, it fetches the next descriptor and two new data buffers to save the extra more
data. That is a packet can be stored in more than one descriptors. In the contrary, a descriptor is not allowed to
hold more than one packet. If the data buffer 1 can completely store the received packet, the data buffer 2 will be
left empty and the next packet will be firstly stored at the data buffer 1 in the next descriptor. The diagram shown
above is just one case of the buffer application. When the last descriptor is used by a received packet, the next
descriptor should be the first descriptor of the ring. Once the descriptors are processed by the driver, it can be
released to the ring for later use. In the ring structure, the start address of the next descriptor is specified by the
skip length, bit2 to bit6 of C00/CBCR register, and the start address of the first descriptor is specified by the
C0C/CRDLA register.
For the descriptors with the chain structure, host is allowed to allocate scatterly a block of memory with the
size of 4 long words, linked by the pointer which located at the ext descriptor pointer_ field. Each descriptor has
only one link to a data buffer to store the received packet data. The descriptors are located randomly and linked by
the second pointer in each descriptor, which points to the start address of the next descriptor.
The following figures describe the chain structures of receive descriptor.
-15 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
first descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
data buffer 1
for storing the first RX packet data
data buffer 1
for storing the 2nd RX packet data
next descriptor pointer
second descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
next descriptor pointer
third descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
data buffer 1
for storing the 3rd RX packet data
data buffer 1
for storing the nth RX packet data
next descriptor pointer
last descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
next descriptor pointer
As shown in the above diagram, descriptors are linked by pointers to construct a chain. The data can be
stored in more than one data buffers. In the last descriptor of the descriptor chain, the content of the R03 register
will be ignored by the receive DMA state machine if the RLINK bit of the R01 register in the last descriptor is set to
high. When the last descriptor has already been used, the next descriptor pointer in this one will link to the start
address of the first descriptor in the chain if it is available.
In the chain structure, the base address of the first descriptors is specified by the C0C/CRDLA register, the
receiving descriptors list address register and the base address of the next descriptor is pointed by the R03 of the
current descriptor.
The following figure describes the mixed mode list, composed of both the ring and the chain structures at the
same time.
-16 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
first descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
data buffer 1
for storing the first RX packet data
data buffer 1
for storing the 2nd RX packet data
data buffer 2
for storing the 2nd RX packet data
next descriptor pointer
second descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
next descriptor pointer
third descritpor of the RX descriptor
skip length between descriptors
status register
structure constructing register
data buffer 1 pointer
data buffer 1
for storing the 3rd RX packet data
data buffer 1
for storing the nth RX packet data
data buffer 2
for storing the nth RX packet data
next descriptor pointer
last descritpor of the RX descriptor
status register
structure constructing register
data buffer 1 pointer
data buffer 2 pointer
As shown by the above diagram, the descriptors construct a mixed structure. Each descriptor with the chain
structure can link to only one data buffer and the last 32 bits are treated as the next descriptor pointer. When the
RLINK bit of the current descriptor, other than the last descriptor in the descriptor list, is reset to low and this
descriptor is programmed to be a ring structure, the current descriptor can point to two data buffers and the skip
length between descriptor is used to point to the next descriptor starting address.
In the last descriptor in the descriptor list, the R03 register will be used to designate the base address of the
data buffer 2 while the RLINK bit of the last descriptor is reset to low, but will be ignored if the RLINK bit of the
last descriptor is set to high. That is, if the last descriptor is a ring structure, it acts as a ring and vice versa.
The next descriptor field of the last descriptor will be the starting address of the first descriptor, no matter
what the value of the RLINK bit of the last descriptor is low or high.
The data flow of a packet in the receiving path is shown as the following diagram.
-17 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
PCI
data
from MAC
data
data
buffer 1
4 Kbytes FIFO
data
buffer 2
data
buffer 3
status
control
Rx
descriptor 1
Rx
descriptor 2
Rx
descriptor 3
data
buffer n
PCI
master
receive
DMA
state machine
controls
from MAC
status & control
Rx
descriptor n
PCI slave
As shown the above diagram, the receiving DMA state machine controls the data receiving processing and
the receiving status monitoring. On receiving the data packets, the receiving DMA will start to move these data
from FIFO to the data buffer, pointed by descriptors in the host memory if there is an available data buffer and the
byte count of the data received into the FIFO is larger than or equals to 64 bytes. If the received packet length is
less than 64 bytes and runt packet is not accepted, the receiving DMA will discard this invalid packet and give it a
record in the status register. The receiving DMA will start to move the data in FIFO after the full packet is
received if runt packet is accepted. Once a valid packet is received, the receive DMA will advance the descriptor
pointer for the next incoming packet. However, the current data buffer and the descriptor will be re-used if the
current receiving packet is not a valid packet, i.e. the receive state machine will ignore the previously received
packet data in the data buffer. Each received packet will be treated as a valid packet if it meets the requirement in
the bits 3, 4, 5, 6 and 7 of C18/CNCR register. In some case of the data buffer unavailable temporarily, the
incoming packet data from media will be queued in the FIFO temporarily, meanwhile, the receive DMA will enter
suspend state at this time and a buffer unavailable interrupt will be issued. The receive DMA will start moving the
data whenever the data buffer is available and a receiving operation is demanded, On the other hand, the data will
be lost if the FIFO is overflowed. The receiving status, e.g., the receive descriptor access status, the receive
completion status, the received data byte count, the received packet error status, the received packet data type, ...
and so on., will be written back into the descriptor by the receive DMA when the packet is received successfully.
During receiving a packet, the receive DMA will release the access right of the descriptor and the data
buffer to the driver immediately after the free byte space of the data buffers pointed by the current descriptor is
counted down to zero and the receive DMA will fetch the next available descriptor for the current incoming packet.
It is known that the LLC layer data is packed into the first 64 bytes of the packet in most application program. The
driver and the upper layer application program can read the protocol messages carried in the first 64 bytes of the
incoming packet when the receive DMA release the descriptor and the data buffer for the current incoming packet,
although the current incoming packet is not yet received completely. The function of the receive DMA releasing
the descriptor and the data buffer which have been used during receiving a packet allows the software and the
hardware to process the receiving packet concurrently. This parallel processing of software and the hardware can
improve the system receiving performance significantly.
-18 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
When the incoming packet is received completely, the receive DMA will write the same copy of the packet
receiving status to the first descriptor and the last descriptor of the current frame respectively. The receiving status
includes the receive completion status, the received byte count, the receive error type,...etc. All of the status is
specified in the receive descriptor R00. When the software and hardware are concurrently processing , the software
needs not to go back to read the first descriptor of the current incoming packet for knowing the receive completed
status or other receiving status when it is processing the last descriptor and the data buffer of the current incoming
packet. But, if there is only one descriptor needed for the current incoming packet, all of receiving status will be
updated in the unique descriptor.
The W89C840AF transmit DMA function performs the data transfer from the host memory through onchip PCI bus master into the internal 2 Kbytes transmit FIFO. The transmit DMA state machine will request the
MAC to send out the data in the FIFO onto the MII.
The transmit descriptor is used to set the transmit configuration and to point to the transmit data buffer
locations. Each packet to be transmitted can be described by one or more than one descriptor. And each descriptor
consists of four consecutive long word. The first long word(T00) is for the transmit frame status register. The T00
describes the descriptor access right control, the packet transmitting status,...etc. The second long word(T01) is for
the control register used to specify the transmission configuration, including the CRC inhibit control, padding
function control, the descriptor structure control ... etc. The third long word (T02) is for the first data buffer pointer
and the fourth long word is used as the second data buffer pointer in the ring structure.
The transmit descriptor list also can be constructed as a ring structure or a chain structure. The mixed chain
and ring structure is also allowed to be constructed. The scheme for constructing the transmit descriptor list is
same as the one for receiving descriptor list, but, each transmit data buffer size is limited to under 1 Kbytes other
than the 2 Kbytes receiving data buffer. In the consequence of the 1 Kbytes transmit data buffer, each descriptor
can point to a maximum two 1 Kbytes data buffer totally.
The data flow of the packet transmission is shown as the following diagram
-19 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
PCI
data
buffer 1
data
data
buffer 2
2 Kbytes
FIFO
long word
aligning buffer
data
to
MAC
control
data
buffer 3
Tx
descriptor 1
Tx
descriptor 2
Tx
descriptor 3
PCI
master
transmission
DMA
state machine
controls
from/to
MAC
data
buffer n
Tx
descriptor n
PCI slave
The data to be transmitted is stored in the transmit data buffer in the host memory. The transmission DMA
state machine will fetch the data in the host memory into the transmit FIFO. when the transmission DMA is started
up. All of the data fetched from the data buffer will be long word aligned before being queued into the transmission
FIFO. The driver program can inform the transmit DMA the location of the data to be transmitted in the host memory
and then the transmit DMA will fetch the data from that location directly. Because the address of the data may not
long word aligned, so that the transmit DMA need to align the data for passing the data to the MAC in a long word
aligned format. The aligned long word data, and then, is queued into the transmit FIFO. The transmission DMA will
not request the MAC to fetch the data in the FIFO for transmitting until the byte count of the data in the FIFO is
reach the threshold defined by C18/CNCR bit 14~20.
The transmission DMA is implemented a pre-fetch function for speeding the transmit performance. With
this implementation, the transmit DMA will pre-fetch the next packet data in the host memory after the current
packet data is moved into the transmit FIFO completely. Before starting to fetch the next packet data, the transmit
DMA will assert an interrupt if the transmit early interrupt is enabled. If there is no more packet to be transmitted,
the transmit DMA will report a buffer unavailable status and assert an interrupt if the transmit buffer unavailable
interrupt is enabled. After all of the current packet data in the transmit FIFO are transferred out by the MAC block,
the transmit DMA will try to fetch the next packet data again automatically if the transmit DMA is not fetching the
data from the host memory. A packet transmit interrupt will be asserted when the current packet is transmitted if
the packet transmitted interrupt is enabled.
The transmit DMA will write back the current packet transmit status into the first descriptor of the current
transmit packet when the packet is successfully transmitted or is aborted due to excessive collision.
For consecutively transmitting multiple packets, the software driver can previously program all the packet
data in the host memory and then release the access right to the W89C840AF. Once the transmit DMA is turned
on, the DMA will transmit all of the packet out automatically. The inter-frame gap between these packets will be
specified by the MAC block for complying with the IEEE802.3u specification.
-20 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
For concurrently processing the packets transmitting, the transmission DMA asserts the transmit early
interrupt to trigger the software driver to set up the next transmitting packet data more earlier. The data
transmission rate on the MII bus can be either 10 Mbps or 100 Mbps which is quite lower than the rate on PCI bus.
Mostly, the packet data is not yet completely transmitted onto the MII bus even though the packet data with only a
few bytes have been all moved into the transmit FIFO, the transmission DMA still does not issue an interrupt to
host. This will drop the transmit performance if the software driver waits for the current packet being transmitted
onto the MII completely and then set up the next packet data. The transmit early interrupt can avoid the time
consumption when waiting for the transmit completion of the current packet occurs.
Media Access Control function (MAC)
The function of W89C840AF MAC fully meets the requirements, defined by the IEEE802.3u
specification. The following paragraphs will describe the frame structure and the operation of the transmission
and receive.
The transmission data frame sent from the transmit DMA will be encapsulated by the MAC before
transmitting onto the MII bus. The sent data will be assembled with the preamble, the start frame delimiter
(SFD), the frame check sequence and the padding for enforcing those less than 64 bytes to meet the minimum
size frame and CRC sequence.
The out going frame format will be as following
10101010- - - - 10101010 1010111 d0 d1 d2 -- dn padding CRC31 CRC30 ---
CRC0
As mentioned by the above format, the preamble is a consecutive 7-byte long with the pattern
10101010_ and the SFD is a one byte 10101011 data. The padding data will be all 0 value if the sent data frame
is less than 64 bytes. The padding disable function specified in the bit23 of the transmit descriptor T01 is used
to control if the MAC needs to pad data at the end of frame data or not when the transmitted data frame is less
than 64 bytes. The padding data will not be appended if the padding disable bit is set to high. The bits CRC0 ...
CRC31 are the 32 bits cyclic redundancy check(CRC) sequence. The CRC encoding is defined by the following
polynomial specified by the IEEE802.3.
G(x) = x
32
+ x
26
+ x
23
+ x
22
+ x
16
+ x
12
+ x
11
+ x
10
+ x + x + x + x + x + x
8
7
5
4
2
1
This 32 bits CRC appending function will be disabled if the Inhibit CRC of the transmission descriptor
T01 is set to high.
The MAC also performs many other transmission functions specified by the IEEE802.3, including the
inter-frame spacing function, collision detection, collision enforcement, collision backoff and retransmission.
The collision backoff timer is a function of the integer slot time, 512 bit times. The number of slot times to
delay between the current transmission attempt to the next attempt is determined by a uniformly distributed
random integer algorithm specified by the IEEE802.3. The integer, r, is specified as the following
0≤ r≤ 2
k
where k = min(n, 10)
-21 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The MAC performs the receive functions specified by the IEEE802.3 including the address recognition
function, the frame check sequence validation, the frame disassembly, framing and collision filtering.
The W89C840AF categorizes the input stream from media into three types of frame. These three types
are the packet with uni-cast destination address, the multicast destination address and the broadcast destination
address. A uni-cast address is defined as a destination address with its first bit(the LSB) low. A multicast
address is defined as a destination address with its first bit(the LSB) high but the other 47 bits are not all one. A
broadcast address is defined as a destination address with its all 48 bits are one. All the three types of the packet
reception is selectively determined by the configuration of the bit 3, 4 and 5 of the C18/CNCR register of the
W89C840AF.
The C40/CPA0 and C44/CPA1 are used to store your own 48 bits Ethernet ID. of the network node
before starting to receive a packet. Its contents comes from EEPROM after power-on reset.
The mapping relationship between the 48 bits ID and the C40/CPA0 and C44/CPA1 is as following table.
Bit 31~ 24
Bit 23 ~ 16
Bit 15 ~ 8
Bit 7 ~ 0
C40/CPA0
32th ~ 25th
24th ~ 17th
16th ~ 9th
8th ~ 1st
C44/CPA1
reserved
reserved
48th ~ 41th
40th ~ 33th
The incoming packet with unicast address will be accepted if the bit 3 of C18/CNCR is reset to low and
the destination address of the incoming unicast packet has to match with the content of C40/CPA0 and
C44/CPA1 setting.
All of the incoming packet with unicast address will be accepted if the bit 3 of C18/CNCR is set to high.
In broadcast case, to accept a packet with a broadcast destination address, the bit 5 of C18/CNCR must
be set to high. Otherwise, the W89C840AF will reject this broadcast packet.
In multicast case, a packet with a multicast destination address will be accepted if the destination
address is grouped into the selected group specified by the registers of C38/CMA0 and C3C/CMA1. These two
registers are used to store the group mapping for the multicast packet.
The following table shows the group mapping relationship between the groups and the contents of
C38/CMA0 and C3C/CMA1. It is obviously shown that each bit in the registers C38/CMA0 and C3C/CMA1
represents one group.
Bit 31~ 24
Bit 23 ~ 16
Bit 15 ~ 8
Bit 7 ~ 0
C38/CMA0
Group 32 ~ 25
Group 24 ~ 17
Group 16 ~ 9
Group 8 ~ 1
C3C/CMA1
Group 64 ~ 57
Group 56 ~ 49
Group 48 ~ 40
Group 39 ~ 33
-22 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
All the 48 bits destination address(including physical address, multicast address and broadcast address)
of the incoming packet will be fed into the CRC generating mechanism. The six most significant bits of the
CRC(CRC31, CRC30, ... CRC26) will determine which group the incoming packet belongs to. The relationship
between these six bits of CRC content and the group which the multicast address belongs to is shown as the
following table.
CRC
31,30,29
CRC28,27,26
111
110
101
100
011
010
001
000
000
grp 8
grp 7
grp 6
grp 5
grp 4
grp 3
grp 2
grp 1
001
grp 16
grp 15
grp 14
grp 13
grp 12
grp 11
grp 10
grp 9
010
grp 24
grp 23
grp 22
grp 21
grp 20
grp 19
grp 18
grp 17
011
grp 32
grp 31
grp 30
grp 29
grp 28
grp 27
grp 26
grp 25
100
grp 40
grp 39
grp 38
grp 37
grp 36
grp 35
grp 34
grp 33
101
grp 48
grp 47
grp 46
grp 45
grp 44
grp 43
grp 42
grp 41
110
grp 56
grp 55
grp 54
grp 53
grp 52
grp 51
grp 50
grp 49
111
grp 64
grp 63
grp 62
grp 61
grp 60
grp 59
grp 58
grp 57
A packet with multicast address which belongs to the nth group will be accepted if the relative bit of the
nth group in C38/CMA0 and C3C/CMA1 is set to high and the bit 4 of C18/CNCR is also set to high.
Besides the address recognition function, the MAC also performs the frame check sequence validation
function. Each incoming packet data, including the destination address, source address, the packet data and the
4 bytes CRC data will be fed into the MAC CRC generating logic to generate a 4 bytes CRC sequence. The
MAC will compare this new CRC data with the one, included in the incoming packet. It will be recognized as
an error packet if these two 4-byte CRC data is not the same. But the bit 7 of C18/CNCR will determine if the
MAC accepts the error packet or not. A high value of this bit will force MAC to accept the error packet, and
low to reject. An incoming packet without byte alignment will be treated as an error packet. Some packets with
the length less than 64 bytes caused by the collision event on the network are also treated as an error packet.
The terminology for the packet with the length less than 64 bytes is called as runt packet. The extra control bit
for accepting the runt packet is defined as the bit 6 of C18/CNCR. To accept a runt packet, both of the bit 6 and
bit 7 of C18/CNCR should be set to high.
The MAC will, finally, do the framing function to strip the preamble and the SFD before sending the
receive data to the receive DMA machine. The data sent to the receive DMA state machine includes the LLC
data and the 4 bytes CRC.
Loopback diagnostics function
The loopback mode defined for W89C840AF is used for diagnostic. The transmit out data will appear
on the MII interface and will then be fed back into the internal receive channel of the MAC block and then be
-23 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
moved back into the host memory by the receive DMA state machine. In loopback mode, the transmission
function will work normally as it is in normal mode, but, only the data is processed by the MAC. The COL,
CRS will be ignored in loopback mode.
To program the W89C840AF into loopback mode, the Loopback Mode of C18/CNCR should be set to
01H.
Full duplex and half duplex function
The transmit DMA and the receive DMA are independently operating no matter what the
W89C840AF is set in full duplex mode or in half duplex mode. However, in MAC side, the operations are
different and depends on the full duplex or half duplex mode is selected.
In the half duplex mode, the MAC should perform the transmission or reception operation at the
different time frame. Simultaneous transmission and reception operation are not allowed. Once the half
duplex mode is selected, the MII input signals, COL and CRS , will be valid inputs for the W89C840AF.
During the time the MAC is transmitting a packet, an active signal COL on MII bus will be judged to be a
transmit collision event, occurred on the media. However, in the time duration from 10 bits time to 16 bits
time after the packet is transmitted, the active COL signal is recognized as a SQE test signal but not a
collision event. The active signal CRS will be recognized as a loopback carrier sense signal when the MAC is
transmitting a packet. The carrier sense lost status is relied on the CRS. Normally, there should not be any
carrier sense lost during transmitting if the media and devices are functional.
In the full duplex mode, the MAC can perform the transmission and receive operation at the same
time. In this case, the COL and CRS signal on MII will be ignored. There are no collision event, SQE lost and
carrier sense lost defined in the full duplex mode. Any activity on COL and CRS will not affect the operation
inside the MAC.
To select the full duplex mode or the half duplex mode, you have to set the full duplex control bit of
C18/CNCR.
Network media speed selection function
The W89C840AF is specifically designed for both 100BASE-T and 10BASE-T Ethernet. The
transmission rate is based on the clock speed of the MII input signals TXCLK and RXCLK. The MAC will
transmit the data based on the clock rate of TXCLK, and receive the MII input data based on the clock rate of
RXCLK.
In 100BASE mode, the TXCLK and RXCLK will be at 25MHz, however, in 10BASE mode, the
TXCLK and RXCLK will be at 2.5 MHz. The clock rate of the RXCLK and the TXCLK is dependent and
determined by the external physical layer device(PHY) which supports 10/100M bit rate.
-24 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The Fast_Ethernet_Select in C18/CNCR register is used to select the mode in which the W89C840AF
is working in 10M or 100Mbps. In 100Mbps (100BASE) mode, the MAC will not check the SQE status when
transmitting a packet. In 10Mbps(10BASE) mode, the SQE signal will be checked by MAC. No further
function is controlled by the Fast_Ethernet_Select of C18/CNCR register.
Device identifying function
This function is to utilize the device configuration data stored in the device configuration registers, in
which some of them loaded from the external EEPROM. You can tell the vendor, device type, revision,
signature and your own defined code through reading the contents of these registers.
The F00/FID is a read-only register which contains the vendor ID. and device ID., used for
identification. Its_ contents is loaded from the external EEPROM when hardware reset only.
The second read only register F08/FREV used for identification. It contains the revision ID. which is
also loaded from EEPROM only. The Ethernet device identification code is also included in F08/FREV, but it
is a built in code, not loaded form EEPROM.
Another identification register is the F40/FSR, a read only, too. The signature code for Winbond
W89C840AF is built in the F40/FSR signature register. The 12Hth and 9aHth bytes will be read out
recursively when a number of consecutive PCI configuration space read operation is accessed to the F40/FSR.
The first, third, fifth,...etc. odd read operation will get 12H, however, the second, fourth, sixth,...etc. even read
operation will get 9aH.
For some special requirement, the field of driver area of F40/FSR can be used as a word-width data
buffer for latching the user defined identification code.
EEPROM hardware reset auto load and software programming function
The following configuration parameters should be stored in a EEPROM device for configuring the
W89C840AF and can be loaded into the corresponding configuration register while power-on reset occurring.
1) 6 bytes Ethernet ID.
2) 2 bytes subsystem ID.
3) 2 bytes subsystem vendor ID.
4) 2 bytes device ID.
5) 2 bytes vendor ID.
6) 1 bytes revision ID.
7) 1 byte booting device size, power Management capability support and remote wake-up from LAN
8) 1 byte maximum latency
9) 1 byte minimum grant
-25 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The data mapping and its offset address for all of the above parameters is as the following table.
Address
High Byte (BIT 15 ~ BIT 8)
Low Byte (BIT 7 ~ BIT 0)
09H~3FH
reserved
reserved
08H
PMCSP/RWUL/C48
Revision ID
07H
Vendor ID(high byte)
Vendor ID(low byte)
06H
Device ID(high byte)
Device ID(low byte)
05H
Subsystem Vendor ID(high byte)
Subsystem Vendor ID(low byte)
04H
Subsystem ID(high byte)
Subsystem ID(Low byte)
03H
MAXLAT
MINGNT
02H
Ethernet Address 5
Ethernet Address 4
01H
Ethernet Address 3
Ethernet Address 2
00H
Ethernet Address 1
Ethernet Address 0
The W89C840AF will generate a nine-word reading command to the EEPROM to read the
configuration data and store these data into the configuration registers and the control register of the
W89C840AF after hardware reset. The serial EEPROM 93C06 or 93C46 will be the choice as the storage
device for storing these configuration data.
Other than the reading after hardware reset, the EEPROM can be read by the application program.
The C24/CMIIR register provides an alternative path to access the data in EEPROM. The bits 0, 1, 2, ... and 7
of CMIIR are general I/O port. When the bit 11 of CMIIR is set to high, the bits 0, 1 and 2 will be put on the
EECS, BtAdata1/EECK, and BtAdata2/EEDI, respectively , to trigger EEPROM. The data from EEPROM
running over the pin BtAdata3/EEDO will be hold and latched by the bit 3 of CMIIR, and be read by
W89C840AF. The application program can program bits 0, 1 and 2 of CMIIR to generate the chip select
signal, clock and read command, based on the AC timing spec. of the EEPROM device, to EEPROM, and
running over the pins EECS, BtAdata1/EECK, and BtAdata2/EEDI respectively. For reading the output data
from EEPROM, the application program should make the necessary level transition as a clock on
BtAdata1/EECK. One falling edge will trigger the EEPROM device to drive the next bit of output data
relative to the input command.
The EEPROM can be programmed through the general I/O port of the W89C840AF. The application
program can write data into the EEPROM through programming the bits 0, 1 and 2 of the register CMIIR. In
the write cycle of the EEPROM device, the data on BtAdata3/EEDO is meaningless.
BOOT ROM system read and software programming function
The W89C840AF can address up to 256 Kbytes memory space for the on-board boot ROM device. The
on-board boot ROM device will be mapped into the host memory by the system BIOS (Basic Input/Output
System). After power-on reset, The BIOS will write a set of value with all 1 to the F30/FERBA configuration
register and then read the value back. The W89C840AF will return the all 1 value, except some bits with 0,
-26 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
depending on the configuration of C48/CBRCR. The relationship between the return value from the register
F30/FERBA and the setting to the register C48/CBRCR is described as the following table.
ROM size
C48/CBRCR configuration
F30/FERBA return value
No boot ROM
00000000H
00000000H
No boot ROM
00000001H
00000000H
8
Kbytes ROM
00000002H
FFFFE001H
16 Kbytes ROM
00000003H
FFFFC001H
32 Kbytes ROM
00000004H
FFFF8001H
64 Kbytes ROM
00000005H
FFFF0001H
128 Kbytes ROM
00000006H
FFFE0001H
256 Kbytes ROM
00000007H
FFFC0001H
According to the return value from the register F30/FERBA, The system BIOS can determine how
large the memory space is required and then write the memory space base address back to the register
F30/FERBA. In the cases of no boot ROM, the system BIOS will write back all 0 back into F30/FERBA.
The address decoder of W89C840AF for accessing the on-board ROM memory will be enabled if both
the bit 0 of F30/FERBA and the bit 1 of F04/FCS are set to high at the same time. the on-board boot ROM data
will be fetched by W89C840AF and loaded into the host memory. On the other hand , the address decoder will
be disabled if the bit 0 of F30/FERBA is reset to 0. Under this case, W89C840AF will ignore the C48/CBRCR,
no matter what content it has.
Usually, the on-board boot ROM data can be read by the system BIOS during host system booting or
power-on reset, the W89C840AF also provides another access way for the application program to do some
unusual applications, like down loading the ROM code or re-programming the ROM code on line.
The procedures for on-line reading the on-board ROM device are described as following.
1) write the offset address into the C28/CBROA.
2) reset the bit 11 of C24/CMIIR to 0.
3) set the bit 14 of C24/CMIIR to 1.
4) read back the data form C24/CMIIR
The procedures for on-line writing the on-board ROM device are described as following
1) write the offset address into the C28/CBROA.
2) reset the bit 11 of C24/CMIIR to 0.
3) write the one byte data into C24/CMIIR bit 0 to bit 7.
4) set the bit 13 of C24/CMIIR to 1.
-27 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The bit 13 and bit 14 of the register C24/CMIIR should not be set to 1 at the same time. In the case of
both of the bit 13 and bit 14 are 1, it will not properly initialize the read or the write operation for ROM device.
The application program can check the contents of the register C24/CMIIR to know if the read or write
operation is already completed or not. The W89C840AF will start the read or the write operation when the bit
14 or bit 13 are set to high and will reset the bit 14 or bit 13 to 0 automatically after the read/write operation is
completed. For the writing operation, the software driver should not start up the next write data request until the
bit 13 of C24/CMIIR is reset to 0 by the W89C840AF. For the read operation, the read data will be valid only if
the bit 14 of the register C24/CMIIR is reset to 0 by the W89C840AF.
The operation of reading or writing for the on-board ROM device through the registers C24/CMIIR and
C28/CBROA will not affect the memory space configuration of the host system because either read or write
operation is performed through the PCI I/O access command.
MII management function
The MII management function provided by W89C840AF can be used to access the registers of the
external physical layer device. The bits 16, 17, 18 and 19 of C24/CMIIR are designed for MII management .
When the bit 18 is reset to low, the MDIO signal on MII bus is an input of W89C840AF. The data on the
MDIO will be reflected transparently on the bit 19 of the register C24/CMIIR. No data latching function for this
input data. While the bit 18 is set to high, the MDIO signal on MII will be changed to be an output pin of
W89C840AF and the data written to the bit 17 of the register C24/CMIIR will be driven onto the MDIO. To
generate the necessary clock for MII management, the application program can write 1 and 0 alternately to the
bit 16 of the register C24/CMIIR. The clock is used by the external physical layer device to clock in the written
data or to clock out the read data.
System resource configuring function
The W89C840AF will require the I/O space, memory space and the interrupt line to perform the
communication between the network and the host.
The system BIOS can write all 1 data into the register F10/FBIOA and read back its value to determine
how large the I/O space the W89C840AF requires. The W89C840AF will return a FFFFF801H value if the
system BIOS has previously written all 1 value into the F10/FBIOA. This means that the W89C840AF requires
128 bytes system I/O space. The I/O space allocated for the W89C840AF is relied on which I/O address base is
written into F10/FBIOA. The W89C840AF will decode the address message based on the content of the register
F10/FBIOA to determine if the current PCI transaction is accessed to its registers.
For memory space allocation, the system BIOS can write all 1 value into the register F14/FBMA of the
W89C840AF and read back its value to determine how large memory space the W89C840AF requires. The
W89C840AF will also return FFFFF801H value if the system BIOS has previously written all 1 value into the
register F14/FBMA. This means that the W89C840AF requires 128 bytes system memory space. The memory
space allocated for the W89C840AF depends on which memory address base is written into the register
F14/FBMA. The W89C840AF will decode the address message based on the content of the register F14/FBMA
to determine if the current PCI transaction is accessed to its registers.
-28 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The W89C840AF uses only one interrupt pin, INTA#. However, the interrupt line resource assignment
is determined by the system BIOS by writing the related data into the bits 0 to 7 of the register F3C/FIR in the
W89C840AF. The data written into the bits0 to 7 of the register F3C/FIR can be used by the driver program to
decide the interrupt service subroutine configuring.
PCI Configuration register
The general attributes of the PCI configuration registers implemented in the W89C840AF are described as
the following:
1) Writes to the reserved configuration registers are treated as no-op. The bus access will complete without
affecting any data in the W89C840AF internal registers.
2) Read from the reserved or un-implemented registers will be returned 0
value.
3) S/W reset (C00<0> ) has no effect on the PCI configuration registers.
4) H/W reset will clear the PCI configuration registers.
5) The implemented configuration registers support any byte enable combination access.
6) Burst access to the configuration registers will be terminated after 1st data transfer completed with a with
a disconnect without data.
The following table outlined all the PCI configuration registers inside this chip and summarized its function.
Code
Abbr.
Meaning
System I/O offset
F00
FID
Identification
00H
F04
FCS
Command and status
04H
F08
FREV
Revision
08H
F0C
FLT
Latency timer
0cH
F10
FBIOA
Base I/O address
10H
F14
FBMA
Base memory address
14H
----
----
Reserved
18~28H
F2c
FSSID
Subsystem ID
2cH
F30
FERBA
Expansion ROM base address
30H
F34
FCAPR
Capabilities Pointer
34H
----
----
Reserved
38H
F3c
FIR
Interrupt
3cH
F40
FSR
Signature
40H
F48
FWUPCS
Wake-Up Control and Status
48H
F4c
FWFOFST
Wake-Up Frame Offset
4cH
F50
FWF0CRC
Wake-Up Frame 0 CRC
50H
F54
FWF1CRC
Wake-Up Frame 1 CRC
54H
-29 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
F58
FWF2CRC
Wake-Up Frame 2 CRC
58H
F5c
FWF3CRC
Wake-Up Frame 3 CRC
5cH
F60
FWF0BM0
Wake-Up Frame 0 Byte-Mask 0
60H
F64
FWF0BM1
Wake-Up Frame 0 Byte-Mask 1
64H
F68
FWF1BM0
Wake-Up Frame 1 Byte-Mask 0
68H
F6c
FWF1BM1
Wake-Up Frame 1 Byte-Mask 1
6cH
F70
FWF2BM0
Wake-Up Frame 2 Byte-Mask 0
70H
F74
FWF2BM1
Wake-Up Frame 2 Byte-Mask 1
74H
F78
FWF3BM0
Wake-Up Frame 3 Byte-Mask 0
78H
F7c
FWF3BM1
Wake-Up Frame 3 Byte-Mask 1
7cH
Fdc
FPMC
Power Management Capabilities
dcH
Fe0
FPMCSR
Power Management Control and Statuse0H
The initial value of the W89C840AF PCI configuration registers after hardware reset and software reset is listed as
following table.
Code
Abbr.
hardware reset
software reset
F00
FID
00000000H
non affected
F04
FCS
02800000H
non affected
F08
FRE
02000000H
non affected
F0C
FLT
00000000H
non affected
F10
FBIOA
FFFFFF81H
non affected
F14
FBMA
FFFFFF80H
non affected
F2c
FSSID
00000000H
non affected
F30
FERBA
00000000H
non affected
F34
FCAPPR
000000dcH or or 00000000H
non affected
F3c
FIR
00000100H
non affected
F40
FSR
00000012H or 00000012H
non affected
F48
FWUPCS
80000000H
non affected
F4c
FWFOFST
00000000H
non affected
F50
FWF0CRC
ffffffffH
non affected
F54
FWF1CRC
ffffffffH
non affected
F58
FWF2CRC
ffffffffH
non affected
F5c
FWF3CRC
ffffffffH
non affected
-30 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
F60
FWF0BM0
00000000H
non affected
F64
FWF0BM1
00000000H
non affected
F68
FWF1BM0
00000000H
non affected
F6c
FWF1BM1
00000000H
non affected
F70
FWF2BM0
00000000H
non affected
F74
FWF2BM1
00000000H
non affected
F78
FWF3BM0
00000000H
non affected
F7c
FWF3BM1
00000000H
non affected
Fdc
FPMC
5a010001H
non affected
Fe0
FPMCSR
00000000H
non affected
F00/FID Device ID Register
The register F00/FID specifies the vendor ID and the particular device ID in the W89C840AF.
Bit
Attribute
Bit name
Description
31:16
R
DID
Device ID. Loaded from EEPROM after hardware reset de-asserted.
15:0
R
VID
VendorID. Loaded from EEPROM after hardware reset de-asserted.
F04/FCS Command and Status Register (Offset + 04H)
Value after Hard-Reset: 02900000H
The F04/FCS comprises two parts, the one is the command register (FCS[15:0]) which provides the control
of 840 PCI activity, and the other is the status register (FCS[31:16]) which shows the status information of PCI
event.
Writing 00h to the command registers will put W89C840AF logically isolated from all PCI access except
configuration access.
Writing 1 to the bits of the status register will clear them; writing 0 has no effect.
Bit
Attribute
31
R/W
Bit name
DPE
Description
Detected Parity Error.
The DPE will be set if a parity error is detected by W89C840AF
even the parity error response bit of F04/FCS(bit 6) is disabled.
30
R/W
SSE
Signaled System Error.
The SSE will be set if W89C840AF assert SERRB.
-31 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
29
R/W
RMA
Received Master Abort.
The RMA will be set if 840 master transaction take a master
abort.
28
R/W
RTA
Received Target Abort.
The RTA will be set if the 840 master transaction is terminated by
a target abort.
27
R/W
STA
Signaled Target Abort.
The STA will be set if the W89C840AF slave transaction take a
target abort.
26:25
R
DT
DEVSEL# Timing:
Fixed at 01 to indicate a medium DEVSEL# assert timing.
24
R/W
DPED
Data Parity Error Detected.
The DPED will be set if the following three conditions are met:
1). The W89C840AF asserts PERRB or detects out that PERRB
asserted by other device.
2). The W89C840AF acts as a master in the transaction that the
error occurs.
3). The parity error response bit (bit 6) is set.
23
R
FBTBC
Fast Back to Back Capable.
Fixed at 1 to indicate capability of accepting fast back to back
transactions which are not accessing to the same target.
22:21
R
---
20
R
CAPS
Reserved. Fixed at 0.
Capabilities
Set 1 to indicate that W89C840A implements the PCI power
management capability.
After Hard-Reset, if PMCSP=1 then CAPS is fixed at 1.
After Hard-Reset, if PMCSP=0 then CAPS is fixed at 0.
19:9
R
---
Reserved. Fixed at 0.
8
R/W
SE
SERR# Enable.
Set SE high to enable the W89C840AF to assert SERR# if an
address parity error is detected. This bit and bit 6 must be set 1 to
signal SERR event.
7
R
----
Reserved. Fixed at 0.
6
R/W
PER
Parity Error Response.
Set PER to high to enable the W89C840AF to respond to parity
error.
When PER is reset, the W89C840AF will ignore any parity error
and continue the normal operation.
The W89C840AF internal parity checking and generation
function will not be disabled even PER is reset.
-32 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
5:3
R
---
Reserved. Fixed at 0.
2
R/W
BM
Bus Master.
Set BM to high will allow W89C840AF acting as a bus master.
Reset BM to low will disable the W89C840AF
ability.
1
R/W
MS
bus master
Memory Space.
Set MS to high will allow W89C840AF to respond to memory
space access by the host.
0
R/W
IOS
I/O Space.
Set IOS to high will allow W89C840AF to respond to I/O space
access by the host.
F08/FREV Device Revision Register
This register, a read-only with built-in code, shows W89C840AF revision number and its
class code.
Bit
Attribute
Bit name
Description
31:24
R
BC
Base Class Code.
Fixed at 02h to indicate a network controller.
23:16
R
SC
Subclass Code.
Fixed at 00h to indicate a Ethernet controller.
15:8
R
IC
Interface Code. Fixed at 0.
7:0
R
REV
Revision ID.
This field represents the revision number.
Loaded from EEPROM after hardware reset de-asserted
F0C/FLT Latency Timer Register
This register specify the W89C840AF master bus latency timer.
Bit
Attribute
Bit name
Description
31:16
R
---
Fixed to 0.
15:8
R/W
LT
Latency Timer.
Specify, in units of PCI clocks, the latency timer value of
W89C840AF. When W89C840AF asserts FRAMEB, its latency
timer starts counting up. The W89C840AF will initiate the
transaction termination as soon as its GNT# de-asserted If the timer
expired before W89C840AF de-asserts FRAMEB.
7:0
R
---
Fixed at 0.
-33 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
F10/FBIOA Base I/O Address Register
This register is written by software after power-on to specify W89C840AF base I/O address in the system.
Bit
Attribute
Bit name
Description
31: 7
R/W
BIOA
Base I/O Address.
Written by power-on software to specify base I/O address. The
W89C840AF requires a 128 bytes wide I/O space.
6:1
R
---
Reserved. Fixed at 0.
0
R
IO
I/O Space Indicator.
Fixed at 1.
F14/FBMA Base Memory Address Register
This register is written by power-on software to specify W89C840AF base memory address in the system.
Bit
Attribute
Bit name
Description
31: 7
R/W
BMA
Base Memory Address.
Written by power-on software to specify base memory address. The
W89C840AF requires a 128 bytes wide memory space.
6:1
R
---
Reserved. Fixed at 0.
0
R
MEM
Memory Space Indicator.
Fixed at 0.
F2C/FSSID Subsystem ID Register
This register is loaded from the external EEPROM. The W89C840AF will issue a Retry signals to host when
the host tries to access to this register while the EEPROM auto-loading is not yet completed.
Bit
Attribute
Bit name
Description
31:16
R
SBID
Subsystem ID.
Loaded from EEPROM after Hardware reset de-asserted.
15:0
R
SBVID
Subsystem Vendor ID.
Loaded from EEPROM after Hardware reset de-asserted
F30/FERBA Expansion ROM Base Address Register
This register is written by power-on software to specify the on-board boot ROM base address in the system.
Bit
Attribute
Bit name
Description
-34 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
31:13
R/W
EROMB
Expansion ROM Base Address.
Written by power-on software to specify expansion ROM base
address.
The W89C840AF will request op to 256K bytes memory space for
the on board boot ROM device according the configuration of
C48/CBRCR.
The return back read value of bit 0 to bit 17 of F30/FERBA will
depend on the configuration of C48/CBRCR.
12:1
R
---
Reserved. Fixed at 0.
0
R/W
ROME
Expansion ROM Enable.
Set both this bit and F04/FCS bit 1 to 1 to enable expansion ROM
access ability. The F04/FCS bit 1 has precedence over this bit.
F34/FCAPPR Capabilities Pointer Register (Offset + 34H)
Value after Hard-Reset:
00000000H or 000000dcH
Bit
Attribute
Bit name
Description
31:8
R
---
Reserved. Fixed at 0.
7:0
R
CAPPR
Capabilities Pointer
The Capabilities Pointer provide the offset into the PCI
Configuration Space for the location of Power Management
Register Block.
After Hard-Reset, if PMCSP=1 then CAPPR is fixed at dcH.
After Hard-Reset, if PMCSP=0 then CAPPR is fixed at 00H.
F3C/FIR Interrupt Register
The upper half of this register is loaded from external serial EEPROM while the lower half is written. The
W89C840AF will issue a Retry signals to host when the host tries to access to this register while the EEPROM autoloading is not yet completed.
Bit
Attribute
Bit name
Description
31:24
R
MAXLAT
Max_Lat.
This indicates how often, in units of 0.25uS, the W89C840AF needs
to gain access to PCI bus. Assuming PCI clock rate is 33 MHz.
23:16
R
MINGNT
Min_Gnt.
This indicates how long a burst period, in units of 0.25uS, is needed
by the W89C840AF. Assuming PCI clock rate is 33 MHz.
15:8
R
IPIN
Interrupt Pin.
Fixed at 01H to indicate INTA# is used.
-35 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
7:0
R/W
ILINE
Interrupt Line.
Written by power-on software to specify routing of interrupt line.
F40/FSR Signature Register(Offset + 40H)
Value after Hard-Reset:
00000012H
The F40/FSR register is designed for identifying the hardware of W89C840AF.
Bit
Attribute
Bit name
Description
31:16
R/W
DVAR
Driver Area
This field is for driver special use. The driver can write some
specific pattern to these bits for bundling the software and hardware
of W89C840AF together.
15:8
R
---
Reserved. Fixed at 0.
7:0
R
SIG
Signature.
After the hardware reset, these 8 bits value is toggled as following
SIG = 12H at (2N-1)th read
9AH at 2Nth read
where N= 1, 2, ....
F48/FWUPCS Wake-Up Control and Status Register (Offset + 48H)
Value after Hard-Reset:
80000000H
Bit
Attribute
Bit name
Description
31
R/W
PMCSP
Reserved
30
R/W
RWUL
Reserved
29:21
R
---
Reserved. Fixed at 0.
20
R/W
RWUPF3
Received Wake-Up Frame 3
When set, indicates that a Wake-Up Frame 3 has been received if
Wake-Up Frame detector is enabled (WUPFE=1).
Writing a 1 to this bit will clear it. Writing a 0 has no effect.
19
R/W
RWUPF2
Received Wake-Up Frame 2
When set, indicates that a Wake-Up Frame 2 has been received if
Wake-Up Frame detector is enabled (WUPFE=1).
Writing a 1 to this bit will clear it. Writing a 0 has no effect.
-36 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
18
R/W
RWUPF1
Received Wake-Up Frame 1
When set, indicates that a Wake-Up Frame 1 has been received if
Wake-Up Frame detector is enabled (WUPFE=1).
Writing a 1 to this bit will clear it. Writing a 0 has no effect.
17
R/W
RWUPF0
Received Wake-Up Frame 0
When set, indicates that a Wake-Up Frame 0 has been received if
Wake-Up Frame detector is enabled (WUPFE=1).
Writing a 1 to this bit will clear it. Writing a 0 has no effect.
16
R/W
RMGP
Received Magic Packet
When set, indicates that a Magic Packet has been received if Magic
Packet detector is enabled (MGPE=1).
Writing a 1 to this bit will clear it. Writing a 0 has no effect.
15:2
R
---
Reserved. Fixed at 0.
1
R/W
WUPFE
Wake-Up Frame Detector Enable
A 1 enable the operation of Wake-Up Frame Detector.
This bit is reset when W89C840A changes from D3 (hot) to D0 (uninitialized)
After Hard-Reset, if PMCSP=0 then WUPFE is fixed at 0.
0
R/W
MGPE
Magic Packet Detector Enable
A 1 enable the operation of Magic Packet Detector.
This bit is reset when W89C840A changes from D3 (hot) to D0 (uninitialized).
After Hard-Reset, if PMCSP=1 and RWUL=1 then MGPE is set to
1.
After Hard-Reset, if PMCSP=1 and RWUL=0 then MGPE is cleared
to 0.
After Hard-Reset, if PMCSP=0 then MGPE is fixed at 0.
F4c/FWFOFST Wake-Up Frame Offset Register (Offset + 4cH)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:24
R/W
WFOFST3
Offset address for Wake-Up Frame 3 match
23:16
R/W
WFOFST2
Offset address for Wake-Up Frame 2 match
15:8
R/W
WFOFST1
Offset address for Wake-Up Frame 1 match
7:0
R/W
WFOFST0
Offset address for Wake-Up Frame 0 match
F50/FWF0 CRC Wake-Up Frame 0 CRC Register (Offset + 50H)
-37 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Value after Hard-Reset:
ffffffffH
Bit
Attribute
Bit name
Description
31:0
R/W
WF0CRC
CRC value for Wake-Up Frame 0 match
F54/FWF1 CRC Wake-Up Frame 1 CRC Register (Offset + 54H)
Value after Hard-Reset:
ffffffffH
Bit
Attribute
Bit name
Description
31:0
R/W
WF1CRC
CRC value for Wake-Up Frame 1 match
F58/FWF2 CRC Wake-Up Frame 2 CRC Register (Offset + 58H)
Value after Hard-Reset:
ffffffffH
Bit
Attribute
Bit name
Description
31:0
R/W
WF2CRC
CRC value for Wake-Up Frame 2 match
F5c/FWF3 CRC Wake-Up Frame 3 CRC Register (Offset + 5cH)
Value after Hard-Reset:
ffffffffH
Bit
Attribute
Bit name
Description
31:0
R/W
WF3CRC
CRC value for Wake-Up Frame 3 match
F60/FWF0BM0 Wake-Up Frame 0 Byte-Mask 0 Register (Offset + 60H)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF0BM0
Wake-Up Frame 0 Byte-Mask 0
The bit 0 is the byte 0 mask of Wake-Up Frame 0.
--The bit 31 is the byte 31 mask of Wake-Up Frame 0.
F64/FWF0BM1 Wake-Up Frame 0 Byte-Mask 1 Register (Offset + 64H)
Value after Hard-Reset:
00000000H
-38 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Bit
Attribute
Bit name
Description
31:0
R/W
WF0BM1
Wake-Up Frame 0 Byte-Mask 1
The bit 0 is the byte 32 mask of Wake-Up Frame 0.
--The bit 31 is the byte 63 mask of Wake-Up Frame 0.
F68/FWF1BM0 Wake-Up Frame 1 Byte-Mask 0 Register (Offset + 68H)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF1BM0
Wake-Up Frame 1 Byte-Mask 0
The bit 0 is the byte 0 mask of Wake-Up Frame 1.
--The bit 31 is the byte 31 mask of Wake-Up Frame 1.
F6c/FWF1BM1 Wake-Up Frame 1 Byte-Mask 1 Register (Offset + 6cH)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF1BM1
Wake-Up Frame 1 Byte-Mask 1
The bit 0 is the byte 32 mask of Wake-Up Frame 1.
--The bit 31 is the byte 63 mask of Wake-Up Frame 1.
F70/FWF2BM0 Wake-Up Frame 2 Byte-Mask 0 Register (Offset + 70H)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF2BM0
Wake-Up Frame 2 Byte-Mask 0
The bit 0 is the byte 0 mask of Wake-Up Frame 2.
--The bit 31 is the byte 31 mask of Wake-Up Frame 2.
F74/FWF2BM1 Wake-Up Frame 2 Byte-Mask 1 Register (Offset + 74H)
Value after Hard-Reset:
00000000H
-39 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Bit
Attribute
Bit name
Description
31:0
R/W
WF2BM1
Wake-Up Frame 2 Byte-Mask 1
The bit 0 is the byte 32 mask of Wake-Up Frame 2.
--The bit 31 is the byte 63 mask of Wake-Up Frame 2.
F78/FWF3BM0 Wake-Up Frame 3 Byte-Mask 0 Register (Offset + 78H)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF3BM0
Wake-Up Frame 3 Byte-Mask 0
The bit 0 is the byte 0 mask of Wake-Up Frame 3.
--The bit 31 is the byte 31 mask of Wake-Up Frame 3.
F7c/FWF3BM1 Wake-Up Frame 3 Byte-Mask 1 Register (Offset + 7cH)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:0
R/W
WF3BM1
Wake-Up Frame 3 Byte-Mask 1
The bit 0 is the byte 32 mask of Wake-Up Frame 3.
--The bit 31 is the byte 63 mask of Wake-Up Frame 3.
Fdc/FPMC Power Management Capabilities Register (Offset + dcH)
Value after Hard-Reset:
Bit
Attribute
Bit name
5a010001H
Description
-40 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
31:27
R
PME_SP
PME_Support
bit 31 = 0
bit 30 = 1 --- PMEB can be asserted from D3 (hot)
bit 29 = 0
bit 28 = 1 --- PMEB can be asserted from D1
bit 27 = 1 --- PMEB can be asserted from D0
26
R
D2_SP
D2_Support
Fixed at 0. The W89C840A do not support D2 Power Management
State.
25
R
D1_SP
D1_Support
Fixed at 1. The W89C840A support D1 Power Management State.
24:22
R
---
Reserved. Fixed at 0.
21
R
DSI
Device Specific Initialization.
Fixed at 0. The W89C840A do not need a device specific
initialization sequence.
20
R
---
Reserved. Fixed at 0.
19
R
PMECLK
PME Clock
Fixed at 0. The W89C840A do not rely on the presence of the PCI
clock for PMEB operation.
18:16
R
VERS
Version.
Fixed at 001B. The W89C840A complies with Revision 1.0 of the
PCI Power Management Interface Specification.
15:8
R
NXTPR
Next Item Pointer.
Fixed at 00H. There are no additional items in the Capabilities List.
7:0
R
CAP_ID
Capability Identifier.
Fixed at 01H. This linked list item is the PCI Power Management
registers.
Fe0/FPMCSR Power Management Control and Status Register (Offset + e0H)
Value after Hard-Reset:
00000000H
Bit
Attribute
Bit name
Description
31:16
R
---
Fixed at 0.
-41 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
15
R/W
PME_STS
PME Status.
This bit is set when the enabled Wake-Up Frame detector receives a
Wake-Up Frame or the enabled Magic Packet detector receives a
Magic Packet.
When PME_STS and PME_EN are set, the W89C840A asserts
PMEB.
Writing a 1 will clear PME_STS, RWUPF3, RWUPF2, RWUPF1,
RWUPF0, and RMGP.
Writing a 0 has no effect.
14:9
R
---
Fixed at 0.
8
R/W
PME_EN
PME Enable.
When PME_STS and PME_EN are set, the W89C840A asserts
PMEB.
This bit is reset when W89C840A changes from D3 (hot) to D0 (uninitialized)
7:2
R
---
Reserved. Fixed at 0.
1:0
R/W
PW_STS
Power Management State.
00B --- W89C840A at D0 power management state
01B --- W89C840A at D1 power management state
11B --- W89C840A at D3 (hot) power state
Writing 10B has no effect.
The registers of W89C840AF
The W89C840AF is implemented many registers, listed in the table below, to perform the function
control and monitor the status of MAC. The general attributes of the W89C840AF register is described as the
following:
1) The W89C840AF registers are mapped into the host I/O or memory space.
2) The registers of the W89C840AF are long word-aligned. Each register consists of 32 bits and may be accessed
using any byte enable combinations with long word-aligned address.
3) The byte enabling and addressing must meet the specification for I/O access addressing rule when the register is
in I/O space.
4) Burst access to the W89C840AF register will be terminated after 1st data transfer completed with a Disconnect
without Data.
5) S/W reset will have the same effect as done by H/W reset on the W89C840AF register, except for the registers
or bits C00<0>, C38, C3c, C40, C44, C48.
6) Any read on the reserved register will be returned with 0
value.
The following table outlined all the control/status registers inside this chip and its offset address, and
summarized its function.
-42 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Code
Abbr.
Meaning
Base offset from
FBIOA, FBMA
C00
CBCR
Bus Control
00H
C04
CTSDR
Transmit Start Demand
04H
C08
CRSDR
Receive Start Demand
08H
C0C
CRDLA
Receive Descriptor List Address
0CH
C10
CTDLA
Transmit Descriptor List Address
10H
C14
CISR
Interrupt Status
14H
C18
CNCR
Network Configuration
18H
C1C
CIMR
Interrupt Mask
1CH
C20
CFDCR
Frame Discarded Counter
20H
C24
CMIIR
MII Management and ROM
24H
C28
CBROA
Boot ROM Offset Address
28H
C2C
CGTP
General Timer
2CH
C30
CRDAR
Current Receive Descriptor Address
30H
C34
CRBAR
Current Receive Buffer Address
34H
C38
CMA0
Multicast Address 0
38H
C3C
CMA1
Multicast Address 1
3CH
C40
CPA0
Physical Address 0
40H
C44
CPA1
Physical Address 1
44H
C48
CBRCR
Boot ROM Size Configuration
48H
C4c
CTDAR
Current Transmit Descriptor Address
4cH
C50
CTBAR
Current Transmit Buffer Address
50H
C54~CFF
reserved
reserved
reserved
This table lists the initial state of each register in the W89C840AF after hardware reset and software reset
separately.
Code
Abbr.
hardware reset
software reset
C00
CBCR
00000010H
00000010H
C04
CTSDR
00000000H
00000000H
C08
CRSDR
00000000H
00000000H
C0C
CRDLA
00000000H
00000000H
C10
CTDLA
00000000H
00000000H
C14
CISR
03800000H
03800000H
C18
CNCR
20000030H
-43 -
20000030H
Publication Release Date:October 2000
Revision 1.01
W89C840AF
C1C
CIMR
00000000H
00000000H
C20
CFDCR
00000000H
00000000H
C24
CMIIR
00000000H
00000000H
C28
CBROA
00000000H
00000000H
C2C
CGTP
C30
CRDAR
00000000H
00000000H
C34
CRBAR
00000000H
00000000H
C38
CMA0
00000000H
not affected
C3C
CMA1
00000000H
not affected
C40
CPA0
00000000H
not affected
C44
CPA1
00000000H
not affected
C48
CBRCR
00000000H
not affected
C4c
CTDAR
00000000H
00000000H
C50
CTBAR
00000000H
00000000H
00000000H
00000000H
The detailed function and operation for each register in the W89C840AF will be described in the following
paragraph. There are total 21 registers to be described in register code order in this paragraph.
The full name of these registers are C00/CBCR Bus Control Register, C04/CTSDR Transmit Start Demand
Register, C08/CRSDR Receive Start Demand Register, C0C/CRDLA Receive Descriptors List Addresses,
C10/CTDLA Transmit Descriptors List Addresses, C14/CISR Interrupt Status Register, C18/CNCR Network
Configuration Register, C1C/CIMR Interrupt Mask Register, C20/CFDCR Frame Discarded Counter Register,
C24/CMIIR MII Management and ROM Register, C28/CBROA Boot ROM Offset Address Register, C2C/CGTR
General Timer Register, C30/CRDAR Current Receive Descriptor Address Register, C34/CRBAR Current Receive
Buffer Address Register, C38/CMA0 Multicast Address Register 0, C3C/CMA1 Multicast Address Register 1,
C40/CPA0 Physical Address Register 0, C44/CPA1 Physical Address Register 1, C48/CBRCR Boot ROM Size
Configuration Register, C4C/CTDAR Current Transmit Descriptor Address Register and C50/CTBAR Current
Transmit Buffer Address Register.
C00/CBCR Bus Control Register:
This register defines the configuration of bus master, including the wait state control, the endian mode
control of the descriptor, cache alignment control, burst length control, descriptor skip length and the internal bus
access priority. In addition to the bus master control, the software reset will be performed after programming a
logic 1 to the software reset bit of C00/CBCR. Before writing data to the C00/CBCR, the transmit and receive
processes must be stopped. Otherwise the current transmit or receive operation will not be completed correctly.
The following table particularly describes the function of each bit of the register C00/CBCR.
Bit
Attribute
Bit name
Description
31:22
R
---
Reserved. Fixed at 0.
-44 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
21
R/W
WAIT
Wait State Insertion
When WAIT is set, the W89C840AF, as a bus master, executes
memory read/write with one wait state every data phase. When
WAIT is reset, the W89C840AF, as a bus master, executes
memory read/write with zero wait state every data phase.
20
R/W
DBE
Descriptor Big Endian Mode
When set, the descriptors will be handled in big endian mode;
when reset, the descriptors will be treated in little endian mode
19:16
R
---
Reserved. Fixed at 0.
15:14
R/W
CA
Cache Alignment
CA defines the address boundary for the burst access to the
transmission or receive data.
When the starting address of the data burst access is not aligned,
more specifically, the starting address should be a multiple of
some number such as 4, 8 etc., the W89C840AF will have the
first burst transfer that causes that the next burst access will has
the start address aligned.
After the first burst occurred, all other burst operation are
aligned with the configuration of CA accordingly.
The CA must be initialized with a non zero value after reset.
The alignment configuration is as following:
[15:14]
Address Alignment
----------------------------------------------------[00]
reserved
[01]
8 long-word alignment
[10]
16 long-word alignment
[11]
32 long-word alignment
-45 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
13:8
R/W
BL
Burst Length
BL defines the maximum number of the long words that can be
transferred
within
one
PCI
burst
transaction.
The burst length configuration is as following.
[13:8]
Burst Length
--------------------------------------------00H
refer to CA
01H
1 long word
02H
2 long word
04H
4 long word
08H
8 long word
10H
16 long word
20H
32 long word
other
7
R/W
BBE
reserved
Buffer With Big Endian
When set, the data buffers are treated with big endian ordering.
When reset, the data buffers are treated with little endian
ordering.
6:2
R/W
SKIP
Skip Length Between Descriptors
This field specifies the skip length between two descriptors (from
the start address of the current descriptor to the start address of
the next descriptor). The unit of the skip length is long word.
The default value after hardware or software reset is 04H.
1
R/W
ARB
Arbitration Between Tx And Rx Processes
When set, the TX process and RX process will have the right to
use the internal bus with the same priority. When reset, the RX
process will have higher priority than TX process with regarding
to the internal bus utilization.
0
R/W
SWR
Software Reset.
Set SWR to high will reset most internal registers (except that
C38, C3c, C40, C44, C48, and PCI Configuration Registers).
The software reset will be lasted for 4 PCI clocks and the bit will
self-clean after software reset completed. If any consequent
access to the W89C840AF is coming during this reset process,
the W89C840AF will delay asserting TRDY# until the reset
process is completed. This bit is default 0 after hardware reset.
C04/CTSDR Transmit Start Demand Register
The register C04/CTSDR is used to request the W89C840AF to do a transmission process.
Bit
Attribute
Bit name
Description
-46 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
31:0
W
TSD
Transmit Start Demand
A write to this register will trigger the W89C840AF transmit
DMA to fetch the descriptor for progressing the transmission
operation when the W89C840AF transmit DMA is staying at
the suspend state. Otherwise, the write operation will have no
effect.
The W89C840AF transmit DMA will return to the suspend
state if no descriptor is available. Meanwhile, the bit 2 of
C14/CISR will be asserted to claim the transmit buffer
unavailable
If there is any descriptor available, W89C840AF will start to the
transmit process.
C08/CRSDR Receive Start Demand Register
The register C04/CTSDR is used to request the W89C840AF to do a receive process.
Bit
Attribute
Bit name
Description
31:0
W
RSD
Receive Start Demand
A write to this register will trigger the W89C840AF receive
DMA to fetch the descriptor for progressing the receiving
operation when the W89C840AF receive DMA is staying at
the suspend state. Otherwise, the write operation will have no
effect.
The W89C840AF
receive DMA will return to the suspend
state if no descriptor is available. Meanwhile, the bit 7 of
C14/CISR will be asserted to claim the receive buffer
unavailable.
If there is any descriptor available, W89C840AF will start to the
receive process and waiting for the incoming frames.
C0C/CRDLA Receive Descriptors List Addresses
The register C0C/CRDLA defines the start address of the receive descriptor list. It should be updated only when
the receive DMA state machine is staying at the stop state.
Bit
Attribute
Bit name
Description
31:2
R/W
SRL
Start of Receive List.
1:0
R/W
MBZ
Must be written as 0 for long word alignment.
C10/CTDLA Transmit Descriptors List Addresses
-47 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The register C10/CTDLA defines the start address of the transmit descriptor list. It should be updated only when
the transmission DMA state machine is staying at the stop state.
Bit
Attribute
Bit name
Description
31:2
R/W
STL
Start of Transmit List.
1:0
R/W
MBZ
Must be written as 0 for long word alignment.
-48 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
C14/CISR Interrupt Status Register
Most bits of the C14/CISR report the interrupt status. The assertion of the interrupt status, reported by bits 0, 1, 2,
3, 4, 5, 6, 7, 8, 10, 11 and 13, and the corresponding interrupt mask bits will cause a hardware interrupt to the
host.
A write with 1
value the status bit will clear them and write 0 will have no effect.
Bit
Attribute
Bit name
Description
31:26
R
---
Reserved. Fixed at 0.
25:23
R
BET
Bus Error Type.
The field indicates the error type of bus error and is valid only when
bit 13, bus error, is set.
the assertion of these bits does not generate interrupt.
The definition of bus error is as follows.
BET[25:23]
---------------
Error State
------------------
000
Parity Error
001
Master Abort
010
Target Abort
011
Reserved.
1xx
Reserved.
The meanings of the error type is described as following.
* Parity Error
--- When W89C840AF operates as a bus master, it can detect a
data parity error during a read transaction or sample PERRB
asserted on a write transaction if Parity Error Response bit (F04[6])
is set.
* Master Abort
--- When W89C840AF operates as a bus master, W89C840AF
terminates the read or write transaction with master abort.
* Target Abort
--- When W89C840AF operates as a bus master, the read or write
transaction is terminated with target abort.
The initial state of this field after reset is zero.
22:20
R
TPS
Transmit Process State.
This field indicates the transmit state. This field does not generate
interrupt.
19:17
R
RPS
Receive Process State.
This field indicates the receive state. This field does not generate
interrupt.
-49 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
16
R
NIR
Normal Interrupt Report.
The normal interrupt report includes transmit completed interrupt,
transmit buffer unavailable interrupt and the receive completed
interrupt.
The NIR is a logical OR result of the bits 0, 2, 6 of the register
C14/CISR. Only the bits corresponding to the unmasked bits of
C1C/CIMR will affect this bit.
15
R
AIR
Abnormal Interrupt Report.
The abnormal interrupt includes transmit process in idle state
interrupt, receive early interrupt, receive error interrupt, transmit
FIFO under-flow interrupt, receive buffer unavailable interrupt,
receive idle state interrupt, transmit early interrupt, timer expire
interrupt and the bus error interrupt.
The AIR is a logical OR result of the bits 1, 3, 4, 5, 7, 8, 10, 11, 13
of the register C14/CISR. Only these bits corresponding to the
unmasked bits of the C1C/CIMR will affect this bit.
14
R
---
Reserved. Fixed at 0.
13
R/W
BE
Bus Error.
A high indicates a bus error happened. The error type will be shown
by bit 25~23.
12
R
---
Reserved. Fixed at 0.
11
R/W
TE
Timer Expired.
A high indicates the general timer (C2C/CGTR) expired.
10
R/W
TEI
Transmit Early Interrupt
The W89C840AF will has Transmit Early Interrupt status set after
the packet to be transmitted is completely transferred into the
transmit FIFO if Transmit Early Interrupt On bit of C18/CNCR is
set.
The TEI will be cleared automatically after the packet is transmitted
out from the transmit FIFO completely.
9
R
---
Reserved. Fixed at 0.
8
R/W
RIDLE
Receive in Idle State.
Set means the receive DMA state machine is in the idle state.
-50 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
7
R/W
RBU
Receive Buffer Unavailable.
When there is no receive buffer available, this bit is set and the
receive process enters the suspend state.
When W89C840AF is first initialized, this bit will not be set even if
there is no buffer available. It will be set only when there has been
any available buffer and no available buffer afterwards.
The RBU will not accumulate the number of the receive buffer
unavailable event, i.e. the write an 1 value to RBU will clear the
RBU no matter how many times the receive buffer unavailable has
been occurred before the RBU is cleared.
6
R/W
RINI
Receive Interrupt
A high indicates that a frame has been received and the receive
status is transferred into the receive descriptors of the current frame.
5
R/W
IUF
Transmit FIFO Under-flow
A high indicates that the transmit FIFO had an under-flow error
during the packet transmission.
After the FIFO under-flow occurred, the transmit DMA will not
continue to fetch the un-transmitted data of the current frame but
fetch the descriptor of the current frame for looking for the last
descriptor of the current frame. The W89C840AF transmit DMA
state machine will write the transmit status to the last descriptor of
the current frame with a 1
value for the bit 1 of Transmit
Descriptor 0 (T00[1]).
The W89C840AF will continue to transmit next packet when the
current frame transmit status is updated..
4
R/W
RERR
Receive Error.
A high indicates that the receive DMA detects a receive error
during the packet reception.
The receive DMA will set this bit when some prior received data of
the current incoming packet have been moved into the data buffer in
the host memory and some kind of error occurred when receiving
the posterior data of the current incoming packet from the MII bus.
The INTAB will be asserted when a receive error is detected and the
receive error interrupt enable is unmasked and the error packet will
be aborted.
3
R/W
REI
Receive Early Interrupt
The REI will be set when the number of the data of the incoming
frame, in long word unit, transferred to the data buffer reaches
Receive Early Interrupt Threshold specified by the register
C18/CNCR if Receive Early Interrupt On in the register
C18/CNCR is set.
This bit will be cleared automatically after Receive Interrupt (RINI)
or Receive Error (RERR) is set..
-51 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
2
R/W
TBU
Transmit Buffer Unavailable
A high indicates that there is no available transmit descriptor
during or after the packet transmission. The transmit process will
stay in suspend state.
The TBU will not accumulate the number of transmit buffer
unavailable event, i.e. write an 1 value to TBU will clear the TBU,
no matter how many times the transmit buffer unavailable has been
occurred before the TBU is cleared.
1
R/W
TIDLE
Transmit Process in Idle State.
A high indicates the transmit state machine is in the idle state.
0
R/W
TINI
Transmit Interrupt
The TINI will be set when a frame transmit is completed and the
FINT (bit 31) of Transmit Descriptor 1 (T01) is set.
C18/CNCR Network Configuration Register
The register C18/CNCR defines the configuration for the data transmission or receiving and the interrupt algorithm
for interrupt assertion.
Bit
Attribute
Bit name
Description
31
R/W
REIO
Receive Early Interrupt On
The receive early interrupt function will be enabled when the REIO
is set to high. Otherwise, the receive early interrupt function will be
disabled.
During receiving packet data, the W89C840AF will assert an
interrupt request when the bytes number of the received data, which
the receive DMA has moved them into the data buffer in the system
memory , excesses the receive early interrupt threshold.
30
R/W
TEIO
Transmit Early Interrupt On
The transmit early interrupt function will be enabled when the
TEIO is set to high. Otherwise, the transmit early interrupt function
will be disabled.
The W89C840AF will assert an early transmit interrupt when all
the current packet data have been moved into the 2 Kbytes transmit
FIFO no matter the data have been put onto the MII interface
completely or not.
29
R/W
FES
Fast Ethernet Select
When set, W89C840AF will run in 100 Mbps mode. When reset,
W89C840AF run in 10 Mbps mode. To change this bit, the transmit
state machine must be in Idle state. The SQE test function will be
enabled when FES is reset to low.
-52 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
28:21
R/W
REIT
Receive Early Interrupt Threshold
During receiving packet, the W89C840AF will assert an interrupt
request when the bytes number of the received data, which the
receive DMA has moved them into the data buffer, excesses the
receive early interrupt threshold.
To set this field 00H will disable receive early interrupt function.
The setting of the receive early interrupt is as following.
REIT[28:21] receive early interrupt threshold
---------------01H
4 bytes
02H
8 bytes
--
--
0fH
60 bytes
10H
64 bytes
--
--
ffH
20:14
R/W
TTH
-----------------
020 bytes
Transmit Threshold.
These bits select the transmit threshold level of the transmit FIFO.
The packet Transmission will be started immediately once the data
queued into the transmit FIFO has reached the threshold level. The
transmission will also be started immediately when the full packet
has been transferred into the transmit FIFO even though the frame
length is less than the TTH level.
To change this bit, the transmit state machine must be in Idle state.
The following table shows there is a difference with 16 bytes for
each consecutive setting value in this field, except that the first one
in the table.
TTH[20:14]
---------------
-----------------
00H
full packet
01H
16 bytes
02H
32 bytes
--
--
0fH
240 bytes
10H
256 bytes
--
--
7fH
2032 bytes
-53 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
13
R/W
TXON
Transmit On.
When set, the transmission process will be started (leave the Idle
state, at first, and fetch the transmission descriptor according to the
configuration of C10/CTDLA ).
When reset, the transmission state machine will be stopped after the
current frame is completed (transmitted successfully or transmission
abort with excessive collision).
The register C10/CTDLA must be programmed before setting
TXON high.
12
R
---
Reserved. Fixed at 0.
11:10
R/W
LBK
Loopback Mode.
The LBK selects the W89C840AF loop-back modes:
9
R/W
FD
LBK[11:10]
Loop-back Mode
---------------
-----------------------
00
Normal mode
01
Internal Loop-back
10
External Loop-back
Full Duplex Mode.
When set, the W89C840AF will perform the full duplex function.
When reset, the W89C840AF works in half duplex mode. In full
duplex mode, the W89C840AF can transmit and receive packets at
the same time. In half duplex mode, the W89C840AF can only
exclusively either transmit or receive. The W89C840AF is not
allowed to be programmed in internal loop-back mode when it is in
full duplex mode.
To change this mode setting, be sure W89C840AF is completely
idle and the Receive On bit (RXON) and the Transmit On bit
(TXON) are both reset.
8
R
---
Reserved. Fixed at 0.
7
R/W
AEP
Accept Error Packet.
When set, all incoming packets passed address filtering will be
accepted, including runt packets, CRC error packets, and dribbling
bit error packets. When reset, only the valid incoming packets will
be accepted. Default 0.
6
R/W
ARP
Accept Runt Packet.
When set, the incoming packets pass the address filtering with the
length less than 64 bytes are accepted. When reset, the incoming
packets pass the address filtering with the length less than 64 bytes
are rejected. Default 0.
-54 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
5
R/W
ABP
Accept Broadcast Packet.
When set, all incoming packets with a broadcast address will be
accepted. When reset, the incoming packets with a broadcast
address will be rejected. Default 1.
4
R/W
AMP
Accept Multicast Packet.
When set, all incoming packets with a multicast address match the
node multicast address table (MAR7 ~ MAR0) will be accepted.
When reset, all incoming packets with a multicast address
(excluding broadcast address) will be rejected. Default 1.
3
R/W
APP
Accept All Physical Packet.
When set, all incoming packets with unicast address will be
accepted. When reset, only the incoming packets with destination
address matching the physical address of the node will be accepted.
Default 0.
2
R
---
Reserved. Fixed at 0.
1
R/W
RXON
Receive On.
When set, the receive process will be started (leave the Idle state, at
first, and fetch the receive descriptor according to the configuration
of the register C0C/CRDLA ).
When reset, the receive state machine will be stopped after the
current frame is completed.
The C0C/CRDLA, C40/PAR0, C44/PAR1, C38/MAR0 and
C3C/MAR1 registers must be programmed before setting the
RXON high.
0
R
---
Reserved. Fixed at 0.
C1C/CIMR Interrupt Mask Register
The register C1C/CIMR controls the interrupt enable corresponding to the bits in the register C14/CISR.
Bit
Attribute
Bit name
Description
31:17
R
---
Reserved. Fixed at 0.
16
R/W
NIE
Normal Interrupt Enable.
The Normal Interrupt will be enabled if the NIE is set to high.
The Normal Interrupt is disabled when the NIE is reset to low. The
hardware interrupt will be asserted if both the NIE bit of the
C1C/CIMR and the NIR bit of the C14/CISR NIR are set to high.
15
R/W
AIE
Abnormal Interrupt Enable.
The Abnormal Interrupt will be enabled if the AIE is set to high.
The Abnormal Interrupt is disabled when the AIE is reset to low.
The hardware interrupt will be asserted if both the AIE bit of the
C1C/CIMR and the AIR bit of the C14/CISR AIR are set to high.
14
R
---
Reserved. Fixed at 0.
-55 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
13
R/W
BEE
Bus Error Enable.
The Bus Error Interrupt will be enabled if both AIE(bit 15) and
BEE are set to high, otherwise, the Bus Error Interrupt will be
disabled. The hardware interrupt will be asserted if all of the AIE
bit of the C1C/CIMR, the BEE bit of the C1C/CIMR and the BE bit
of the C14/CISR are set to high at the same time.
12
R
---
Reserved. Fixed at 0.
11
R/W
TEE
Timer Expired Enable.
The Timer Expired Interrupt will be enabled if both AIE(bit 15) and
TEE are set to high, otherwise, the Timer Expired Interrupt will be
disabled. The hardware interrupt will be asserted if all of the bit
AIE in C1C/CIMR, the bit TEE in C1C/CIMR and the bit TE
C14/CISR are set to high at the same time.
10
R/W
TEIE
Transmit Early Interrupt Enable.
The Transmit Early Interrupt will be enabled if both AIE(bit 15)
and TEIE are set to high, otherwise, the Transmit Early Interrupt
will be disabled. The hardware interrupt will be asserted if all of the
bit AIE in C1C/CIMR, the bit TEIE in C1C/CIMR and the bit TEI
in C14/CISR are set to high at the same time.
9
R
---
Reserved. Fixed at 0.
8
R/W
RIE
Receive Idle Enable.
The Receive Idle Interrupt will be enabled if both AIE(bit 15) and
RIE are set to high, otherwise, the Receive Idle Interrupt will be
disabled. The hardware interrupt will be asserted if all of the bit
AIE in C1C/CIMR, the bit RIE in C1C/CIMR and the bit RIDLE in
C14/CISR are set to high.
7
R/W
RBUE
Receive Buffer Unavailable Enable.
The Receive Buffer Unavailable Interrupt will be enabled if both
AIE(bit 15) and RBUE are set to high, otherwise, the Receive
Buffer Unavailable Interrupt will be disabled. The hardware
interrupt will be asserted if all of the bit AIE in C1C/CIMR,the bit
RBUE in C1C/CIMR and the bit RBU in C14/CISR are set to high.
6
R/W
RINTE
Receive Interrupt Enable.
The Receive Interrupt will be enabled if both NIE(bit 16) and
RINTE are set to high, otherwise, the Receive Interrupt will be
disabled. The hardware interrupt will be asserted if all of the bit
NIE in C1C/CIMR, the bit RINTE in C1C/CIMR and the bit RINI
in C14/CISR are set to high.
5
R/W
TFUE
Transmit FIFO Underflow Enable.
The Transmit FIFO Underflow Interrupt will be enabled if both
AIE(bit 15) and TFUE are set to high, otherwise, the Transmit
FIFO Underflow Interrupt will be disabled. The hardware interrupt
will be asserted if all of the bit AIE in C1C/CIMR, the bit TFUE in
C1C/CIMR and the bit IUF in C14/CISR are set to high.
-56 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
4
R/W
RERRE
Receive Error Enable.
The Receive Error Interrupt will be enabled if both AIE(bit 15) and
RERRE are set to high, otherwise, the Receive Error Interrupt will
be disabled. The hardware interrupt will be asserted if all of the bit
AIE in C1C/CIMR, the bit RERRE in C1C/CIMR and the bit RERR
in C14/CISR are set to high.
3
R/W
REIE
Receive Early Interrupt Enable.
The Receive Early Interrupt will be enabled if both AIE(bit 15) and
REIE are set to high, otherwise, the Receive Early Interrupt will be
disabled. The hardware interrupt will be asserted if all of the bit
AIE in C1C/CIMR, the bit REIE in C1C/CIMR and the bit REI in
C14/CISR are set to high.
2
R/W
TBUE
Transmit Buffer Unavailable Enable.
The Transmit Buffer Unavailable Interrupt will be enabled if both
NIE(bit 16) and TBUE are set to high, otherwise, the Transmit
Buffer Unavailable Interrupt will be disabled. The hardware
interrupt will be asserted if all of the bitsNIE and TBUE in
C1C/CIMR and the bit TBU in C14/CISR are set to high.
1
R/W
TIE
Transmit Idle Enable.
The Transmit Idle Interrupt will be enabled if both AIE(bit 15) and
TIE are set to high, otherwise, the Transmit Idle Interrupt will be
disabled. The hardware interrupt will be asserted if all of the
C1C/CIMR AIE, C1C/CIMR TIE and C14/CISR TIDLE are set to
high.
0
R/W
TINTE
Transmit Interrupt Enable.
The Transmit Interrupt will be enabled if both NIE(bit 16) and
TINTE are set to high, otherwise, the Transmit Interrupt will be
disabled. The hardware interrupt will be asserted if all of the bits
NIE and TINTE in C1C/CIMR and the bit TINI in C14/CISR are
set to high.
C20/CFDCR Frame Discarded Counter Register
The register C20/CFDCR records the missed packet count and the FIFO overflow count.
Bit
Attribute
Bit name
Description
31
R
MRFO
More Receive FIFO Overflow
This bit is the overflow bit of the receive FIFO Overflow counter.
The actual number of the FIFO overflow must be more than the
number shown by the bits field RFOC if the MRFO is set to high.
This bit will be reset after a read operation
-57 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
30:17
R
RFOC
Receive FIFO Overflow Counter
The RFOC indicates the number of the packets that are discarded
due to the receive FIFO overflow under the condition of the receive
buffer is not available. This counter will be reset after being read by
the driver program.
16
R
MMP
More Missed Packets
Overflow bit of Missed Packet Counter. The actual number of the
missed packet must be more than the number shown by the bits field
MPC if MMP is set tot high. This bit will be reset after read by a
read operation.
15:0
R
MPC
Missed Packet Counter
The MPC indicates the number of packets that are discarded due to
the receive FIFO overflow which is caused by that the receive DMA
can not get sufficient utilizing on PCI bus, in which, the receive
data buffer is available for the current frame. Although there is a
receive data buffer available for the current frame, the received data
of the current frame in the FIFO can not be completely moved into
the data buffer in host memory before the receive FIFO is overflow
if the receive DMA can not get sufficient utilizing on PCI bus.
This counter will be reset after a read operation.
C24/CMIIR MII Management and ROM Register
The register C24/CMIIR is used to specify the control function and the data message passing for the on board
EEPROM and boot ROM device access.
The followed table described the MII management frame format:
MII Management Protocol
PRE
ST
OP
PHYAD
REGAD
TA
DATA
IDLE
Read
1...1
01
10
AAAAA
RRRRR
Z0
16 bits
Z
Write
1...1
01
01
AAAAA
RRRRR
10
16 bits
Z
PRE:Preample, ST:Start of Frame, OP:Operation code, PHYAD:PHY address, REGAD:register address
TA:Turnaround.
The detailed timings for the read and the write operation, respectively, of the MII management function are
illustrated as the figure below. Each bits in the management data frame(MDIO) are synchronized at the rising
edge of the MII management clock(MDC)
-58 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
....
MDC
MDIO
01 10
z
Idle
....
Preamble Start Read
Z0
PHYAD
REGAD
high impedance(z)
TA
Idle
Data
Typical MDIO/MDC Read Cycle
....
MDC
MDIO
01
z
Idle
....
10
01
Preamble Start Write
PHYAD
REGAD
TA
Data
Idle
Typical MDIO/MDC Write Cycle
Bit
Attribute
Bit name
Description
31:20
R
---
Reserved. Fixed at 0.
19
R
MDI
MII Management Port Data Input
The MII management input data drove, by the external PHY , on
the MIMDIO pin can be read from this bit when the MDSEL is
reset. The MDI reflects the logic level on the MIMDIO pin
instantly, no latching device is used for keeping the logic level
message.
18
R/W
MDSEL
MII Management Port Read/Write Select
The MIMDIO pin will be programmed as an input pin when the
MDSEL is reset. On the other hand, the MIMDIO will be an output
pin if MDSEL is set to high.
17
R/W
MDO
MII Management Port Write Data
The state of the MDO will be directly output through the MIMDIO
pin when the MIMDIO is performing an output pin. The serial
command of the external physical device should be written into
MDO serially with one bit data one MII management clock. The
accessed data sequence and timing are shown as the diagram
above .
16
R/W
MDC
MII Management Port Clock.
The state of the MDC will be directly driven on the MIMDC pin for
providing the MII management clock. To generate this clock
source, the MDC should be programmed as 1 and 0 with equal duty
cycle and timing width alternately. The AC timing specification
with respect to the MIMDC and MIMDIO should follow the media
independent interface(MII) specification defined in IEEE 802.3u.
15
R
---
Reserved. Fixed at 0.
-59 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
14
R/W
RDCTL
BootROM Read Control.
When EESEL(bit 11 in this register) is reset, setting this bit will
perform the on-board boot ROM read operation with the reading
address specified by the register C28/CBROA. The one byte data
read from the on-board boot ROM will be latched into the bits field
EEBRD[7:0] of this register.
The bit RDCTL will be cleared automatically after BootROM read
operation is completed.
The RDCTL will not allow to be set high, even writing a logic 1 to
RDCTL if the bit EESEL(bit 11 in this register) is set.
13
R/W
WRCTL
BootROM Write Control.
When the bit EESEL (bit 11) is reset, setting this bit will trigger
the W89C840AF to perform the on-board boot ROM write
operation with the writing address specified by the register
C28/CBROA. The one byte write data should be latched by the
EEBRD[7:0] before setting the WRCTL high.
This bit will be cleared automatically if BootROM write operation is
completed.
The WRCTL will not allow to be set high, even writing a logic 1 to
WRCTL if the bit EESEL(bit 11 in this register) is set.
12
R
---
Reserved. Fixed at 0.
11
R/W
EESEL
EEPROM/BootROM Select
The on board boot ROM read/write function through CMIIR will be
enabled if the EESEL is reset. Otherwise, on board boot ROM
access function will be disabled and the CMIIR will be used to
access the on board EEPROM device if the EESEL is set to high.
10:8
R
---
Reserved. Fixed at 0.
7:4
R/W
EEBRD
EEPROM/Boot ROM Data 4 to 7:
[7:4]
The EEBRD[7:4] are used to store the read/write data for the on
board boot ROM access when EESEL is reset to low.
The data of EEBRD[7:4] is of no meaning if the EESEL is set to
high.
-60 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
3:0
R/W
EEBRD
EEPROM/Boot ROM Data 0 to 3:
[33:0]
The EEBRD[3:0] are used to store the read/write data for the onboard boot ROM access when EESEL is reset to low.
When EESEL is set to high,
1) the EEBRD[3] reflects the input data from the BtAdata3/EEDO
pin(connected to EEPROM data output) instantly.
2) the EEBRD[2] stores the output data which will be drove onto
the BtAdata2/EEDI pin(connected to EEPROM data input) directly.
3) the EEBRD[1] stores the output data which will be drove onto
the BtAdata1/EECK pin (EEPROM serial clock input) directly.
4) the EEBRD[0] stores the output data which will be drove onto
the EECS pin(connected to EEPROM chip select) directly.
For accessing the external EEPROM device, the chip select signal,
the serial clock and the data input should follow the AC
specification defined by the external EEPROM device.
C28/CBROA Boot ROM Offset Address Register
The register C28/CBROA is used to specify the read or write address of the external boot ROM when accessing the
boot ROM through the register C24/CMIIR of the W89C840AF .
Bit
Attribute
Bit name
Description
31:18
R
---
Reserved. Fixed at 0.
17:0
R/W
BROA
Boot ROM Offset Address.
This field contains boot ROM offset address.
C2C/CGTR General Timer Register
The C2C/CGTR shows the real time content of the W89C840AF
Bit
Attribute
Bit name
Description
31:17
R
---
Reserved. Fixed at 0.
16
R/W
RECUR
Recursive Mode:
internal general timer
The state of the bit 0 to bit 15 in the register C2C/CGTR will be set
to the states programmed by the driver program at the last time
when the TIME timer count reaching zero if the RECUR is set to
high. Default 0.
-61 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
15:0
R/W
TIME
General Timer:
The bits field TIME shows the content of the general timer inside
the W89C840AF . The internal general timer will count down from
the pre-set value, a non zero value, programmed by the driver
program automatically once the write transaction to the register
C20/CGTR is completed. The time unit for the internal general
timer count down is approximately 2048 times the cycle duration of
the MII TXCLK. For instance, the count down time unit for a 25
Mhz MII TXCLK is approximately 82 us.
The C14/CISR bit 11 will be set when TIME of C2C/CGTR reach
zero. The TIME is default 0000H.
C30/CRDAR Current Receive Descriptor Address Register
The register C30/CRDAR shows that the start address of the receive descriptor which is used by the W89C840AF
receive DMA state machine to process the current receive frame.
Bit
Attribute
Bit name
Description
31:0
R
CRDA
Current Receive Descriptor Address.
The CRDA represents the start address of the current receive
descriptor which the W89C840AF receive DMA state machine is
used to process the received frame.
C34/CRBAR Current Receive Buffer Address Register
The register C34/CRBAR shows that the start address of the host memory which will be used by the W89C840AF
receive DMA state machine to store the current aligned long word data of the current received frame.
Bit
Attribute
Bit name
31:0
R
CRBA
Description
Current Receive Buffer Address.
The CRBA contains the pointer current address in the on-using
buffer of the host memory which will be used by the W89C840AF
receive DMA state machine to store the current aligned long word
data of the current received frame.
C38/CMA0 Multicast Address Register 0
The C38/CMA0 defines the lower 32 bits of the total 64 bits multicast address hashing table.
Bit
Attribute
Bit name
Description
31:24
R/W
MAR3
Muticast Address 3.
The MAR3 defines the bit 24~31 of the hashing table.
23:16
R/W
MAR2
Muticast Address 2.
The MAR2 defines the bit 16~23 of the hashing table.
-62 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
15:8
R/W
MAR1
Muticast Address 1.
The MAR1 defines the bit 8~15 of the hashing table.
7:0
R/W
MAR0
Muticast Address 0.
The MAR0 defines the bit 0~7 of the hashing table.
C3C/CMA1 Multicast Address Register 1
The C3C/CMA1 defines the upper 32 bits of the 64 bits multicast address hashing table.
Bit
Attribute
Bit name
Description
31:24
R/W
MAR7
Muticast Address 7.
The MAR7 defines the bit 56~63 of the hashing table.
23:16
R/W
MAR6
Muticast Address 6.
The MAR2 defines the bit 48~55 of the hashing table.
15:8
R/W
MAR5
Muticast Address 5.
The MAR1 defines the bit 40~47 of the hashing table.
7:0
R/W
MAR4
Muticast Address 4.
The MAR4 defines the bit 32~39 of the hashing table.
C40/CPA0 Physical Address Register 0
The C40/CPA0 defines the first 32 bits of the 48 bits MAC address. The CPA0 value is loaded from EEPROM after
hardware reset
Bit
Attribute
Bit name
Description
31:24
R/W
PAR3
Physical Address 3.
The PAR3 defines the bit 24~31 of the MAC address.
23:16
R/W
PAR2
Physical Address 2.
The PAR2 defines the bit 16~23 of the MAC address.
15:8
R/W
PAR1
Physical Address 1.
The PAR1 defines the bit 8~15 of the MAC address.
7:0
R/W
PAR0
Physical Address 0.
The PAR0 defines the bit 0~7 of the MAC address.
C44/CPA1 Physical Address Register 1
-63 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The C44/CPA1 defines the last 16 bits of the 48 bits MAC address. The CPA1 value is loaded from EEPROM after
hardware reset
Bit
Attribute
Bit name
Description
31:16
R
---
Reserved. Fixed at 0.
15:8
R/W
PAR5
Physical Address 5.
The PAR5 defines the 40~47 bit of the 48 bit of the MAC address.
7:0
R/W
PAR4
Physical Address 4.
The PAR0 defines the 32~39 bit of the 48 bit of the MAC address.
C48/CBRCR Boot ROM Size Configuration Register
This register is used to configure the size of the boot ROM. The bit 0 to bit 2 of the register C48/CBRCR are loaded
form the external EEPROM after the deasserted of the hardware reset. The configuration of the BPS[2:0] will affect
the return value from the register F30/FERBA to determine how large the expansion memory space the on-board
boot ROM needs when it is read by the power-on software.
Bit
Attribute
Bit name
Description
31:3
R
---
Reserved. Fixed at 0.
2:0
R/W
BPS[2:0]
Boot ROM Size Select.
The size of the on board boot ROM device is selected by BPS[2:0]
as follows.
BPS2 BPS1 BPS0
Size
-------------------------
----------------------
0
0
X
0
1
0
8K
0
1
1
16K
1
0
0
32K
1
0
1
64K
1
1
0
128K
1
1
1
256K
-64 -
No Boot ROM
Publication Release Date:October 2000
Revision 1.01
W89C840AF
C4C/CTDAR Current Transmit Descriptor Address Register
The C4C/CTDAR shows that the start address of the descriptor which the W89C840AF transmit DMA state
machine is used to process the current frame.
Bit
Attribute
Bit name
Description
31:0
R
CTDA
Current Transmit Descriptor Address.
The CTDA represents the start address of the current receive
descriptor which the W89C840AF transmit DMA state machine
is used to process the transmit frame.
C50/CTBAR Current Transmit Buffer Address Register
The C50/CTBAR shows that the address of the system memory from which the W89C840AF
state machine will fetch the long word data and queue the data into the FIFO for transmission.
Bit
Attribute
Bit name
31:0
R
CTBA
transmit DMA
Description
Current Receive Buffer Address.
The CTBA contains the start address of the host memory from
which the W89C840AF transmit DMA state machine will fetch
the long word data and queue it into the FIFO for transmission.
Descriptors
As described at the beginning of the function description, descriptors are used to handle the control and status
information and the data of each received/transmitted frame. There are many information contained in
descriptors, W89C840AF totally implemented four registers for receiving descriptor and four registers for
transmiting descriptor respectively. They are one for status descriptor, one for control descriptor, and two for buffer
descriptors.
Receive Descriptors
R00, Receive Descriptor 0
The descriptor R00 is used to describe the received frame status.
After the current frame is received completely, the receive DMA state machine will update the valid status of the
current received frame into the first and the last descriptor of the current received frame.
The Receive Access Control(RAC) bit is valid on each descriptor of the current frame. The receive DMA state
machine will reset the RAC bit to release the descriptor for other receive operation when the data buffer pointed by
this descriptor is full.
Bit
Symbol
Description
-65 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
31
RAC
Receive Access Control
The W89C840AF receive DMA is allowed to access this descriptor if RAC is set
to high by the driver program. Otherwise, the driver program will access this
descriptor if the RAC is reset to low, i.e. the descriptor 0 allows to be accessed by
software driver when set RAC;by hardware when reset RAC. The RAC is valid
on each descriptor of the current received frame.
30
RCMP
Receive Completion.
The receive DMA will set the RCMP of the first and the last descriptor of the
current receive frame after the current frame is received and then transferred into
the data buffer in host memory completely.
This bit is valid only when either RFD (R00[9]) or RLD (R00[8]) is set, i.e. the
first or the last descriptor of the current frame.
29:16
RBC
Receive Byte Count:
The RBC indicates the length including CRC field of receive packet in byte unit.
This bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or
the last descriptor of the current frame.
15
RE
Receive Error:
When RE is set to high, it indicates any one of the following events occurred:
R00[1] -- CRC error
R00[6] -- Late event
R00[7] -- Packet too long
R00[11] -- Runt Packet
This bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or
the last descriptor of the current frame.
13:12
RDT
Receive Data Type
The RDT indicates the types of the packet received in the FIFO buffer. The
receive DMA make a copy of the bits C18/CNCR[11:10] and write them to the
bit field RDT when the current frame is received completely.
The types of received packet is as following:
00 -- Normal receive packet
01 -- Internal loopback packet
10 -- External loopback
11 -- Reserved
This bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or
the last descriptor of the current frame.
11
RP
Runt Packet :
When set, it indicates that the received packet length is less than 64 bytes. This
bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or the
last descriptor of the current frame.
-66 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
10
MP
Multicast Packet :
When set, it indicates that the received packet has a multicast address. This bit is
valid only when RFD (R00[9]) or RLD (R00[8]) is set.
9
RFD
First Descriptor.
When set, it indicates that this descriptor is the first descriptor of the current
packet. The RFD is valid on each descriptor of the current receive frame.
8
RLD
Last Descriptor.
When set, it indicates that this descriptor is the last descriptor of the current
packet. The RLD is valid on each descriptor of the current receive frame.
When both RFD and RLD are high, It means that the current receive frame is
described by a single descriptor.
When both RFD and RLD are low, it means that the current descriptor is neither
the first nor the last descriptor of the current frame.
When RFD is high and RLD is low, it means that the current descriptor is the
first descriptor of the current frame.
When RFD is low and RLD is high, it means that the current descriptor is the
last descriptor of the the current frame.
7
PTL
Packet Too Long:
When set, it indicates that the received packet length exceeds 2048 bytes. This bit
is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or the last
descriptor of the current frame.
6
LE
Late Event:
When set, it indicates that the MAC detected a receive collision event occurred
at the time after the 64 bytes following Start Frame Delimiter (SFD) when the
MAC is receiving the packet. This bit is valid only when RFD (R00[9]) or RLD
(R00[8]) is set, i.e. the first or the last descriptor of the current frame.
3
MRE
MII Receive Error:
When set, it indicates that the a receive error in the physical layer was reported
during the frame reception. This bit is valid only when RFD (R00[9]) or RLD
(R00[8]) is set, i.e. the first or the last descriptor of the current frame.
2
DB
Dribbling Bit :
When set, it indicates that the receive packet contains an extra bits, not aligned
with the 8 bits boundary.
The received packet will be treated as a good packet even the DB bit is set if the
CRC Error (R00[1]) is reset, i.e. no CRC error.
This bit is not valid if a late collision (R00[6]) or runt packet (R00[11]) is set.
This bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or
the last descriptor of the current frame.
-67 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
1
CRCE
CRC Error:
When set, it indicates that a cyclic redundancy check (CRC) error is occurred on
the received packet. If there is a MII receive error is detected during the packet
receiving, the CRC Error bit is also set even though the CRC may be correct.
This bit is valid only when RFD (R00[9]) or RLD (R00[8]) is set, i.e. the first or
the last descriptor of the current frame.
R01, Transmit Descriptor 1
The R01 is used to describe the receive control configuration for the current frame receiving.
The receive DMA state machine will fetch the first descriptor of the current frame , at first, to decide the receive
control configuration for the current receive frame. The receive DMA state machine will also fetch each descriptor
information before storing the received data to the data buffer in the host memory described by the current
descritpor.
Bit
Symbol
Description
25
RLAST
Last Descriptor of the Ring.
When set, it indicates the current descriptor is the last receive descriptor ring.
This bit preempts the bit 24 (RLINK)of this descriptor. It means that the next
descriptor pointer of the receive DMA state machine will automatically jump to
the first descriptor pointed by the content of the register C0C/CTDLA, even the
RLINK bit is set to high and the descriptor R03 points to an address other than
the one specified by the register C0C/CRDLA. The RLAST is valid on each
descriptor.
24
RLINK
Link Address in Receive Buffer Address 2
When set, it indicates that receive Buffer Address 2 in the descriptor R03
contains the start address of the next descriptor of the descriptor list. Otherwise
the descriptor R03 will point to the start address of the receive buffer 2 when the
RLINK is reset. The RLINK is valid on each descriptor.
23:12
RSZ2
Receive Buffer Size 2.
The RSZ2 indicates the size, in bytes, of the second data buffer pointed by the
current descriptor. If this field is 0, the W89C840AF ignores this buffer. The
buffer size must be long word aligned. The maximum size for this buffer is 4093
bytes.
11:0
RSZ1
Receive Buffer Size 1.
The RSZ1 indicates the size, in bytes, of the first data buffer pointed by the
current descriptor. If this field is 0, the W89C840AF will ignore this buffer. The
buffer size must be longword aligned. The maximum size of this buffer is 4093
bytes.
R02, Receive Descriptor 2
The R02 is used to specify the receive buffer 1 start address
Bit
Symbol
Description
-68 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
31:0
RBA1
Receive Buffer Address 1
The RBA1 indicates the physical address, in the host memory space, of the first
receive buffer pointed by the current descriptor. The RBA1 must be longword
aligned. It is valid on each descriptor of the current frame.
R03, Receive Descriptor 3
The R03 is used to specify the start address of the receive buffer 2
Bit
Symbol
Description
31:0
RBA2
Receive Buffer Address 2
The RBA2 indicates the physical address, in the system memory space, of the
second transmit buffer pointed by the current descriptor. The RBA2 must be must
be longword aligned. It is valid on each descriptor of the current frame.
Transmit Descriptors
T00, Transmit Descriptor 0
The T00 is used to describe the transmited frame status.
After the current frame is transmitted, the transmit DMA state machine will update the valid status of the current
transmitted frame into the last descriptor of the current transmitted frame.
The Transmit Access Control is valid on each descriptor of the current frame. The transmit DMA state machine
will release the descriptor by reset the TAC bit when the data pointed by this descriptor is transmitted.
Bit
Symbol
Description
31
TAC
Transmit Access Control :
When the TAC bit is set, the current descriptor allows to be accessed by
W89C840AF, otherwise the W89C840AF can not issue any read or write request
on this descriptor. When the TAC is reset to low, the driver program is allowed
to access this descriptor.
This bit will be reset before completing to fill data into the transmit buffer; set if
the data in the transmit buffer is available.
It is a valid value on each descriptor of the current frame.
15
TE
Transmit Error:
It indicates any one of the following events occurs when TE is set to high.
T00[1] -- Transmit FIFO underflow
T00[8] -- Transmit aborted
T00[10] -- No Carrier sense
T00[11] -- Carrier sense lost
This bit is valid only when the bit TLD (T01[30]) is set, i.e when the current
descriptor is the last descriptor of the current frame.
-69 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
11
CSL
Carrier Sense Lost:
When set, it indicates that there is a carrier sense lost during transmission. This
bit is valid only when TLD (T01[30]) is set, i.e when the current descriptor is the
last descriptor of the current frame.
This bit is not valid in internal loopback mode.
10
NCS
No Carrier Sense:
When set, it indicates that no carrier sense is presented during transmitting. This
bit is valid only when TLD (T01[30]) is set, i.e when the current descriptor is the
last descriptor of the current frame.
This bit is not valid in internal loopback mode.
9
LC
Late Collision:
When set, it indicates that collision occurs after the 64 bytes collision window.
This bit is not valid if Transmit FIFO underflow bit(T00[1]) is set. This bit is
valid only when TLD (T01[30]) is set, i.e when the current descriptor is the last
descriptor of the current frame.
8
TA
Transmit Aborted:
When set, it indicates that the transmission was aborted after 16 successive
collisions during the transmission. This bit is valid only when TLD (T01[30]) is
set, i.e when the current descriptor is the last descriptor of the current frame.
7
SQE
Signal Quality Error Status:
When set, it indicates that W89C840AF has detected a signal quality error signal
in a range of time after the frame was transmitted if the W879C840 is set in 10
Mbps mode. This bit is not valid if Transmit FIFO underflow bit (T00[1]) is set.
This bit is valid only when TLD (T01[30]) is set, i.e when the current descriptor
is the last descriptor of the current frame.
6:3
CC
Collision Count:
The number of collisions occurred before the frame is transmitted. This bit is
valid only when TLD (T01[30]) is set, i.e when the current descriptor is the last
descriptor of the current frame.
1
TFU
Transmit FIFO Underflow.
This bit is set when the transmission process lacks data to transmit during frame
transmission. The transmit DMA state machine will enter in suspend state. This
bit is valid only when TLD (T01[30]) is set, i.e. when the current descriptor is
the last descriptor of the current frame.
0
DEF
Deferred:
When set, it indicates that the W89C840AF had to defer when ready to transmit
a frame because the carrier sense input was asserted before the W89C840AF gets
the grant to acquire the network media. This bit is valid only when TLD
(T01[30]) is set, i.e. when the current descriptor is the last descriptor of the
current frame.
T01, Transmit Descriptor 1
The T01 is used to describe the Transmit Control for the current frame transmission
-70 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
The transmit DMA state machine will fetch the first descriptor of the current frame , at first, to decide the
transmission control configuration for the current frame. The transmit DMA state machine will also fetch each
descriptor before read the transmitted data from the data buffer in the host memory.
Bit
Symbol
Description
31
FINT
Frame Interupt.
The W89C840AF will set the Transmit Interrupt bit(bit 0 of C14/CISR) after the
current frame was transmitted if the FINT is previously set by the driver
program. This bit is valid only when the current descriptor is the first descriptor
of the current frame (TFD set).
30
TLD
Last Descriptor.
When set, it indicates that this is the last descriptor of the current frame. The
TLD is valid on each descriptor.
29
TFD
First Descriptor.
When set, it indicates that this is the first descriptor of the current frame. The
TFD is valid on each descriptor.
When both TFD and TLD are high, it means that the current transmission frame
is described by a single descriptor.
When both TRFD and TLD are low, it means that the current descriptor is
neither the first descriptor nor the last descriptor of the current frame.
When TLD is high and TFD is low, it means the current descriptor is the last
descriptor.
When TLD is low and TFD is high, it means the current descriptor is the first
descriptor.
26
ICRC
Inhibit CRC:
The W89C840AF will inhibit CRC appending after the end of transmitted frame
when the ICRC is set by the driver program. Otherwise, the W89C840AF
appends CRC after the end of transmitted frame when ICRC is reset.
This bit is valid only when First Descriptor bit (T01[29]) is set.
25
TLAST
Last Descriptor of the Ring.
When set, it indicates the current descriptor is the last one of the descriptor ring.
This bit preempts bit 24 (TLINK). It means that the next descriptor pointer of the
transmit DMA state machine will automatically jump to the first descriptor
pointed by register C10/CTDLA even the TLINK is set to high and the T03
points to an address other than the one specified by the C10/CTDLA. The
TLAST is valid on each decsriptor.
24
TLINK
Link Address in Transmit Buffer Address 2
When set, it indicates that Transmit Buffer Address 2(T03) contains the start
address of the next descriptor of the descriptor list. Otherwise the T03 is used to
point to the start address of the transmit buffer 2 when the TLINK is reset. The
TLINK is valid on each descriptor.
-71 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
23
PD
Padding Disable:
The W89C840AF does not add the padding data on a frame shorter than 64 bytes
when the PD bit is set to high. However, the W89C840AF will automatically add
a padding data on a frame shorter than 64 bytes when the PD bit is reset to low.
The four bytes of CRC will be appended at the end of the padding field of the
transmitted frame no matter what the ICRC is set or reset if the PD is reset.
The total transmited frame data length will be 68 bytes if the data in the current
frame is less than 64 bytes and the PD is reset. This bit is valid only when TFD
(T01[29]) is set.
21:11
TSZ2
Transmit Buffer 2 Size:
The TSZ2 indicates the size, in bytes, of the second data buffer pointed by the
current transmit descriptor. If this field is 0, the W89C840AF will ignore this
buffer. The TSZ2 value is valid on each descriptor.
10:0
TSZ1
Transmit Buffer 1 Size:
The TSZ1 Indicates the size, in bytes, of the first data buffer pointed by the
current transmit descriptor. If this field is 0, the W89C840AF will ignore this
buffer. The TSZ1 value is valid on each descriptor.
T02, Transmit Descriptor 2
The T02 is used to specify the start address of the transmit buffer 1
Bit
Symbol
Description
31:0
TBA1
Transmit Buffer Address 1
The TBA1 indicates the physical address, in the system memory space, of the
first transmit buffer pointed by the current descriptor. The TBA1 allow to be
programmed with any value by the driver program. It is valid on each descriptor
of the current frame.
T03, Transmit Descriptor 3
The T03 is used to specify the start address of the transmit buffer 2
Bit
Symbol
Description
31:0
TBA2
Transmit Buffer Address 2
The TBA2 indicates the physical address, in the system memory space, of the
second transmit buffer pointed by the current descriptor. The TBA2 allow to be
programmed with any value by the driver program. It is valid on each descriptor
of the current frame.
-72 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
$.Electrical Characteristics
Absolute Maximum Ratings
Symbol
Parameter
Minimum
Maximum
Unit
TA
Operating Temperature
0
70
C
TS
Storage Temperature
-55
150
C
VDD
Supply Voltage
-0.5
7.0
V
VIN
Input Voltage
VSS-0.5
VDD+0.5
V
VOUT
Output Voltage
VSS-0.5
VDD+0.5
V
TL
Lead Temperature (Soldering 10 seconds maximum)
250
C
Power Supply (TA = 0 C)
Symbol
Parameter
Condition
Maximum
Unit
IDDI
Power Supply Current (idle, clock active only)
Vdd=5.25V
150
mA
IDDT
Power Supply Current (transmitting)
Vdd=5.25V
250
mA
Maximum
Unit
DC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C)
Symbol
Parameter
Condition
VIL
Input Low Voltage
0.8
V
VIH
Input High Voltage
VDD+0.5
V
VOL
Output Low Voltage
IoL=4.0mA
0.4
V
VOH
Output High Voltage
Ioh=-4.0mA
IIL1
Input Leakage Current
Vin=5.25V
10
uA
IOL
Tristate leakage Current
Vout=Vdd
10
uA
-73 -
V
Publication Release Date:October 2000
Revision 1.01
W89C840AF
AC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C to 70 C)
PCI Slave Read Transaction
2
1
0
3
CLK
FRAME#
T1
T11
T2
AD[31::0]
ADDRESS
C/BE[3:0]#
BUS CMD
IRDY#
DATA
T3
T4
BE#'s
T5
TRDY#
T6
T12
T9
DEVSEL#
T7 T8
PAR
T13
T10
OUTPUT
INPUT
T14
T15
IDSEL#
Symbol
Description
Min
Typical
T1
PCI input signal set up time*
7
nsec
T2
PCI input signal hold time*
0
nsec
T3
BE Byte Enable set up time
7
nsec
T4
BE Byte Enable hold time
0
nsec
T5
IRDY# set up time
7
nsec
T6
IRDY# hold time
0
nsec
T7
PAR input setup time
7
nsec
T8
PAR input hold time
0
nsec
T9
DEVSEL# driven time
11
12
13
nsec
T10
DEVSEL# hold time
11
12
13
nsec
T11
output data hold time
18
19
20
nsec
T12
TRDY# driven time
11
12
13
nsec
T13
TRDY# hold time
11
12
13
nsec
T14
PAR output driven time
11
12
13
nsec
T15
PAR output hold time
11
12
13
nsec
Note: address, command, and FRAME# for slave access, IDSEL#
transaction
-74 -
Max
Unit
for configuration read
Publication Release Date:October 2000
Revision 1.01
W89C840AF
AC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C to 70 C)
PCI Slave Write Transaction
0
1
3
2
CLK
FRAME#
T1
T2
AD[31::0]
ADDRESS
C/BE[3:0]#
BUS CMD
T11
T12
DATA
DATA
T3
T4
BE#'s
T5
IRDY#
TRDY#
T6
T13
T9
DEVSEL#
T14
T7 T8
PAR
T10
INPUT
INPUT
T15 T16
IDSEL#
T18
PERR#
T17
Symbol
Description
Min
T1
PCI input signal setup time*
7
nsec
T2
PCI input signal hold time*
0
nsec
T3
BE Byte Enable set up time
7
nsec
T4
BE Byte Enable hold time
0
nsec
T5
IRDY# set up time
7
nsec
T6
IRDY# hold time
0
nsec
T7
PAR input setup time
7
nsec
T8
PAR input hold time
0
nsec
T9
DEVSEL# driven time
11
12
13
nsec
T10
DEVSEL# hold time
11
12
13
nsec
T11
input data set up time
7
nsec
T12
input data hold time
0
nsec
T13
TRDY# driven time
11
12
13
nsec
T14
TRDY# hold time
11
12
13
nsec
-75 -
Typical
Max
Unit
Publication Release Date:October 2000
Revision 1.01
W89C840AF
T15
PAR input setup time
7
nsec
T16
PAR input hold time
0
nsec
T17
PERR# driven time**
11
12
13
nsec
T18
PERR# hold time**
11
12
13
nsec
Note: address, command, and FRAME# for slave access, IDSEL#
transaction
for configuration read
**PERR# will be asserted if the parity error event occurred.
AC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C to 70 C)
PCI Transaction Termination
Disconnect-C/Retry Type:
0
1
2
4
3
17
16
15
19
18
CLK
T1
FRAME#
AD[31::0]
ADDRESS
C/BE[3::0]#
BUS CMD
BE#'s
IRDY#
TRDY#
T3
DEVSEL#
STOP#
Symbol
T2
Description
Min
Typical
Max
Unit
T1
FRAME# deasserted from clock 15
0
nsec
T2
Clock 16 to STOP# asserted time
11
12
13
nsec
T3
Clock 18 to STOP# and DEVSEL# hold time
11
12
13
nsec
Note: 1) The other timing requirements for PCI input signal are as the read transaction timing.
2) T1,T2 and T3 are used for the disconnect type C(host try to transfer more than one data phase).
-76 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Target-Abort Type
0
1
2
4
3
5
7
6
9
8
CLK
T1
FRAME#
AD[31::0]
ADDRESS
C/BE[3::0]#
BUS CMD
BE#'s
IRDY#
TRDY#
T2
DEVSEL#
T3
STOP#
SYMBOL
DESCRIPTION
Min
typical
MAX
UNIT
T1
FRAME# deasserted from clock 15
0
T2
Clock 4 to DEVSEL# hold time
11
12
13
nsec
T3
Clock 6 to STOP# hold time
11
12
13
nsec
nsec
Note: 1) The other timing requirements for PCI input signal are as the read transaction timing..
2) T2 and T3 are used for the target abort type(host addressing error).
AC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C to 70 C)
-77 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
32KX8-220 BPROM/ FLASH MEMORY
Read cycle
0
CLK
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
FRAME#
AD[31::0]
C_BEB[3:0]#
IRDY#
TRDY#
DEVSEL#
T1
MSA14/L
T2
T5
T4
T3
MSA[9:0]
T6
MSA[13:10]
T8
BPCSB
MSRDB
T7
T10
T9
T11
T9
T12
T10
T11
T12
MSD[7:0]
SYMBOL
DESCRIPTION
Min
typical
MAX
UNIT
T1
clock 4 to MSA14/L valid
8
13
18
nsec
T2
clock 5 to MSA14/L deasserted time
8
13
18
nsec
T3
clock 6 to MSA bus valid
8
13
18
nsec
T4
clock 14 to MSA bus valid
8
13
18
nsec
T5
clock 23 to MSA deasserted
8
13
18
nsec
T6
clock 4 to MSA high nibble valid
8
13
18
nsec
T7
clock 6 to BPCSB valid
15
20
25
nsec
T8
clock 25 to BPCSB deasserted
7
12
17
nsec
T9
clock 8/ clock 17 to MSRDB asserted time
15
20
25
nsec
T10
clock 13/ clock 22 to MSRDB deasserted time
8
13
18
nsec
T11
MSD setup time from clock 13
7
nsec
T12
MSD hold time from clock 15
0
nsec
Note: 1) The other timing requirements for PCI signal are as the read transaction timing.
2) BPROM/FLASH memory access could be byte, word or double word access. The timing is the same.
AC Characteristics
(VDD=4.75 V to 5.25V, VSS=0 V,TA = 0 C to 70 C)
-78 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Serial EEPROM Timing
DESCRIPTION
MIN
.
T1
EECS asserted to SK
500
T2
EECS hold from SK
0
500
nS
T3
MSD2 OFF time
500
600
nS
T4
MSD2 ON time
500
600
nS
T5
MSD2 clock period
1
1.2
uS
T6
MSD1 set up time to MSD2 high
500
600
nS
T7
MSD1 hold time from MSD2 high
500
600
nS
T8
MSD0 valid from MSD2 high
300
nS
SYMBOL
MAX.
UNIT
nS
BootROM/Flash Interface Read Cycle Timing (Byte mode)
SYMBOL
DESCRIPTION
MIN.
MAX
UNIT
TRC
Read Cycle Time
210
-
nS
TACS
Address valid to CS# asserted
0
5
nS
TCES
CE# valid to Data valid
-
210
nS
TCEH
Data hold from CE# deasserted
0
-
nS
TDLES
Data valid to LE enable
10
-
uS
TDLEH
LE enable high time
20
-
nS
Read Cycle Timing (Double Word mode)
Symbol
Parameters
MIN,
MAX.
Unit
210
-
nS
TRC
Read Cycle Time
TACS
Address valid to CS# asserted
0
5
nS
TCES
CE# valid to data valid
-
210
ns
TAD
Address valid to data Valid
-
210
ns
TDH
Data hold from address deasserted
0
-
ns
TCEH
Data hold from CE# deasserted
0
-
ns
TDLES
Data valid to LE enable
10
-
ns
20
-
ns
TDLEH LE enable high time
-79 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
Write Cycle Timing (Byte mode)
Symbol
Parameters
MIN,
MAX.
Unit
TDS
Data valid to BtCSB deasserted
55
-
ns
TDH
Data hold from BtCSB deasserted
10
-
ns
TWC
Write Cycle Time
130
-
ns
TWS
Address valid to BtCSB asserted
0
-
ns
TWP
BtCSB asserted width
95
-
ns
TWPH
BtCSB keep high from BtCSB deasserted
155
-
ns
TDLES
Data valid to LE enable
10
-
ns
20
-
ns
TDLEH LE enable high time
$. Test Load
AC Timing Test Conditions
PARAMETER
TEST CONDITION
Supply voltage (VDD/VSS)
5V+5%
Temperature
25C/70C
Input Test Pattern Levels (TTL/CMOS)
GND to 4.0V
Input Rise and Fall Times (TTL/CMOS)
5nS
Input and Output Pattern Reference Level (TTL/CMOS)
1.5V
Tristate Reference Levels
Float (V) + 0.5V
Output Load
Vcc
SW1 (Note 2)
0.1uF
DEVICE
UNDER
TEST
Input
RL = 2.2K
Output
CL (Note 1)
Note 1: Load capacitance employed on output is 50 pF.
Note 2:
SW1=Open for push pull outputs during timing test.
-80 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
SW1=VCC for VOL test.
SW1=GND for VOH test.
SW1=VCC for High-Z to active low and active low to High-Z measurements.
SW1=GND for High-Z to active high and active high to High-Z measurements.
Pin Capacitance
TA = 25C f = 1 MHz
SYMBOL
PARAMETER
TYP
UNIT
CIN
Input Capacitance
7
pF
COUT
Output Capacitance
10
pF
Derating Factor
Output timing is measured with a purely capacitive load of 50pF.
The correction factor when CL>50pF is +0,4 ns/pF.
$. Package Dimension
-81 -
Publication Release Date:October 2000
Revision 1.01
W89C840AF
HD
D
128
103
1
102
E HE
38
65
39
64
b
e
c
A
A2
Symbol
A
A1
A2
b
c
D
E
e
HD
HE
L
L1
y
0
L
A1
See Detail F
Seating Plane
y
L1
Dimension in inch
Min
Nom
Dimension in mm
Max
Min
Nom
0.134
0.004
Max
3.40
0.10
0.101
0.107
0.113
2.57
2.72
2.87
0.006
0.008
0.010
0.15
0.20
0.25
0.004
0.006
0.010
0.10
0.15
0.25
0.547
0.551
0.555
13.90
14.00
14.10
0.787
0.791
19.90
20.00
20.10
0.783
0.50
0.020
0.669
0.677
0.685
17.00
17.20
17.40
0.905
0.913
0.921
23.00
23.20
23.40
0.023
0.031
0.039
0.60
0.80
1.00
0.055
0.063
0.071
1.40
1.60
1.80
0.003
0
Detail F
12
-82 -
0.08
0
12
Publication Release Date:October 2000
Revision 1.01