ETC VT86C926

VT86C926
AMAZON
PCI ETHERNET CONTROLLER
DATA SHEET
(Preliminary)
DATE : June 27, 1995
VIA TECHNOLOGIES, INC.
PRELIMINARY RELEASE
Please contact Via Technologies for the latest documentation.
Copyright Notice:
Copyright © 1995, Via Technologies Incorporated. Printed in Taiwan. ALL RIGHTS RESERVED.
No part of this document may be reproduced, transmitted, transcribed, stored in a retrieval
system, or translated into any language, in any form or by any means, electronic, mechanical,
magnetic, optical, chemical, manual or otherwise without the prior written permission of Via
Technologies Incorporated.
The VT86C926 may only be used to identify products of Via Technologies.
All trademarks are the properties of their respective owners.
Disclaimer Notice:
No license is granted, implied or otherwise, under any patent or patent rights of Via Technologies.
Via Technologies makes no warranties, implied or otherwise, in regard to this document and to
the products described in this document. The information provided by this document is believed
to be accurate and reliable to the publication date of this document. However, Via Technologies
assumes no responsibility for any errors in this document. Furthermore, Via Technologies
assumes no responsibility for the use or misuse of the information in this document and for any
patent infringements that may arise from the use of this document. The information and product
specifications within this document are subject to change at any time, without notice and without
obligation to notify any person of such change.
Offices:
5020 Brandin Court
Fremont, CA
94538
USA
8th Floor, No. 533
Chung-Cheng Rd., Hsin-Tien
Taipei, Taiwan ROC
Tel:
Fax:
Tel:
Fax:
(510) 683-3300
(510) 683-3301
(886-2) 218-5452
(886-2) 218-5453
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
VT86C926 AMAZON
PCI ETHERNET CONTROLLER FEATURES
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Single chip Ethernet controller for PCI bus interface
Software compatible to NE2000+, NE2000
Support 35ns access time SRAM
Integrated 10BaseT TP interface
-- Built-in pre-equalization circuitry for transmitter
-- smart squelch circuit with programmable threshold for receiver
-- Selective Link integrity test and link disable
-- Selective polarity detection and correction
-- Automatic selection between TP and AUI interfaces
Full IEEE 802.3 AUI interface
-- Meet 10Base5 and 10Base2 standards
-- Thin-net or Thick-net enable signal
Jumper or Jumperless configuration
-- Jumperl2ess configuration with EEPROM
-- Jumper configuration with EEPROM storing Ethernet Address
Direct drive to 4 status LED indicators: transmit, receive, collision, and Thin select
-- Transmit LED for packet transmitting status and power indicator
-- Receive LED for packet receiving status and Link status
-- Collision LED for collision status
-- Thin select LED for Thin 10Base-2 port select
ISA NE2000 compatible mode, register compatible to National Semiconductor DP83905 & DP83906
Optional Full duplex operation with speed up to 20Mbps
Early receive interrupt allows parallel processing of data during receiving
Early transmit correction ability allows parallel processing of data during transmission
Support 16K, 32K Bootrom size
Support PCI 32-bit data path transfaer with enhance 32-bit driver
Software controllable power down feature
Single +5V supply, 0.8um standard CMOS technology
100 pin PQFP package
Buffer
RAM
MA0-14
Boot
ROM
MD0-7
_MSRD,
Config.
EEPROM _MSWR,
EECS
AD[31:0]
PCICLK
PCIRST#
INTA#
CBE#[3:0]
IDSEL
FRAME#
IRDY#
TRDY#
DEVSEL#
STOP#
PAR
MA0 - MA14
Shadow Ethernet
Address PROM
MD0 - MD7
Configuration
Registers &
EEPROM Control
M-Bus Arbitrator
Data Bus FIFO
for Remote DMA
PCI
Bus
Interface
Unit
Remote
DMA
Registers
&
State
Machine
PCI CFG
Rcv. Data
MAC Receiver
Protocol State
Machine &
Registers
Local
DMA
Registers
&
State
Machine
&
Buffer
Mgmt.
Xmt Data
MAC Xmitter
Protocol State
Machine &
Registers
Internal Bus
Figure 1: Block Diagram
3
Page 1 Registers
&
Tally Counters
TP MAU
PLL &
EnDec
AUI
Interface
LED &
Testing
RD+,RDTD+,TDRX+,RXTX+,TXCI+,CITHIN
_RXLED,
_TXLED,
_COLED
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
PIN DIAGRAM
4
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
PIN DESCRIPTIONS
No.
Name
PCI Bus Interface
98-100, 1AD31-0
5, 8-13,
16-17,
26-33,
35-40,
43,44
95
PCICLK
Type
Description
I/O
Address/Data are multiplexed on the same PCI pins. A bus transaction
consists of an address phase followed by one or more data phases. The
address phase is the clock cycle in which FRAME# is asserted. Write
data is stable and valid when IRDYB is asserted and read data is stable
and valid when TRDYB is asserted.
I
PCICLK provides timing for all transactions on PCI and is an input pin
to every PCI device.
INTA# is an asynchronous signal which is used to request an interrupt
When PCIRST# is asserted low, the VT86C926 chip performs an
internal system hardware reset. PCIRST# may be asynchronous to CLK
when asserted or deasserted. It is recommended that the deassertion be
synchronous to guarantee clean and bounce free edge.
Bus Command/Byte Enables are multiplexed on the same PCI pins.
During the address phase of a transaction, CBE3-0B define the Bus
Command. Buring the data phase, CBE3-0B are used as Byte Enables.
The Byte Enables define which physical byte lanes carry meaningful
data. CBE0B applies to byte 0 and CBE3B applies to byte 3.
Used as a chip select during PCI configuration cycle.
Cycle Frame is driven by the current master to indicate the beginning
and duration of an access. FRAME# is asserted to indicate a bus
transaction is beginning. While FRAME# is asserted, data transfers
continue. When FRAME# is deasserted, the transaction is in the final
data phase.
Initiator Ready indicates the initiating agent's ability to complete the
current data phase of the transaction. IRDY# is used in conjunction with
TRDY#. A data phase is completed on any clock when both IRDY# and
TRDY# are asserted. During a write, IRDY# indicates that valid data is
present on AD31-0. During a read, it indicates the master is prepared to
accept data. Wait cycles are inserted until both IRDY# and TRDY# are
asserted simultaneously.
Target Ready indicates the target's agent's ability to complete the current
data phase of the transaction. TRDY# is used in conjunction with
IRDY#. A data phase is completed on any clock when both IRDY# and
TRDY# are asserted. During a read, TRDY# indicates that valid data is
present on AD31-0. During a write, it indicates the target is prepared to
accept data. Wait cycles are inserted until both IRDY# and TRDY# are
asserted simultaneously.
Device Select, when actively driven, indicates the driving device has
decoded its address as the target of the current access. As an input,
DEVSEL# indicates whether any device on the bus has been selected.
VT86C926 drives STOP# to disconnect further traction.
Parity is even parity across AD31-0 and CBE3-0B. PARis stable and
valid one clock after the address phase. For data phaases PAR is stable
and valid one clock after either IRDY# is asserted on a write transaction
or TRDY# is asserted on a read transaction.
96
97
INTA#
PCIRST#
OD
I
6, 18, 25,
34
CBE#[3:0]
I
7
19
IDSEL
FRAME#
I
I
20
IRDY#
I
21
TRDY
I/O
22
DEVSEL#
I/O
23
24
STOP#
PAR
I/O
T/S
5
VIA TECHNOLOGIES, INC.
Network Interface
85,86
TX+
TX83,84
81,82
91,92
RX+
RXCD+
CDTD+
TD-
O
I
I
O
89,90
RD+
RD-
I
80
THIN
O
69
68
X1
X2
I
O
78
TXLED#
O
79
RXLED#
O
77
COLED#
O
76
TSTPIN
I/O
PRELIMINARY VT86C926
AUI Transmit Output: Differential current mode driver which sends the
Manchester-encoded data to the AUI DO circuitry through transformer
coupler. Use a local terminator resistor 75 Ohm.
AUI Receive Input: Differential receive input pair form the transceiver
through a decoupled transformer.
AUI Collision Input: Differential collision (SQE) signal input from
transceiver. The SQE signal is 10MHz +/- 15% square wave.
Twister Pair Transmit Outputs: Different current mode driver which
sends pre-equalized TP data signal to TP network medium through a
filter and transformer. Use a local terminator resistor 100 Ohm.
Twisted Pair Receive Inputs: This differential input pair from TP
medium through a decoupled transformer passes Manchester-encoded
data to the ENDEC module.
Thin-net selection: This output is used to control the power DC-DC
converter of 10Base2 MAU module. It is asserted when PHYS1 and
PHYS0 in Configuration Register B selects 10Base2 mode.
Crystal or external oscillator input.
Cystal feedback output. Used in crystal connections only. Should be left
completely unconnected when using oscillator module.
Transmit/Power LED: An open drain active low output. Normally on. It
indicates a transmission onto the TP is in progress. It turns off for 90ms
if a packet is transmitted. A minimum on time 18ms is maintained
between blinking of transmitting packets.
Receive/Link LED: An open drain active low output. Normally on. It
indicates a reception from the TP is in progress. It turns off 90ms if a
packet is received. If the Link Test is enabled it will turn off as long as
the link fails. After the link is up, it will turn on for at least 786ms and
then become a normal receiver indicator.
Collision/Jabber LED: An open drain active low output. Normally off.
It turns on for minimum 25ms whenever VT86C926 detects a collision.
It is retriggerable. During jabber state it stays on.
N.C.
6
VIA TECHNOLOGIES, INC.
External Memory Support
75-72,
MA0-MA13,
67-58,
MA14
55
O
52-45
MD0-MD7
I/O
57
MSRD#
O
56
MSWR#
O
54
BPCS#
O
53
EECS
O
PRELIMINARY VT86C926
Memory Support Address Bus: When RESET is inactive these pins
drive the memory support address bus. These 15 address lines cover up
to 16K bytes memory space. When RESET is active these pins are used
for jumper setting. There are 100K pull-down device on pins.
Memory Support Data Bus: When RESET is inactive these pins can be
used to access external memory. When RESET is active pin MD3 to
MD7 are used for jumper setting. There are 100K pull-down device on
pins. MD0 to MD2 are used for EEPROM programming interface.
Memory Support Bus Read: Strobes data from external RAM into
VT86C926 controller via the memory support data bus. (Note 1)
Note 1: The Chip Select of external buffer RAM is always enabled.
Power Supply & Ground
14, 42, 93, VDD, VDDIF,
71
VDD
15, 41, 94,
VSS, VSSIF,
70
VSS
88
VDDA
87
VSSA
P
G
P
G
Memory Support Bus Write: Strobes data from VT86C926 controller
into the external RAM via the memory support data bus. A 100K pulldown device is connected.
Boot PROM Chip Select: Select the Boot ROM on the memory support
data bus. The ROM address bus is connected to SA bus directly.
EEPROM Chip Select: Chip select signal for the external EEPROM
when a EEPROM is used to provide the configuration data and
Ethernet Address. A 100K pull-up resistor is connected.
Positive 5V Supply: Supply power to Internal digital logic, Digital I/O
pads, and TD, TX pads. Double bonding may be required.
Negative Supply: digital ground. Multiple bonding pads are required to
separate core and I/O pads ground.
Analog 5V Supply: Supply power to Analog circuit and RX, CI, RD
pads. Seperate power plane may be required.
Negative Supply: Analog ground. Sepearte ground plane may be
required.
7
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
FUNCTIONAL DESCRIPTIONS
1. GENERAL DESCIPTION
The VT86C926 PCI Ethernet controller is CMOS VLSI designed for easy
implementation of CSMA/CD local area networks.
Significant features
include: twisted-pair interface, PCI Plug&Play compatability and Early
Interrupt Receive/Transmit.
The VT86C926 integrates the entire bus interface of PCI systems. Setting hardware jumpers or software
configures the VT86C926 bus interface. The VT86C926 also complies with PCI specification v2.0. and is
software compatible to either the NE2000. The VT86C926 supports the 10BASE5 or 10BAE2 network
interfaces via an external transciever connected to its AUI port. The VT82C926's integrated 10BASE-T
transciever supports 10BASE-T and fully complies with IEEE 802.3i specifications.
2. TP (TWISTED PAIR) INTERFACE
The five main functions of the TP interface are: smart squelch, collision detection, link detector/generator,
jabber and transmit driver.
2.1. Smart Squelch
The basic function of smart squelch is to distinguish between impulse noise and valid signals on the RXI±
differential inputs. To determine the validity of data, the squelch function applies specific timing and
amplitute criteria to the incoming signals. Also, there are two squelch modes, selectable by the SQSEL pin.
The two selectable squelch modes are: 1) 10BASE-T compatible and 2) reduced squelch mode.
2.2. Collsion
The TP interface will detect a collision when the transmit and receive channels are active at the same time.
If the TPI module is receiving when a collision is detected it is reported to the controller immediately .
Approximately 1 us after the transmission of each packet, a signal called the Signal Quality Error (SQE) is
generated. The SQE consists typically of 10 cycles of 10 MHz and is also refered as the "Heartbeat."
2.3. Link Detector/Generator
The link generator is a timer circuit that generates a link pulse as defined by the 10 Base-T specification.
The link pulse will be generated by transmitter. The pulse is used to check the integrity of the connection to
the remote MAU. The link detection circuit checks for valid pulses from the remote MAU; if it receives no
valid pulse, then the transmitter will be disabled.
2.4. Jabber
The jabber timer monitors the transmitter and disables the transmission
if the transmitter is active for longer than 26 ms.
8
VIA TECHNOLOGIES, INC.
6.
EEPROM INTERFACE
AND
PRELIMINARY VT86C926
PROGRAMMING
VT86C926 uses an 93C46 to store configuration data and Ethernet address.
6.1. EEPROM Contents
D15
3FH
.
.
.
.
.
.
10H
0FH
0EH
D0
Reserved for 93C46
.
.
.
.
.
.
.
73H
Conf. B
.
Reserved
.
57H
SUBVID1
.
Reserved
.
Checksum
Ethernet Address 5
Ethernet Address 3
Ethernet Address 1
08H
07H
03H
02H
01H
00H
Reserved for 93C46
.
.
.
.
.
.
.
Conf. C
Conf. A
.
Reserved
.
42H
SUBVID0
.
Reserved
.
Board ID
Ethernet Address 4
Ethernet Address 2
Ethernet Address 0
Note 1. The word on location 03H is optional to user's application requirement.
Note 2. Programming 73H into the upper address is required to protect the Ethernet address from being destroyed accidentally.
6.2.
Emulated PROM map for NE2000 16-bit mode (WTS=1)
D15
1EH
1CH
0EH
0CH
0AH
08H
06H
04H
02H
00H
D0
57H (DWID=1) or 42H (DWID=0)
57H (DWID=1) or 42H (DWID=0)
.
Reserved
.
Checksum
Board ID
Ethernet Address 5
Ethernet Address 4
Ethernet Address 3
Ethernet Address 2
Ethernet Address 1
Ethernet Address 0
00
00
.
00
.
00
00
00
00
00
00
00
00
Note 1. The address shown above on the left side is the Remote DMA Address.
Note 2. The jumper DWID will determine the contents of the upper bytes. The software uses the upper bytes to distinguish the data
width of the system bus interface to be used.
Note 3. During the initialization of the software driver, the program should set WTS to 1 and try 8-bit I/O instruction to get the
PROM contents (since data width is unknown). Then the program should set the WTS bit of DCR to the value revealed on
9
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
jumper DWID. Remember that as long as WTS is set to 1, the VT86C926 sends one word at one time with _IOCS16
asserted -- regardless of the data width of I/O instruction used.
Note 4. Regardless of the data width of I/O instruction used, the VT86C926 sends one byte at one time with _IOCS16 deasserted
and WTS set to 0. This map is only for reference. Users should never need to access the PROM contents in this way.
6.3.
Memory Map of VT86C926
NE2000 16-bit mode (WTS=1)
D15
D0
0000H
00H
PROM
001FH
0020H
Aliased PROM
3FFFH
4000H
16K X 8 Buffer RAM
7FFFH
8000H
Aliased 0000H - 7FFFH
FFFFH
NE2000 8-bit mode (WTS=0)
D7
D0
0000H
Interleaved PROM
001FH
0020H
Aliased PROM
3FFFH
4000H
8K X 8 Buffer RAM
5FFFH
6000H
Aliased Buffer RAM
7FFFH
8000H
Aliased 0000H-7FFFH
FFFFH
10
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
6.4. PCI Configuration Space
Device ID
Vendor ID
00 h
( 0926 )
( 1106 )
STATUS
COMMAND
04 h
( MMSPACE, IOSOACE)
(DEVS1, DEVS0 ) = ( 1 , 0 )
CLASS CODE
Revision
ID
08 h
( 00 )
( 02_00_00 )
BIST
Header type
Latency Timer
Cache Line
0c h
( 00 )
( 00 )
( 00 )
IO SPACE
( 00 )
0 0 0 1
0
10 h
Reserved
Reserved
SUB Vendor ID
2c h
FR
EXP ROM BASE [ 31: 15 ]
ROM14
0000_0000_00000
Reserved
Max_LAT
( 00 )
EEPROM contents
EN
30 h
Reserved
Min_GNT
( 00 )
INT PIN
( 01 )
INTLINE
3c h
INTL [7:0]
6.5. Direct Programming of EEPROM
The VT86C926 features a easy way to program external EEPROM in-situ. When the RESET is active and
if the upper byte of 0FH on EEPROM is not 73H, the EEPR bit will not be set to indicate that the current
EEPROM has not been programmed yet. This will allow the VT86C926 to enter Direct Programming
mode if EELOAD is also set. In this mode the user can directly control the EEPROM interface signals by
writing to the ECSR Port and the value on the EECS, ESK and EDI bits will be driven onto the EECS,
SK(MD2), and DI(MD1) outputs respectively. These outputs will be latched so the user can generate a
clock on SK by repetitively writing 1 then 0 to the appropriate bit. This can be used to generate the
EEPROM signals as per the 93C46 data sheet.
To read the EEPROM data, users have to generate EEPROM interface signals into EECS, DI and SK as
described above and in the mean time read the data from DO(MD0) input via pin SD0. Reading Data
Transfer Port during programming will not affect the latched data on EECS, SK, and DI outputs. When the
EEPROM has been programmed and verified (remember to program the upper byte of 0EH with 73H), the
user must give VT86C926 a power-on reset to return to normal operation and to read in the new data.
The Direct Programming mode is mainly used for production to program every bit of the EEPROM. Once
the upper byte of 0EH has been programmed with 073H and a power-on reset has been performed, there is
11
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
no way to change the contents of EEPROM except Configuration Registers A, B, and C, which will be
discussed in the following paragraph. For more information, refer to EECSR.
6.6. Embedded Programming of EEPROM
If the upper byte of 0FH of EEPROM has been programmed to 073H when VT86C926 is loading the
EEPROM data during power-on reset, the EEPR bit of Signature Register will be set to prohibit the Direct
Programming mode. However, the user can still program the configuration registers A, B, and C using the
Embedded Programming mode by following the routine specified in the pseudo code below. This operation
will work regardless of the value of EECONFIG. The setting of the EELOAD bit of Configuration Register
B starts the EEPROM write process. Care should be taken not to accidentally modify the POL and GDLNK
bits because these two bits return the value indifferent from the setting. This programming process is ended
when the EELOAD bit goes to zero.
EEPROM_EMB_PROG ( )
{ // defined constant: CONFIG_B, GDLNK, POL, EELOAD
// declared register: value, config_for_A, config_for_B, config_for_C
// declared function: DISABLE_INTERRUPTS, ENABLE_INTERRUPTS, READ, WRITE, WAIT
DISABLE_INTERRUPTS ( );
value = READ (CONFIG_B);
value = value & !GDLNK & !POL;
value = value | EELOAD;
WRITE (CONFIG_B, value);
READ (CONFIG_B);
WRITE (CONFIG_B, config_for_A);
WRITE (CONFIG_B, config_for_B);
WRITE (CONFIG_B, config_for_C);
while (value || EELOAD)
{
value = READ (CONFIG_B);
WAIT ( );
}
ENABLE_INTERRUPTS ( );
}
12
VIA TECHNOLOGIES, INC.
7. CONTROL
*
*
*
*
*
*
*
AND
PRELIMINARY VT86C926
STATUS REGISTERS
VT86C926 supports the control and status registers of DP8390 except those explained as follows.
VT86C926 supports all page 1 registers. Only part of Page 2 is supported.
VT86C926 supports Early Transmit Underrun (ETUN)
VT86C926 supports most of page 0 registers.
The meaning and use of 01H (CLAD0) and 02H (CLAD1) of page 0 is altered.
The 06H (FIFO port) of page 0 is not supported.
The following control/status bits in page 0 are not supported:
-(D3,D4,D5) == (0,1,1) of CR (00H) : Send Packet Command (RD0 - RD2)
-D1 of DCR: Byte Order Select (BOS)
-D2 of DCR: Long Address Select (LAS)
-D4 of DCR: Auto-initialize Remote (ARM)
-D5, D6 of DCR: FIFO Threshold Select (FT0 and FT1)
-D4 of TCR: Collision Offset Enable (OFST)
-D5 of TSR: FIFO Underrun (FU)
-D7 of TSR: Out of Window Collision (OWC)
-D3 of RSR: FIFO Overrun (FO)
8. POWER DOWN MODE
The VT86C926 provides an one level power down mode. The BIOS or
Network OS
device driver can configure Register A to diagnostic mode
then set the Power-on bit of the diagnostic port to "on."
When the
VT86C926 is in Power down mode, all power to the analog port is cut off
and the chip clock is stopped. Other registers are read only. Only the
diagnostic port is read-writeable.
13
VIA TECHNOLOGIES, INC.
9.
JUMPERED
9.1
PRELIMINARY VT86C926
OPERATION SUPPORT
Fully Jumpered Operation
Figure 8 below depicts this operation. In this configuration, most
options are selected by jumpers on the VT86C926 controller memory bus
+5V
VT86C926
MD0
⇓
⇓
MD2
ISA I/O Base
MD3
⇓
⇓
MD6
INT 0~f
MD0
⇓
⇓
MD1
MA3
MD4
⇓
⇓
MD7
Media Select
ISA mode
Boot ROM Select
MD10
Software Enable
MSWR#
Configure from EEPROM
Figure 3: Example of Jumper Configuration
14
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
10. PACKET TRANSMISSION DESCRIPTION
The VT86C926 NIC is CSMA/CD compliant and offers scheduled retransmission of packets up to 15 times
on collisions according to the truncated binary exponential backoff algorithm. The following is an
overview of the transmission process.
10.1.Transmission Setup
In order for the transmit packet to be ready for transmission, it must follow the IEEE 820.3 specification
(see figure 4). When the transmit packet is set up in the memory, the VT86C926 will initialize the packet
starting address (TPSR) and the packet length (TPCR0, TBCR1). Then the PTX bit (transmit packet) of the
command register will be set to start transmission.
TX Byte Count
(TBCT0.1)
Destination Address
6 Bytes
Source Address
6 Bytes
Type Length
2 Bytes
Data
46 Bytes
Pad (If data < 46 bytes)
Figure 4. Transmit Packet Format
10.2.Transmission Process
After the PTX bit is set to start transmission, the TXE (transmit enable) signal is asserted and transmission
begins (see figure 5). The CRC is calculated after the 62 bit preamble (alternating ONEs and ZEROs) and
the start of the frame delimiter (two ONEs) are sent out as NRZ data (pin TxD) with a clock (TxC). This
process does not end until the byte count reaches zero. After all bytes are serialized, the 4 CRC bytes are
then serialized and added to the packet. In case of collisions, transmissions would cease and jam sequence
of 32 ONEs would be transmitted to notify every node of the collision. Once the jam sequence is
transmitted, the packet would be rescheduled for transmission according to the truncated binary exponential
backoff algorithm.
Transmit Buffer
PSTART
Destination Address
TxE
TxC
Serializer
Source Address
Type Length
TxD
Byte Count
CRC
Data
DMA PLA
CRS
Protocol PLA
COL
Figure 5. Packet Transmission
15
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
10.3.Transmission Status
An interrupt is generated at the end of transmission: either the PTX bit (complete packet transmitted) or the
TXE bit (packet transmission aborted) of the ISR (Interrupt Status Register) is set. This interrupt routine
discerns the specific details of the transmission by reading the TSR. If the PTX bit is set, reading the TSR
can reveal the following: if a carrier was present when the transmission was initiated (DFR), if the carrier
was lost during the transmission (CRS -- This would point to a short somewhere on the network), if the
collision detect circuitry is working properly (CDH) and if a collision occured (COL). The collision count
register (NCR) is incremented each time a collision occurs. The out of window collision (OWC) bit of the
TSR is set whenever a collision occurs outside the 512K window (slot time). If 16 collisions occur, then the
TXE but if the ISR is set. If 16 collisions abort a transmission, then the ABT bit of the TSR is set.
11.
PACKET RECEPTION
The VT86C926 uses a receive filter scheme to manage packet reception. Because every node receives all
packet transmissions in CSMA/CD compliant networks, this receive filter is needed to filter out all packets
without matching addresses.
11.1.Reception Process
The VT86C926 will begin to check for the two consecutive ONEs than indicates the start of the frame
delimiter (SFD) once VT86C926 dectects the active CTS signal and the ONE-ZERO preamble. After the
detection of the SFD, the incoming data is deserialized and sent to the address filter (see figure 6). If the
packet passes the address filter, then the packet is sent to the receive buffer ring through the DMA. An
interrupt is generated when the packet is received into the buffer ring.
To determine the acceptance and rejection of packets, the calculated value of the CRC, at the point in which
the CRS signal is low, is compared with the last four bytes received. If a match occurs on the last byte
boundary, then the packet is accepted. If the CRCs do not match at the last byte boundary and the CRC
goes LOW, the packet is rejected and an CRC error is indicated (CRC bit of RSR set); that is to say the
recieve buffer ring is not updated. If the CRCs do not match at the last byte boundary and the CRC does
not go LOW, then a frame alignment error occurs and is flagged (FAE bit of RSR set). However, frame
alignment errors occur only when CRC errors occur.
Receive Buffer Ring
RxD
RxC
CRS
Deserializer
DMA PLA
Address
Filter
CRS
Protocol PLA
CRC
COL
Figure 6. Packet Reception
16
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
11.2.Receive Buffer Ring
Incoming packets are placed by the NIC into the Receive Buffer Ring to await processing. As each packet
is processed, it is then removed from the ring. The NIC allocates an area of memory to use as the buffer
ring during initialization. Because ring pointers are located on the chip, the buffer management scheme
works at a high efficiency. The DMA channels can transfer data at 10 Mbyte per second. The second
DMA or the remote DMA channel removes packets from the rings after the packets have been processed.
Though the receive buffer ring allows packets to be processed in the order of arrival, it is not a FIFO buffer.
It is just a portion of memory that works effectively as a FIFO buffer
The four on-chip pointers that control the ring are the page start (PSTART) pointer, page stop (PSTOP)
pointer, current page (CURR) pointer and boundary (BNRY) pointer. The PSTART and PSTOP pointers
determine the size of the buffer ring. The CURR pointer determines the location of the next packet to be
received and the BNRY pointer determines the location of the next packet to be removed. When packets
are received, the CURR pointer moves to the next location (in the direction of rotation) and the BNRY
follows the CURR pointer. However, the PSTART and PSTOP remains the same throughout the
procedure.
To receive packets, buffers are linked as necessary to accomodate the incoming packets. Up to 256 buffers
can be linked together in a single ring. Each buffer is 256 bytes. That effectively yields a maximum of 64K
bytes for the entire ring. Therefore, the theoretical maximum space between PSTART and PSTOP is 64K
and all the pointers refer to 256 byte boundaries (see figure 7).
Buffer Ram (up to 64 KB)
256 Bytes
Page Start Address
Buffer # 1
Direction
of Rotation
Buffer # 2
Buffer # 3
2
1
3
n
4
Buffer # n
Receive Buffer Ring
Page Stop
Address
Figure 7. Receive Buffer Ring
17
Direction
of Rotation
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
The pointers PSTART and PSTOP are determined during initialization. The first valid packet received is
placed at the CURR pointer plus a four byte offset (see figure 8). If the packet is greater than the 256 byte
buffer, then the buffers are linked together until the packet is received in its entirety. Because of the ring
design of the buffer, the first and the last buffer may be linked together. When a packet is completely
received, the status from the Receive Status Register (RSR), a pointer to the next packet and the byte count
of the current packet are written into the four byte offset.
n
n
4 Byte Offset for Packe
Begin Reception
& Packet Storage
Begining Current
Page Register
Status
Next Page
1
4 Byte Offset for Packe
(after reception of first pack
Length (H)
Register
(after reception of first packe
2
Direction
of Rotation
Packet Status
Length (L)
Current Page
Begining Current
Page Register
1
2
Direction
of Rotation
3
Packet Ends
3
4
4
n-2
n-2
n-1
n-1
Current PageRegister
(after reception of 3 packet
Figure 8. Receive Packet Buffering
Note: Figures 5, 6, 7 and 8 are flat illustrations of the Receive
Buffer Ring. See figure 4 for graphical conceptualization.
When an error occurs, be it FAE or CRC, it is automatically overwritten. The CURR is not moved to next
buffer boundary, hence the next incoming packet will overwrite the previous packet (see figure 9). The
error-overwrite feature can be toggled on and off by setting the save errored packet (SEP) bit in the RCR.
Runt packets are also overwritten. The runt packet overwrite may be toggled on and off by setting the AR
bit in the TCR.
n
Begining Current
Page Register
1
2
Direction
of Rotation
3
4
n-2
n-1
Figure 9. Packet Rejection
18
Runt Packet,
CRC, FAE
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
The BNRY is updated each time a packet is removed. In that way, the BNRY always follow the CURR
around the ring (see figure 10). However, in situations in which the packet processing is slower than the
packet reception, the ring may be full. When the ring becomes full, all incoming packets are aborted so that
packets already in the ring would not be overwritten (see figure 11). New packets will start to arrive after
the BNRY is updated. The missed packet tally counter would keep track of all missed packets. This
situation is unlikely if enough memory is allocated for the receive buffer ring. If the BNRY is located
outside the buffering, the overwrite protection function will not be available. All incoming packets would
overwrite packets already on the ring, whether the packets on the ring have been processed or not.
n
Boundary Pointer
1
2
Direction
of Rotation
Boundary Pointer
(after the removal of packet)
Remote DMA
Removes Packet
1st Packet
3
4
2nd Packet
Current Page Register
n-2
New Packets
Arriving
n-1
Figure 10. Removing Packets from the Receive Buffer Ring
Reception Aborted
by NIC overflow
Boundary Pointer
1
2
Direction
of Rotation
Remote DMA
Removes Packet
1st Packet
3
4
2nd Packet
5
n-2
n-1
New Packets
Arriving
n
Figure 11. Receive Buffer Ring Overwrite Protection
19
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
12. EARLY INTERRUPT RECEIVE MODE
The VT86C926, under normal mode, will generate an interrupt to the host after a complete packet is
received and decide to accept it. This, however, will introduce a throughput latency at least longer than the
transmission time of the received packet. To allow the host driver program look ahead the contents of the
packet under receiving, the VT86C926 provides the Early Interrupt Receive Mode which is enabled by
setting the EIEN bit of Diagnostic Register.
During the Early Interrupt Receive Mode, several interrupts are generated based on the receiving conditions
as depicted in the following paragraph.
1. Packet header interrupt
When an incoming packet matches the address (physical or not) of the network controller and the total
received bytes count exceeds 64, the VT86C926 will generate an interrupt to notify the host an addressed
packet in on the way. The driver can distinguish this early interrupt by reading ISR and RSR. If the ISR
shows an PRX status and RSR doesn't reflect that status on its PRX bit, an early interrupt is being
generated.
2. Packet page interrupt
Every time the receiver buffer is completly filled and a new buffer is requested, the VT86C926 will
generate an interrupt with PRX of RSR unset as Packet header interrupt. Therefore, this kind of interrupt
is issued every 256 byte time (~200us) until packet reception is done. The current byte count of packet
being received can be accessed from register 01H (CLDC0) and 02H (CLDC1) of page 0.
3. Receive status interrupt
This is the normal interrupt generated after an addressed packet is completely received. If the received
packet is a good packet, both the ISR and RSR will set PRX bit high. Otherwise, the RXE or OVW will
be reflected on ISR and FAE, XRXE, or MPA on RSR.
Buffer RAM
Buffer RAM
Data Bus
Buffer RAM
Address Bus
Interrupt
Status
Buffer
EIEN
Receive
Status
Management
Bus Control
& Interface
Internal
Control
Signals
State Machine
& Register
& Data Bus
FIFO
Internal
Data Bus
Internal
Address Bus
TP MAU
MAC Receiver
Protocol State
Machine &
Registers
PLL & EnDec
AUI Interface
Internal
Control Signals
RX_Interrupt
RD+, RDTD+, TD-
RX+, RXTX+, TXCI+, CI-
Control Signals
Host Address Bus
Host Data Bus
Host Control Bus
Figure 12: Early Interrupt Receive Block Diagram
12.1. Early Interrupt Architecture Programming Algorithm
20
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
12.1.1. Enable Early Interrupt Mode
To set the VT86C926 to Early Interrupt mode, set bit 3 (EIEN) of the Diagnostic Register to high. To set
the VT86C926 back to normal mode, set bit 3 (EIEN) of the Diagnostic Register to low. You can set Early
interrupt mode in any state. But your receive interrupt service routine must able to receive fragments from
Ethernet data. If the routine cannot handle the fragment data, you may get corrupt data.
12.1.2. Early interrupt Receive Routine Refence register
The receive interrupt service routine algorithm fetches one page data from the SRAM upon reception of an
interrupt. Refer to the following register and status bit for Early Interrupt service routine:
Interrupt Status Register (ISR, 0x07(0) bit0 PRX, bit 2 RXEE)
Receive Status Register (RSR,0x0C(0) bit0 EARLY PRX)
Current Local DMA Counter Low and High (CLDC(0), 0x01, 0x02)
Current Page Register (CURR, 0x07(1))
But we suggest that you use this method as below, in order to reduce the interrupt occured times. Please
refer the CLDC counter for currently received bytes.
This algorithm sample enables the VT86C926's early interrupt drivers to increase the LAN system peer to
peer transfer rate. Programmers can modify the orignal NE2000 driver sources to add this function.
1. When driver is initialized,
set PktPointer = 0 and allocate PktBuffer = 1.5 KByte.
2. When interrupt is received, check ISR, CURR and RSR.
If RXE bit in ISR has been set, reset PktPointer = 0. (it is a packet error interrupt, STATE 0)
Else If PRX bit in ISR has been set, compare CURR with BNRY+1,
If CURR == BNRY+1, (it is a early interrupt condition)
Read and save CLDC (Current Local Data Count)
Evenlize CLDC. (CLDC = CLDC - CLDC % 2)
If PRX bit in RSR has not been set,
If RXE bit in ISR has been set, goto packet error condition (STATE 0).
If CLDC <= PktPointer, goto packet error condition (STATE 0).
RSAR = ((BNRY + 1) << 8) + PktPointer.
If RSAR >= PSTOP, set RSAR = RSAR - (PSTOP - PSTART).
RBCR = CLDC - PktPointer.
Use remote DMA to read packet data into offset PktBuffer + PktPointer.
PktPointer = CLDC.
Else goto packet complete condition (STATE 1).
Else (it is a packet complete interrupt, STATE 1)
RSAR = (BNRY + 1) << 8.
RBCR = 4.
Use remote DMA to packet header into offset PktBuffer.
If RXE bit in ISR has been set, set PktPointer = 0.
Get PktLen = packet length from PktBuffer.
PktLen = (PktLen + 1) - (PktLen + 1) % 2.
if PktLen <= PktPointer, set PktPointer = 0.
21
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
RSAR = ((BNRY + 1) << 8) + PktPointer.
RBCR = PktLen - PktPointer.
Use remote DMA to read packet data into offset PktBuffer + PktPointer.
PktPointer = 0.
If PktPointer = 0,
Do the normal driver packet received procedure,
but get packet data from PktBuffer, not the receive buffer ring.
Else go to interrupt entry to poll ISR again.
13.
Rx condition
Packet header or
page data received
Total packet received
ISR
1
RSR
0
CURR
BNRY+1
CLDC
<>0
1
1
=0
More then one packet
1
0
CRC or page align
error
4
4
BNRY+1 +
(packet pages)
BNRY+1 +
(packet pages)
X
<>0
X
EARLY TRANSMIT MODE
In order to provide the VT86C926 with parallel processing between the ISA bus and Ethernet media, the
VT86C926 must be set to detect early transmit error mode. This error may occur when the system's master
device uses the ISA bus and then uses the data bus.
If the ETEN bit is set in the configuration register B, the transmit status status bit5 (ETUN) and the transmit
error status bit (TXE) in the interrupt service register (ISR) bit 3 would be set on. If the interrupt mask
register TXEE bit is set to on, an interrupt will be generated when the local DMA pass the remote DMA
machine.
This mode is essentially similar to the Early Interrupt Receive Mode. When the VT86C926 is under the
normal mode, the CPU can issue the "transmit packet" command to the VT86C926 and the internal local
DMA will tranfer the data from the SRAM to the Ethernet. However, the packet data must already exist in
SRAM.
In the situation in which the "transmit packet" command is issued to the local DMA and the remote DMA
(to fill SRAM) at the same time, a corrupt packet may be transmitted to the network and remain undetected.
22
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
RAM Bus Arbitrator
& Data Bus FIFO
Buffer RAM
Data Bus
Address Bus
ETEN
Remote DMA
Registers & Write_point
State
Machines
Address Bus
Local DMA
Read_point Registers &
State
Machines
Local_
DMA_
Status
Remote_
DMA_
Status
Early Transmit
State Machine
Host Data Bus
Early_Tx_Error
Stop_Local_DMA
Figure 13: Early Transmit Error Detect Block Diagram
Note: If Write_point<Read_point, then Early_Tx_Error.
If Write_point>Read_point, then Stop_Local_DMA.
23
VIA TECHNOLOGIES, INC.
PRELIMINARY VT86C926
PROJECT SIGN OFF SHEET
FOR VT86C926 PRELIMINARY RELEASE
NAME
EDITOR
Alex Tsao
PRODUCT SPECIFICATIONS
Jeffery Chang
PROJECT DESIGNER
Antonio Weng
FINAL APPROVAL
Tzu-Mu Lin
SIGNATURE
24
DATE