AMD AM79C965A

Am79C965A
PCnet™-32 Single-Chip 32-Bit Ethernet Controller
DISTINCTIVE CHARACTERISTICS
■ Single-chip Ethernet controller for 486 and
Video Electronics Standards Association
(VESA) local buses
■ Supports ISO 8802-3 (IEEE/ANSI 802.3) and
Ethernet standards
■ Individual 136-byte transmit and 128-byte
receive FIFOs provide frame buffering for
increased system latency tolerance and
support the following features:
—Automatic retransmission with no FIFO reload
■ Direct interface to the 486 local bus or VESA
VL-Bus
—Automatic receive stripping and transmit
padding (individually programmable)
■ Enhanced burst mode with support for Am486™
burst read/write operations
—Automatic runt packet rejection
■ Software-compatible with AMD’s Am7990
LANCE, Am79C90 C-LANCE, Am79C960
PCnet-ISA, Am79C961 PCnet-ISA+, Am79C961A
PCnet-ISA II, Am79C970A PCnet-PCI II, and
Am79C900 ILACC™ register and descriptor
architecture
■ Compatible with Am2100/Am1500T and Novell
NE2100/NE1500 driver software
■ High-performance Bus Master architecture with
integrated DMA buffer management unit for low
CPU and bus utilization
■ Built-in byte-swap logic supports both big and
little endian byte alignment
■ Microwire EEPROM interface supports
jumperless design
■ Single +5 V power supply operation
■ Low-power, CMOS design with sleep modes
allows reduced power consumption for critical
battery-powered applications and Green PCs
—Automatic deletion of received collision frames
■ JTAG Boundary Scan (IEEE 1149.1) test access
port interface for board-level production test
■ Provides integrated attachment unit interface
(AUI) and 10BASE-T transceiver with automatic
port selection
■ Automatic twisted-pair receive polarity
detection and automatic correction of the
receive polarity
■ Optional byte padding to long-word boundary
on receive
■ Dynamic transmit FCS generation
programmable on a frame-by-frame basis
■ Internal/external loopback capabilities
■ Supports the following types of network
interfaces:
—AUI to external 10BASE-2, 10BASE-5,
10BASE-T or 10BASE-F MAU
—Internal 10BASE-T transceiver with Smart
Squelch to twisted-pair medium
■ Look-Ahead Packet Processing (LAPP) allows
protocol analysis to begin before end of receive
frame
■ Supports LANCE/C-LANCE/PCnet-ISA general
purpose serial interface (GPSI)
■ Integrated Manchester encoder/decoder
■ 160-pin PQFP package
GENERAL DESCRIPTION
The PCnet-32 single-chip 32-bit Ethernet controller is a
highly integrated Ethernet system solution designed to
address high-performance system application requirements. It is a flexible bus-mastering device that can be
used in any networking application, including networkready PCs, printers, fax modems, and bridge/router
designs. The bus-master architecture provides high
data throughput in the system and low CPU and bus
utilization. The PCnet-32 controller is fabricated with
AMD’s advanced low-power CMOS process to provide
low operating and standby current for power-sensitive
applications.
Publication# 18219 Rev: D Amendment/0
Issue Date: August 2000
The PCnet-32 controller is a complete Ethernet node
integrated into a single VLSI device. It contains a bus
interface unit, a DMA buffer management unit, an ISO
8802-3 (IEEE/ANSI 802.3)-defined media access control (MAC) function, individual 136-byte transmit and
128-byte receive FIFOs, an ISO 8802-3 (IEEE/ANSI
802.3)-defined attachment unit interface (AUI) and
twisted-pair transceiver medium attachment unit
(10BASE-T MAU), and a microwire EEPROM interface.
The PCnet-32 controller is also register-compatible
with the LANCE (Am7990) Ethernet controller, the CLANCE (Am79C90) Ethernet controller, the ILACC
(Am79C900) Ethernet controller, and all Ethernet
controllers in the PCnet family, including the PCnet-ISA
controller (Am79C960), the PCnet-ISA+ controller
(Am79C961), PCnet-ISA II (Am79C961A), and the
PCnet-PCI II controller (Am79C970A). The buffer mana g e m e n t u n i t s u p p o r t s t h e L A N C E , I L AC C
(Am79C900), and PCnet descriptor software models.
The PCnet-32 controller is software-compatible with
Novell NE2100 and NE1500 Ethernet adapter card architectures. In addition, a Sleep function has been incorporated to provide low standby current, which is
essential for notebooks and Green PCs.
The 32-bit demultiplexed bus interface unit provides a
direct interface to the VESA VL-Bus and 486 series
microprocessors, simplifying the design of an Ethernet
node in a PC system. With its built-in support for both
2
little and big endian byte alignment, this controller also
addresses proprietary non-PC applications.
Key PCnet-32 configuration parameters, including the
unique IEEE physical address, can be read from an external non-volatile memory (serial EEPROM) immediately following system reset. In addition, the I/O
location at which the internal registers are accessed
may be stored in the EEPROM, allowing the software
model of the device to be located appropriately in
system I/O space during system initialization.
The controller has the capability to select automatically
either the AUI port or the twisted-pair transceiver. Only
one interface is active at any one time. The individual
transmit and receive FIFOs reduce system overhead,
providing sufficient latency during frame transmission
and reception, and minimizing intervention during
nor mal networ k error recover y. The integrated
Manchester encoder/decoder (MENDEC) eliminates
the need for an external serial interface adapter (SIA)
in the node system. The built-in general purpose serial
interface (GPSI) allows the MENDEC to be bypassed.
In addition, the device provides programmable on-chip
LED drivers for transmit, receive, collision, receive
polarity, link integrity, or jabber status. The PCnet-32
controller also provides an external address detection
interface (EADI) to allow external hardware address
filtering in inter-networking applications.
Am79C965A
ORDERING INFORMATION
Standard Products:
AMD standard products are available in several packages and operating ranges. The order number (valid
combination) is formed by a combination of the elements below.
Am79C965A
K
C
\W
ALTERNATIVE PACKAGE OPTION
\W = Trimmed and Formed in a Tray (PQJ160)
OPTIONAL PROCESSING
Blank = Standard Processing
OPERATING CONDITIONS
C = Commercial (0°C to +70°C)
PACKAGE TYPE
(per Prod. Nomenclature/16-038)
K = Plastic Quad Flat Pack (PQR160)
SPEED
Not Applicable
DEVICE NUMBER/DESCRIPTION
Am79C965A
PCnet-32 Single-Chip 32-Bit Ethernet Controller
Valid Combinations
Valid Combinations
Am79C965A
KC, KC\W
Valid combinations list configurations planned to be supported in volume for this device. Consult the local AMD
sales office to confirm availability of specific valid combinations and to check on newly released combinations.
Am79C965A
3
TABLE OF CONTENTS
DISTINCTIVE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
GENERAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
ORDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
BLOCK DIAGRAM: VESA VL-BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
CONNECTION DIAGRAM: VESA VL-BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
PIN DESIGNATIONS: VESA VL-BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
LISTED BY PIN NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
LISTED BY PIN NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
LISTED BY GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
DRIVER TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
PIN DESCRIPTION: VESA VL-BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
CONFIGURATION PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
CONFIGURATION PIN SETTINGS SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
PIN CONNECTIONS TO VDD OR VSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
VESA VL-BUS INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
BOARD INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
MICROWIRE EEPROM INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
ATTACHMENT UNIT INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
TWISTED PAIR INTERFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
EXTERNAL ADDRESS DETECTION INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
GENERAL PURPOSE SERIAL INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IEEE 1149.1 TEST ACCESS PORT INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
POWER SUPPLY PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
VESA VL-BUS / LOCAL BUS PIN CROSS-REFERENCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
BLOCK DIAGRAM: 486 LOCAL BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
CONNECTION DIAGRAM: 486 LOCAL BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
PIN DESIGNATIONS: 486 LOCAL BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
LISTED BY PIN NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
LISTED BY PIN NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
LISTED BY GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
DRIVER TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
PIN DESCRIPTION: 486 LOCAL BUS MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
CONFIGURATION PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
CONFIGURATION PIN SETTINGS SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
PIN CONNECTIONS TO VDD OR VSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
LOCAL BUS INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
BOARD INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
MICROWIRE EEPROM INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ATTACHMENT UNIT INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
TWISTED PAIR INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
EXTERNAL ADDRESS DETECTION INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
GENERAL PURPOSE SERIAL INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IEEE 1149.1 TEST ACCESS PORT INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
POWER SUPPLY PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
BASIC FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
SYSTEM BUS INTERFACE FUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
SOFTWARE INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
NETWORK INTERFACES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DETAILED FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
BUS INTERFACE UNIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
BUS ACQUISITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
BUS MASTER DMA TRANSFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
INITIALIZATION BLOCK DMA TRANSFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
DESCRIPTOR DMA TRANSFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
FIFO DMA TRANSFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
LINEAR BURST DMA TRANSFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4
Am79C965A
SLAVE TIMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
VESA VL-BUS MODE TIMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
BUS MASTER AND BUS SLAVE DATA BYTE PLACEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
BUFFER MANAGEMENT UNIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
RE-INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
BUFFER MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
DESCRIPTOR RINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
DESCRIPTOR RING ACCESS MECHANISM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
POLLING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
TRANSMIT DESCRIPTOR TABLE ENTRY (TDTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
RECEIVE DESCRIPTOR TABLE ENTRY (RDTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
MEDIA ACCESS CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
TRANSMIT AND RECEIVE MESSAGE DATA ENCAPSULATION . . . . . . . . . . . . . . . . . . . . . . . . 91
MEDIA ACCESS MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
MANCHESTER ENCODER/DECODER (MENDEC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
EXTERNAL CRYSTAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
EXTERNAL CLOCK DRIVE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
MENDEC TRANSMIT PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
TRANSMITTER TIMING AND OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
RECEIVER PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
INPUT SIGNAL CONDITIONING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
CLOCK ACQUISITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
PLL TRACKING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
CARRIER TRACKING AND END OF MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
DATA DECODING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
JITTER TOLERANCE DEFINITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
ATTACHMENT UNIT INTERFACE(AUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
DIFFERENTIAL INPUT TERMINATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
COLLISION DETECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
TWISTED-PAIR TRANSCEIVER (T-MAU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
TWISTED PAIR TRANSMIT FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
TWISTED PAIR RECEIVE FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
LINK TEST FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
POLARITY DETECTION AND REVERSAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
TWISTED PAIR INTERFACE STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
COLLISION DETECT FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
SIGNAL QUALITY ERROR (SQE) TEST (HEARTBEAT) FUNCTION . . . . . . . . . . . . . . . . . . . . . . 99
JABBER FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
POWER DOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10BASE-T INTERFACE CONNECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
IEEE 1149.1 TEST ACCESS PORT INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
BOUNDARY SCAN CIRCUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
TAP FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
SUPPORTED INSTRUCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
INSTRUCTION REGISTER AND DECODING LOGIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
BOUNDARY SCAN REGISTER (BSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
OTHER DATA REGISTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
EADI (EXTERNAL ADDRESS DETECTION INTERFACE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
GENERAL PURPOSE SERIAL INTERFACE (GPSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
POWER SAVINGS MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
SOFTWARE ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
I/O RESOURCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
I/O REGISTER ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
HARDWARE ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
PCNET-32 CONTROLLER MASTER ACCESSES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
SLAVE ACCESS TO I/O RESOURCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
EEPROM MICROWIRE ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Am79C965A
5
TRANSMIT OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSMIT FUNCTION PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTOMATIC PAD GENERATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSMIT FCS GENERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSMIT EXCEPTION CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RECEIVE OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RECEIVE FUNCTION PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTOMATIC PAD STRIPPING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RECEIVE FCS CHECKING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RECEIVE EXCEPTION CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOOPBACK OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LED SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
H_RESET, S_RESET AND STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
H_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
USER ACCESSIBLE REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SETUP REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RUNNING REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RAP REGISTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONTROL AND STATUS REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BUS CONFIGURATION REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INITIALIZATION BLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RLEN AND TLEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RDRA AND TDRA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LADRF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RECEIVE DESCRIPTORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RMD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RMD1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RMD2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RMD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSMIT DESCRIPTORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TMD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TMD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TMD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TMD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REGISTER SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CSRS — CONTROL AND STATUS REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BCR — BUS CONFIGURATION REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OPERATING RANGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DC CHARACTERISTICS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SWITCHING CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BUS INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10BASE-T INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GPSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EADI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KEY TO SWITCHING WAVEFORMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SWITCHING TEST CIRCUITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ESTIMATED OUTPUT VALID DELAY VS. LOAD CAPACITANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSTEM BUS INTERFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10BASE-T INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GPSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Am79C965A
117
117
118
118
118
119
119
119
120
120
120
121
122
122
122
123
124
124
124
125
125
152
170
171
172
172
173
173
173
173
173
174
175
175
175
176
177
178
179
179
183
184
184
184
187
187
189
190
191
192
193
193
195
195
196
201
203
206
EADI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PHYSICAL DIMENSIONS* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PQR-160 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Plastic Quad Flat Pack Trimmed and Formed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX A: LOGICAL ADDRESS FILTERING FOR ETHERNET . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX B: RECOMMENDATION FOR POWER AND GROUND DECOUPLING . . . . . . . . . . . . . . . . .
APPENDIX C: ALTERNATIVE METHOD FOR INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX D: INTRODUCTION OF THE LOOK-AHEAD PACKET PROCESSING
(LAPP) CONCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX E: AM79C965A PCNET-32 SILICON ERRATA REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Am79C965A
207
208
208
208
A-1
B-1
C-1
D-1
E-1
7
BLOCK DIAGRAM: VESA VL-BUS MODE
LCLK
BE0- BE3
ADS
BRDY
WBACK
BLAST
LRDY
RDYRTN
M/IO
D/C
W/R
INTR1-INTR4
LREQ
LREQI
LGNT
LGNTO
SLEEP
LDEV
LEADS
LBS16
RESET
ADR2-ADR31
DAT0-DAT31
VLBEN
LB/VESA
Rcv
FIFO
802.3
MAC
Core
Manchester
Encoder/
Decoder
(PLS) and
AUI Port
VESA
VL-Bus
Interface
Unit
Xmt
FIFO
CI+/-D
DI+/-D
XTAL1
XTAL2
DO+/-D
RXD+/-D
10BASE-T
MAU
TXD+/-D
TXP+/-D
LNKST
FIFO
Control
Microwire,
LED,
and
JTAG
Control
Buffer
Management
Unit
EEDI
EECS
EESK
EEDO
SHFBUSY
LED1-LED3
TCK
TDI
TMS
TDO
18219-1
8
Am79C965A
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
NC
NC
XTAL2
AVSS2
XTAL1
AVDD3
TXD+
TXP+
TXD-D
TXP-D
AVDD4
RXD+
RXD-D
DVSS3
JTAGSEL
INTR2/EAR
INTR3/TDI
DVSSN12
INTR4/TMS
LGNTO/TCK
LREQI/TDO
DAT0
DAT1
DVSSN11
DAT2
DVDD2
DAT3
DAT4
DAT5
DVDDO4
DAT6
DVSSN10
DAT7
DAT8
DAT9
DAT10
DAT11
DVSSN9
DAT12
NC
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
NC
RDYRTN
LRDY
W/R
ADS
M/IO
BE3
D/C
RESET
BE2
DVSSN5
BE1
BE0
WBACK
DAT31
DAT30
DAT29
DAT28
DVSSN6
DAT27
DAT26
DAT25
DAT24
DAT23
DVDDO3
DAT22
DVSSN7
DAT21
DVSS2
DAT20
DAT19
DAT18
DAT17
DVSSN8
DAT16
DAT15
DAT14
DAT13
NC
NC
NC
LED2/SRDCLK
DVSSN1
ADR17
ADR16
ADR15
ADR14
DVDDO1
ADR13
ADR12
DVSSN2
ADR11
ADR10
ADR9
ADR8
ADR7
DVSSN3
ADR6
ADR5
DVSSPAD
ADR4
ADR3
DVSSN4
ADR2
LBS16
DVDD1
LEADS
DVSSCLK
LCLK
DVDDCLK
VLBEN
BLAST
LGNT
BRDY
DVDDO2
LREQ
DVSS1
LDEV
NC
NC
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
NC
SHFBUSY
DVSSN15
EECS
SLEEP
EESK/LED1/SFBD
EEDI/LNKST
LB/VESA
EEDO/LEDPRE3/SRD
INTR1
ADR18
ADR19
ADR20
DVSSN14
ADR21
ADR22
ADR23
ADR24
DVDDO5
ADR25
ADR26
DVSSN13
ADR27
ADR28
DVSS4
DVDD3
ADR29
ADR30
ADR31
AVDD2
CI+
CIÐ
DI+
DIÐ
AVDD1
DO+
DOÐ
AVSS1
NC
NC
CONNECTION DIAGRAM: VESA VL-BUS MODE
18219-3
Am79C965A
9
PIN DESIGNATIONS: VESA VL-BUS MODE
Listed by Pin Number
Pin No.
10
Name
Pin No.
Name
Pin No.
Name
Pin No.
Name
1
NC
41
NC
81
NC
121
NC
2
LED2/SRDCLK
42
RDYRTN
82
DAT12
122
NC
3
DVSSN1
43
LRDY
83
DVSSN9
123
AVSS1
4
ADR17
44
W/R
84
DAT11
124
DO–
5
ADR16
45
ADS
85
DAT10
125
DO+
6
ADR15
46
M/IO
86
DAT9
126
AVDD1
7
ADR14
47
BE3
87
DAT8
127
DI–
8
DVDDO1
48
D/C
88
DAT7
128
DI+
9
ADR13
49
RESET
89
DVSSN10
129
CI–
10
ADR12
50
BE2
90
DAT6
130
CI+
11
DVSSN2
51
DVSSN5
91
DVDDO4
131
AVDD2
12
ADR11
52
BE1
92
DAT5
132
ADR31
13
ADR10
53
BE0
93
DAT4
133
ADR30
14
ADR9
54
WBACK
94
DAT3
134
ADR29
15
ADR8
55
DAT31
95
DVDD2
135
DVDD3
16
ADR7
56
DAT30
96
DAT2
136
DVSS4
17
DVSSN3
57
DAT29
97
DVSSN11
137
ADR28
18
ADR6
58
DAT28
98
DAT1
138
ADR27
19
ADR5
59
DVSSN6
99
DAT0
139
DVSSN13
20
DVSSPAD
60
DAT27
100
LREQI/TDO
140
ADR26
21
ADR4
61
DAT26
101
LGNTO/TCK
141
ADR25
22
ADR3
62
DAT25
102
INTR4/TMS
142
DVDDO5
23
DVSSN4
63
DAT24
103
DVSSN12
143
ADR24
24
ADR2
64
DAT23
104
INTR3/TDI
144
ADR23
25
LBS16
65
DVDDO3
105
INTR2/EAR
145
ADR22
26
DVDD1
66
DAT22
106
JTAGSEL
146
ADR21
27
LEADS
67
DVSSN7
107
DVSS3
147
DVSSN14
28
DVSSCLK
68
DAT21
108
RXD–
148
ADR20
29
LCLK
69
DVSS2
109
RXD+
149
ADR19
30
DVDDCLK
70
DAT20
110
AVDD4
150
ADR18
31
VLBEN
71
DAT19
111
TXP–
151
INTR1
32
BLAST
72
DAT18
112
TXD–
152
EEDO/LEDPRE3/SRD
33
LGNT
73
DAT17
113
TXP+
153
LB/VESA
34
BRDY
74
DVSSN8
114
TXD+
154
EEDI/LNKST
35
DVDDO2
75
DAT16
115
AVDD3
155
EESK/LED1/SFBD
36
LREQ
76
DAT15
116
XTAL1
156
SLEEP
37
DVSS1
77
DAT14
117
AVSS2
157
EECS
38
LDEV
78
DAT13
118
XTAL2
158
DVSSN15
39
NC
79
NC
119
NC
159
SHFBUSY
40
NC
80
NC
120
NC
160
NC
Am79C965A
PIN DESIGNATIONS: VESA VL-BUS MODE
Listed by Pin Name
Name
Pin No.
Name
Pin No.
Name
Pin No.
Name
Pin No.
ADR2
24
BE3
47
DO+
125
JTAGSEL
106
ADR3
22
BLAST
32
DO–
124
LB/VESA
153
ADR4
21
BRDY
34
DVDD1
26
LBS16
25
ADR5
19
CI+
130
DVDD2
95
LCLK
29
ADR6
18
CI–
129
DVDD3
135
LDEV
38
ADR7
16
D/C
48
DVDDCLK
30
LEADS
27
ADR8
15
DAT0
99
DVDDO1
8
LED2/SRDCLK
2
ADR9
14
DAT1
98
DVDDO2
35
LGNT
33
ADR10
13
DAT2
96
DVDDO3
65
LGNTO/TCK
101
ADR11
12
DAT3
94
DVDDO4
91
LRDY
43
ADR12
10
DAT4
93
DVDDO5
142
LREQ
36
ADR13
9
DAT5
92
DVSS1
37
LREQI/TDO
100
ADR14
7
DAT6
90
DVSS2
69
M/IO
46
ADR15
6
DAT7
88
DVSS3
107
NC
1
ADR16
5
DAT8
87
DVSS4
136
NC
39
ADR17
4
DAT9
86
DVSSCLK
28
NC
40
ADR18
150
DAT10
85
DVSSN1
3
NC
41
ADR19
149
DAT11
84
DVSSN2
11
NC
79
ADR20
148
DAT12
82
DVSSN3
17
NC
80
ADR21
146
DAT13
78
DVSSN4
23
NC
81
ADR22
145
DAT14
77
DVSSN5
51
NC
119
ADR23
144
DAT15
76
DVSSN6
59
NC
120
ADR24
143
DAT16
75
DVSSN7
67
NC
121
ADR25
141
DAT17
73
DVSSN8
74
NC
122
ADR26
140
DAT18
72
DVSSN9
83
NC
160
ADR27
138
DAT19
71
DVSSN10
89
RDYRTN
42
ADR28
137
DAT20
70
DVSSN11
97
RESET
49
ADR29
134
DAT21
68
DVSSN12
103
RXD+
109
ADR30
133
DAT22
66
DVSSN13
139
RXD–
108
ADR31
132
DAT23
64
DVSSN14
147
SHFBUSY
159
ADS
45
DAT24
63
DVSSN15
158
SLEEP
156
AVDD1
126
DAT25
62
DVSSPAD
20
TXD+
114
AVDD2
131
DAT26
61
EECS
157
TXD–
112
AVDD3
115
DAT27
60
EEDI/LNKST
154
TXP+
113
AVDD4
110
DAT28
58
EEDO/LEDPRE3/SRD
152
TXP–
111
AVSS1
123
DAT29
57
EESK/LED1/SFBD
155
VLBEN
31
AVSS2
117
DAT30
56
INTR1
151
W/R
44
BE0
53
DAT31
55
INTR2/EAR
105
WBACK
54
BE1
52
DI+
128
INTR3/TDI
104
XTAL1
116
BE2
50
DI–
127
INTR4/TMS
102
XTAL2
118
Am79C965A
11
PIN DESIGNATIONS: VESA VL-BUS MODE
Listed by Group
Pin Name
Pin Function
Type
Driver
No. of
Pins
VESA VL-Bus Interface
ADR2–ADR31
Address Bus
IO
TS
30
ADS
Address Status
I/O
TS
1
BE0–BE3
Byte Enable
I/O
TS
4
BLAST
Burst Last
O
TS
1
BRDY
Burst Ready
I/O
TS
1
D/C
Data/Control Select
I/O
TS
1
DAT0–DAT31
Data Bus
I/O
TS
32
INTR1
Interrupt Number 1
O
TS
1
INTR2
Interrupt Number 2
I/O
TS
1
INTR3
Interrupt Number 3
I/O
TS
1
INTR4
Interrupt Number 4
I/O
TS
1
JTAGSEL
JTAG Select
I
1
LB/VESA
Local Bus/VESA VL-Bus Select pin
I
1
LBS16
Local Bus Size 16
I
1
LCLK
Local Clock
I
1
LDEV
Local Device
O
O4
1
LEADS
Local External Address Strobe
O
TS
1
LGNT
Local Bus Grant
I
LGNTO
Local Grant Out
I/O
TS
1
LRDY
Local Ready
O
TS
1
LREQ
Local Bus Request
O
O8
1
LREQI
Local Bus Request In
I/O
TS
1
M/IO
Memory/I/O Select
I/O
TS
1
RDYRTN
Ready Return
I
1
RESET
Reset
I
1
VLBEN
Burst Enable
I
1
W/R
Write/Read Select
WBACK
Write Back
I
EECS
Microwire Serial EEPROM Chip Select
O
O8
1
EEDI/LNKST
Microwire Serial EEPROM Data In/Link Status
O
LED
1
EEDO/LEDPRE3
Microwire Address EEPROM Data Out/LED3 predriver
I/O
LED
1
EESK/LED1
Microwire Serial EEPROM Clock/LED1
O
LED
1
LED2
LED Output Number 2
O
LED
1
SHFBUSY
Shift Busy (for external EEPROM-programmable logic)
O
O8
1
SLEEP
Sleep Mode
I
1
XTAL1
Crystal Input
I
1
XTAL2
Crystal Output
O
1
I/O
1
TS
1
1
Board Interface
12
Am79C965A
PIN DESIGNATIONS: VESA VL-BUS MODE (continued)
Listed by Group
Pin Name
Pin Function
Type
Driver
No. of
Pins
Attachment Unit Interface (AUI)
CI+/CI–
AUI Collision Differential Pair
I
2
DI+/DI–
AUI Data In Differential Pair
I
2
DO+/DO–
AUI Data Out Differential Pair
O
DO
2
Twisted-Pair Transceiver Interface (10BASE-T)
RXD+/RXD–
Receive Differential Pair
I
2
TXD+/TXD–
Transmit Differential Pair
O
TDO
2
TXP+/TXP–
Transmit Predistortion Differential Pair
O
TPO
2
LNKST/EEDI
Link Status/Microwire Serial EEPROM Data In
O
LED
1
IEEE 1149.1 Test Access Port Interface (JTAG)
TCK
Test Clock
I/O
TS
1
TDI
Test Data In
I/O
TS
1
TDO
Test Data Out
I/O
TS
1
TMS
Test Mode Select
I/O
TS
1
External Address Detection Interface (EADI)
EAR
External Address Reject Low
I/O
TS
1
SRD
Serial Receive Data
I/O
TS
1
SRDCLK
Serial Receive Data Clock
I/O
TS
1
SFBD
Start Frame—Byte Delimiter
O
LED
1
AVDD
Analog Power
P
4
AVSS
Analog Ground
P
2
DVDD
Digital Power
P
3
DVDDCLK
Digital Power Clock
P
1
DVDDO
I/O Buffer Digital Power
P
5
DVSS
Digital Ground
P
4
DVSSCLK
Digital Ground Clock
P
1
DVSSN
I/O Buffer Digital Ground
P
15
DVSSPAD
Digital Ground Pad
P
1
Power Supplies
Am79C965A
13
PIN DESIGNATIONS: VESA VL-BUS MODE
Driver Type
Table 1. Output Drive Type
Table 2. Pins with Pullup
Name
Type
IOL (mA)
IOH (mA)
pF
Signal
Pullups
TS
Tri-State
8
-0.4
50
TDI
≥10 kΩ
O8
Totem Pole
8
-0.4
50
TMS
≥10 kΩ
O4
Totem Pole
4
-0.4
50
TCK
≥10 kΩ
OD
Open Drain
8
LED
LED
12
14
50
-0.4
50
Am79C965A
PIN DESCRIPTION: VESA VL-BUS MODE
Configuration Pins
JTAGSEL
JTAG Function Select
Input
The value of this pin will asynchronously select
between JTAG Mode and Multi-Interrupt Mode.
The value of this pin will asynchronously affect the
function of the JTAG–INTR–Daisy chain arbitration
pins, regardless of the state of the RESET pin and
regardless of the state of the LCLK pin. If the value is a
“1”, then the PCnet-32 controller will be programmed
for JTAG mode. If the value is a “0”, then the PCnet-32
controller will be programmed for Multi-Interrupt Mode.
When programmed for JTAG mode, four pins of the
PCnet-32 controller will be configured as a JTAG (IEEE
1149.1) Test Access Port. When programmed for MultiInterrupt Mode, two of the JTAG pins will become
interrupts and two JTAG pins will be used for daisy
chain arbitration support. Table 3 below outlines the pin
changes that will occur by programming the JTAGSEL
pin.
Table 3. JTAG Pin Changes
Pin
JTAGSEL=1
JTAG Mode
JTAGSEL=0
Multi-Interrupt Mode
LGNT0/TCK
TCK
LGNTO
LGNT1/TDO
TDO
LREQI
LGNT2/TDI
TDI
INTR3
LGNT3/TMS
TMS
INTR4
VLBEN
Burst Enable
Input
This pin is used to determine whether or not bursting is
supported by the PCnet-32 device in VESA VL-Bus
mode. The VLBEN pin is sampled at every rising edge
of LCLK while the RESET pin is asserted.
In VESA-VL mode (the LB/VESA pin is tied to VSS), if
the sampled value of VLBEN is low, then the BREADE
and BWRITE bits in BCR18 will be forced low, and the
PCnet-32 controller will never attempt to perform linear
burst reads or writes. If the sampled value of VLBEN is
high, linear burst accesses are permitted, consistent
with the values programmed into BREADE and
BWRITE.
Because of byte-duplication conventions within a 32-bit
Am386 system, the PCnet-32 controller will always produce the correct bytes in the correct byte lanes in
accordance with the Am386DX data sheet. This byte
duplication will automatically occur, regardless of the
operating mode selected by the LB/VESA pin.
The VLBEN pin may be tied directly to VDD or VSS. A
series resistor may be used but is not necessary.
The JTAGSEL pin may be tied directly to VDD or VSS. A
series resistor may be used but is not necessary.
LB/VESA
Local Bus/VESA VL-Bus Select
Note that the setting of LB/VESA determines the
f u n c t i o n a l i t y o f t h e fo l l owi n g p i n s ( n a m e s i n
parentheses are pins in 486 local bus mode): VLBEN
(Am486), RESET (RESET), LBS16 (AHOLD), LREQ
(HOLD), LGNT (HLDA), LREQI (HOLDI) and LGNTO
(HLDAO).
Input
The value of this pin will asynchronously determine the
operating mode of the PCnet-32 controller, regardless
of the state of the RESET pin and regardless of the
state of the LCLK pin. If the LB/VESA pin is a tied to
VDD, then the PCnet-32 controller will be programmed
for Local Bus Mode. If the LB/VESA pin is tied to VSS,
then the PCnet-32 controller will be programmed for
VESA-VL Bus Mode.
The VLBEN pin need only be valid when the RESET
pin is active (regardless of the connection of the LB/
VESA pin) and may be tied to ID(3) in a VESA VL-Bus
version 1.0 system, or to the logical AND of ID(4),
ID(3), ID(1), and ID(0) in a VESA-VL-Bus version 1.1 or
2.0 system.
Note: This pin needs to be tied low when the LB/VESA pin
has been tied to VDD. See the pin description for the Am486
pin in the Local Bus Mode section.
Configuration Pin Settings Summary
Table 4 shows the possible pin configurations that may
be invoked with the PCnet-32 controller configuration
pins.
Am79C965A
15
Table 4. Configuration Pin Settings
LB/VESA
VLBEN
JTAGSEL
Mode Selected
0
X*
0
VL Bus mode with 4 interrupts and daisy chain arbitration
0
X*
1
VL Bus mode with 2 interrupts and JTAG
1
0
0
VL Bus mode with 4 interrupts and daisy chain arbitration
1
0
1
VL Bus mode with 2 interrupts and JTAG
1
1
X
Reserved
*X = Don’t care
ADS will be driven LOW when the PCnet-32 controller
performs a bus master access on the local bus.
Pin Connections to VDD or VSS
BE0–BE3
Several pins may be connected to V DD or V SS for
various application options. Some pins are required to
be connected to V DD or V SS in order to set the
controller into a particular mode of operation, while
other pins might be connected to VDD or VSS if that
pin’s function is not implemented in a specific
application. Table 5 shows which pins require a
connection to V DD or V SS , and which pins may
optionally be connected to VDD or VSS because the
application does not support that pin’s function. The
table also shows whether or not the connections need
to be resistive.
These signals indicate which bytes on the data bus are
active during read and write cycles. When BE3 is
active, the byte on DAT31–DAT24 is valid. BE2–BE0
active indicate valid data on pins DAT23–DAT16,
DAT15– DAT8, DAT7–DAT0, respectively. The byte
enable signals are outputs for bus master and inputs for
bus slave operations.
VESA VL-Bus Interface
ADR2–ADR31
When the BLAST signal is asserted, then the next time
that BRDY or RDYRTN is asserted, the burst cycle is
complete.
Address Bus
Input/Output
Address information which is stable during a bus
operation, regardless of the source. When the
PCnet-32 controller is Current Master, A2–A31 will be
driven. When the PCnet-32 controller is not Current
Master, the A2–A31 lines are continuously monitored
to determine if an address match exists for I/O slave
transfers.
ADS
Address Status
Input/Output
When driven LOW, this signal indicates that a valid bus
cycle definition and address are available on the M/IO,
D/C, W/R and A2–A31 pins of the local bus interface.
At that time, the PCnet-32 controller will examine the
combination of M/IO, D/C, W/R, and the A2–A31 pins
to determine if the current access is directed toward the
PCnet-32 controller.
16
Byte Enable
Input/Output
BLAST
Burst Last
Output
BRDY
Burst Ready
Input/Output
BRDY functions as an input to the PCnet-32 controller
during bus master cycles. When BRDY is asserted
during a master cycle, it indicates to the PCnet-32
controller that the target device is accepting burst
transfers. It also serves the same function as RDYRTN
does for non-burst accesses. That is, it indicates that
the target device has accepted the data on a master
write cycle, or that the target device has presented
valid data onto the bus during master read cycles.
Am79C965A
Table 5. Pin Connections to Power/Ground
Pin No
Supply
Strapping
Resistive
Connection
to Supply
Recommended
Resistor Size
LED2/SRDCLK
2
Required
Required
324 Ω in series with LED, or 10 KΩ
without LED
LBS16
25
Optional
Required
10 KΩ
VLBEN
31
Required
Optional
NA
WBACK
54
Optional
Required
10 KΩ
LREQI/TDO
100
Optional
Required
10 KΩ
JTAGSEL
106
Required
Optional
NA
EEDO/LEDPRE3/SRD
152
Optional
Required
10 KΩ
LB/VESA
153
Required
Optional
NA
EEDI/LNKST
154
Optional
Required
324 Ω in series with LED, or 10 KΩ
without LED
EESK/LED1SFBD
155
Required
Required
324 Ω in series with LED, or 10 KΩ
without LED
SLEEP
156
Optional
Required
10 KΩ
—
Optional
Required
10 KΩ
Pin Name
All Other Pins
If BRDY and RDYRTN are sampled active in the same
cycle, then RDYRTN takes precedence, causing the
next transfer cycle to begin with a T1 cycle.
DAT31–DAT0 is latched by the PCnet-32 controller
when performing bus master reads and slave write
operations.
BRDY functions as an output during PCnet-32
controller slave cycles and is always driven inactive
(HIGH).
The PCnet-32 controller will always follow Am386DX
byte lane conventions. This means that for word and
byte accesses in which PCnet-32 controller drives the
data bus (i.e. master write operations and slave read
operations), the PCnet-32 controller will produce duplicates of the active bytes on the unused half of the 32bit data bus. Table 6 illustrates the cases in which
duplicate bytes are created.
BRDY is floated if the PCnet-32 controller is not being
accessed as the current slave device on the local bus.
D/C
Data/Control Select
Input/Output
Table 6. Bye Duplication on Data Bus
During slave accesses to the PCnet-32 controller, the
D/C pin, along with M/IO and W/R, indicates the type of
cycle that is being performed. PCnet-32 controller will
only respond to local bus accesses in which D/C is
driven HIGH by the local bus master.
During PCnet-32 controller bus master accesses, the
D/C pin is an output and will always be driven HIGH.
D/C is floated if the PCnet-32 controller is not the
current master on the local bus.
DAT0–DAT31
Data Bus
Input/Output
Used to transfer data to and from the PCnet-32 controller to system resources via the local bus. DAT31–DAT0
are driven by the PCnet-32 controller when performing
bus master writes and slave read operations. Data on
BE3-BE0
DAT
[31:24]
DAT
[23:16]
DAT
[15:8]
DAT
[7:0]
1110
1101
1011
0111
1100
1001
0011*
1000
0001
0000
Undef
Undef
Undef
A
Undef
Undef
D
Undef
D
D
Undef
Undef
A
Undef
Undef
C
C
C
C
C
Undef
A
Undef
Copy A
B
B
Copy D
B
B
B
A
Undef
Copy A
Undef
A
Undef
Copy C
A
Undef
A
*Note: Byte duplication does not apply during an
LBS16 access, see Table 8.
Am79C965A
17
INTR1–INTR4
Interrupt Request
Output
An attention signal which indicates that one or more of
the following status flags is set: BABL, MISS,
MERR,RINT, IDON, MFCO, RCVCCO, TXSTRT, or
JAB. Each of these status flags has a mask bit which
allows for suppression of INTR assertion. These flags
have the meaning shown in Table 7.
Table 7. Status Flags
the JTAGSEL pin. Only one interrupt pin may be used
at one time. The active interrupt pin is selected by programming the interrupt select register (BCR21). The
default setting of BCR121will select interrupt INTR1 as
the active interrupt. Note that BCR21 is EEPROM-programmable. Inactive interrupt pins are floated. The
polarity of the interrupt signal is determined by the
INTLEVEL bit of BCR2. The interrupt pins may be
programmed for level-sensitive or edge-sensitive
operation. PCnet-32 controller interrupt pins will be
floated at H_RESET and will remain floated until either
the EEPROM has been successfully read, or, following
an EEPROM read failure, a Software Relocatable
Mode sequence has been successfully executed.
BABL
Babble (CSR0, bit 14)
MISS
Missed Frame (CSR0, bit 12)
MERR
Memory Error (CSR0, bit 11)
LBS16
RINT
Receive Interrupt (CSR0, bit 10)
Local Bus Size 16
IDON
Initialization Done (CSR0, bit 8)
MFCO
Missed Packet Count Overflow
(CSR4, bit 9)
RCVCCO
Receive Collision Count Overflow
(CSR4, bit 5)
TXSTRT
Transmit Start (CSR4, bit 3)
JAB
Jabber (CSR4, bit 1)
BS16 is sampled during PCnet-32 controller bus
mastering activity to determine if the target device on
the VL-Bus is 32 or 16 bits in width. If the LBS16 signal
is sampled active at least one clock period before the
assertion of LRDY during a PCnet-32 controller bus
master transfer, then the PCnet-32 controller will
convert a single 32-bit transfer into two 16-bit transfers.
Not all 32-bit transfers need to be split into two 16-bit
transfers. Table 8 shows the sequence of transfers that
will be executed for each possible 32-bit bus transfer
that encounters a proper assertion of the LBS16 signal.
Note that there are four possible interrupt pins,
depending upon the mode that has been selected with
Input
Table 8. Data Transfer Sequence from 32-Bit Wide to 16-Bit Wide
Current Access
Next with LBS16
BE3
BE2
BE1
BE0
BE3
BE2
BE1
BE0
1
1
1
0
NR
1
1
0
0
NR
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
NR
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
NR
0
0
1
1
NR
0
1
1
1
NR
NR = No second access Required for these cases.
LCLK
During accesses in which PCnet-32 controller is acting
the VL-Bus target device, the LBS16 signal will not be
driven. In this case, it is expected that the VL-Bus
required pull-up device will bring the LBS16 signal to an
inactive level and the PCnet-32 controller will be seen
by the VL-Bus master as a 32-bit peripheral.
Local Clock
18
Input
LCLK is a 1x clock that follows the same phase as a
486-type CPU clock. LCLK is always driven by the system logic or the VL-Bus controller to all VL-Bus masters
and targets. The rising edge of the clock signifies the
change of CPU states, and hence, the change of
PCnet-32 controller states.
Am79C965A
LDEV
Local Device
Output
LDEV is driven by the PCnet-32 controller when it
recognizes an access to PCnet-32 controller I/O space.
Such recognition is dependent upon a valid sampled
ADS strobe plus valid M/IO, D/C and ADR31–ADR5
values.
LEADS
Local External Address Strobe
Output
During VL-Bus master write and read accesses the
LEADS pin will be asserted on every T1 cycle as is
specified in the VESA VL-Bus specification, regardless
the settings of the GCIC bit of BCR18 and the CLL bits
BCR18.
LGNT
Local Bus Grant
Input
When LGNT is asserted and LREQ is being asserted
by the PCnet-32 controller, the PCnet-32 controller assumes ownership of the VL bus.
Note that this pin changes polarity when Local Bus
mode has been selected (see pin description of HLDA
in 486 Local Bus Interface section).
LGNTO
Local Grant Out
Output
This signal is multiplexed with the TCK pin, and is available only when the Multi-Interrupt mode has been selected with the JTAGSEL pin.
An additional local bus master may daisy-chain its LGNT
signal through the PCnet-32 controller LGNTO pin. The
PCnet-32 controller will deliver a LGNTO signal the
additional local bus master whenever the PCnet-32
controller receives a LGNT from the arbitration logic,
but is not simultaneously requesting the bus internally.
The second local bus master must connect its LREQ
output to the LREQI input of the PCnet-32 controller in
order to complete the local bus daisy-chain arbitration
control.
When SLEEP is not asserted, daisy chain arbitration
signals that pass through the PCnet-32 controller will
experience a one-clock delay from input to output (i.e.
LREQI to LREQ and LGNT to LGNTO).
While SLEEP is asserted (either in snooze mode or
coma mode), if the PCnet-32 controller is configured
for daisy chain (LREQI and LGNTO signals have been
selected with the JTAGSEL pin), then the system arbitration signal LGNT will be passed directly to the daisychain signal LGNTO without experiencing a one-clock
delay. However, some combinatorial delay will be introduced in this path.
Note that this pin changes polarity when Local Bus
mode has been selected (see pin description of
HLDAO 486 Local Bus Interface section).
LRDY
Local Ready
Output
LRDY functions as an output from the PCnet-32
controller during PCnet-32 controller slave cycles.
During PCnet-32 controller slave read cycles, LRDY is
asserted to indicate that valid data has been presented
on the data bus. During PCnet-32 controller slave write
cycles, LRDY is asserted to indicate that the data on
the data bus has been internally latched. LRDY will be
asserted low for one clock period when the PCnet-32
controller wishes to terminate the cycle. LRDY is then
driven high for one-half of one clock period before
being released.
LRDY is floated if the PCnet-32 controller is not the
current slave on the local bus.
LREQ
Local Bus Request
Output
LREQ is used by the PCnet-32 controller to gain control
of the VL-Bus and become the active VL Bus Master.
LREQ is active low. Once asserted, LREQ remains active until LGNT has become active, independent of
subsequent assertion of SLEEP or setting of the STOP
bit or access to the S_RESET port (offset 14h).
Note that this pin changes polarity when Local Bus
mode has been selected (see pin description of HOLD
in 486 Local Bus Interface section).
LREQI
Local Bus Request In
Input
This signal is multiplexed with the TDO pin, and is
available only when the Multi-Interrupt mode has been
selected with the JTAGSEL pin.
An additional local bus master may daisy-chain its bus
hold request signal through the PCnet-32 controller
LREQI pin. The PCnet-32 controller will convey the
LREQI request to the arbitration logic via the PCnet-32
controller LREQ output. The second local bus master
must connect its LGNT input to the LGNTO output of
the PCnet-32 controller in order to complete the local
bus daisy-chain arbitration control.
When SLEEP is not asserted, daisy chain arbitration
signals that pass through the PCnet-32 controller will
experience a one-clock delay from input to output (i.e.
LREQI to LREQ and LGNT to LGNTO).
While SLEEP is asserted (either in snooze mode or
coma mode), if the PCnet-32 controller is configured
for daisy chain (LREQI and LGNTO signals have been
selected with the JTAGSEL pin), then the daisy-chain
signal LREQI will be passed directly to the system arbi-
Am79C965A
19
tration signal LREQ without experiencing a one-clock
delay. However, some combinatorial delay will be introduced in this path.
Multi-Interrupt mode has been selected and the daisychain arbitration feature is not used, then the LREQI
input should be tied to VDD.
Note that this pin changes polarity when Local
Busmode has been selected (see pin description of
HOLDI in 486 Local Bus Interface section).
M/IO
Memory I/O Select
Input/Output
During slave accesses to the PCnet-32 controller, the
M/IO pin, along with D/C and W/R, indicates the type
cycle that is being performed. PCnet-32 controller will
only respond to local bus accesses in which M/IO
sampled as a zero by the PCnet-32 controller.
During PCnet-32 controller bus master accesses, the
M/IO pin is an output and will always be driven high.
M/IO is floated if the PCnet-32 controller is not the current master on the local bus.
RDYRTN
Ready Return
Input
RDYRTN functions as an input to the PCnet-32 controller. RDYRTN is used to terminate all master accesses
performed by the PCnet-32 controller, except that
linear burst transfers may also be terminated with the
BRDY signal. RDYRTN is used to terminate slave read
accesses to PCnet-32 controller I/O space.
When asser ted dur ing slave read accesses to
PCnet-32 controller I/O space, RDYRTN indicates that
the bus mastering device has seen the LRDY that was
generated by the PCnet-32 controller and has
accepted the PCnet-32 controller slave read data.
Therefore, PCnet-32 controller will hold slave read data
on the bus until it synchronously samples the RDYRTN
input as active low. The PCnet-32 controller will not
hold LRDY valid asserted during this time. The duration
of the LRDY pulse generated by the PCnet-32
controller will always be a single LCLK cycle.
LRDY signal. The CPU READY signal should be connected to the PCnet-32 controller RDYRTN pin.
In systems where only one READY signal is provided,
then the PCnet-32 controller LRDY output may be tied
the PCnet-32 controller RDYRTN input.
RESET
System Reset
Input
When RESET is asserted low and the LB/VESA pin
has been tied to VSS, then the PCnet-32 controller
performs an internal system reset of the H_RESET
type (HARDWARE_ RESET). The RESET pin must be
held for a minimum of 30 LCLK periods when VL mode
has been selected. While in the H_RESET state, the
PCnet-32 controller will float or de-assert all outputs.
W/R
Write/Read Select
Input/Output
During slave accesses to the PCnet-32 controller, the
W/R pin, along with D/C and M/IO, indicates the type of
cycle that is being performed.
During PCnet-32 controller bus master accesses, the
W/R pin is an output.
W/R is floated if the PCnet-32 controller is not the current master on the local bus.
WBACK
Write Back
Input
WBACK is monitored as in input during VL-Bus Master
Accesses. When PCnet-32 controller is current VL-Bus
master, the PCnet-32 controller will float all appropriate
bus mastering signals within 1 clock period of the
assertion of WBACK. When WBACK is de-asserted,
PCnet-32 controller will re-execute any accesses that
were suspended due to the assertion of WBACK and
then will proceed with other scheduled accesses, if any.
Register access cannot be performed to the PCnet-32
device while WBACK is asserted.
Board Interface
LED1
RDYRTN is ignored during slave write accesses
PCnet-32 controller I/O space. Slave write accesses
PCnet-32 controller I/O space are considered terminated by the PCnet-32 controller at the end of the cycle
during which the PCnet-32 controller issues an active
RDY.
LED1
In systems where both a LRDY and RDYRTN (or
equivalent) signals are provided, then LRDY must not
be tied to RDYRTN. Most systems now provide for local
device ready input to the memory controller that
separate from the CPU READY signal. This second
READY signal is usually labeled as READYIN. This
signal should be connected to the PCnet-32 controller
The LED1 pin is also used during EEPROM Autodetection to determine whether or not an EEPROM is
present at the PCnet-32 controller microwire interface.
At the trailing edge of RESET, this pin is sampled to
determine the value of the EEDET bit in BCR19. A
sampled HIGH value means that an EEPROM is
present, and EEDET will be set to ONE. A sampled
20
Output
This pin is shared with the EESK function. When
operating as LED1, the function and polarity on this pin
are programmable through BCR5. The LED1 output
from the PCnet-32 controller is capable of sinking the
necessary 12 mA of current to drive an LED directly.
Am79C965A
LOW value means that an EEPROM is not present, and
EEDET will be set to ZERO. See the “EEPROM Autodetection” section for more details.
If no LED circuit is to be attached to this pin, then a pullup or pull-down resistor must be attached instead, in
order to resolve the EEDET setting.
LED2
LED2
Output
This pin is shared with the SRDCLK function. When
operating as LED2, the function and polarity on this pin
are programmable through BCR6. The LED2 output
from the PCnet-32 controller is capable of sinking the
necessary 12 mA of current to drive an LED directly.
This pin also selects address width for Software
Relocatable Mode. When this pin is HIGH during
Software Relocatable Mode, then the device will be
programmed to use 32 bits of addressing while
snooping accesses on the bus during Software
Relocatable Mode. When this pin is LOW during
Software Relocatable Mode, then the device will be
programmed to use 24 bits of addressing while
snooping accesses on the bus during Software
Relocatable Mode. The upper 8 bits of address will be
assumed to match during the snooping operation when
LED2 is LOW. The 24-bit addressing mode is intended
for use in systems that employ the GPSI signals. For
more information on the GPSI function see section
General Purpose Serial Interface.
If no LED circuit is to be attached to this pin, then a pull
up or pull down resistor must be attached instead, in
order to resolve the Software Relocatable Mode address width setting.
LEDPRE3
LEDPRE3
Output
This pin is shared with the EEDO function. When
operating as LEDPRE3, the function and polarity on
this pin are programmable through BCR7. This signal
is labeled as LED “PRE” 3 because of the multifunction nature of this pin. If an LED circuit were directly
attached to this pin, it would create an IOL requirement that
could not be met by the serial EEPROM that would also
be attached to this pin. Therefore, if this pin is to be
used as an additional LED output while an EEPROM is
used in the system, then buffering is required between
the LEDPRE3 pin and the LED circuit. If no EEPROM
is included in the system design, then the LEDPRE3
signal may be directly connected to an LED without
buffering. The LEDPRE3 output from the PCnet-32
controller is capable of sinking the necessary 12 mA of
current to drive an LED in this case. For more details
regarding LED connection, see the section on LEDs.
LNKST
Link Status
Output
This pin provides 12 mA for driving an LED. It indicates
an active link connection on the 10BASE-T interface.
The function and polarity are programmable through
BCR4. Note that this pin is multiplexed with the EEDI
function.
This pin remains active in snooze mode.
SHFBUSY
Shift Busy
Output
The function of the SHFBUSY signal is to indicate
when the last byte of the EEPROM contents has been
shifted out of the EEPROM on the EEDO signal line.
This information is useful for external EEPROMprogrammable registers that do not use the microwire
protocol, as is described herein: When the PCnet-32
controller is performing a serial read of the EEPROM
through the microwire interface, the SHFBUSY signal
will be driven HIGH. SHFBUSY can serve as a serial
shift enable to allow the EEPROM data to be serially
shifted into an external device or series of devices. The
SHFBUSY signal will remain actively driven HIGH until
the end of the EEPROM read operation. If the
EEPROM checksum was verified, then the SHFBUSY
signal will be driven LOW at the end of the EEPROM
read operation. If the EEPROM checksum verification
failed, then the SHFBUSY signal will remain HIGH.
This function effectively demarcates the end of a
successful EEPROM read operation and therefore is
useful as a programmable-logic low-active output
enable signal. For more details on external EEPROMprogrammable registers, see the EEPROM Microwire
Access section under Hardware Access.
This pin can be controlled by the host system by writing
to BCR19, bit 3 (EBUSY).
SLEEP
Sleep
Input
When SLEEP input is asserted (active LOW), the
PCnet-32 controller performs an internal system reset
of the S_RESET type and then proceeds into a power
savings mode. (The reset operation caused by SLEEP
assertion will not affect BCR registers.) All outputs will
be placed in their normal S_RESET condition. During
sleep mode, all PCnet-32 controller inputs will be ignored except for the SLEEP pin itself. De-assertion of
SLEEP results in wake-up. The system must refrain
from starting the network operations of the PCnet-32
controller for 0.5 seconds following the de-assertion of
the SLEEP signal in order to allow internal analog circuits to stabilize.
Both LCLK and XTAL1 inputs must have valid clock
signals present in order for the SLEEP command to
take effect.
Am79C965A
21
If SLEEP is asserted while LREQ is asserted, then the
PCnet-32 controller will perform an internal system
S_RESET and then wait for the assertion of LGNT.
When LGNT is asserted, the LREQ signal will be deasserted and then the PCnet-32 controller will proceed
to the power savings mode. Note that the internal
system S_RESET will not cause the LREQ signal to be
de-asserted.
a serial shift enable to allow the EEPROM data to be
serially shifted into an external device or series of devices. This same signal can be used to gate the output
of the programmed logic to avoid the problem of
releasing intermediate values to the rest of the system
board logic. The EESK signal can serve as the clock,
and EEDO will serve as the input data stream to the
programmable shift register.
The SLEEP pin should not be asserted during power
supply ramp-up. If it is desired that SLEEP be asserted
at power-up time, then the system must delay the
assertion of SLEEP until three LCLK cycles after the
completion of a valid pin RESET operation.
EEDO
XTAL1–XTAL2
Crystal Oscillator Inputs
Input/Output
The crystal frequency determines the network data
rate. The PCnet-32 controller supports the use of
quar tz crystals to generate a 20 MHz frequency
compatible with the ISO 8802-3 (IEEE/ANSI 802.3)
network frequency tolerance and jitter specifications.
See the section External Crystal Characteristics (in
section Manchester Encoder/Decoder) for more detail.
The network data rate is one-half of the crystal frequency. XTAL1 may alternatively be driven using an
external CMOS level source, in which case XTAL2
must be left unconnected. Note that when the
PCnet-32 controller is in coma mode, there is an internal 22
KW resistor from XTAL1 to ground. If an external source
drives XTAL1, some power will be consumed driving
this resistor. If XTAL1 is driven LOW at this time power
consumption will be minimized. In this case, XTAL1
must remain active for at least 30 cycles after the
assertion of SLEEP and de-assertion of LREQ.
Output
The EESK signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. This pin is
designed to directly interface to a serial EEPROM that
uses the microwire interface protocol. EESK is connected to the microwire EEPROM’s Clock pin. It is controlled by either the PCnet-32 controller directly during
a read of the entire EEPROM, or indirectly by the host
system by writing to BCR19, bit 1. EESK can be used
d u r i n g p r o g r a m m i n g o f ex t e r n a l E E P R O M programmable registers that do not use the microwire
protocol as follows:
When the PCnet-32 controller is performing a serial
read of the IEEE Address EEPROM through the
microwire interface, the SHFBUSY signal will serve as
22
Input
The EEDO signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. This pin is
designed to directly interface to a serial EEPROM that
uses the microwire interface protocol. EEDO is connected to the microwire EEPROM’s Data Output pin. It
is controlled by the EEPROM during reads. It may be read by
the host system by reading BCR19, bit 0.
EEDO can be used during programming of external
EEPROM-programmable registers that do not use the
microwire protocol as follows:
When the PCnet-32 controller is performing a serial
read of the IEEE Address EEPROM through the
microwire interface, the SHFBUSY signal will serve as
a serial shift enable to allow the EEPROM data to be
serially shifted into an external device or series of devices. This same signal can be used to gate the output
of the programmed logic to avoid the problem of
releasing intermediate values to the rest of the system
board logic. The EESK signal can serve as the clock,
and EEDO will serve as the input data stream to the
programmable shift register.
EECS
EEPROM Chip Select
Microwire EEPROM Interface
EESK
EEPROM Serial Clock
EEPROM Data Out
Output
The function of the EECS signal is to indicate to the
microwire EEPROM device that it is being accessed.
The EECS signal is active high. It is controlled by either
the PCnet-32 controller during a read of the entire
EEPROM, or indirectly by the host system by writing to
BCR19, bit 2.
EEDI
EEPROM Data In
Output
The EEDI signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. EEDI functions as an output. This pin is designed to directly interface to a serial EEPROM that uses the microwire
interface protocol. EEDI is connected to the microwire
EEPROM’s Data Input pin. It is controlled by either the
PCnet-32 controller during command portions of a read
of the entire EEPROM, or indirectly by the host system
by writing to BCR19, bit 0.
Am79C965A
Attachment Unit Interface
CI±
SFBD
Start Frame–Byte Delimiter
Collision In
Input
A differential input pair signaling the PCnet-32
controller that a collision has been detected on the
network media, indicated by the CI± inputs being
driven with a 10 MHz pattern of sufficient amplitude
and pulse width to meet ISO 8802-3 (IEEE/ANSI
802.3) standards. Operates at pseudo ECL levels.
DI±
Data In
Input
A differential input pair to the PCnet-32 controller carrying Manchester encoded data from the network. Operates at pseudo ECL levels.
Output
A differential output pair from the PCnet-32 controller
for transmitting Manchester encoded data to the
network. Operates at pseudo ECL levels.
Twisted Pair Interface
RXD±
10BASE-T Receive Data
Input
10BASE-T port differential receivers.
Output
10BASE-T port differential drivers.
TXP±
10BASE-T Pre-distortion Control
Output
These outputs provide transmit predistortion control in
conjunction with the 10BASE-T port differential drivers.
External Address Detection Interface
The EADI interface is enabled through bit 3 of BCR2
(EADISEL).
EAR
External Address Reject Low
Note that this pin is multiplexed with the LED1 pin.
Serial Receive Data
Output
An EADI output signal. SRD is the decoded NRZ data
from the network. This signal can be used for external
address detection. Note that when the 10BASE-T port
is selected, transitions on SRD will only occur during
receive activity. When the AUI por t is selected,
transitions on SRD will occur during both transmit and
receive activity.
Note that this pin is multiplexed with the LEDPRE3 pin.
SRDCLK
TXD±
10BASE-T Transmit Data
Start Frame–Byte Delimiter Enable. EADI output
signal. An initial rising edge on this signal indicates that
a start of frame delimiter has been detected. The serial
bit stream will follow on the SRD signal, commencing
with the destination address field. SFBD will go high for
4 bit times (400 ns) after detecting the second “1” in the
SFD (Start of Frame Delimiter) of a received frame.
SFBD will subsequently toggle every 400 ns (1.25 MHz
frequency) with each rising edge indicating the first bit
of each subsequent byte of the received serial bit
s t r e a m . S F B D w i l l b e i n a c t i ve d u r i n g f r a m e
transmission.
SRD
DO±
Data Out
Output
Input
An EADI input signal. The incoming frame will be
checked against the internally active address detection
mechanisms and the result of this check will be OR’d
with the value on the EAR pin. The EAR pin is defined
as REJECT.
See the EADI section for details regarding the function
and timing of this signal.
Note that this pin is multiplexed with the INTR2 pin.
Serial Receive Data Clock
Output
An EADI output signal. Serial Receive Data is
synchronous with reference to SRDCLK. Note that
when the 10BASE-T port is selected, transitions on
SRDCLK will only occur during receive activity. When
the AUI port is selected, transitions on SRDCLK will
occur during both transmit and receive activity.
Note that this pin is multiplexed with the LED2 pin.
General Purpose Serial Interface
The GPSI interface is selected through the PORTSEL
bits of the Mode register (CSR15) and enabled through
the TSTSHDW[1] bit (BCR18) or the CORETEST bit
(CSR124).
Note that when GPSI test mode is invoked, slave address decoding must be restricted to the lower 24 bits
of the address bus by setting the IOAW24 bit in BCR2
and by pulling LED2 LOW during Software Relocatable
Mode. The upper 8 bits of the address bus will always
be considered matched when examining incoming I/O
addresses. During master accesses while in GPSI
mode, the PCnet-32 controller will not drive the upper
8 bits of the address bus with address information. See
the GPSI section for more detail.
Am79C965A
23
TXDAT
Transmit Data
Input/Output
TXDAT is an output, providing the serial bit stream for
transmission, including preamble, SFD data and FCS
field, if applicable.
Note that the TxDAT pin is multiplexed with the A31 pin.
TXEN
Transmit Enable
Input/Output
TXEN is an output, providing an enable signal for transmission. Data on the TXDAT pin is not valid unless the
TXEN signal is HIGH.
Note that the RXDAT pin is multiplexed with the A25
pin.
IEEE 1149.1 Test Access Port Interface
TCK
Test Clock
Input
The clock input for the boundary scan test mode operation. TCK can operate up to 10 MHz. If left
unconnected, this pin has a default value of HIGH.
TDI
Test Data Input
Input
Note that the TXEN pin is multiplexed with the A30 pin.
The test data input path to the PCnet-32 controller. If
left unconnected, this pin has a default value of HIGH.
STDCLK
TDO
Serial Transmit Data Clock
Input
STDCLK is an input, providing a clock signal for MAC
activity, both transmit and receive. Rising edges of the
STDCLK can be used to validate TXDAT output data.
The STDCLK pin is multiplexed with the A29 pin.
Test Data Output
Output
The test data output path from the PCnet-32 controller.
TDO is floated when the JTAG port is inactive.
TMS
Test Mode Select
Input
Note that this signal must meet the frequency stability
requirement of the ISO 8802-3 (IEEE/ANSI 802.3)
specification for the crystal.
A serial input bit stream is used to define the specific
boundary scan test to be executed. If left unconnected,
this pin has a default value of HIGH.
CLSN
Power Supply Pins
AVDD
Collision
Input/Output
CLSN is an input, indicating to the core logic that a
collision has occurred on the network.
Note that the CLSN pin is multiplexed with the A28 pin.
RXCRS
Receive Carrier Sense
Input/Output
RXCRS is an input. When this signal is HIGH, it indicates to the core logic that the data on the RXDAT input
pin is valid.
Note that the RXCRS pin is multiplexed with the A27
pin.
SRDCLK
Serial Receive Data Clock
Input/Output
SRDCLK is an input. Rising edges of the SRDCLK signal are used to sample the data on the RXDAT input
whenever the RXCRS input is HIGH.
Note that the SRDCLK pin is multiplexed with the A26
pin.
RXDAT
Receive Data
Input/Output
RXDAT is an input. Rising edges of the SRDCLK signal
are used to sample the data on the RXDAT input whenever the RXCRS input is HIGH.
24
Analog Power (4 Pins)
Power
There are four analog +5 Volt supply pins. Special
attention should be paid to the printed circuit board
layout to avoid excessive noise on these lines. Refer to
Appendix B and the PCnet Family Technical Manual
(PID# 18216A) for details.
AVSS
Analog Ground (2 Pins)
Power
There are two analog ground pins. Special attention
should be paid to the printed circuit board layout to
avoid excessive noise on these lines. Refer to
Appendix B and the PCnet Family Technical Manual for
details.
DVDD
Digital Power (3 Pins)
Power
There are 3 digital power supply pins (DVDD1, DVDD
2, and DVDD3) used by the internal digital circuitry.
DVDDCLK
Digital Power Clock (1 Pin)
Power
This pin is used to supply power to the clock buffering
circuitry.
Am79C965A
DVDDO
I/O Buffer Digital Power (5 Pins)
DVSSCLK
Power
Digital Ground Clock (1 Pin)
Ground
used by Input/Output buffer drivers.
This pin is used to supply a ground to the clock
buffering circuitry.
DVSS
DVSSN
There are 5 digital power supply pins (DVDDO1–DVDDO5)
Digital Ground (4 Pins)
Ground
I/O Buffer Digital Ground (15 Pins)
Ground
There are 4 digital ground pins (DVSS1–DVSS4) used
These 15 ground pins (DVSSN1–DVSSN15) are used
by the internal digital circuitry.
by the Input/Output buffer drivers.
DVSSPAD
Digital Ground Pad (1 Pin)
Ground
This pin is used by the Input/Output logic circuits.
Am79C965A
25
VESA VL-BUS / LOCAL BUS PIN CROSS-REFERENCE
Listed by Pin Number
Pin #
26
VESA VL-Bus Mode Pin
Name
Local Bus Mode
Pin Name
Pin #
VESA VL-Bus Mode Pin
Name
Local Bus Mode
Pin Name
1
NC
NC
41
NC
NC
2
LED2/SRDCLK
LED2/SRDCLK
42
RDYRTN
RDYRTN
3
DVSSN1
DVSSN1
43
LRDY
RDY
4
ADR17
A17
44
W/R
W/R
5
ADR16
A16
45
ADS
ADS
6
ADR15
A15
46
M/IO
M/IO
7
ADR14
A14
47
BE3
BE3
8
DVDDO1
DVDDO1
48
D/C
D/C
9
ADR13
A13
49
RESET
RESET
10
ADR12
A12
50
BE2
BE2
11
DVSSN2
DVSSN2
51
DVSSN5
DVSSN5
12
ADR11
A11
52
BE1
BE1
13
ADR10
A10
53
BE0
BE0
14
ADR9
A9
54
WBACK
BOFF
15
ADR8
A8
55
DAT31
D31
16
ADR7
A7
56
DAT30
D30
17
DVSSN3
DVSSN3
57
DAT29
D29
18
ADR6
A6
58
DAT28
D28
19
ADR5
A5
59
DVSSN6
DVSSN6
20
DVSSPAD
DVSSPAD
60
DAT27
D27
21
ADR4
A4
61
DAT26
D26
22
ADR3
A3
62
DAT25
D25
23
DVSSN4
DVSSN4
63
DAT24
D24
24
ADR2
A2
64
DAT23
D23
25
LBS16
AHOLD
65
DVDDO3
DVDDO3
26
DVDD1
DVDD1
66
DAT22
D22
27
LEADS
EADS
67
DVSSN7
DVSSN7
28
DVSSCLK
DVSSCLK
68
DAT21
D21
29
LCLK
BCLK
69
DVSS2
DVSS2
30
DVDDCLK
DVDDCLK
70
DAT20
D20
31
VLBEN
Am486
71
DAT19
D19
32
BLAST
BLAST
72
DAT18
D18
33
LGNT
HLDA
73
DAT17
D17
34
BRDY
BRDY
74
DVSSN8
DVSSN8
35
DVDDO2
DVDDO2
75
DAT16
D16
36
LREQ
HOLD
76
DAT15
D15
37
DVSS1
DVSS1
77
DAT14
D14
38
LDEV
LDEV
78
DAT13
D13
39
NC
NC
79
NC
NC
40
NC
NC
80
NC
NC
Am79C965A
VESA VL-BUL / LOCAL BUS PIN CROSS-REFERENCE (continued)
Listed by Pin Number
Pin #
VESA VL-Bus Mode
Pin Name
Local Bus Mode
Pin Name
Pin #
VESA VL-Bus Mode
Pin Name
Local Bus Mode
Pin Name
81
NC
NC
121
NC
NC
82
DAT12
D12
122
NC
NC
83
DVSSN9
DVSSN9
123
AVSS1
AVSS1
84
DAT11
D11
124
DO-
DO-
85
DAT10
D10
125
DO+
DO+
86
DAT9
D9
126
AVDD1
AVDD1
87
DAT8
D8
127
DI-
DI-
88
DAT7
D7
128
DI+
DI+
89
DVSSN10
DVSSN10
129
CI-
CI-
90
DAT6
D6
130
CI+
CI+
91
DVDDO4
DVDDO4
131
AVDD2
AVDD2
92
DAT5
D5
132
ADR31
A31
93
DAT4
D4
133
ADR30
A30
94
DAT3
D3
134
ADR29
A29
95
DVDD2
DVDD2
135
DVDD3
DVDD3
96
DAT2
D2
136
DVSS4
DVSS4
97
DVSSN11
DVSSN11
137
ADR28
A28
98
DAT1
D1
138
ADR27
A27
99
DAT0
D0
139
DVSSN13
DVSSN13
100
LREQI/TDO
HOLDI/TDO
140
ADR26
A26
101
LGNTO/TCK
HLDAO/TCK
141
ADR25
A25
102
INTR4/TMS
INTR4/TMS
142
DVDDO5
DVDDO5
103
DVSSN12
DVSSN12
143
ADR24
A24
104
INTR3/TDI
INTR3/TDI
144
ADR23
A23
105
INTR2/EAR
INTR2/EAR
145
ADR22
A22
106
JTAGSEL
JTAGSEL
146
ADR21
A21
107
DVSS3
DVSS3
147
DVSSN14
DVSSN14
108
RXD-
RXD-
148
ADR20
A20
109
RXD+
RXD+
149
ADR19
A19
110
AVDD4
AVDD4
150
ADR18
A18
111
TXP-
TXP-
151
INTR1
INTR1
112
TXD-
TXD-
152
EEDO/LEDPRE3/SRD
EEDO/LEDPRE3/SRD
113
TXP+
TXP+
153
LB/VESA
LB/VESA
114
TXD+
TXD+
154
EEDI/LNKST
EEDI/LNKST
115
AVDD3
AVDD3
155
EESK/LED1/SFBD
EESK/LED1/SFBD
116
XTAL1
XTAL1
156
SLEEP
SLEEP
117
AVSS2
AVSS2
157
EECS
EECS
118
XTAL2
XTAL2
158
DVSSN15
DVSSN15
119
NC
NC
159
SHFBUSY
SHFBUSY
120
NC
NC
160
NC
NC
Am79C965A
27
BLOCK DIAGRAM: 486 LOCAL BUS MODE
BCLK
BE0 BE3
ADS
BRDY
BOFF
BLAST
RDY
RDYRTN
M/IO
D/C
W/R
INTR1 INTR4
HOLD
HOLDI
HLDA
HLDAO
SLEEP
LDEV
EADS
AHOLD
RESET
A2 A31
D0 D31
Am486
LB/VESA
Rcv
FIFO
802.3
MAC
Core
Manchester
Encoder/
Decoder
(PLS) and
AUI Port
486
Local Bus
Interface
Unit
Xmt
FIFO
CI+/
DI+/
XTAL1
XTAL2
DO+/
RXD+/
10BASE-T
MAU
TXD+/
TXP+/
LNKST
FIFO
Control
Microwire,
LED,
and
JTAG
Control
Buffer
Management
Unit
EEDI
EECS
EESK
EEDO
SHFBUSY
LED1-LED3
TCK
TDI
TMS
TDO
18219-2
28
Am79C965A
Am79C971
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
NC
NC
XTAL2
AVSS2
XTAL1
AVDD3
TXD+
TXP+
TXD–
TXP–
AVDD4
RXD+
RXD–
DVSS3
JTAGSEL
INTR2/EAR
INTR3/TDI
DVSSN12
INTR4/TMS
HLDAO/TCK
HOLDI/TDO
D0
D1
DVSSN11
D2
DVDD2
D3
D4
D5
DVDDO4
D6
DVSSN10
D7
D8
D9
D10
D11
DVSSN9
D12
NC
NC
RDYRTN
RDY
W/R
ADS
M/IO
BE3
D/C
RESET
BE2
DVSSN5
BE1
BE0
BOFF
D31
D30
D29
D28
DVSSN6
D27
D26
D25
D24
D23
DVDD03
D22
DVSSN7
D21
DVSS2
D20
D19
D18
D17
DVSSN8
D16
D15
D14
D13
NC
NC
NC
LED2/SRDCLK
DVSSN1
A17
A16
A15
A14
DVDD01
A13
A12
DVSSN2
A11
A10
A9
A8
A7
DVSSN3
A6
A5
DVSSPAD
A4
A3
DVSSN4
A2
AHOLD
DVDD1
EADS
DVSSCLK
BCLK
DVDDCLK
Am486
BLAST
HLDA
BRDY
DVDDO2
HOLD
DVSS1
LDEV
NC
NC
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
NC
SHFBUSY
DVSSN15
EECS
SLEEP
EESK/LED1/SFBD
EEDI/LNKST
LB/VESA
EEDO/LEDPRE3/SRD
INTR1
A18
A19
A20
DVSSN14
A21
A22
A23
A24
DVDDO5
A25
A26
DVSSN13
A27
A28
DVSS4
DVDD3
A29
A30
A31
AVDD2
CI+
CI–
DI+
DI–
AVDD1
DO+
DO–
AVSS1
NC
NC
CONNECTION DIAGRAM: 486 LOCAL BUS MODE
18219-4
Am79C965A
29
PIN DESIGNATIONS: 486 LOCAL BUS MODE
Listed by Pin Number
Pin No.
30
Name
Pin No.
Name
Pin No.
Name
Pin No.
Name
1
NC
41
NC
81
NC
121
NC
2
LED2/SRDCLK
42
RDYRTN
82
D12
122
NC
3
DVSSN1
43
RDY
83
DVSSN9
123
AVSS1
4
A17
44
W/R
84
D11
124
DO–
5
A16
45
ADS
85
D10
125
DO+
6
A15
46
M/IO
86
D9
126
AVDD1
7
A14
47
BE3
87
D8
127
DI–
8
DVDDO1
48
D/C
88
D7
128
DI+
9
A13
49
RESET
89
DVSSN10
129
CI–
10
A12
50
BE2
90
D6
130
CI+
11
DVSSN2
51
DVSSN5
91
DVDDO4
131
AVDD2
12
A11
52
BE1
92
D5
132
A31
13
A10
53
BE0
93
D4
133
A30
14
A9
54
BOFF
94
D3
134
A29
15
A8
55
D31
95
DVDD2
135
DVDD3
16
A7
56
D30
96
D2
136
DVSS4
17
DVSSN3
57
D29
97
DVSSN11
137
A28
18
A6
58
D28
98
D1
138
A27
19
A5
59
DVSSN6
99
D0
139
DVSSN13
20
DVSSPAD
60
D27
100
HOLDI/TDO
140
A26
21
A4
61
D26
101
HLDAO/TCK
141
A25
22
A3
62
D25
102
INTR4/TMS
142
DVDDO5
23
DVSSN4
63
D24
103
DVSSN12
143
A24
24
A2
64
D23
104
INTR3/TDI
144
A23
25
AHOLD
65
DVDDO3
105
INTR2/EAR
145
A22
26
DVDD1
66
D22
106
JTAGSEL
146
A21
27
EADS
67
DVSSN7
107
DVSS3
147
DVSSN14
28
DVSSCLK
68
D21
108
RXD–
148
A20
29
BCLK
69
DVSS2
109
RXD+
149
A19
30
DVDDCLK
70
D20
110
AVDD4
150
A18
31
Am486
71
D19
111
TXP–
151
INTR1
32
BLAST
72
D18
112
TXD–
152
EEDO/LEDPRE3/SRD
33
HLDA
73
D17
113
TXP+
153
LB/VESA
34
BRDY
74
DVSSN8
114
TXD+
154
EEDI/LNKST
35
DVDDO2
75
D16
115
AVDD3
155
EESK/LED1/SFBD
36
HOLD
76
D15
116
XTAL1
156
SLEEP
37
DVSS1
77
D14
117
AVSS2
157
EECS
38
LDEV
78
D13
118
XTAL2
158
DVSSN15
39
NC
79
NC
119
NC
159
SHFBUSY
40
NC
80
NC
120
NC
160
NC
Am79C965A
PIN DESIGNATIONS: 486 LOCAL BUS MODE
Listed by Pin Name
Name
Pin No.
Name
Pin No.
Name
Pin No.
Name
Pin No.
A2
24
BE0
53
D30
56
EESK/LED1/SFBD
155
A3
22
BE1
52
D31
55
HLDA
33
A4
21
BE2
50
DI+
128
HLDAO/TCK
101
A5
19
BE3
47
DI–
127
HOLD
36
A6
18
BLAST
32
DO+
125
HOLDI/TDO
100
A7
16
BOFF
54
DO–
124
INTR1
151
A8
15
BRDY
34
DVDD1
26
INTR2/EAR
105
A9
14
CI+
130
DVDD2
95
INTR3/TDI
104
A10
13
CI–
129
DVDD3
135
INTR4/TMS
102
A11
12
D/C
48
DVDDCLK
30
JTAGSEL
106
A12
10
D0
99
DVDDO1
8
LB/VESA
153
A13
9
D1
98
DVDDO2
35
LDEV
38
A14
7
D2
96
DVDDO3
65
LED2/SRDCLK
2
A15
6
D3
94
DVDDO4
91
M/IO
46
A16
5
D4
93
DVDDO5
142
NC
1
A17
4
D5
92
DVSS1
37
NC
39
A18
150
D6
90
DVSS2
69
NC
40
A19
149
D7
88
DVSS3
107
NC
41
A20
148
D8
87
DVSS4
136
NC
79
A21
146
D9
86
DVSSCLK
28
NC
80
A22
145
D10
85
DVSSN1
3
NC
81
A23
144
D11
84
DVSSN2
11
NC
119
A24
143
D12
82
DVSSN3
17
NC
120
A25
141
D13
78
DVSSN4
23
NC
121
A26
140
D14
77
DVSSN5
51
NC
122
A27
138
D15
76
DVSSN6
59
NC
160
A28
137
D16
75
DVSSN7
67
RDY
43
A29
134
D17
73
DVSSN8
74
RDYRTN
42
A30
133
D18
72
DVSSN9
83
RESET
49
A31
132
D19
71
DVSSN10
89
RXD+
109
ADS
45
D20
70
DVSSN11
97
RXD–
108
AHOLD
25
D21
68
DVSSN12
103
SHFBUSY
159
Am486
31
D22
66
DVSSN13
139
SLEEP
156
AVDD1
126
D23
64
DVSSN14
147
TXD+
114
AVDD2
131
D24
63
DVSSN15
158
TXD–
112
AVDD3
115
D25
62
DVSSPAD
20
TXP+
113
AVDD4
110
D26
61
EADS
27
TXP–
111
AVSS1
123
D27
60
EECS
157
W/R
44
AVSS2
117
D28
58
EEDI/LNKST
154
XTAL1
116
BCLK
29
D29
57
EEDO/LEDPRE3/SRD
152
XTAL2
118
Am79C965A
31
PIN DESIGNATIONS: 486 LOCAL BUS MODE
Listed by Group
Pin Function
Pin Name
Type
Driver
No. of Pins
486/386DX Local Bus Interface
A2–A31
Address Bus
IO
TS
30
ADS
Address Status
I/O
TS
1
AHOLD
Address Hold
I
1
Am486
Am486 Mode Select
I
1
BCLK
Bus Clock
I
1
BE0-BE3
Byte Enable
I/O
TS
4
BLAST
Burst Last
O
TS
1
BOFF
Backoff
I
BRDY
Burst Ready
I/O
TS
1
D/C
Data/Control Select
I/O
TS
1
D0–D31
Data Bus
I/O
TS
32
TS
1
1
EADS
External Address Strobe
O
HLDA
Hold Acknowledge
I
HLDAO
Hold Acknowledge Out
I/O
TS
1
HOLD
Hold Request
O
O8
1
HOLDI
Hold Request In
I/O
TS
1
INTR1
Interrupt Number 1
O
TS
1
INTR2
Interrupt Number 2
I/O
TS
1
INTR3
Interrupt Number 3
I/O
TS
1
INTR4
Interrupt Number 4
I/O
TS
1
JTAGSEL
JTAG Select
LB/VESA
Local Bus/VESA VL-Bus Select pin
I
LDEV
Local Device
O
O4
1
M/IO
Memory/I/O Select
I/O
TS
1
RDY
Ready
O
TS
1
RDYRTN
Ready Return
I
W/R
Write/Read Select
I/O
TS
1
EECS
Microwire Serial PROM Chip Select
O
O8
1
EEDI/LNKST
Microwire Serial EEPROM Data In/Link Status
O
LED
1
EEDO/LEDPRE3
Microwire Address PROM Data Out/LED3 predriver
I/O
LED
1
EESK/LED1
Microwire Serial PROM Clock/LED1
O
LED
1
LED2
LED Output Number 2
O
LED
RESET
Reset
I
SHFBUSY
Shift Busy (for external EEPROM-programmable logic)
O
SLEEP
Sleep Mode
I
1
XTAL1
Crystal Input
I
1
XTAL2
Crystal Output
O
1
1
I
1
1
1
Board Interface
32
Am79C965A
1
1
O8
1
PIN DESIGNATIONS: 486 LOCAL BUS MODE (continued)
Listed by Group
Pin Name
Pin Function
Type
Driver
No. of
Pins
Attachment Unit Interface (AUI)
CI+/CI–
AUI Collision Differential Pair
I
2
DI+/DI–
AUI Data In Differential Pair
I
2
DO+/DO–
AUI Data Out Differential Pair
O
DO
2
Twisted-Pair Transceiver Interface (10BASE-T)
RXD+/RXD–
Receive Differential Pair
I
TXD+/TXD–
Transmit Differential Pair
O
TDO
2
2
TXP+/TXP–
Transmit Predistortion Differential Pair
O
TPO
2
LNKST/EEDI
Link Status/Microwire Serial EEPROM Data In
O
LED
1
1
IEEE 1149.1 Test Access Port Interface (JTAG)
TCK
Test Clock
I/O
TS
TDI
Test Data In
I/O
TS
1
TDO
Test Data Out
I/O
TS
1
TMS
Test Mode Select
I/O
TS
1
External Address Detection Interface (EADI)
EAR
External Address Reject Low
I/O
TS
1
SRD
Serial Receive Data
I/O
TS
1
SRDCLK
Serial Receive Data Clock
I/O
TS
1
SFBD
Start Frame—Byte Delimiter
O
LED
1
AVDD
Analog Power
P
4
AVSS
Analog Ground
P
2
Power Supplies
DVDD
Digital Power
P
3
DVDDCLK
Digital Power Clock
P
1
DVDDO
I/O Buffer Digital Power
P
5
DVSS
Digital Ground
P
4
DVSSCLK
Digital Ground Clock
P
1
DVSSN
I/O Buffer Digital Ground
P
15
DVSSPAD
Digital Ground Pad
P
1
Am79C965A
33
PIN DESIGNATIONS: 486 LOCAL BUS MODE
Driver Type
Table 9. Output Driver Types
Name
IOL(mA)
IOL(mA)
pF
TS
Tri-State
8
-0.4
50
O8
Totem Pole
8
-0.4
50
O4
Totem Pole
4
-0.4
OD
Open Drain
8
LED
LED
12
34
Type
Table 10. Pins with Pullups
-0.4
Signal
Pullup
TDI
≥ 10 KΩ
50
TMS
≥ 10 KΩ
50
TCK
≥ 10 KΩ
50
Am79C965A
PIN DESCRIPTION: 486 LOCAL
BUS MODE
Configuration Pins
JTAGSEL
The JTAGSEL pin may be tied directly to VDD or VSS. A
series resistor may be used but is not necessary.
LB/VESA
JTAG Function Select
Input
The value of this pin will asynchronously select
between JTAG Mode and Multi-Interrupt Mode.
The value of this pin will asynchronously affect the
function of the JTAG–INTR–Daisy chain arbitration
pins, regardless of the state of the RESET pin and
regardless of the state of the BCLK pin. If the value is
a “1”, then the PCnet-32 controller will be programmed
for JTAG mode. If the value is a “0”, then the PCnet-32
controller will be programmed for Multi-Interrupt Mode.
When programmed for JTAG mode, four pins of the
PCnet-32 controller will be configured as a JTAG (IEEE
1149.1) Test Access Port. When programmed for MultiInterrupt Mode, two of the JTAG pins will become
interrupts and two JTAG pins will be used for daisy
chain arbitration support. Table 11 below outlines the
pin changes that will occur by programming the
JTAGSEL pin.
Table 11. JTAG Pin Changes
Pin
JTAGSEL=1
JTAG Mode
JTAGSEL=0
Multi-Interrupt Mode
HLDAO/TCK
TCK
HLDAO
HOLDI/TDO
TDO
HOLDI
INTR3/TDI
TDI
INTR3
INTR4/TMS
TMS
INTR4
Local Bus/VESA VL-Bus Select
Input
The value of this pin will asynchronously determine the
operating mode of the PCnet-32 controller, regardless
of the state of RESET and regardless of the state of the
BCLK pin. If the LB / VESA pin is tied to V DD, then the
PCnet-32 controller will be programmed for Local Bus
Mode. If the LB/VESA pin is tied to VSS, then the PCnet-32
controller will be programmed for VESA VL-Bus Mode.
Note that the setting of LB/VESA determines the functionality of the following pins (names in parentheses
are pins in the VESA VL-Bus Mode): Am486 (VLBEN),
RESET (RESET), AHOLD (LBS16), HOLD (LREQ),
HLDA(LGNT), HOLDI (LREQI), and HLDAO (LGNTO).
Am486
Am486 Mode Select
Input
The Am486 pin should be tied directly to V SS. A series
resistor may be used but is not necessary.
Note: This pin is used to enable bursing in the VESA
VL-Bus mode when the LB/VESA pin has been tied to
VSS. See the pin description for the VLBEN pin in the
VESA VL-Bus Mode section.
Configuration Pin Settings Summary
Table 12 shows the possible pin configurations that
may be i nvo ked wi th t he P Cne t- 32 c on tro ll er
configuration pins.
Table 12. Configuration Pin Settings
LB/VESA
Am486/Am386
JTAGSEL
Mode Selected
0
X*
0
VL Bus mode with 4 interrupts and daisy chain arbitration
0
X*
1
VL Bus mode with 2 interrupts and JTAG
1
0
0
Am486 mode with 4 interrupts and daisy chain arbitration
1
0
1
Am486 mode with 2 interrupts and JTAG
1
1
X
Reserved
*X = Don’t care
Am79C965A
35
Table 13. Pin Connections to Power/Ground
Pin No
Supply
Strapping
Resistive
Connection
to Supply
Recommended
Resistor Size
LED2/SRDCLK
2
Required
Required
324 Ω in series with LED, or 10 KΩ
without LED
AHOLD
25
Optional
Required
10 KΩ
Am486
31
Required
Optional
NA
BOFF
54
Optional
Required
10 KΩ
HOLDI/TDO
100
Optional
Required
10 KΩ
JTAGSEL
106
Required
Optional
NA
EEDO/LEDPRE3/SRD
152
Optional
Required
10 KΩ
LB/VESA
153
Required
Optional
NA
EEDI/LNKST
154
Optional
Required
324 Ω in series with LED, or 10 KΩ
without LED
EESK/LED1/SFBD
155
Required
Required
324 Ω in series with LED, or 10 KΩ
without LED
SLEEP
156
Optional
Required
10 KΩ
—
Optional
Required
10 KΩ
Pin Name
All Other Pins
Pin Connections to VDD or VSS
ADS
Several pins may be connected to V DD or V SS for
various application options. Some pins are required to
be connected to V DD or V SS in order to set the
controller into a particular mode of operation, while
other pins might be connected to VDD or VSS if that
pin’s function is not implemented in a specific
application. Table 13 shows which pins require a
connection to V DD or V SS , and which pins may
optionally be connected to VDD or VSS because the
application does not support that pin’s function. The
table also shows whether or not the connections need
to be resistive.
Address Status
Local Bus Interface
A2–A31
Address Bus
Address information which is stable during a bus
operation, regardless of the source. When the
PCnet-32 controller is Current Master, A1–A31 will be
driven. When the PCnet-32 controller is not Current
Master, the A2–A31 lines are continuously monitored
to determine if an address match exists for I/O slave
transfers.
Some portion of the Address Bus will be floated at the
time of an address hold operation, which is signaled
with the AHOLD pin. The number of Address Bus pins
to be floated will be determined by the value of the
Cache Line Length register (BCR18, bits 15-11).
36
When driven LOW, this signal indicates that a valid bus
cycle definition and address are available on the M/IO,
D/C, W/R and A2–A31 pins of the local bus interface.
At that time, the PCnet-32 controller will examine the
combination of M/IO, D/C, W/R, and the A2–A31 pins
to determine if the current access is directed toward the
PCnet-32 controller.
ADS will be driven LOW when the PCnet-32 controller
performs a bus master access on the local bus.
AHOLD
Address Hold
Input/Output
Input/Output
Input
This pin is always an input. The PCnet-32 controller will
put some portion of the address bus into a high impedance state whenever this signal is asserted. AHOLD
may be asserted by an external cache controller when
a cache invalidation cycle is being performed. AHOLD
may be asserted at any time, including times when the
PCnet-32 controller is the active bus master. Note that
this pin is multiplexed with a VESA VL function: LBS16.
Some portion of the Address Bus will be floated at the
time of an address hold operation, which is signaled
with the AHOLD pin. The number of Address Bus pins
to be floated will be determined by the value of the
Cache Line Length (CLL) register (BCR18, bits 15-11)
as shown in Table 14.
Am79C965A
BRDY
Table 14. CLL Value and Floating Address Pins
CLL Value
Burst Ready
Floated Portion of Address
Bus During AHOLD
00000
None
00001
A31–A2
00010
A31–A3
00011
Reserved CLL Value
00100
A31–A4
00101–00111
Reserved CLL Values
01000
A31–A5
01001–01111
Reserved CLL Values
10000
A31–A6
10001–11111
Reserved CLL Values
BRDY functions as an input to the PCnet-32 controller
during bus master cycles. When BRDY is asserted during a master cycle, it indicates to the PCnet-32
controller that the target device is accepting burst
transfers. It also serves the same function as RDYRTN
does for non-burst accesses. That is, it indicates that
the target device has accepted the data on a master
write cycle, or that the target device has presented
valid data onto the bus during master read cycles.
If BRDY and RDYRTN are sampled active in the same
cycle, then RDYRTN takes precedence, causing the
next transfer cycle to begin with a T1 cycle.
BRDY functions as an output during PCnet-32
controller slave cycles and is always driven inactive
(HIGH).
BCLK
Bus Clock
Input
Clock input that provides timing edges for all interface
signals. This clock is used to drive the system bus interface and the internal buffer management unit. This
clock is NOT used to drive the network functions.
BE0–BE3
Byte Enable
Input/Output
These signals indicate which bytes on the data bus are
active during read and write cycles. When BE3 is
active, the byte on D31–D24 is valid. BE2–BE0 active
indicate valid data on pins D23–D16, D15–D8, D7–D0,
respectively. The byte enable signals are outputs for
bus master and inputs for bus slave operations.
BLAST
BRDY is floated if the PCnet-32 controller is not being
accessed as the current slave device on the local bus.
D/C
Data/Control Select
Input/Output
During slave accesses to the PCnet-32 controller, the
D/C pin, along with M/IO and W/R, indicates the type of
cycle that is being performed. PCnet-32 controller will
only respond to local bus accesses in which D/C is
driven HIGH by the local bus master.
During PCnet-32 controller bus master accesses, the
D/C pin is an output and will always be driven HIGH.
D/C is floated if the PCnet-32 controller is not the
current master on the local bus.
D0–D31
Burst Last Output
When the BLAST signal is asserted, then the next time
that BRDY or RDYRTN is asserted, the burst cycle is
complete.
BOFF
Backoff
Input/Output
Input
BOFF is monitored as an input during Bus Master accesses. When PCnet-32 controller is current local bus
master, it will float all appropriate bus mastering signals
within 1 clock period of the assertion of BOFF. When
BOFF is de-asserted, PCnet-32 controller will restart
any accesses that were suspended due to the
assertion of BOFF and then will proceed with other
scheduled accesses, if any. Register access cannot be
performed to the PCnet-32 device while BOFF is
asserted.
Data Bus
Input/Output
Used to transfer data to and from the PCnet-32 controller to system resources via the local bus. D31–D0 are
driven by the PCnet-32 controller when performing bus
master writes and slave read operations. Data on D31–
D0 is latched by the PCnet-32 controller when
perfor mi ng bus master reads and sl ave wr ite
operations.
The PCnet-32 controller will always follow Am386DX
byte lane conventions. This means that for word and
byte accesses in which PCnet-32 controller drives the
data bus (i.e. master write operations and slave read
operations) the PCnet-32 controller will produce duplicates of the active bytes on the unused half of the 32bit data bus. Table 15 illustrates the cases in which
duplicate bytes are created.
Am79C965A
37
Table 15. Byte Duplication on Data Bus
BE3BE0
DAT
[31:24]
DAT
[23:16]
DAT
[15:8]
DAT
[7:0]
1110
Undef
Undef
Undef
A
1101
Undef
Undef
A
Undef
1011
Undef
A
Undef
Copy A
0111
A
Undef
Copy A
Undef
1100
Undef
Undef
B
A
1001
Undef
C
B
Undef
0011*
D
C
Copy D
Copy C
1000
Undef
C
B
A
0001
D
C
B
Undef
0000
D
C
B
A
* Note: Byte duplication does not apply during a LBS16
access. See Table 8.
EADS
External Address Strobe
Output
During master write accesses in which Generate
Cache Invalidation Cycles mode has been selected,
the EADS pin will be asserted as part of the PCnet-32
controller cache invalidation cycle. Cache invalidation
cycles will occur as often as a new cache line is
reached. The cache line size can be set with the cache
line length bits of BCR18 (bits [15:11]).
HLDA
Bus Hold Acknowledge
Input
An additional local bus master may daisy-chain its
HLDA signal through the PCnet-32 controller HLDAO
pin. The PCnet-32 controller will deliver a HLDAO
signal to the additional local bus master whenever the
PCnet-32 controller receives a HLDA from the CPU,
but is not simultaneously requesting the bus internally.
The second local bus master must connect its HOLD
output to the HOLDI input of the PCnet-32 controller in
order to complete the local bus daisy-chain arbitration
control.
When SLEEP is not asserted, daisy chain arbitration
signals that pass through the PCnet-32 controller will
experience a one-clock delay from input to output (i.e.
HOLDI to HOLD and HLDA to HLDAO).
While SLEEP is asserted (either in snooze mode or
coma mode), if the PCnet-32 controller is configured
for a daisy chain (HOLDI and HLDAO signals have
been selected with the JTAGSEL pin), then the system
arbitration signal HLDA will be passed directly to the
daisy-chain signal HLDAO without experiencing a oneclock delay. However, some combinatorial delay will be
introduced in this path.
Note that this pin changes polarity when VL mode has
been selected (see pin description of LGNTO in VESA
VL-Bus Interface section).
HOLD
Bus Hold Request
Output
PCnet-32 controller asserts the HOLD pin as a signal
that it wishes to become the local bus master. HOLD is
active high. Once asserted, HOLD remains active until
HLDA has become active, independent of subsequent
assertion of SLEEP or setting of the STOP bit or
access to the S_RESET port (offset 14h).
PCnet-32 controller examines the HLDA signal to
determine when it has been granted ownership of the
bus. HLDA is active HIGH.
Note t hat this pin changes polarity when the VL mode
is selected (see pin description of LREQ in VESA VLBus Interface section).
When HLDA is asserted and HOLD is being asserted
by the PCnet-32 controller, the PCnet-32 controller
assumes ownership of the local bus. However, if the
PCnet-32 controller is asser ting HOLD because
HOLDI is asserted (as in a daisy chain arbitration), then
PCnet-32 controller will assert HLDAO and will not
assume ownership of the local bus.
HOLDI
Note that it changes polarity when the VL mode is selected (see pin description of LGNT in VESA VL-Bus
Interface section).
HLDAO
Bus Hold Acknowledge Out
Output
This signal is multiplexed with the TCK pin, and is available only when the Multi-Interrupt mode has been selected with the JTAGSEL pin.
38
Bus Hold Request In
Input
This signal is multiplexed with the TDO pin, and is
available only when the Multi-Interrupt mode has been
selected with the JTAGSEL pin.
An additional local bus master may daisy-chain its bus
hold request signal through the PCnet-32 controller
HOLDI pin. The PCnet-32 controller will convey the
HOLDI request to the CPU via the PCnet-32 controller
HOLD output. The second local bus master must connect its HLDA input to the HLDAO output of the
PCnet-32 controller in order to complete the local bus
daisy-chain arbitration control.
When SLEEP is not asserted, daisy chain arbitration
signals that pass through the PCnet-32 controller will
Am79C965A
experience a one-clock delay from input to output (i.e.
HOLDI to HOLD and HLDA to HLDAO).
programmed for level-sensitive or edge-sensitive
operation.
While SLEEP is asserted (either in snooze mode or
coma mode), if the PCnet-32 controller is configured
for a daisy chain (HOLDI and HLDAO signals have
been selected with the JTAGSEL pin), then the daisychain signal HOLDI will be passed directly to the
system arbitration signal HOLD without experiencing a
one-clock delay. However, some combinatorial delay
will be introduced in this path.
PCnet-32 controller interrupt pins will be floated at
H_RESET and will remain floated until either the
EEPROM has been successfully read, or, following an
EEPROM read failure, a Software Relocatable Mode
sequence has been successfully executed.
If Multi-Interrupt mode has been selected and the
daisy-chain arbitration feature is not used, then the
HOLDI input should be tied to VSS through a resistor.
LDEV is driven by the PCnet-32 controller when it
recognizes an access to PCnet-32 controller I/O space.
Such recognition is dependent upon a valid sampled
ADS strobe plus valid M/IO, D/C and A31–A5 values.
Note that this pin changes polarity when VL mode has
been selected (see pin description of LREQI in VESA
VL-Bus Interface section).
INTR1–INTR4
Interrupt Request
Output
An attention signal which indicates that one or more of
the following status flags is set: BABL, MISS, MERR,
RINT, IDON, MFCO, RCVCCO, TXSTRT, or JAB. Each
of these status flags has a mask bit which allows for
suppression of INTR assertion. These flags have the
meaning shown in Table 16.
Table 16. Status Flags
LDEV
Local Device
Output
M/IO
Memory I/O Select
Input/Output
During slave accesses to the PCnet-32 controller, the
M/IO pin, along with D/C and W/R, indicates the type of
cycle that is being performed. PCnet-32 controller will
only respond to local bus accesses in which M/IO is
sampled as a zero by the PCnet-32 controller.
During PCnet-32 controller bus master accesses, the
M/IO pin is an output and will always be driven high.
M/IO is floated if the PCnet-32 controller is not the current master on the local bus.
RESET
BABL
Babble (CSR0, bit 14)
MISS
Missed Frame (CSR0, bit 12)
MERR
Memory Error (CSR0, bit 11)
RINT
Receive Interrupt (CSR0, bit 10)
IDON
Initialization Done (CSR0, bit 8)
MFCO
Missed Packet Count Overflow
(CSR4, bit 9)
RCVCCO
Receive Collision Count Overflow
(CSR4, bit 5)
Note that this pin changes polarity when VL mode has
been selected (see pin description of RESET in VESA
VL-Bus Interface section).
TXSTRT
Transmit Start (CSR4, bit 3)
RDY
JAB
Jabber (CSR4, bit 1)
Ready
System Reset
Input
When RESET is asserted high and the LB/VESA pin
has been tied to VDD, then the PCnet-32 controller
perfor ms an inter nal system reset of the type
H_RESET (HARDWARE_ RESET). The RESET pin
must be held for a minimum of 30 BCLK periods. While
in the H_RESET state, the PCnet-32 controller will float
or de-assert all outputs.
Output
Note that there are four possible interrupt pins,
depending upon the mode that has been selected with
the JTAGSEL pin. Only one interrupt pin may be used
at one time. The active interrupt pin is selected by programming the interrupt select register (BCR21). The
default setting of BCR121will select interrupt INTR1 as
the active interrupt. Note that BCR21 is EEPROMprogrammable. Inactive interrupt pins are floated.
RDY functions as an output from the PCnet-32 controller during PCnet-32 controller slave cycles. During
PCnet-32 controller slave read cycles, RDY is asserted
to indicate that valid data has been presented on the
data bus. During PCnet-32 controller slave write
cycles, RDY is asserted to indicate that the data on the
data bus has been internally latched. RDY is asserted
for one BCLK period. RDY is then driven high for onehalf of one clock period before being released.
The polarity of the interrupt signal is determined by the
INTLEVEL bit of BCR2. The interrupt pins may be
RDY is floated if the PCnet-32 controller is not the current slave on the local bus.
Am79C965A
39
In systems where both RDY and RDYRTN (or equivalent) signals are provided, RDY must NOT be tied to
RDYRTN. Most systems now provide for a local device
ready input to the memory controller that is separate
from the CPU READY signal. This second READY signal is usually labeled as READYIN. This signal should
be connected to the PCnet-32 controller RDY signal.
The CPU READY signal should be connected to the
PCnet-32 controller RDYRTN pin.
In systems where only one READY signal is provided,
then RDY may be tied to RDYRTN.
RDYRTN
Ready Return
Input
RDYRTN functions as an input to the PCnet-32 control
ler. RDYRTN is used to terminate all master accesses
performed by the PCnet-32 controller, except that linear burst
transfers may also be terminated with the BRDY signal.
RDYRTN is used to terminate slave read accesses to
PCnet-32 controller I/O space.
When asser ted dur ing slave read accesses to
PCnet-32 controller I/O space, RDYRTN indicates that
the bus mastering device has seen the RDY that was
generated by the PCnet-32 controller and has
accepted the PCnet-32 controller slave read data.
Therefore, PCnet-32 controller will hold slave read data
on the bus until it synchronously samples the RDYRTN
input as active low. The PCnet-32 controller will not
hold RDY valid asserted during this time. The duration
of the RDY pulse generated by the PCnet-32 controller
will always be a single BCLK cycle.
RDYRTN is ignored during slave write accesses to
PCnet-32 controller I/O space. Slave write accesses to
PCnet-32 controller I/O space are considered terminated by the PCnet-32 controller at the end of the cycle
during which the PCnet-32 controller issues an active
RDY.
In systems where both a RDY and RDYRTN (or equivalent) signals are provided, then RDY must not be tied to
RDYRTN. Most systems now provide for a local device
ready input to the memory controller that is separate
from the CPU READY signal. This second READY signal is usually labeled as READYIN. This signal should
be connected to the PCnet-32 controller RDY signal.
The CPU READY signal should be connected to the
PCnet-32 controller RDYRTN pin.
In systems where only one READY signal is provided,
then the PCnet-32 controller RDY output may be tied to
the PCnet-32 controller RDYRTN input.
W/R
Write/Read Select Input/Output
During slave accesses to the PCnet-32 controller, the
W/R pin, along with D/C and M/IO, indicates the type of
cycle that is being performed.
40
During PCnet-32 controller bus master accesses, the
W/R pin is an output.
W/R is floated if the PCnet-32 controller is not the
current master on the local bus.
Board Interface
LED1
LED1
Output
This pin is shared with the EESK function. When
operating as LED1, the function and polarity on this pin
are programmable through BCR5. The LED1 output
from the PCnet-32 controller is capable of sinking the
necessary 12 mA of current to drive an LED directly.
The LED1 pin is also used during EEPROM Autodetection to determine whether or not an EEPROM is
present at the PCnet-32 controller microwire interface.
At the trailing edge of RESET, this pin is sampled to
determine the value of the EEDET bit in BCR19. A
sampled HIGH value means that an EEPROM is
present, and EEDET will be set to ONE. A sampled
LOW value means that an EEPROM is not present, and
EEDET will be set to ZERO. See the “EEPROM Autodetection” section for more details.
If no LED circuit is to be attached to this pin, then a pullup or pull-down resistor must be attached instead, in
order to resolve the EEDET setting.
LED2
LED2
Output
This pin is shared with the SRDCLK function. When
operating as LED2, the function and polarity on this pin
are programmable through BCR6. The LED2 output
from the PCnet-32 controller is capable of sinking the
necessary 12 mA of current to drive an LED directly.
This pin also selects address width for Software
Relocatable Mode. When this pin is HIGH during
Software Relocatable Mode, then the device will be
programmed to use 32 bits of addressing while
snooping accesses on the bus during Software
Relocatable Mode. When this pin is LOW during
Software Relocatable Mode, then the device will be
programmed to use 24 bits of addressing while
snooping accesses on the bus during Software
Relocatable Mode. The upper 8 bits of address will be
assumed to match during the snooping operation when
LED2 is LOW. The 24-bit addressing mode is intended
for use in systems that employ the GPSI signals. For
more information on the GPSI function see section
General Purpose Serial Interface.
If no LED circuit is to be attached to this pin, then a pull
up or pull down resistor must be attached instead, in
order to resolve the Software Relocatable Mode address setting.
Am79C965A
LEDPRE3
LEDPRE3
SLEEP
Output
This pin is shared with the EEDO function. When operating
as LEDPRE3, the function and polarity on this pin are
programmable through BCR7. This signal is labeled as LED
“ PRE” 3 because of the multi-function nature of this pin. If an
LED circuit were directly attached to this pin, it would create
an IOL requirement that could not be met by the serial
EEPROM that would also be attached to this pin. Therefore,
if this pin is to be used as an additional LED output while an
EEPROM is used in the system, then buffering is required
between the LEDPRE3 pin and the LED circuit. If no
EEPROM is included in the system design, then the
LEDPRE3 signal may be directly connected to an LED
without buffering. The LEDPRE3 output from the PCnet-32
controller is capable of sinking the necessary 12 mA of
current to drive an LED in this case. For more details
regarding LED connection, see the section on LEDs.
LNKST
LINK Status
Output
This pin provides 12 mA for driving an LED. It indicates
an active link connection on the 10BASE-T interface.
The signal is programmable through BCR4. Note that
this pin is multiplexed with the EEDI function.
This pin remains active in snooze mode.
SHFBUSY
Shift Busy
Output
The function of the SHFBUSY signal is to indicate
when the last byte of the EEPROM contents has been
shifted out of the EEPROM on the EEDO signal line.
This information is useful for external EEPROMprogrammable registers that do not use the microwire
protocol, as is described herein: When the PCnet-32
controller is performing a serial read of the EEPROM
through the microwire interface, the SHFBUSY signal
will be driven HIGH. SHFBUSY can serve as a serial
shift enable to allow the EEPROM data to be serially
shifted into an external device or series of devices. The
SHFBUSY signal will remain actively driven HIGH until
the end of the EEPROM read operation. If the
EEPROM checksum was verified, then the SHFBUSY
signal will be driven LOW at the end of the EEPROM
read operation. If the EEPROM checksum verification
failed, then the SHFBUSY signal will remain HIGH.
This function effectively demarcates the end of a
successful EEPROM read operation and therefore is
useful as a programmable-logic low-active output
enable signal. For more details on external EEPROMprogrammable registers, see the EEPROM Microwire
Access section under Hardware Access.
This pin can be controlled by the host system by writing
to BCR19, bit 3 (EBUSY).
Sleep
Input
When SLEEP input is asserted (active LOW), the
PCnet-32 controller performs an internal system reset
and then proceeds into a power savings mode. (The
reset operation caused by SLEEP assertion will not affect BCR registers.) All outputs will be placed in their
nor mal reset condition. During sleep mode, all
PCnet-32 controller inputs will be ignored except for the
SLEEP pin itself. De-assertion of SLEEP results in
wake-up. The system must refrain from starting the
network operations of the PCnet-32 controller for 0.5
seconds following the de-assertion of the SLEEP
signal in order to allow internal analog circuits to
stabilize.
Both BCLK and XTAL1 inputs must have valid clock
signals present in order for the SLEEP command to
take effect.
If SLEEP is asserted while LREQ/HOLD is asserted,
then the PCnet-32 controller will perform an internal
system reset and then wait for the assertion of LGNT/
HLDA. When LGNT/HLDA is asserted, the LREQ/
HOLD signal will be de-asserted and then the PCnet32 controller will proceed to the power savings mode.
Note that the internal system reset will not cause the
HOLD/LREQ signal to be de-asserted.
The SLEEP pin should not be asserted during power
supply ramp-up. If it is desired that SLEEP be asserted
at power up time, then the system must delay the
assertion of SLEEP until three BCLK cycles after the
completion of a valid pin RESET operation.
XTAL1–XTAL2
Crystal Oscillator Inputs
Input/Output
The crystal frequency determines the network data
rate. The PCnet-32 controller supports the use of
quar tz crystals to generate a 20 MHz frequency
compatible with the ISO 8802-3 (IEEE/ANSI 802.3)
network frequency tolerance and jitter specifications.
See the section External Crystal Characteristics (in
section Manchester Encoder/ Decoder) for more detail.
The network data rate is one-half of the crystal frequency. XTAL1 may alternatively be driven using an
external CMOS level source, in which case XTAL2
must be left unconnected. Note that when the
PCnet-32 controller is in coma mode, there is an
internal 22 KW resistor from XTAL1 to ground. If an
external source drives XTAL1, some power will be
consumed driving this resistor. If XTAL1 is driven LOW
at this time power consumption will be minimized. In
this case, XTAL1 must remain active for at least 30
cycles after the assertion of SLEEP and de-assertion
of HOLD.
Am79C965A
41
Microwire EEPROM Interface
EESK
EEPROM Serial Clock
Output
The EESK signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. This pin is
designed to directly interface to a serial EEPROM that
uses the microwire interface protocol. EESK is connected to the microwire EEPROM’s Clock pin. It is controlled by either the PCnet-32 controller directly during
a read of the entire EEPROM, or indirectly by the host
system by writing to BCR19, bit 1.
EESK can be used during programming of external
EEPROM-programmable registers that do not use the
microwire protocol as follows:
When the PCnet-32 controller is performing a serial
read of the IEEE Address EEPROM through the
microwire interface, the SHFBUSY signal will serve as
a serial shift enable to allow the EEPROM data to be
serially shifted into an external device or series of devices. This same signal can be used to gate the output
of the programmed logic to avoid the problem of
releasing intermediate values to the rest of the system
board logic. The EESK signal can serve as the clock,
and EEDO will serve as the input data stream to the
programmable shift register.
Input
The EEDO signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. This pin is
designed to directly interface to a serial EEPROM that
uses the microwire interface protocol. EEDO is connected to the microwire EEPROM’s Data Output pin. It
is controlled by the EEPROM during reads. It may be
read by the host system by reading BCR19, bit 0.
EEDO can be used during programming of external
EEPROM-programmable registers that do not use the
microwire protocol as follows:
When the PCnet-32 controller is performing a serial
read of the IEEE Address EEPROM through the
microwire interface, the SHFBUSY signal will serve as
a serial shift enable to allow the EEPROM data to be
serially shifted into an external device or series of devices. This same signal can be used to gate the output
of the programmed logic to avoid the problem of
releasing intermediate values to the rest of the system
board logic. The EESK signal can serve as the clock,
and EEDO will serve as the input data stream to the
programmable shift register.
EEPROM Data In
The EEDI signal is used to access the external ISO
8802-3 (IEEE/ANSI 802.3) address PROM. EEDI
functions as an output. This pin is designed to directly
interface to a serial EEPROM that uses the microwire
interface protocol. EEDI is connected to the microwire
EEPROM’s Data Input pin. It is controlled by either the
PCnet-32 controller during command portions of a read
of the entire EEPROM, or indirectly by the host system
by writing to BCR19, bit 0.
Attachment Unit Interface
CI±
Collision In
Input
A differential input pair signaling the PCnet-32
controller that a collision has been detected on the
network media, indicated by the CI± inputs being
driven with a 10 MHz pattern of sufficient amplitude
and pulse width to meet ISO 8802-3 (IEEE/ANSI
802.3) standards. Operates at pseudo ECL levels.
Data In
Input
A differential input pair to the PCnet-32 controller
carrying Manchester encoded data from the network.
Operates at pseudo ECL levels.
DO±
Data Out Output
A differential output pair from the PCnet-32 controller
for transmitting Manchester encoded data to the
network. Operates at pseudo ECL levels.
Twisted Pair Interface
RXD±
10BASE-T Receive Data
Input
10BASE-T port differential receivers.
TXD±
10BASE-T Transmit Data
Output
10BASE-T port differential drivers.
TXP±
10BASE-T Pre-distortion Control
Output
The function of the EECS signal is to indicate to the
microwire EEPROM device that it is being accessed.
42
Output
Output
These outputs provide transmit predistortion control in
conjunction with the 10BASE-T port differential drivers.
EECS
EEPROM Chip Select
EEDI
DI±
EEDO
EEPROM Data Out
The EECS signal is active high. It is controlled by either
the PCnet-32 controller during a read of the entire
EEPROM, or indirectly by the host system by writing to
BCR19, bit 2.
Am79C965A
External Address Detection Interface
General Purpose Serial Interface
The EADI interface is enabled through BCR2, bit 3
(EADISEL).
The GPSI interface is selected through the PORTSEL
bits of the Mode register (CSR15) and enabled through
the TSTSHDW[1] bit (BCR18) or the GPSIEN bit
(CSR124).
EAR
External Address Reject Low Input
Note that this pin is multiplexed with the INTR2 pin.
Note that when GPSI test mode is invoked, slave address decoding must be restricted to the lower 24 bits
of the address bus by setting the IOAW24 bit in BCR2
and by pulling LED2 LOW during Software Reloactable
Mode. The upper 8 bits of the address bus will always
be considered matched when examining incoming I/O
addresses. During master accesses while in GPSI
mode, the PCnet-32 controller will not drive the upper
8 bits of the address bus with address information. See
the GPSI section for more detail.
SFBD
TXDAT
An EADI input signal. The incoming frame will be
checked against the internally active address detection
mechanisms and the result of this check will be OR’d
with the value on the EAR pin. The EAR pin is defined
as REJECT.
See the EADI section for details regarding the function
and timing of this signal.
Start Frame–Byte Delimiter
Output
Start Frame–Byte Delimiter Enable. EADI output
signal. An initial rising edge on this signal indicates that
a start of frame delimiter has been detected. The serial
bit stream will follow on the SRD signal, commencing
with the destination address field. SFBD will go high for
4 bit times (400 ns) after detecting the second “1” in the
SFD (Start of Frame Delimiter) of a received frame.
SFBD will subsequently toggle every 400 ns (1.25 MHz
frequency) with each rising edge indicating the first bit
of each subsequent byte of the received serial bit
s t r e a m . S F B D w i l l b e i n a c t i ve d u r i n g f r a m e
transmission.
Note that this pin is multiplexed with the LED1 pin.
TXDAT is an output, providing the serial bit stream for
transmission, including preamble, SFD data and FCS
field, if applicable.
Note that the TxDAT pin is multiplexed with the A31 pin.
TXEN
Transmit Enable
Input/Output
TXEN is an output, providing an enable signal for transmission. Data on the TXDAT pin is not valid unless the
TXEN signal is HIGH.
Note that the TXEN pin is multiplexed with the A30 pin.
Serial Transmit Data Clock
Output
An EADI output signal. SRD is the decoded NRZ data
from the network. This signal can be used for external
address detection. Note that when the 10BASE-T port
is selected, transitions on SRD will only occur during
receive activity. When the AUI port is selected, transitions on SRD will occur during both transmit and receive activity.
The STDCLK pin is multiplexed with the A29 pin.
Note that this signal must meet the frequency stability
requirement of the ISO 8802-3 (IEEE/ANSI 802.3)
specification for the crystal.
CLSN
SRDCLK
Collision
Output
An EADI output signal. Serial Receive Data is synchronous with reference to SRDCLK. Note that when the
10BASE-T port is selected, transitions on SRDCLK will
only occur during receive activity. When the AUI port is
selected, transitions on SRDCLK will occur during both
transmit and receive activity.
Note that this pin is multiplexed with the LED2 pin.
Input
STDCLK is an input, providing a clock signal for MAC
activity, both transmit and receive. Rising edges of the
STDCLK can be used to validate TXDAT output data.
Note that this pin is multiplexed with the LEDPRE3 pin.
Serial Receive Data Clock
Input/Output
STDCLK
SRD
Serial Receive Data
Transmit Data
Input/Output
CLSN is an input, indicating to the core logic that a
collision has occurred on the network.
Note that the CLSN pin is multiplexed with the A28 pin.
RXCRS
Receive Carrier Sense
Input/Output
RXCRS is an input. When this signal is HIGH, it indicates to the core logic that the data on the RXDAT input
pin is valid.
Am79C965A
43
Note that the RXCRS pin is multiplexed with the A27
pin.
SRDCLK
Serial Receive Data Clock
Input/Output
SRDCLK is an input. Rising edges of the SRDCLK signal are used to sample the data on the RXDAT input
whenever the RXCRS input is HIGH.
Note that the SRDCLK pin is multiplexed with the A26
pin.
RXDAT
Receive Data
Note that the RXDAT pin is multiplexed with the A25
pin.
Analog Ground (2 Pins)
Power
There are two analog ground pins. Special attention
should be paid to the printed circuit board layout to
avoid excessive noise on these lines. Refer to
Appendix B and to the PCnet Family Technical Manual
for details.
Digital Power (3 Pins)
Power
There are 3 digital power supply pins. (DVDD1,
DVDD2, and DVDD3) used by the internal circuitry.
DVDDCLK
Digital Power Clock (1 Pin)
Power
This pin is used to supply power to the clock buffering
IEEE 1149.1 Test Access Port Interface
TCK
circuitry.
Input
The clock input for the boundary scan test mode operation. TCK can operate up to 10 MHz. If left unconnected
this pin has a default value of HIGH.
TDI
Test Data Input
AVSS
DVDD
Input/Output
RXDAT is an input. Rising edges of the SRDCLK signal
are used to sample the data on the RXDAT input whenever the RXCRS input is HIGH.
Test Clock
avoid excessive noise on these lines. Refer to
Appendix B and the PCnet Family Technical Manual
(PID# 18216A) for details.
DVDDO
I/O Buffer Digital Power (5 Pins)
Power
There are 5 digital power supply pins (DVDD01–
DVDD05) used by Input/Output buffer drivers.
DVSS
Input
Digital Ground (4 Pins)
Ground
The test data input path to the PCnet-32 controller. If
left unconnected, this pin has a default value of HIGH.
There are 4 digital ground pins (DVSS1–DVSS4) used
by the internal digital circuitry.
TDO
DVSSCLK
Test Data Output
Output
Digital Ground Clock (1 Pin)
Ground
The test data output path from the PCnet-32 controller.
TDO is floated when the JTAG port is inactive.
This pin is used to supply a ground to the clock
buffering circuitry.
TMS
DVSSN
Test Mode Select
Input
A serial input bit stream is used to define the specific
boundary scan test to be executed. If left unconnected,
this pin has a default value of HIGH.
Power Supply Pins
AVDD
Analog Power (4 Pins)
I/O Buffer Digital Ground (15 Pins)
These 15 ground pins (DVSSN1–DVSSN15) are used
by the Input/Output buffer drivers.
DVSSPAD
Digital Ground Pad (1 Pin)
Ground
This pin is used by the Input/Output logic circuits.
Power
There are four analog +5 V supply pins. Special attention should be paid to the printed circuit board layout to
44
Ground
Am79C965A
BASIC FUNCTIONS
System Bus Interface Function
The PCnet-32 controller is designed to operate as a
Bus Master during normal operations. Some slave
accesses to the PCnet-32 controller are required in
normal operations as well. Initialization of the PCnet-32
controller is achieved through a combination of Bus
Slave accesses, Bus Master accesses and an optional
read of a serial EEPROM that is performed by the
PCnet-32 controller. The EEPROM read operation is
performed through the microwire interface. The ISO
8802-3 (IEEE/ANSI 802.3) Ethernet Address may
reside within the serial EEPROM. Some PCnet-32
controller configuration registers may also be
programmed by the EEPROM read operation.
The address PROM, on-chip board-configuration
registers, and the Ethernet controller registers occupy
32 bytes of I/O space which can be located by
modifying the I/O base address register. The default
base address can be written to the EEPROM. The
PCnet-32 controller will automatically read the I/O
Base Address from the EEPROM after H_RESET, or at
any time that the software requests that the EEPROM
should be read. When no EEPROM is attached to the
serial microwire interface, the PCnet-32 controller
detects the condition, and enters Software Relocatable
Mode. While in Software Relocatable Mode, the
PCnet-32 controller will not respond to any bus
accesses, but will snoop the bus for accesses to I/O
address 378h. When a successfully executed and
uninterrupted sequence of write operations is seen at
this location, the PCnet-32 controller will accept the
next sequence of accesses as carrying I/O Base
Address relocation and interrupt pin programming
information. After this point, the PCnet-32 controller will
begin to respond directly to accesses directed toward
offsets from the newly loaded I/O Base Address. This
scheme allows for jumper less relocatable I/O
implementations.
Software Interface
The software interface to the PCnet-32 controller is divided into two parts. One part is the direct access to the
I/O resources of the PCnet-32 controller. The PCnet-32
DETAILED FUNCTIONS
Bus Interface Unit
The bus interface unit is built of several state machines
that run synchronously to BCLK. One bus interface unit
state machine handles accesses where the PCnet-32
controller is the bus slave, and another handles accesses where the PCnet-32 controller is the bus
master. All inputs are synchronously sampled except
ADS, M/IO, D/C, W/R and the A[31:5] bus when this
controller occupies 32 bytes of I/O space that must begin on a 32-byte block boundary. The I/O Base Address
can be changed to any 32-bit quantity that begins on a
32-byte block boundary through the function of the
Software Relocatable Mode. It can also be changed to
any 32-bit value that begins on a 32-byte block
boundary through the automatic EEPROM read
operation that occurs immediately after the H_RESET
fu n c ti o n h a s c o mp l et ed . Th is r ea d o pe ra ti o n
automatically alters the I/O Base Address of the
PCnet-32 controller.
The 32-byte I/O space is used by the software to program the PCnet-32 controller operating mode, to
enable and disable various features, to monitor
operating status and to request particular functions to
be executed by the PCnet-32 controller.
The other portion of the software interface is the
descriptor and buffer areas that are shared between
the software and the PCnet-32 controller during normal
network operations. The descriptor area boundaries
are set by the software and do not change during
normal network operations. There is one descriptor
area for receive activity and there is a separate area for
transmit activity. The descriptor space contains
relocatable pointers to the network packet data and it is
used to transfer packet status from the PCnet-32
controller to the software. The buffer areas are
locations that hold packet data for transmission or that
accept packet data that has been received.
Network Interfaces
The PCnet-32 controller can be connected to an 802.3
network via one of two network interfaces. The Attachment Unit Interface (AUI) provides an ISO 8802-3
(IEEE/ANSI 802.3) compliant differential interface to a
rem ote MAU or an on- board transcei ver. The
10BASE-T interface provides a twisted-pair Ethernet
port. While in auto-selection mode, the interface in use
is determined by an auto-sensing mechanism which
checks the link status on the 10BASE-T port. If there is
no active link status, then the device assumes an AUI
connection.
bus is an input to the PCnet-32 controller. All outputs
are synchronously generated on the rising edge of
BCLK with the following exceptions:
LDEV is generated asynchronously.
RDY is driven/floated on falling edges of BCLK, but will
change state on rising edges of BCLK.
Am79C965A
45
The following sections describe the various bus master
and bus slave operations that will be performed by the
PCnet-32 controller. The timing diagrams that are included in these sections (Bus Acquisition section
through Slave Timing section) show the signals and
timings of the Am486 32-bit mode of operation. The
sections from Bus Acquisition through Linear Burst
DMA Transfers show bus master operations. The Slave
Timing section shows bus slave operations. Note that
the PCnet-32 controller operation in Am486 32-bit
mode represents a merger of the requirements of the
V E S A V L - B u s s p e c i f i c a t i o n a n d A m 4 8 6 bu s
specification, whichever is more stringent. The concepts
discussed in the following sections and the basic nature
of the timings shown is applicable in a general sense to
PCnet-32 controller operational modes. For specific
differences in timing between modes and for examples
of timing diagrams showing basic transfers in each of
the modes, please consult the following sections:
Am486 32-bit mode:
Bus Acquisition section
through Slave Timing section
VESA VL-Bus mode:
VESA VL-Bus Mode Timing
section
For selection of each mode, consult the section on
Configuration Pins in the Pin Description section.
Note that all timing diagrams in this document have
been drawn showing reference to two groups of
address pins: namely, A4–A31 and A2–A3, BE0–BE3.
In the AHOLD timing diagrams, the two groups are
shown separately, because the upper address pins
become floated, while the lower address pins do not.
The point of division between the two groups of
address pins will depend upon the value of CLL in
BCR18. In the case of Linear Burst operations, the
upper address pins are shown separately because that
group does not change its value through a single linear
burst, while the lower address pins do change value. In
46
this case, the point of division between the two groups
of address pins will depend upon the value of LINBC in
BCR18. In all other timing diagrams, the two groups are
shown separately just to maintain consistency with the
AHOLD and Linear Burst timing diagrams. For more
details, see the AHOLD and Linear Burst Count
sections.
Bus Acquisition
The PCnet-32 controller microcode (in the buffer management section) will determine when a DMA transfer
should be initiated. The first step in any PCnet-32 controller bus master transfer is to acquire ownership of the
bus. This task is handled by synchronous logic within
the BIU. Bus ownership is requested with the HOLD
signal and ownership is granted by the CPU (or an
arbiter) through the HLDA signal. The PCnet-32
controller additionally supplies HOLDI and HLDAO
signals to allow daisy chaining of devices through the
PCnet-32 controller. Priority of the HOLDI input versus
the PCnet-32 controller’s own internal request for bus
mastership can be set using the PRPCNET bit of
BCR17. Simple bus arbitration (HOLD, HLDA only) is
shown in Figure 1.
Note that assertion of the STOP bit will not cause a deassertion of the HOLD signal. Note also that a read of
the S_RESET register (I/O resource at offset 14h from
the PCnet-32 controller base I/O address) will not
cause a de-assertion of the HOLD signal. Either of
these actions will cause the internal master state
machine logic to cease operations, but the HOLD
signal will remain active until the HLDA signal is
synchronously sampled as asserted. Following either
of the above actions, on the next clock cycle after the
HLDA signal is synchronously sampled as asserted,
the PCnet-32 controller will de-assert the HOLD signal.
No bus master accesses will have been performed
during this brief bus ownership period.
Am79C965A
Ti
Ti
Ti
Ti
Tt
T1
T2
T2
BCLK
ADS
A4–A31,
M/IO, D/C
W/R
A2–A3,
BE0–BE3
RDYRTN
BRDY
BLAST
From
PCnet-32
D0–D31
HOLD
HLDA
18219-5
Figure 1. Bus Acquisition
Assertion of a minimum-width pulse on the RESET pin
will cause the HOLD signal to de-assert within six clock
cycles following the assertion of the RESET pin. In this
case, the PCnet-32 controller will not wait for the assertion of the HLDA signal before de-asserting the HOLD
signal.
This description of behavior is identical for the VESA
VL-Bus mode of operation, except that the HOLD,
HLDA and RESET signals are replaced by the inverted
sense signals LREQ, LGNT, and RESET, respectively;
the BCLK, BOFF, EADS, and RDY signals are replaced
by LCLK, WBACK, LEADS, and LRDY, respectively.
Bus Master DMA Transfers
There are three primary types of DMA transfers. All
DMA transfers will have wait states inserted until either
RDYRTN or BRDY is asserted. Figure 2 and Figure 3
show the basic bus transfers of read and write without
ready wait states and then with ready wait states.
Am79C965A
47
Ti
Ti
T1
T2
T1
T2
T1
T2
T2
T2
Ti
Ti
BCLK
ADS
A4–A31,
M/IO, D/C
W/R
A2–A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
18219-6
Figure 2. Basic Read Cycles without and with Wait States
48
Am79C965A
Ti
Ti
T1
T2
T1
T2
T1
T2
T2
T2
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
18219-7
Figure 3. Basic Write Cycles without and with Wait States
Am79C965A
49
Effect of BOFF
Assertion of BOFF during bus master transfers will
cause the PCnet-32 controller to float all of its bus signals beginning at the next clock cycle. Any access
which has been interrupted by BOFF will be restarted
Ti
Ti
T1
T2
T2
when the BOFF signal is de-asserted. Simultaneous
assertion of RDYRTN (or BRDY) and BOFF is resolved
in favor of BOFF. The RDYRTN (or BRDY) is ignored for
such a cycle, and when BOFF is de-asserted, the cycle
is restarted. See Figure 4 for detail.
Tb
Tb
T1b T2
T2
Ti
Ti
BCLK
ADS
A4–A31,
M/IO, D/C
100
100
W/R
A2–A3,
BE0 –BE3
100
100
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
BOFF
HOLD
HLDA
18219-8
Figure 4. Restarted Read Cycle
50
Am79C965A
Effect of AHOLD
Table 17. CLL Value and Floating Address Pins
Assertion of AHOLD during bus master transfers will
cause the PCnet-32 controller to float some portion of
the address bus beginning at the next clock cycle. If
RDYRTN is returned while AHOLD is active, then the
cycle completes, since the data bus may remain active
during AHOLD. However, a new cycle will not be
started while AHOLD is active.
The portion of the Address Bus that will be floated at
the time of an address hold operation will be
determined by the value of the Cache Line Length
register (BCR18, bits 15-11). Table 17 lists all of the
legal values of CLL showing the portion of the Address
Bus that will become floated during an address hold
operation.
If the RDYRTN signal is not returned while AHOLD is
active, then the PCnet-32 controller will resume driving
the same address onto the address bus when AHOLD
is released. The PCnet-32 controller will not reissue the
ADS signal at this time. See Figure 5 and Figure 6 for
details.
CLL Value
Floated Portion of Address
Bus During AHOLD
00000
None
00001
A31–A2
00010
A31–A3
00011
Reserved CLL Value
00100
A31–A4
00101–00111
Reserved CLL Values
01000
A31–A5
01001–01111
Reserved CLL Values
10000
A31–A6
10001–11111
Reserved CLL Values
Note: The default value of CLL after H_RESET is
00100. All timing diagrams in this document are drawn with
the assumption that this is the value of CLL.
Am79C965A
51
Ti
Ti
T1
T2
T2
T2
Ti
Ti
T1
T2
Ti
Ti
BCLK
ADS
A4–A31
100
104
M/IO, D/C
W/R
A2–A3,
BE0 –BE3
100
104
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
AHOLD
HOLD
HLDA
18218-9
Figure 5. Read Cycle with AHOLD
Note that initial access is allowed to complete in spite of AHOLD,
but next access is prevented from beginning until AHOLD is de-asserted.
52
Am79C965A
Ti
Ti
T1
T2
T2
T2
T2
T2
T1
T2
Ti
Ti
BCLK
ADS
A4–A31
100
100
104
M/IO , D/C
W/R
A2–A3,
BE0–BE3
100
104
RDYRTN
BRDY
BLAST
To
PCnet-32
D0–D31
To
PCnet-32
AHOLD
HOLD
HLDA
18219-80
Figure 6. Read Cycle with AHOLD
Address is re-driven when AHOLD is de-asserted,
since RDYRTN had not yet arrived.
Effect of Bus Preemption
If a bus preemption event occurs during a basic transfer
cycle, then the behavior of the PCnet-32 controller will
depend upon which specific type of access is being
performed. The general response of the PCnet-32
controller is that the current operation will complete
before the PCnet-32 controller relinquishes the bus in
response to the preemption. “Current operation” in this
sense refers to the general PCnet-32 controller
operation, such as “descriptor access”. Note that a
“descriptor access” consists of one or two basic
transfers. Therefore, both transfers of a descriptor
access must be completed before the bus will be
released in response to a preemption. See each of the
sections for Initialization Block DMA transfers,
Descriptor DMA transfers, FIFO DMA transfers and
Linear Burst Transfers for more specific information.
Am79C965A
53
Effect of LBS16 (VL-Bus mode only)
Dynamic bus sizing is recognized by the PCnet-32 controller while operating in the VL-Bus mode. The LBS16
signal is used to indicate to the PCnet-32 controller
whether the VL-Bus target is a 16-bit or 32-bit peripheral. When the target device indicates that it is 16 bits
in width by asserting the LBS16 signal at least one
LCLK period before asserting the RDYRTN signal, then
the PCnet-32 controller will dynamically respond to the
size constraints of the peripheral by performing
additional accesses. Table 18 shows the sequence of
accesses that will be performed by the PCnet-32
controller in response to the assertion of LBS16.
Figure 7 shows an example of an exchange between a
16-bit VL-Bus peripheral and the PCnet-32 controller.
Note that the LBS16 signal is asserted during the LCLK
that precedes the assertion of RDYRTN. In this particular case, in order to maintain zero-wait state accesses,
the 16-bit target must generate LBS16 in a very short
time in order to meet the required setup time of LBS16
into the PCnet-32 controller. If the peripheral were incapable of meeting the required setup time, then a wait
state would be needed in order to insure that LBS16 is
asserted at least one LCLK prior to the assertion of the
RDYRTN signal.
When the assertion of LBS16 during a PCnet-32 controller master access has created the need for a
second access as specified in the table above, and the
WBACK signal becomes active during the second
access, then, when WBACK is de-asser ted, the
PCnet-32 controller will repeat both accesses of the
pair.
Table 18. Data Transfer Sequence from 32-Bit Wide to 16-Bit Wide
Current Access
Next with LBS16
BE3
BE2
BE1
BE0
BE3
BE2
BE1
BE0
1
1
1
0
NR*
1
1
0
0
NR*
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
NR*
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
NR*
0
0
1
1
NR*
0
1
1
1
NR*
*NR = No second access Required for these cases
54
Am79C965A
Ti
Ti
T1
T2
T1
T2
Ti
Ti
Ti
Ti
Ti
LCLK
ADS
ADR4–
ADR31
100
100
M/IO, D/C
W/R
ADR2 ADR3,
BE2 BE3
100
100
BE0 BE1
RDYRTN
BRDY
BLAST
DAT0
DAT31
To
PCnet-32
To
PCnet-32
LBS16
LREQ
LGNT
18219-10
Figure 7. VL-BUS Ready Cycle with LBS16 Asserted
Four-byte single cycle access is converted to two two-byte accesses.
Am79C965A
55
Initialization Block DMA Transfers
bus mastership periods are needed in order to
complete the initialization sequence. Note that the last
double-word transfer of the last bus mastership period
of the initialization sequence accesses an unneeded
location. Data from this transfer is discarded internally.
During execution of the PCnet-32 controller bus master
initialization procedure, the PCnet-32 controller
microcode will repeatedly request DMA transfers from
the BIU. During each of these initialization block DMA
transfers, the BIU will perform two data transfer cycles
(eight bytes) and then it will relinquish the bus (see Figure 8). The two transfers within the mastership period
will always be read cycles to ascending contiguous addresses. The two transfers in each initialization block
DMA transfer will never be executed using linear burst
mode. In 32-bit software mode, the number of bus mastership periods needed to complete the initialization
procedure is 4. There are 7 double-words to transfer
during the bus master initialization procedure, so four
Ti
T1
T2
T1
If a bus preemption event occurs during an initialization
block DMA transfer, then the PCnet-32 controller will
complete both of the two data transfer cycles of the initialization block DMA transfer before releasing the
HOLD signal and relinquishing the bus.
When SSIZE32 = 0 (CSR58[8]/BCR20[8]), then the
number of bus mastership periods needed to complete
the initialization procedure is 3 or 4.
T2
Ti
Ti
Ti
Ti
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
IADD i
IADD i +4
IADD i
IADD i +4
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
18219-11
Figure 8. Initialization DMA Transfer
56
Am79C965A
Descriptor DMA Transfers
PCnet-32 controller will determine when a descriptor
access is required. A descriptor DMA read will consist
of two double-word transfers. A descriptor DMA write
will consist of one or two double word transfer. The
transfers within a descriptor DMA transfer mastership
period will always be of the same type (either all read
or all write). The transfers will be to addresses in the
order as specified in Table 19 and Table 20 (note that
MD indicates TMD or RMD).
If buffer chaining is used (see Transmit and Receive
Descriptor Table Entr y sections), writes to the
descriptors that do not contain the End of Packet bit will
consist of only one double-word. This write will be to
the same location as the second of the two writes
performed when the End of Frame has been processed
(i.e. to the location that contains the descriptor
OWNership bit, MD1[31]).
Descriptor DMA transfers will never be executed using
linear burst mode. During read accesses, the byte
enable signals will indicate that all byte lanes are
active. Should some of the bytes not be needed, then
the PCnet-32 controller will internally discard the
extraneous information that was gathered during such
a read. During write accesses, only the bytes which
need to be written are enabled, by activating the
corresponding byte enable pins. See Figure 9 and
Figure 10.
If a bus preemption event occurs during a descriptor
DMA transfer, then the PCnet-32 controller will complete both of the two data transfer cycles of the descriptor DMA transfer, before releasing the HOLD signal and
relinquishing the bus.
The only significant differences between descriptor
DMA transfers and initialization DMA transfers are that
the addresses of the accesses follow different ordering.
Table 19. Bus Master Reads of Descriptors
16-Bit Software Mode
32-Bit Software Mode
Address
SequenceA[7:0]
LANCE
Item Accessed
PCnet-32
Item Accessed
Address
SequenceA[7:0]*
LANCE
Item Accessed
PCnet-32
Item Accessed
00
MD1[15:0],
MD0[15:0]
MD1[31:24],
MD0[23:0]
04
MD1[15:8],
MD2[15:0]
MD1[31:0]
04
MD3[15:0],
MD2[15:0]
MD2[15:0],
MD1[15:0]
00
MD1[7:0],
MD0[15:0]
MD0[31:0]
Bus Break
Bus Break
Table 20. Bus Master Writes of Descriptors
16-Bit Software Mode
32-Bit Software Mode
Address
SequenceA[7:0]
LANCE
Item Accessed
PCnet-32
Item
Accessed
Address
SequenceA[7:0]*
LANCE
Item Accessed
PCnet-32
Item Accessed
04
MD3[15:0],
MD2[15:0]
MD2[15:0],
MD1[15:0]
08
MD3[15:0],
MD2[15:0]
MD2[31:0]
00
MD1[15:0],
MD0[15:0]
MD1[31:24],
MD0[23:0]
04
MD1[15:8],
MD2[15:0]
MD1[31:0]
Bus Break
Bus Break
* Address values for A[31:8] are constant throughout any single descriptor DMA transfer. Note that even though bits
A{1:0] do not physically exist in the system, these bits must be set to ZERO in the descriptor base address.
Am79C965A
57
Ti
T1
T2
T1
T2
Ti
Ti
Ti
Ti
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
MD1*
MD0*
MD1*
MD0*
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
*Note that Message Descriptor addresses 1 and 0 are in descending order.
18219-12
Figure 9. Descriptor DMA Read
58
Am79C965A
Ti
T1
T2
T1
T2
Ti
Ti
Ti
Ti
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
MD2*
MD1*
MD2*
MD1*
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
From
PCnet-32
From
PCnet-32
*Note that Message Descriptor addresses 2 and 1 are in descending order.
18219-13
Figure 10. Descriptor DMA Write
FIFO DMA Transfers
PCnet-32 controller microcode will determine when a
FIFO DMA transfer is required. This transfer mode will
be used for transfers of data to and from the PCnet-32
controller FIFOs. Once the PCnet-32 controller BIU
has been granted bus mastership, it will perform a
s e r i e s o f c o n s e c u t i ve t r a n s fe r c y c l e s b e fo r e
relinquishing the bus. Each transfer will be performed
sequentially, with the issue of an address, and the
transfer of the corresponding data with appropriate
output signals to indicate selection of the active data
bytes during the transfer. All transfers within the master
cycle will be either read or write cycles, and all transfers
will be to contiguous, ascending addresses. The
number of data transfer cycles contained within a
single bus cycle is in general, dependent on the
programming of the DMAPLUS option (CSR4, bit 14).
Several other factors will also affect the length of the
bus cycle period. The possibilities are as follows:
If DMAPLUS = 0, a maximum of 16 transfers will be
performed by default. This default value may be
changed by writing to the burst register (CSR80). Note
that DMAPLUS = 0 merely sets a maximum value. The
minimum number of transfers in the bus cycle will be
determined by all of the following variables: the settings
of the FIFO watermarks, the particular conditions
existing within the FIFOs, receive and transmit status
conditions, the value of the DMA Burst Cycle (CSR80),
the value of the DMA Bus Activity Timer (CSR82), and
the timing of any occurrence of preemption that takes
place during the FIFO DMA transfer.
If DMAPLUS = 1, the bus cycle will continue until the
transmit FIFO is filled to its high threshold (read transfers) or the receive FIFO is emptied to its low threshold
(write transfers), or until the DMA Bus Activity Timer
value (CSR82) has expired. Other variables may also
affect the end point of the burst in this mode. Among
those variables are: the particular conditions existing
within the FIFOs, receive and transmit status
conditions, and bus preemption events.
The FIFO thresholds are programmable (see description of CSR80), as are the Burst Cycle and Bus Activity
Timer values. The exact number of transfer cycles in
the case of DMAPLUS = 1 will be dependent on the
latency of the system bus to the PCnet-32 controller’s
mastership request and the speed of bus operation, but
Am79C965A
59
will be limited by the value in the Bus Activity Timer
register, the FIFO condition, receive and transmit
status, and by preemption events, if any. Barring a timeout by either of these registers, or a bus preemption by
another mastering device, or exceptional receive and
transmit events, or an end of packet signal from the
FIFO, the FIFO watermark settings and the extent of
Bus Acknowledge latency will be the major factors
determining the number of accesses performed during
any given arbitration cycle when DMAPLUS = 1.
of the FIFO (during write transfers from the receive
FIFO). If the accesses are slow enough, a complete
double word may become available before the end of
the arbitration cycle and thereby increase the number
of transfers in that cycle.) The general rule is that the
longer the bus grant latency or the slower the bus
transfer operations (or clock speed) or the higher the
transmit watermark or the lower the receive watermark
or any combination thereof the longer will be the
average burst length.
The READY response of the memory device will also
affect the number of transfers when DMAPLUS = 1,
since the speed of the accesses will affect the state of
the FIFO. (During accesses, the FIFO may be filling or
emptying on the network end. A slower memory response will allow additional data to accumulate inside
If a bus preemption event occurs during a FIFO DMA
transfer, then the PCnet-32 controller will complete the
current transfer and it will complete a maximum of four
additional data transfer cycles before releasing the
HOLD signal and relinquishing the bus.
Ti
T1
T2
T1
T2
T1
T2
T1
T2
T1
T2
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
18219-14
Figure 11. FIFO DMA Read
60
Am79C965A
Ti
T1
T2
T1
T2
T1
T2
T1
T2
T1
T2
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
From
PCnet-32
From
PCnet-32
From
PCnet-32
From
PCnet-32
From
PCnet-32
18219-15
Figure 12. FIFO DMA Write
Note that A[1:0] do not exist in a 32-bit system, but both
of these bits do exist in the buffer pointers that are
passed to the PCnet-32 controller in the descriptor.
A[1:0] values will be decoded and presented on the bus
as byte enable (BE0-BE3) values during FIFO DMA
transfers.
Linear Burst DMA Transfers
Once the PCnet-32 controller has been granted bus
mastership, the PCnet-32 controller may request to
perform linear burst cycles by de-asserting the BLAST
signal. If the device being accessed wishes to support
linear bursting, then it must assert BRDY and de-assert
RDYRTN, with the same timing that RDYRTN would
normally be provided. Linear bursting is only performed
by the PCnet-32 controller if the BREADE and/or
BWRITE bits of BCR18 are set. These bits individually
enable/disable the ability of the PCnet-32 controller to
perform linear burst accesses during master read operations and master write operations, respectively.
Only FIFO data transfers will make use of the linear
burst mode.
The first transfer in the linear burst will consist of both
an address and a data cycle, but subsequent transfers
will contain data only, until the LINBC upper limit of
transfers have been executed. LINBC is a value from
the BCR18 register. The linear burst “upper limit” is
created by taking the BCR18 LINBC[2:0] value and
multiplying by 4. The result is the number of transfers
that will be performed within a single linear burst
sequence.
The entire address bus will still be driven with appropriate values during the data cycles. When the LINBC
upper limit of data transfers have been performed, a
new ADS may be asserted (if there is more data to be
transferred), with a new address on the A2–A31 pins.
Following the new ADS cycle, the linear bursting of
data will resume. Ownership of the bus will be
maintained until other variables cause the PCnet-32
controller to relinquish the bus. These variables have
been discussed in the FIFO DMA transfers section
above. They will be reviewed again within this section
of the document.
Am79C965A
61
Transfers within a linear burst cycle will either be all
read or all wr ite cycles, and will always be to
contiguous ascending addresses. Linear Bursting of
Read and Write operations can be individually enabled
or disabled through the BREADE and BWRITE bits of
BCR18 (bits 6 and 5).
Linear Burst DMA transfers should be considered as a
superset of the FIFO DMA transfers. Linear burst DMA
transfers will only be used for data transfers to and from
the PCnet-32 controller FIFOs and they will only be allowed when the burst enable bits of BCR18 have been
set. Linear Read bursting and Linear Write bursting
have individual enable bits in BCR18. Any combination
of linear burst enable bit settings is permissible.
Linear bursting is not allowed in systems that have
BCLK frequencies above 33 MHz. Linear bursting is
automatically disabled in VL-Bus systems that operate
above this frequency by connecting the VLBEN pin to
either ID(3) (for VL-Bus version 1.0 systems) or ID(4)
AND ID(3) AND ID(1) AND ID(0) (for VL-Bus version
1.1 or 2.0 systems). In Am486-style systems that have
BCLK frequencies above 33 MHz, disabling the linear
burst capability is ideally carried out through EEPROM
bit programming, since the EEPROM programming can
be setup for a particular machine’s architecture.
All byte lanes are always considered to be active during
all linear burst transfers. The BE3–BE0 signals will
reflect this fact.
Linear Burst DMA Starting Address Restrictions
A PCnet-32 controller linear burst will begin only when
the address of the current transfer meets the following
condition:
A[31:0] MOD (LINBC x 16) = 0,
The following table illustrates all possible starting address values for all legal LINBC values. Note that
A[31:6] are don’t care values for all addresses. Also
note that while A[1:0] do not physically exist within a 32
bit system, they are valid bits within the buffer pointer
field of descriptor word 0. Thus, where A[1:0] are listed,
they refer to the lowest two bits of the descriptor’s buffer
pointer field. These bits will have an affect on determining when a PCnet-32 controller linear burst operation
may legally begin and they will affect the output values
of the BE3–BE0 pins, therefore they have been
included in Table 21 as A[1:0].
It is not necessary for the software to insure that the
buffer address pointer contained in descriptor word 0
matches the address restrictions given in the table. If
the buffer pointer does not meet the conditions set forth
in the table, then the PCnet-32 controller will simply
postpone the start of linear bursting until enough
ordinary FIFO DMA transfers have been performed to
bring the current working buffer pointer value to a valid
linear burst starting address. This operation is referred
to as “aligning” the buffer address to a valid linear burst
star ting address. Once this has been done, the
PCnet-32 controller will recognize that the address for
the current access is a valid linear burst starting
address, and it will automatically begin to perform
linear burst accesses at that time, provided of course
that the software has enabled the linear burst mode.
Note that if the software would provide only valid linear
burst starting addresses in the buffer pointer, then the
PCnet-32 controller could avoid performing the alignment operation. It would begin linear burst accesses on
the very first of the buffer transfers thereby allowing a
slight gain in bus bandwidth efficiency.
Because of the linear burst starting address restrictions
given in the table above, the PCnet-32 controller linear
burst mode is completely compatible with the Am486style burst cycle when the LINBC[2:0] bits have been
programmed with the value of 001.
Table 21. Linear Burst Addess
62
LINBC[2:0]
LBS = Linear Burst
Size (No. of Transfers)
Linear Burst Addresses
Beginning A[5:0] =
(A[31:6] = Don’t Care)
0
0 (no linear bursting)
Not Applicable
1
4
00, 10, 20, 30
2
8
00, 20
4
16
00
3,5,6,7
Reserved
Not Applicable
Am79C965A
Linear Burst DMA Timing Diagram Explanatory
Note
Values of LINBC not shown in the table are not allowed.
See the LINBC section of BCR18 for more details.
Note that in all of the following timing diagrams for
linear burst operations, a LINBC[2:0] value of 001 has
been assumed. This translates to a linear burst length
of four transfers. When the linear burst size is four
transfers, then A[31:4] are stable within a single linear
burst sequence, while A[3:2] and BE3–BE0 will change
to reflect the address of the current transfer. Note that
for larger values of LINBC[2:0] which correspond to
longer linear burst lengths, the range of address pins
that is stable during each burst sequence is smaller.
For example, if LINBC[2:0] has the value of 010, then
the linear burst length is eight double word transfers or
32 bytes of data. With this value of LINBC, it takes five
address bits to track the changing addresses through
the burst. This means that only A[31:5] are stable
during each linear burst sequence, while A[4:2] and
BE3–BE0 will change to reflect the address of the
current transfer. For LINBC[2:0] = 100, only A[31:6] are
stable during each linear burst sequence, while A[5:2]
and BE3–BE0 will change to reflect the address of the
current transfer, and so on. Table 22 summarizes this
Since all of the timing diagrams assume a LINBC[2:0]
value of 001, then A[31:4] are shown to be stable within
each linear burst sequence, and A[3:2] and BE3–BE0
are shown as changing in order to reflect the address
of the current transfer.
information.
Table 22. Stable Address Lines During
Linear Burst
LINBC Value
Portion of Address Bus
Stable During Linear Burst
000
Linear Bursting Disabled
001
A[31:4]
010
A[31:5]
100
A[31:6]
Linear Burst DMA Address Alignment
Linear bursting may begin during a bus mastership period which was initially performing only ordinary DMA
operations. (i.e. the value of BLAST is not restricted to
ZERO for an entire bus mastership period if ZERO was
the value of BLAST on the first access of a bus mastership period.) A change from non-linear bursting to
linear bursting will normally occur during linear burst
DMA address alignment operations.
If the PCnet-32 controller is programmed for LINEAR
burst mode (i.e. BREADE and/or BWRITE bits of
BCR18 are set to ONE), and the PCnet-32 controller
requests the bus, but the starting address of the first
transaction does not meet the conditions as specified
in the table above, then the PCnet-32 controller will
perform burst-cycle accesses (i.e. it will provide an
ADS for each transfer) until it arrives at an address that
does meet the conditions described in the table. At that
time, and without releasing the bus, the PCnet-32
controller will invoke the linear burst mode. The simple
external manifestation of this event is that the value of
the BLAST signal will change to de-asserted (driven
high) on the next T2 cycle, thereby indicating a
willingness of the PCnet-32 controller to perform linear
bursting. (Note that burst-cycle accesses are
performed with BLAST = 0.)
Figure 13 shows an example of a linear burst DMA
alignment operation being performed:
Am79C965A
63
Ti
Ti
T1
T2
T1
T2
T1
T2
T2
T2
T2
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
To
PCnet-32
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
18219-16
Figure 13. FIFO DMA Read Followed by Linear Burst
Read During a Single Bus Mastership Period
Linear Burst DMA BLAST Signal Timing
Linear burst cycles are requested by the PCnet-32 controller by de-asserting the BLAST signal (i.e. BLAST =
1). When BLAST is de-asserted by the PCnet-32
controller, the slave device is under no obligation to
provide BRDY. Instead, it may provide RDYRTN in
response to each of the PCnet-32 controller transfers.
If RDYRTN is asserted during accesses in which the
PCnet-32 controller has de-asserted BLAST, then the
current transfer reverts to ordinary burst-cycle (see
FIFO DMA Transfer section).
When BLAST is asserted, it signals the end of the current linear burst sequence.
In a cycle in which BLAST is asserted and following the
assertion of either RDYRTN and/or BRDY by the slave
device, the PCnet-32 controller may either relinquish
the bus or it may initiate a new sequence of linear burst
64
transfers without relinquishing the bus. If the PCnet-32
controller continues with a new sequence of linear
burst transfers, the address asserted during the next
T1 cycle will always be the next address in sequence
from the previous T2 cycle. In other words, the
PCnet-32 controller will never execute cycles within a
single bus master-ship period that are not both
ascending and contiguous, with the exception of the
descriptor DMA accesses described above.
The decision to continue bus ownership will depend
upon several variables, including the state of the
receive or transmit FIFO. All factors related to this
decision are discussed later in this section.
Figure 14 illustrates a typical case of multiple linear
burst sequences being performed during a single bus
mastership period.
Am79C965A
Ti
T1
T2
T2
T2
T2
T1
T2
T2
T2
T2
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
18219-17
Figure 14. Linear Burst Read
Am79C965A
65
Ti
Ti
T1
T2
T2
T2
T2
T2
T2
Ti
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
From
PCnet-32
D0 D31
From
PCnet-32
From
PCnet-32
From
PCnet-32
HOLD
HLDA
18219-18
Figure 15. Linear Burst Write with Wait States Added
by the Slave Device on the Third Transfer
Linear Burst DMA Ready Wait States
The PCnet-32 controller will insert wait states into
linear burst DMA cycles if neither RDYRTN nor BRDY
are sampled asserted at the end of each T2 cycle.
Interrupted Linear Burst DMA Cycles
The assertion of RDYRTN in the place of BRDY within
a linear burst cycle will cause the linear burst to be
“interrupted.”
In that case, the PCnet-32 controller will revert to ordinary two-cycle transfers that contain both a T1 and a
T2 cycle, except that BLAST will remain de-asserted to
show that linear bursting is still being requested by the
PCnet-32 controller. This situation is defined as an
interrupted linear burst cycle. If BRDY is sampled
asserted (without also sampling RDYRTN asserted
during the same access) during an interrupted linear
66
burst cycle in which BLAST is de-asserted, then linear
bursting will resume. (Note that BLAST will become
asserted during an interrupted linear burst cycle during
the transfer that would have been the last transfer of the
linear burst sequence, had the sequence not been
interrupted.)
When an interrupted linear burst cycle is resumed, then
the next assertion of ADS will depend upon the initial
starting point of the linear burst, rather than on the resumption point.
For example, if the linear burst length = 4 (LINBC = 1),
and BRDY is asserted during the first transfer, but
RDYRTN is asserted on the second, then the PCnet-32
controller will revert to ordinary DMA transfers on the
third transfer. If the responding device again asserts
Am79C965A
BRDY on the third access (while RDYRTN is deasserted), the PCnet-32 controller will resume linear
bursting from the current address. It will produce 1
more data cycle before asserting the next ADS, i.e.
PCnet-32 controller will keep track of the initial linear
burst end point and will continue with the original linear
burst after the RDYRTN interruption has occurred.
Figure 16 illustrates an example of an interrupted linear
burst. Note that BLAST is asserted in the fourth transfer
after the initial linear burst began, even though the
linear burst was interrupted with the assertion of
RDYRTN and a new ADS was driven for the third
t ra n s fe r. T h e ex t e r n a l e f fe c t o f t h e RDY RT N
interruption is completely manifested in the insertion of
the T1 cycle that contains the asserted ADS. The linear
burst cycle is not affected in any other way.
Partial Linear Burst
Certain factors may cause the PCnet-32 controller to
linearly burst fewer than the LINBC limit during a single
linear burst sequence. BLAST will be asserted during
the last data transfer. A linear burst that is terminated
by BLAST before the LINBC limit is reached is called a
partial linear burst.
A partial linear burst is recognizable in that the BLAST
signal is asserted while fewer than the LINBC limit of
transfers has been performed in the current linear burst
sequence.
Factors that could generate a partial linear burst
include:
■ No more data available for transfers from the current
transmit buffer
■ No more data available for transfer from the receive
FIFO for this packet
■ No more space available for transfers to the current
receive buffer
If any of these conditions occurs, then the PCnet-32
controller will end the Linear Burst by asserting BLAST.
Typically, during the case of a master read operation
(for transmit buffer transfers), the last transfer in the
linear burst sequence will be the last transfer executed
before the PCnet-32 controller releases the bus. This is
true of both par tial and completed linear burst
sequences.
Am79C965A
67
Ti
Ti
T1
T2
T2
T1
T2
T2
T1
T2
T2
BCLK
ADS
A4–A31,
M/IO, D/C
W/R
A2–A3,
BE0–BE3
RDYRTN
BRDY
BLAST
D0–D31
From
PCnet-32
From
PCnet-32
From
PCnet-32
From
PCnet-32
From
PCnet-32
HOLD
HLDA
18219-19
Figure 16. “Interrupted” Linear Burst Write
Typically, during the case of a master write operation
(for receive buffer transfers) when receive packet data
has ended, the last transfer in the linear burst
sequence will be the last transfer executed before the
PCnet-32 controller releases the bus. This is true of
both partial and completed linear burst sequences.
however, that in the case of the last buffer location, the
PCnet-32 controller may own only a portion of the
double-word location. In such cases, it is necessary to
discontinue linear burst accesses on the second from
last buffer location so that an basic transfer with some
byte lanes disabled can be used for the final transfer.
However, if the next transfer that the PCnet-32 controller is scheduled to execute will be to the last available
location of a receive or transmit buffer, then the
PCnet-32 controller may assert BLAST on the current
transfer and then use an ordinary cycle to make the last
transfer to the buffer. This event occurs because of the
restrictions placed upon the byte enable signals during
the linear burst operation. As mentioned in the initial
description of linear burst accesses (section Linear
Burst DMA Transfers), all byte lanes of the data bus are
always enabled during linear burst operations. Note,
Figure 17 shows a partial linear burst that occurred
while approaching the transfer of the last bytes of data
to a receive buffer. The linear burst begins when 10
bytes of space still remain in the receive buffer. (The
number of spaces remaining for the figure as drawn
could be anywhere from 9 to 12 spaces. The value of
10 spaces has been chosen just for purposes of
illustration.) After the first linear burst transfer, the
PCnet-32 controller sees that between 6 bytes of space
remain, and knowing that the second transfer will use
another 4 bytes of space, the PCnet-32 controller is
68
Am79C965A
PCnet-32 controller retains ownership of the bus so
that it may, immediately thereon, make an basic
transfer to the last two spaces in the buffer.
able to predict that the third transfer will be the last.
Therefore, it asserts BLAST on the second transfer to
terminate the linear burst operation. However, the
Ti
Ti
T1
T2
T2
T1
T2
Ti
Ti
Ti
BCLK
ADS
A4–A31,
M/IO, D/C
W/R
A2–A3,
BE0–BE3
100
104
108
RDYRTN
BRDY
BLAST
D0–D31
From
PCnet-32
From
PCnet-32
From
PCnet-32
HOLD
HLDA
18219-20
Figure 17. Typical Partial Linear Burst Write, Followed by a Basic
Transfer During the Same Bus Mastership Period
Am79C965A
69
Length of Bus Mastership Period
The number of data transfer cycles within the total bus
mastership period is dependent on the programming of
the DMAPLUS option (CSR4, bit 14). The possibilities
are as follows:
If DMAPLUS = 0, a maximum of 16 transfers will be
performed by default. This default value may be
changed by writing to the burst register (CSR80). Note
that DMAPLUS = 0 merely sets a maximum value. The
minimum number of transfers in the burst will be
determined by all of the following variables: the settings
of the FIFO watermarks and the conditions of the
FIFOs, the value of the DMA Burst Cycle (CSR80), the
value of the DMA Bus Activity Timer (CSR82), and any
occurrence of preemption that takes place during the
burst.
If DMAPLUS = 1, linear bursting will continue until the
transmit FIFO is filled to its high threshold or the
receive FIFO is emptied to its low threshold, or until the
DMA Bus Activity Timer value (CSR82) has expired. A
bus preemption event is another cause of termination
of cycles. The FIFO thresholds are programmable (see
description of CSR80), as are the Burst Cycle and Bus
Activity Timer values. The exact number of total
transfer cycles in the case of DMAPLUS = 1 will be
dependent on the latency of the system bus to the
PCnet-32 controller’s mastership request and the
speed of bus operation, but will be limited by the value
in the Bus Activity Timer Register, the FIFO condition
and by preemption occurrences, if any.
The exact response of the PCnet-32 controller to any of
the conditions mentioned above can be complicated.
For detail of the response to any particular stimulus,
see each of the sections that describes PCnet-32
controller response.
Note that the number of transfer cycles between each
ADS assertion will always only be controlled by LINBC,
RDYRTN, BOFF, HLDA and FIFO conditions. The number of transfer cycles separating ADS assertions will
not be affected by DMAPLUS or by the values in the
Burst Cycle and Bus Activity Timer Register. However,
70
these factors can influence the number of transfers that
is performed during any given arbitration cycle.
Barring a time-out by the Burst Cycle or the Bus Activity
Timer Register, or a bus preemption by another
mastering device, the FIFO watermark settings and the
extent of Bus Acknowledge latency will be the major
factors in deter mining the number of accesses
performed during any given arbitration cycle. The
BRDY response time of the memory device will also
affect the number of transfers, since the speed of the
accesses will affect the state of the FIFO. (During
accesses, the FIFO may be filling or emptying on the
network end. For example, on a Receive operation, a
slower device will allow additional data to accumulate
inside of the FIFO. If the accesses are slow enough, a
complete double word may become available before
the end of the arbitration cycle and thereby increase
the number of transfers in that cycle.) The general rule
is that the longer the bus grant latency or the slower the
bus transfer operations or the slower the clock speed or
the higher the transmit watermark or the lower the
receive watermark or any combination thereof, will
produce longer total burst lengths.
If a bus preemption event occurs after the execution of
the first T2 cycle of the fourth from the last transfer
cycle within a linear burst DMA sequence, then the
PCnet-32 controller will complete the current linear
burst sequence and will execute a new linear burst
sequence before releasing the HOLD signal and
relinquishing the bus. If a bus preemption event occurs
before or concurrent with the execution of the first T2
cycle of the fourth from the last transfer cycle within a
linear burst DMA sequence, then the PCnet-32
controller will complete the current linear burst
sequence and then will release the HOLD signal and
will relinquish the bus. Within the context of this
explanation, a single transfer cycle refers to the
execution of a data transfer, regardless of the number
of clock cycles taken, i.e. wait states are included in this
definition of a transfer cycle. See Figure 18.
Am79C965A
Ti
T1
T2
T2
T2
T2
Ti
Ti
Ti
Ti
Ti
Ti
T1
BCLK
ADS
A4–A31,
M/IO,
D/C
W/R
A2–A3,
BE0–BE3
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
*
HLDA
18219-21
*Note: Hold will always go inactive for 2 BLCK cycles before being reasserted.
Figure 18. Linear Burst Read with Preemption During T2
Am79C965A
71
T1
T1
T2
T2
T2
T2
T1
T2
T2
T2
T2
Ti
Ti
BCLK
ADS
A4–A31,
M/IO,
D/C
W/R
A2–A3,
BE0–BE3
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
18219-22
Figure 19. Linear Burst Read with Preemption During One of the
Last Three T2 Cycles of the Sequence
If a bus preemption event occurs on a T1 cycle (specifically, a T1 cycle in which the ADS signal for a new
linear burst sequence is asserted), then the next linear
burst sequence will be executed before the PCnet-32
controller releases the HOLD signal and relinquishes
72
the bus. (If the T1 cycle in which the preemption
occurred was to begin an basic transfer, then the basic
transfer plus as many as two additional basic transfers
will be executed before relinquishing the bus.)
Am79C965A
T2
T2
T2
T1
T2
T2
T2
T2
T2
Ti
Ti
Ti
Ti
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
*
HLDA
18219-23
*Note: HOLD is always held inactive for 2 BLCK cycles before being reasserted.
Figure 20. Linear Burst Read with Preemption that
Occurs During the T1 Cycle
Am79C965A
73
Effect of B0FF
However, if the BOFF signal is asserted after the first
BRDY (or RDYRTN) has been sampled, the PCnet-32
controller will revert to ordinary burst-cycle accesses
following the BOFF event. In this case, the linear
bursting will next occur when the memory address
being accessed next meets the linear burst starting
address requirements. If BOFF is sampled active on
the same clock edge that BRDY or RDYRTN is sampled
active, then the BOFF takes priority.
Assertion of BOFF during a linear burst has two
possible outcomes. In the case of BOFF asserted
before the first BRDY (or RDYRTN) has been sampled,
the PCnet-32 controller will restart the linear burst after
the BOFF event has ended. A new ADS will be
asserted with the original starting address for the
halted linear burst. See Figure 21.
T1
T1
T2
T2
Tb
Tb
T1b
T2
T2
T2
T2
T1
BCLK
ADS
A4-A31
M/IO
D/C
W/R
A2, A3
BEO–BE3
100
100
104
108
10C 110
To
PCnet-32
To
PCnet-32
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
HOLD
HLDA
BOFF
18219-24
Figure 21. Restarted Linear Burst Read in which BOFF was Asserted Before
BRDY of First Transfer in Linear Burst Sequency, Hence Linear Burst Sequence is
Restarted When BOFF is De-asserted.
74
Am79C965A
T2
T2
T2
Tb
Tb T1b
T2
T1
T2
T1
T2
T2
110
114
BCLK
ADS
A4 A31,
M/IO, D/C
W/R
A2 A3,
BE0 BE3
100
104
108
108
10C
RDYRTN
BRDY
BLAST
D0 D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
HOLD
HLDA
BOFF
18219-25
Figure 22. Restarted Linear Burst Read in which BOFF was Asserted After BRDY of First Transfer
in Linear Burst Sequency. Hence, Linear Burst Reverts to Ordinary Cycles Until Next
Legal Linear Burst Starting Address is Reached
In general, if the linear burst is suspended by another
bus master (either because of BOFF or PCnet-32 controller releasing HOLD) then any partially completed
linear burst access will not resume when the PCnet-32
controller regains bus ownership. But if the PCnet-32
controller linear burst is interrupted by the receipt of
RDYRTN in place of BRDY, then the PCnet-32 controller will resume the linear burst operation as indicated
by the BLAST signal.
Register accesses cannot be perfor med to the
PCnet-32 device while BOFF is asserted.
Am79C965A
75
Effect of AHOLD
continue to drive the command signals, but ADS will be
Assertion of AHOLD during Linear Burst transfers will
cause the PCnet-32 controller to float some portion of
the address bus beginning at the next clock cycle. If
BRDY is returned while AHOLD is active, then the
linear burst sequence will continue until the current
burst would otherwise normally terminate, since the
data bus and the lower portion of the address bus may
remain active during AHOLD. However, a new linear
burst sequence, requiring a new ADS assertion, will not
be started while AHOLD is active.
driven inactive.
When AHOLD is asserted during T1 of a linear burst,
then the linear burst operation will be suspended until
AHOLD is de-asserted. Once AHOLD is de-asserted,
then the PCnet-32 controller will start the suspended
linear burst with the intended address. See Figure 23.
(Note that the intended T1 of the linear burst sequence
has been labeled Ta in the figure, since a T1 was never
executed due to the suspension of the address bus required by the assertion of AHOLD.)
Note that if RDYRTN is asserted during a linear burst
sequence while AHOLD is active, then no more access
will be performed until AHOLD is de-asserted. This is
because the assertion of RDYRTN will cause the
PCnet-32 controller to insert a new T1 cycle into the linear burst. A T1 cycle requires assertion of ADS, but
ADS assertion is not allowed as long as AHOLD is still
asserted. Therefore, the T1 cycle is delayed until the
AHOLD is de-asserted.
The portion of the Address Bus that will be floated at
the time of an address hold operation will be
determined by the value of the Cache Line Length
register (BCR18, bits 15–11). Table 23 lists all of the
legal values of CLL showing the portion of the Address
Bus that will become floated during an address hold
operation.
Table 23. CLL Value of Floated Address in AHOLD
When AHOLD is asserted in the middle of a linear
burst, the linear burst may proceed without stalling or
halting. AHOLD requires that PCnet-32 controller float
a portion of its address bus, but linear burst data cycles
will still proceed, since the AHOLD signal only affects a
portion of the address bus, and that portion of the
address bus is not being used for the middle accesses
of a linear burst.
However, if AHOLD is asserted in the middle of a linear
burst operation, and the AHOLD signal is held long
enough that a new linear burst sequence will start (a
new ADS is to be issued by the PCnet-32 controller)
then at the end of the current linear sequence, the
PCnet-32 controller must wait for the AHOLD signal to
become inactive before beginning the next linear sequence, since the AHOLD signal would now interfere
with the PCnet-32 controller’s wish to assert ADS and
a new address on the entire address bus. During the
time that the PCnet-32 controller is waiting for the
release of the AHOLD signal, the PCnet-32 controller will
76
CLL Value
Floated Portion of Address
Bus During AHOLD
00000
None
00001
A31–A2
00010
A31–A3
00011
Reserved CLL Value
00100
A31–A4
00101–00111
Reserved CLL Values
01000
A31–A5
01001–01111
Reserved CLL Values
10000
A31–A6
10001–11111
Reserved CLL Values
Note that the default value of CLL after H_RESET is
00100. All timing diagrams in this document are drawn
with the assumption that this is the value of CLL.
Am79C965A
T1
T1
T1
Ta
Ta
Ta
T1
T2
T2
T2
T2
T1
BLCK
ADS
A4–A31
M/IO,
D/C
valid
W/R
A2–A3,
BEO–BE3
100
104
108
10C 110
To
PCnet-32
To
PCnet-32
To
PCnet-32
RDYRTN
BRDY
BLAST
To
PCnet-32
D0–D31
HOLD
HLDA
AHOLD
18219-26
Figure 23. Linear Burst Read in which AHOLD was Asserted
During T1 in the Linear Burst Sequence; Linear Burst Sequence
is Started when AHOLD is De-asserted
Am79C965A
77
Ti
Ti
T1
T2
T2
T2
T2
Th
Th
T1
T2
T2
BCLK
ADS
A4–A31
100
110
M/IO,
D/C
W/R
A2–A3,
BE0 – BE3
100
104
108
10C
110
114
RDYRTN
BRDY
BLAST
D0–D31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
AHOLD
HOLD
HLDA
18219-27
Figure 24. Linear Burst Read Cycle with AHOLD
Note that Linear Burst sequence is allowed to complete in spite of AHOLD,
but next linear Burst sequence is prevented from beginning until AHOLD is de-asserted.
Note that if the BRDY (or RDYRTN) signal is not returned while AHOLD is active, then the PCnet-32 controller will resume driving the same address onto the
address bus when AHOLD is released. The PCnet-32
controller will not reissue the ADS signal at this time.
78
Bus Activity Timer Register Time Out During
Linear Burst
When the Bus Activity Timer Register (CSR82 bits
[15:0]) times out before or concurrent with the
execution of the first T2 cycle of the fourth from the last
transfer cycle within a linear burst DMA sequence, then
the linear burst will continue until a legal starting
Am79C965A
address is reached, and then the PCnet-32 controller
will relinquish the bus. If the Bus Activity Timer Register
times out after the execution of the first T2 cycle of the
fourth from the last transfer cycle within a linear burst
DMA sequence, then the PCnet-32 controller will
complete the current linear burst sequence and will
execute a new linear burst sequence before releasing
the HOLD signal and relinquishing the bus. (Effectively,
the Bus Activity Timer time-out is treated in a manner
identical to the occurrence of a preemption event.)
Therefore, when programmed for Linear Burst mode,
the PCnet-32 controller bus mastership time may
exceed the Bus Activity Timer limit.
This is done because an immediate abort of the linear
burst due to timer expiration would leave the current
buffer pointer at an unaligned location. This would
cause an address alignment of several ordinary cycles
to be executed during the next FIFO DMA operation.
Repeated occurrences of this nature would
compromise the usefulness of the linear burst mode,
since this would increase the number of non-linear
burst cycles that are performed. This in turn would
increase the bus bandwidth requirement of the
PCnet-32 controller. Therefore, because the PCnet-32
controller Linear Burst operation does not strictly obey
the Burst Timer, the user should program the Burst
Timer value in such a manner as to include the
expected linear burst release time. If the user has
enabled the Linear Burst function, and wishes the
PCnet-32 controller to limit bus activity to MAX_TIME
ms, then the Burst Timer should be programmed to a
value of:
MAX_TIME- [((3+lbs) x w + 10 + lbs) x (BCLK period)]
This is because the PCnet-32 controller may use as
much as one “linear burst size” plus three transfers in
order to complete the linear burst before releasing the
bus.
As an example, if the linear burst size is 4 transfers, and
the number of wait states for the system memory is 2,
and the BCLK period is 30 ns and the MAX time
allowed on the bus is 3 ms, then the Burst Timer should
be programmed for:
MAX_TIME- [((3+lbs) x w + 10 + lbs)
x (BCLK period)];
3 ms – [(3 + 4) x 2 +10 + 4) x (30 ns)]
= 3 ms – (28 x 30 ns) = 3 – 0.84 ms = 2.16 ms.
Then, if the PCnet-32 controller’s Burst Timer times out
after 2.16 ms when the PCnet-32 controller has completed all but the last three transfers of a linear burst,
then the PCnet-32 controller may take as much as 0.84
ms to complete the bursts and release the bus. The bus
release will occur at 2.16 + 0.84 = 3 ms.
Burst Cycle Time Out During Linear Burst
When the Burst Cycle (CSR80 bits [7:0]) times out in
the middle of a linear burst, the linear burst will continue
until a legal starting address is reached, and then the
PCnet-32 controller will relinquish the bus.
The discussion for the Burst Cycle is identical to the
discussion for the Bus Activity Timer Register, except
that the quantities are in terms of transfers instead of in
terms of time.
The equation for the proper burst register setting is:
Burst count setting = (desired_max DIV (length of
linear burst in transfers)) x length of linear burst in
transfers, where DIV is the operation that yields
the INTEGER portion of the ³ operation.
Illegal Combinations of Watermark and LINBC
Certain combinations of watermark programming and
LINBC programming may create situations where no
linear bursting is possible, or where the FIFO may be
excessively read or excessively written. Such combinations are declared as illegal.
Combinations of watermark settings and LINBC settings must obey the following relationship:
watermark (in bytes) Š LINBC (in bytes)
Combinations of watermark and LINBC settings that
violate this rule may cause unexpected behavior.
Slave Timing
Slave timing in the PCnet-32 controller is designed to
perform to both Am486 32-bit timing requirements and
VESA VL-Bus timing requirements at the same time.
Since the VESA VL-Bus is based upon Am486 bus timing, there is really little difference evident, except for
hold-off requirements on the part of the slave driving
the RDY, BRDY, and data signals when the high speed
write signal is false. VESA VL-Bus requires that none
of these signals are driven by the slave until the second
T2 cycle when the high speed write signal is false.
Since the PCnet-32 controller does not examine the
high-speed write bit, it assumes that this signal is never
true, and therefore always obeys the more stringent
requirement of not being allowed to drive RDY, BRDY
and the data bus until the second T2. In addition, the
PCnet-32 controller will drive RDY and BRDY inactive
for one half BCLK cycle at the end of the slave access,
immediately following the BCLK cycle in which the
PCnet-32 controller asserted RDY. Again, this behavior
is required by the VESA VL-Bus specification, but it is
not required for operation within an Am486 system.
The PCnet-32 controller performs in this manner,
regardless of the PCnet-32 controller mode setting.
Slave timing can generally be inferred from the bus
master timing diagrams, with the exception of the
following information:
Am79C965A
79
PCnet-32 controller never responds with BRDY active
during slave accesses. All PCnet-32 controller slave
responses use only the RDY signal. BRDY will always
be de-asserted during all PCnet-32 controller slave accesses. RDY is a PCnet-32 controller output signal. It is
used during PCnet-32 controller slave accesses.
RDYRTN is a PCnet-32 controller input signal. It is
used during all PCnet-32 controller bus master
accesses, as well as during PCnet-32 controller slave
read accesses.
controller to operate within a system that has a single
READY signal.
The LDEV signal is generated in response to a valid
PCnet-32 controller I/O address on the bus together
with a valid ADS signal. LDEV is generated in an asynchronous manner by the PCnet-32 controller. See the
parameter listings for delay values of the LDEV signal.
RDY, BRDY and D[31:0] are never driven until the second T2 state of a slave access. Before that time, it is
expected that a system pull-up device is holding the
RDY and BRDY signals in a de-asserted state.
The typical number of wait states added to a slave access on the part of the PCnet-32 controller is 6 or 7
BCLK cycles, depending upon the relative phases of
the internal Buffer Management Unit clock and the
BCLK signal, since the internal Buffer Management
Unit clock is a divide-by-two version of the BCLK signal.
The RDY and BRDY signals are always driven high for
one half BCLK cycle immediately following the BCLK
period during which RDY was driven asserted. Then
the RDY and BRDY signals are floated. This behavior
is performed regardless of the PCnet-32 controller
mode setting. See Figure 25.
The PCnet-32 controller RDY and RDYRTN signals
may be wired together. This allows the PCnet-32
Ti
T1
T2
T2
T2
T2
T2
T2
T2
T2x
Ti
BCLK
ADS
ADDRESS,
BE0–BE3,
M/IO,
D/C
Valid
Not Valid
W/R
RDY
BRDY
RDYRTN
LDEV
D0–D31
Not Valid
From
PCnet-32
18219-28
Figure 25. Slave RDY Timing
VESA VL-Bus Mode Timing
VESA VL-Bus mode functional timing is essentially
identical to the timing of the Am486 32-bit mode,
except that the bus request and bus acknowledge
80
signals have inverted senses from those shown in the
previous timing diagrams and the AHOLD signal does
not exist while the PCnet-32 controller is programmed
Am79C965A
for VL-Bus mode. In addition, dynamic bus sizing is
supported in VESA VL-Bus mode, through the use of
the LBS16 signal. The following section describes
possible LBS16 interactions while programmed for the
VESA VL-Bus mode of operation. Other differences
exist between VL-Bus mode and Am486 mode, but
these other differences are not directly related to the
master or slave cycle timings.
Effect of LBS16 (VL-Bus mode only)
signal is used to indicate to the PCnet-32 controller
whether the VL-Bus target is a 16-bit or 32-bit peripheral. When the target device indicates that it is 16 bits
in width by asserting the LBS16 signal at least one
LCLK period before asserting the BRDY signal, then
the PCnet-32 controller will dynamically respond to the
size constraints of the peripheral by performing
additional accesses. Table 24 indicates the sequence
of accesses that will be performed by the PCnet-32
controller in response to the assertion of LBS16.
Dynamic bus sizing is recognized by the PCnet-32 controller while operating in the VL-Bus mode. The LBS16
Table 24. Data Transfer Sequence from 32-Bit Wide to 16-Bit Wide
Current Access
Next with LBS16
BE3
BE2
BE1
BE0
BE3
1
1
1
0
NR*
1
1
0
0
NR*
1
0
0
0
0
0
0
1
1
1
BE2
BE1
BE0
1
0
1
1
0
0
0
1
1
0
1
NR*
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
NR*
0
0
1
1
NR*
0
1
1
1
NR*
*NR = No second access Required for these cases.
Am79C965A
81
least one LCLK prior to the assertion of the RDYRTN
signal. This situation is illustrated in the second double
word access of the diagram. The wait state only needs
to be inserted on the first access of the sequence,
since from that point on, LBS16 could be held active
low until the entire double word transfer had completed,
thus adequately satisfying the LBS16 setup
requirement for the second RDYRTN assertion. Note
that only two bytes of data are transferred during each
T2 cycle so that the total number of bytes transferred
during each access is four.
Figure 26 shows an example of an exchange between
a 16-bit VL-Bus peripheral and the PCnet-32 controller
during ordinary read cycles while programmed for VLBus mode of operation. Note that the LBS16 signal is
asserted during the LCLK that precedes the assertion
of RDYRTN. In this particular case, in order to maintain
zero-wait state accesses, the 16-bit target must generate LBS16 in a very short time in order to meet the required setup time of LBS16 into the PCnet-32
controller. If the peripheral were incapable of meeting
the required setup time, then a wait state would be
needed in order to insure that LBS16 is asserted at
Ti
Ti
T1
T2
T2
T1
T2
T2
T2
Ti
Ti
LCLK
ADS
ADR4 ADR31,
M/IO, D/C
100
104
W/R
ADR2 ADR3,
BE2 BE3
100
104
104
BE0 BE1
RDYRTN
BRDY
BLAST
DAT0 DAT31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
LBS16
LREQ
LGNT
18219-29
Figure 26. VL-Bus Basic Read with LBS16
Figure 27 shows an example of an exchange between
a 16-bit VL-Bus peripheral and the PCnet-32 controller
82
during linear burst mode while programmed for VL-Bus
mode of operation. Note that the LBS16 signal is as-
Am79C965A
serted during the LCLK that precedes the assertion of
BRDY. In this particular case, in order to maintain zerowait state accesses, the 16-bit target must generate
LBS16 in a very short time in order to meet the required
setup time of LBS16 into the PCnet-32 controller. If the
peripheral were incapable of meeting the required
setup time, then a wait state would be needed in order
to insure that LBS16 is asserted at least one LCLK
prior to the assertion of the BRDY signal. For linear
burst sequences, this wait state would only need to be
inserted on the first access of the sequence, since from
that point on, LBS16 could be held active low until the
entire sequence had completed, thus adequately
Ti
Ti
T1
T2
T2
satisfying the LBS16 setup requirement for each
subsequent BRDY assertion. Note that only 2 bytes of
data are transferred during each T2 cycle so that the
total number of bytes transferred during the linear burst
sequence is 16, even though 8 T2 cycles are executed.
When the assertion of LBS16 during a PCnet-32 controller master access has created the need for a
second access as specified in the table above, and the
WBACK signal becomes active during the second
access, then when WBACK is de-asser ted, the
PCnet-32 controller will repeat both accesses of the
pair.
T2
T2
T2
T2
T2
T2
Ti
Ti
LCLK
ADS
ADR4–
ADR31,
M/IO,
D/C
100
W/R
ADR2–
ADR3,
BE2 –BE3
100
BE0–BE1
100
104
108
10C
RDYRTN
BRDY
BLAST
DAT0–
DAT31
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
To
PCnet-32
LBS16
LREQ
LGNT
18219-30
Figure 27. VL-Bus Linear Burst Read with LBS16
Am79C965A
83
Bus Master and Bus Slave Data
Byte Placement
case. Byte duplication for bus master writes and bus
slave reads will follow Table 25.
The general rule of data placement is that the active
data byte lanes are indicated by the byte enable signals
for all transfers. Note that during all master read
operations, the PCnet-32 controller will always activate
all byte enables, even though some byte lanes may not
contain “valid” data as indicated by a buffer pointer
value. In such instances, the PCnet-32 controller will
internally discard unneeded bytes.
A[1:0] in the table refer to software pointers, since
A[1:0] pins do not physically exist in the system.
(Software pointers include I/O address software
pointers in the driver code for I/O accesses to the
PCnet-32 controller, or software pointers for the
initialization block, descriptor areas or buffer areas that
are used by the PCnet-32 controller during master
accesses.)
Note that in all 32-bit environments, regardless of the
mode settings, the placement of data bytes on the data
bus during all PCnet-32 controller bus operations
(master and slave) will proceed in accordance with the
data byte duplication rules of the Am386DX. The
Am386DX requirement is for duplication of active data
bytes in corresponding lower-half byte lanes when the
access is a byte or word access that utilizes the upper
half of the data bus. PCnet-32 controller performs data
byte duplication in this manner. The Am386DX does
not indicate byte duplication when the active data bytes
of a byte or word access are exclusively contained in
the lower half of the data bus, therefore, the PCnet-32
controller will not perform data byte duplication in this
For master read operations, the PCnet-32 controller
expects data according to the byte enable signaling
only. Byte lanes with inactive byte enables are
expected to carry invalid data.
84
For slave write operations, the PCnet-32 controller expects data according to the byte enable signaling only.
Byte lanes with inactive byte enables are expected to
carry invalid data.
For master write operations, the PCnet-32 controller
will produce data as indicated in Table 25.
For slave read operations, the PCnet-32 controller will
produce data as indicated for the BSWP = 0 cases in
Table 25, regardless of the actual setting of the BSWP
bit.
Am79C965A
Table 25. Master and Slave Byte Placement
Case No.
A[1:0]
BSWP
BE3–BE0
D[31:24]
D[23:16]
D[15:8]
D[7:0]
1a
00
0
0000
Byte3
Byte2
Byte1
Byte0
1b
00
1
0000
Byte0
Byte1
Byte2
Byte3
2b
01
1
1000
Undef
Byte0
Byte1
Byte2
3a
10
0
0011
Byte1
Byte0
Copy1
Copy0
3b
10
1
1100
Undef
Undef
Byte0
Byte1
4a
11
0
0111
Byte0
Undef
Copy0
Undef
4b
11
1
1110
Undef
Undef
Undef
Byte0
5a
00
0
1000
Undef
Byte2
Byte1
Byte0
5b
00
1
0001
Byte0
Byte1
Byte2
Undef
6a
01
0
0001
Byte2
Byte1
Byte0
Undef
6b
01
1
1000
Undef
Byte0
Byte1
Byte2
7a
10
0
0011
Byte1
Byte0
Copy1
Copy0
7b
10
1
1100
Undef
Undef
Byte0
Byte1
8a
11
0
0111
Byte0
Undef
Copy0
Undef
8b
11
1
1110
Undef
Undef
Undef
Byte0
9a
00
0
1100
Undef
Undef
Byte1
Byte0
9b
00
1
0011
Byte0
Byte1
Copy0
Copy1
10a
01
0
1001
Undef
Byte1
Byte0
Undef
10b
01
1
1001
Undef
Byte0
Byte1
Undef
11a
10
0
0011
Byte1
Byte0
Copy1
Copy0
11b
10
1
1100
Undef
Undef
Byte0
Byte1
12a
11
0
0111
Byte0
Undef
Copy0
Undef
12b
11
1
1110
Undef
Undef
Undef
Byte0
13a
00
0
1110
Undef
Undef
Undef
Byte0
13b
00
1
0111
Byte0
Undef
Copy0
Undef
14a
01
0
1101
Undef
Undef
Byte0
Undef
14b
01
1
1011
Undef
Byte0
Undef
Copy0
15a
10
0
1011
Undef
Byte0
Undef
Copy0
15b
10
1
1101
Undef
Undef
Byte0
Undef
16a
11
0
0111
Byte0
Undef
Copy0
Undef
16b
11
1
1110
Undef
Undef
Undef
Byte0
Note that cases 10, 12, and 15 will not normally be
produced during PCnet-32 controller bus master
operations. These cases will only occur during bus
master operations if the software programs an
extremely short buffer size into the descriptor BCNT
field, where extremely short means exactly 4, 3, 2 or 1
bytes in length.
BSWP = 0 corresponds to little Endian byte ordering.
BSWP = 1 corresponds to big Endian byte ordering.
Am79C965A
85
Buffer Management Unit
The buffer management unit is a micro-coded state
machine which implements the initialization procedure
and manages the descriptors and buffers. The buffer
management unit operates at a speed of BCLK 2.
Initialization
PCnet-32 controller initialization includes the reading of
the initialization block in memor y to obtain the
operating parameters. The initialization block must be
located on a double word (4-byte) address boundary,
regardless of the setting of the SSIZE32, (CSR58[8]/
BCR20[8]) bit. The initialization block is read when the
INIT bit in CSR0 is set. The INIT bit should be set
before or concurrent with the STRT bit to insure correct
operation. Two double-words are read during each
per iod of bus mastership. When SSIZE32 = 1
(CSR58[8]/ BCR20[8]), this results in a total of 4
arbitration cycles (3 arbitration cycles if SSIZE32 = 0).
Once the initialization block has been completely read
in and internal registers have been updated, IDON will
be set in CSR0, and an interrupt generated (if IENA is
set). At this point, the BMU knows where the receive
and transmit descriptor rings and hence, normal
network operations will begin.
The Initialization Block is vectored by the contents of
CSR1 (least significant 16 bits of address) and CSR2
(most significant 16 bits of address). The block
contains the user defined conditions for PCnet-32
controller operation, together with the base addresses
and length information of the transmit and receive
descriptor rings.
There is an alternative method to initialize the
PCnet-32 controller. Instead of initialization via the
initialization block in memory, data can be written
directly into the appropriate registers. Either method
may be used at the discretion of the programmer. If the
registers are written to directly, the INIT bit must not be
set, or the initialization block will be read in, thus
overwriting the previously written information. Please
refer to Appendix C for details on this alternative
method.
Re-Initialization
The transmitter and receiver sections of the PCnet-32
controller can be turned on via the initialization block
(MODE Register DTX, DRX bits; CSR15[1:0]). The
states of the transmitter and receiver are monitored by
the host through CSR0 (RXON, TXON bits). The
PCnet-32 controller should be reinitialized if the transmitter and/or the receiver were not turned on during the
original initialization, and it was subsequently required
to activate them or if either section was shut off due to
the detection of an error condition (MER, UFLO, TX
BUFF error).
86
Re-initialization may be done via the initialization block
or by setting the STOP bit in CSR0, followed by writing
to CSR15, and then setting the START bit in CSR0.
Note that this form of restart will not perform the same
in the PCnet-32 controller as in the LANCE. In
par ticular, upon restar t, the PCnet-32 controller
reloads the transmit and receive descriptor pointers
with their respective base addresses. This means that
the software must clear the descriptor own bits and
reset its descriptor ring pointers before the restart of
the PCnet-32 controller. The reload of descriptor base
addresses is performed in the LANCE only after
initialization, so a restar t of the LANCE without
initialization leaves the LANCE pointing at the same
descriptor locations as before the restart.
Buffer Management
Buffer management is accomplished through message
descriptor entries organized as ring structures in memory. There are two rings, a receive ring and a transmit
ring. The size of a message descriptor entry is 4
double-words, or 16 bytes, when SSIZE32 = 1. The
size of a message descriptor entry is 4 words, or 8
bytes, when SSIZE32 = 0 (CSR58[8]/BCR20[8]).
Descriptor Rings
Each descriptor ring must be organized in a contiguous
area of memory. At initialization time (setting the INIT
bit in CSR0), the PCnet-32 controller reads the userdefined base address for the transmit and receive
descriptor rings, as well as the number of entries
contained in the descriptor rings. Descriptor ring base
addresses must be on a 16-byte boundary when
SSIZE32 = 1, or on an 8-byte boundary when SSIZE32
= 0. A maximum of 128 (or 512, depending upon the
value of SSIZE32) ring entries is allowed when the ring
length is set through the TLEN and RLEN fields of the
initialization block. However, the ring lengths can be set
beyond this range (up to 65535) by writing the transmit
and receive ring length registers (CSR76, CSR78)
directly.
Each ring entry contains the following information:
1. The address of the actual message data buffer in
user or host memory
2. The length of the message buffer
3. Status information indicating the condition of the
buffer
To permit the queuing and dequeuing of message buffers, ownership of each buffer is allocated to either the
PCnet-32 controller or the host. The OWN bit within the
descriptor status information, either TMD or RMD (see
section on TMD or RMD), is used for this purpose.
OWN = “1” signifies that the PCnet-32 controller currently has ownership of this ring descriptor and its
associated buffer. Only the owner is permitted to
relinquish ownership or to write to any field in the
Am79C965A
descriptor entry. A device that is not the current owner
of a descriptor entry cannot assume ownership or
change any field in the entry. A device may, however,
read from a descriptor that it does not currently own.
Software should always read descriptor entries in
sequential order. When software finds that the current
descriptor is owned by the PCnet-32 controller, then
the software must not read “ahead” to the next
descriptor. The software should wait at the unOWNed
descriptor until ownership has been granted to the
software (when SPRINTEN = 1 (CSR3, bit5), then this
rule is modified. See the SPRINTEN description). Strict
adherence to these rules insures that “Deadly
Embrace” conditions are avoided.
Descriptor Ring Access Mechanism
rings into CSRs for use by the PCnet-32 controller
during subsequent operations.
As the final step in the self-initialization process, the
base address of each ring is loaded into each of the
current descriptor address registers and the address of
the next descriptor entry in the transmit and receive
rings is computed and loaded into each of the next descriptor address registers.
When SSIZE32 = 0, software data structures are 16
bits wide. Figure 28 illustrates the relationship between
the Initialization Base Address, the Initialization Block,
the Receive and Transmit Descriptor Ring Base
Addresses, the Receive and Transmit Descriptors and
the Receive and Transmit Data Buffers, for the case of
SSIZE32 = 0.
At initialization, the PCnet-32 controller reads the base
address of both the transmit and receive descriptor
N
N
N
N
¥
CSR2
RES
¥
¥
24-Bit Base Address
Pointer to
Initialization Block
Rcv Descriptor
Ring
1st Desc.
Start
CSR1
2nd Desc.
Start
IADR[15:0]
IADR[23:16]
RMD0
RMD0
RMD1
RMD2
RMD3
Initialization
Block
Data
Buffer
1
Rcv
Buffers
PADR[31:16]
PADR[47:32]
LADRF[15:0]
LADRF[31:16]
Data
Buffer
2
M
LADRF[47:32]
LADRF[63:48]
Data
Buffer
N
¥
¥
¥
MODE
PADR[15:0]
M
M
M
RX DESCRIPTOR RINGS
RDRA[15:0]
RLEN
RES
RDRA[23:16]
TDRA[15:0]
TLEN
RES
¥
¥
¥
Xmt Descriptor
RX DESCRIPTOR
RINGS
Ring
2nd Desc.
Start
1st Desc.
Start
TDRA[23:16]
TMD0
TMD0
TMD1
Data
Buffer
1
TMD3
Data
Buffer
2
¥
¥
¥
Xmt
Buffers
TMD2
Data
Buffer
M
18219-35
Figure 28. 16-Bit Initialization Block Descriptor Rings
Am79C965A
87
When SSIZE32 = 1, software data structures are 32
bits wide. Figure 29 illustrates the relationship between
the Initialization Base Address, the Initialization Block,
the Receive and Transmit Descriptor Ring Base
Addresses (TDRA/RDRA), the Receive and Transmit
Descriptors and the Receive and Transmit Data
Buffers, for the case of SSIZE32 = 1.
Polling
If there is no network channel activity and there is no
pre- or post-receive or pre- or post-transmit activity being performed by the PCnet-32 controller, then the
PCnet-32 controller will periodically poll the current receive and transmit descriptor entries in order to ascertain their ownership. If the DPOLL bit in CSR4 is set,
then transmit polling function is disabled.
A typical polling operation consists of the following: The
PCnet-32 controller will use the current receive
descriptor address stored internally to vector to the
appropriate Receive Descriptor Table Entry (RDTE). It
will then use the current transmit descriptor address
(stored internally) to vector to the appropriate Transmit
Descriptor Table Entry (TDTE). The accesses will be
made in the following order: RMD1, then RMD0 of the
current RDTE during one bus arbitration, and after that,
TMD1, then TMD0 of the current TDTE during a
second bus arbitration. All information collected during
polling activity will be stored inter nally in the
appropriate CSRs (i.e. CSR18, CSR19, CSR20,
CSR21, CSR40, CSR42, CSR50, CSR52). UnOWNed
descriptor status will be internally ignored.
N
N
N
N
¥
CSR2
IADR[31:16]
¥
¥
32-Bit Base Address
Pointer to
Initialization Block
Rcv Descriptor
Ring
1st Desc.
Start
CSR1
2nd Desc.
Start
IADR[15:0]
RMD0
RMD0
RMD1
RMD2
RMD3
Initialization
Block
TLEN RES
Data
Buffer
1
Rcv
Buffers
Data
Buffer
2
M
M
Data
Buffer
N
¥
¥
¥
RLEN RES
MODE
PADR[31:0]
PADR[47:32]
RES
LADRF[31:0]
LADRF[63:32]
RDRA[31:0]
TDRA[31:0]
M
M
RX DESCRIPTOR RINGS
¥
¥
¥
Xmt Descriptor
RX DESCRIPTOR
RINGS
Ring
1st Desc.
Start
2nd Desc.
Start
TMD0
TMD0
TMD1
Data
Buffer
1
Data
Buffer
2
TMD3
¥
¥
¥
Xmt
Buffers
TMD2
Data
Buffer
M
18219-36
Figure 29. 32-Bit Initialization Block and Descriptor Ring
A typical receive poll is the product of the following conditions:
88
1. PCnet-32 controller does not possess ownership
of the current RDTE and the poll time has elapsed
and RXON = 1, or
Am79C965A
2. PCnet-32 controller does not possess ownership
of the next RDTE the poll time has elapsed and
RXON = 1.
STRT in CSR0 must be observed, otherwise the
default value will not be overwritten. See the CSR47
section for details.
If RXON = 0 the PCnet-32 controller will never poll
RDTE locations.
Transmit Descriptor Table Entry (TDTE)
The ideal system should always have at least one
RDTE available for the possibility of an unpredictable
receive event. (This condition is not a requirement. If
this condition is not met, it simply means that frames
will be missed by the system because there was no
buffer space available.) But the typical system usually
has at least one or two RDTEs available for the
possibility of an unpredictable receive event. Given that
this condition is satisfied, the current and next RDTE
polls are rarely seen and hence, the typical poll
operation simply consists of a check of the status of the
current TDTE. When there is only one RDTE (because
the RLEN was set to zero), then there is no “next
RDTE” and ownership of “next RDTE” cannot be
checked. If there is at least one RDTE, the RDTE poll
will rarely be seen and the typical poll operation simply
consists of a check of the current TDTE.
A typical transmit poll is the product of the following
conditions:
1. PCnet-32 controller does not possess ownership
of the current TDTE and
DPOLL = 0 and
TXON = 1 and
the poll time has elapsed, or
2. PCnet-32 controller does not possess ownership
of the current TDTE and
DPOLL = 0 and
TXON = 1 and
a frame has just been received, or
3. PCnet-32 controller does not possess ownership
of the current TDTE and
DPOLL = 0 and
TXON = 1 and
a frame has just been transmitted.
Setting the TDMD bit of CSR0 will cause the microcode
c o n tr o l l e r t o ex i t t h e p o l l c o u nt i n g c o de a n d
immediately perform a polling operation. If RDTE
ownership has not been previously established, then
an RDTE poll will be performed ahead of the TDTE poll.
If the microcode is not executing the poll counting code
when the TDMD bit is set, then the demanded poll of
the TDTE will be delayed until the microcode returns to
the poll counting code.
The user may change the poll time value from the default of 65,536 BCLK periods by modifying the value in
the Polling Interval register (CSR47). Note that if a nondefault value is desired, then a strict sequence of
setting the INIT bit in CSR0, waiting for IDON
(CSR0[8]), then writing to CSR47, and then setting
If, after a TDTE access, the PCnet-32 controller finds
that the OWN bit of that TDTE is not set, then the
PCnet-32 controller resumes the poll time count and
reexamines the same TDTE at the next expiration of
the poll time count.
If the OWN bit of the TDTE is set, but STP = 0, the
PCnet-32 controller will immediately request the bus in
order to reset the OWN bit of this descriptor. (This
condition would normally be found following a LCOL or
RETRY error that occurred in the middle of a transmit
frame chain of buffers.) After resetting the OWN bit of
this descriptor, the PCnet-32 controller will again immediately request the bus in order to access the next
TDTE location in the ring.
If the OWN bit is set and the buffer length is 0, the OWN
bit will be reset. In the LANCE the buffer length of 0 is
interpreted as a 4096-byte buffer. It is acceptable to
have a 0 length buffer on transmit with STP = 1 or STP
= 1 and ENP = 1. It is not acceptable to have 0 length
buffer with STP = 0 and ENP =1.
If the OWN bit is set and the start of packet (STP) bit is
set, then microcode control proceeds to a routine that
will enable transmit data transfers to the FIFO. The
PCnet-32 controller will look ahead to the next transmit
descriptor after it has performed at least one transmit
data transfer from the first buffer. (More than one transmit data transfer may possibly take place, depending
upon the state of the transmitter.) The contents of
TMD0 and TMD1 will be stored in Next Xmt Buffer
Address (CSR64 and CSR65), Next Xmt Byte Count
(CSR66) and Next Xmt Status (CSR67) regardless of
the state of the OWN bit. This transmit descriptor lookahead operation is performed only once.
If the PCnet-32 controller does not own the next TDTE
(i.e. the second TDTE for this frame), then it will complete transmission of the current buffer and then update
the status of the current (first) TDTE with the BUFF and
UFLO bits being set. This will cause the transmitter to
be disabled (CSR0, TXON=0). The PCnet-32 controller
will have to be re-initialized to restore the transmit
function. The situation that matches this description
implies that the system has not been able to stay ahead
of the PCnet-32 controller in the transmit descriptor
ring and therefore, the condition is treated as a fatal
error. (To avoid this situation, the system should always
set the transmit chain descriptor own bits in reverse
order.)
If the PCnet-32 controller does own the second TDTE
in a chain, it will gradually empty the contents of the first
buffer (as the bytes are needed by the transmit opera-
Am79C965A
89
tion), perform a single-cycle DMA transfer to update the
status of the first descriptor (reset the OWN bit in
TMD1), and then it may perform one data DMA access
on the second buffer in the chain before executing another look-ahead operation (i.e. a look-ahead to the
third descriptor.)
The PCnet-32 controller can queue up to two frames in
the transmit FIFO. Call them frame “X” and frame “Y”,
where “Y” is after “X”. Assume that frame “X” is
currently being transmitted. Because the PCnet-32
controller can perform look-ahead data transfer past
the ENP of frame “X”, it is possible for the PCnet-32
controller to completely transfer the data from a buffer
belonging to frame “Y” into the FIFO even though frame
“X” has not yet been completely transmitted. At the end
of this “Y” buffer data transfer, the PCnet-32 controller
will write intermediate status (change the OWN bit to a
zero) for the “Y” frame buffer, if frame “Y” uses data
chaining. The last TDTE for the “X” frame (containing
ENP) has not yet been written, since the “X” frame has
not yet been completely transmitted. Note that the
PCnet-32 controller has, in this instance, returned
ownership of a TDTE to the host out of a “normal”
sequence. For this reason, it becomes imperative that
the host system should never read the Transmit DTE
ownership bits out of order.
There should be no problems for software which processes buffers in sequence, waiting for ownership
before proceeding.
If an error occurs in the transmission before all of the
bytes of the current buffer have been transferred, then
TMD2 and TMD1 of the current buffer will be written. In
such a case, data transfers from the next buffer will not
commence. Instead, following the TMD2/TMD1
update, the PCnet-32 controller will go to the next
transmit frame, if any, skipping over the rest of the
frame which experienced an error, including chained
buffers. This is done by returning to the polling
microcode where PCnet-32 controller will immediately
access the next descriptor and find the condition
OWN=1 and STP=0 as described earlier. As described
for that case, the PCnet-32 controller will reset the own
bit for this descriptor and continue in like manner until
a descriptor with OWN=0 (no more transmit frames in
the ring) or OWN=1 and STP=1 (the first buffer of a new
frame) is reached.
At the end of any transmit operation, whether
successful or with errors, immediately following the
completion of the descriptor updates, the PCnet-32
controller will al ways perform another poll operation.
As described earlier, this poll operation will begin with
a check of the current RDTE, unless the PCnet-32
controller already owns that descriptor. Then the
PCnet-32 controller will proceed to polling the next
TDTE. If the transmit descriptor OWN bit has a zero
value, then the PCnet-32 controller will resume poll
90
time count incrementing. If the transmit descriptor
OWN bit has a value of ONE, then the PCnet-32
controller will begin filling the FIFO with transmit data
and initiate a transmission. This end-of-operation poll
coupled with the TDTE look-ahead operation allows
the PCnet-32 controller to avoid inserting poll time
counts between successive transmit frames.
Whenever the PCnet-32 controller completes a
transmit frame (either with or without error) and writes
the status information to the current descriptor, then the
TINT bit of CSR0 is set to indicate the completion of a
transmission. This causes an interrupt signal if the
IENA bit of CSR0 has been set and the TINTM bit of
CSR3 is reset.
Receive Descriptor Table Entry (RDTE)
If the PCnet-32 controller does not own both the current
and the next Receive Descriptor Table Entry then the
PCnet-32 controller will continue to poll according to
the polling sequence described above. If the receive
descriptor ring length is 1, then there is no next
descriptor to be polled.
If a poll operation has revealed that the current and the
next RDTE belong to the PCnet-32 controller then
additional poll accesses are not necessary. Future poll
operations will not include RDTE accesses as long as
the PCnet-32 controller retains ownership of the
current and the next RDTE.
When receive activity is present on the channel, the
PCnet-32 controller waits for the complete address of
the message to arrive. It then decides whether to
accept or reject the frame based on all active
addressing schemes. If the frame is accepted the
PCnet-32 controller checks the current receive buffer
status register CRST (CSR41) to determine the
ownership of the current buffer.
If ownership is lacking, then the PCnet-32 controller will
immediately perform a (last ditch) poll of the current
RDTE. If ownership is still denied, then the PCnet-32
controller has no buffer in which to store the incoming
message. The MISS bit will be set in CSR0 and an
interrupt will be generated if INEA=1 (CSR0) and
MISSM=0 (CSR3). Another poll of the current RDTE
will not occur until the frame has finished.
If the PCnet-32 controller sees that the last poll (either
a normal poll, or the last-ditch effort described in the
above paragraph) of the current RDTE shows valid
ownership, then it proceeds to a poll of the next RDTE.
Following this poll, and regardless of the outcome of
this poll, transfers of receive data from the FIFO may
begin.
Regardless of ownership of the second receive
descriptor, the PCnet-32 controller will continue to
perform receive data DMA transfers to the first buffer,
using burst-cycle DMA transfers. If the frame length
Am79C965A
exceeds the length of the first buffer, and the PCnet-32
controller does not own the second buffer, ownership of
the current descriptor will be passed back to the
system by writing a zero to the OWN bit of RMD1 and
status will be written indicating buffer (BUFF=1) and
possibly overflow (OFLO=1) errors.
If the frame length exceeds the length of the first (current) buffer, and the PCnet-32 controller does own the
second (next) buffer, ownership will be passed back to
the system by writing a zero to the OWN bit of RMD1
when the first buffer is full. Receive data transfers to the
second buffer may occur before the PCnet-32
controller proceeds to look ahead to the ownership of
the third buffer. Such action will depend upon the state
of the FIFO when the status has been updated on the
first descriptor. In any case, look-ahead will be
performed to the third buffer and the information
gathered will be stored in the chip, regardless of the
state of the ownership bit. As in the transmit flow, lookahead operations are performed only once.
This activity continues until the PCnet-32 controller recognizes the completion of the frame (the last byte of
this receive message has been removed from the
FIFO). The PCnet-32 controller will subsequently
update the current RDTE status with the end of frame
(ENP) indication set, write the message byte count
(MCNT) of the complete frame into RMD2 and
overwrite the “current” entries in the CSRs with the
“next” entries.
Media Access Control
The Media Access Control engine incorporates the essential protocol requirements for operation of a compliant Ethernet/802.3 node, and provides the interface
between the FIFO subsystem and the Manchester
Encoder/ Decoder (MENDEC).
The MAC engine is fully compliant to Section 4 of ISO/
IEC 8802-3 (ANSI/IEEE Standard 1990 Second
edition) and ANSI/IEEE 802.3 (1985).
The MAC engine provides programmable enhanced
features designed to minimize host supervision, bus
utilization, and pre- or post-message processing.
These include the ability to disable retries after a
collision, dynamic FCS generation on a frame-by-frame
basis, and automatic pad field insertion and deletion to
enforce minimum frame size attributes and reduces
bus bandwidth use.
The two primary attributes of the MAC engine are:
■ Transmit and receive message data encapsulation.
— Framing (frame boundary delimitation, frame
synchronization)
— Addressing (source and destination address
handling)
— Error detection (physical medium transmission
errors)
■ Media access management.
— Medium allocation (collision avoidance)
— Contention resolution (collision handling)
Transmit and Receive Message Data Encapsulation
The MAC engine provides minimum frame size
enforcement for transmit and receive frames. When
APAD_XMT = 1 (CSR4[11]), transmit messages will be
padded with sufficient bytes (containing 00h) to ensure
that the receiving station will observe an information
field (destination address, source address, length/type,
data and FCS) of 64 bytes. When ASTRP_RCV = 1
(CSR4[10]), the receiver will automatically strip pad
bytes from the received message by observing the
value in the length field, and stripping excess bytes if
this value is below the minimum data size (46 bytes).
Both features can be independently overridden to allow
illegally short (less than 64 bytes of frame data)
messages to be transmitted and/or received. Use of
this feature decreases bus usage because the pad
bytes are not transferred into or out of host memory.
Framing (Frame Boundary Delimitation, Frame
Synchronization)
The MAC engine will autonomously handle the construction of the transmit frame. Once the Transmit FIFO
has been filled to the predetermined threshold (set by
XMTSP in CSR80), and providing access to the
channel is currently permitted, the MAC engine will
commence the 7-byte preamble sequence
(10101010b, where first bit transmitted is a 1). The
MAC engine will subsequently append the Start Frame
Delimiter (SFD) byte (10101011b) followed by the
serialized data from the Transmit FIFO. Once the data
has been completed, the MAC engine will append the
FCS (most significant bit first) which was computed on
the message (destination address, source address,
length field, data field, and pad (if applicable)).
Note that the user is responsible for the correct
ordering and content in each of the fields in the frame,
including the destination address, source address,
length/type and frame data.
The receive section of the MAC engine will detect an
incoming preamble sequence and lock to the encoded
clock. The internal MENDEC will decode the serial bit
stream and present this to the MAC engine. The MAC
will discard the first 8-bits of information before searching for the SFD sequence. Once the SFD is detected,
all subsequent bits are treated as part of the frame. The
MAC engine will inspect the length field to ensure minimum frame size, strip unnecessary pad characters (if
enabled), and pass the remaining bytes through the
Receive FIFO to the host. If pad stripping is performed,
the MAC engine will also strip the received FCS bytes,
Am79C965A
91
although the normal FCS computation and checking
will occur. Note that apart from pad stripping, the frame
will be passed unmodified to the host. If the length field
has a value of 46 or greater, the MAC engine will not
attempt to validate the length against the number of
bytes contained in the message.
If the frame terminates or suffers a collision before 64
bytes of information (after SFD) have been received,
the MAC engine will automatically delete the frame
from the Receive FIFO, without host intervention.
Addressing (Source and Destination Address
Handling)
The first 6 bytes of information after SFD will be interpreted as the destination address field. The MAC
engine provides facilities for physical, logical (multicast)
and broadcast address reception. In addition, multiple
physical addresses can be constructed (perfect
address filtering) using external logic in conjunction
with the EADI interface.
Error Detection (Physical Medium Transmission
Errors)
The MAC engine provides several facilities which
report and recover from errors on the medium. In
addition, the network is protected from gross errors due
to inability of the host to keep pace with the MAC
engine activity.
On completion of transmission, the following transmit
status is available in the appropriate TMD and CSR
areas:
■ The number of transmission retry attempts (ONE,
MORE or RTRY).
■ Whether the MAC engine had to Defer (DEF) due to
channel activity.
■ Excessive deferral (EXDEF), indicating that the
transmitter has experienced Excessive Deferral on
this transmit frame, where Excessive Deferral is defined in ISO 8802-3 (IEEE/ANSI 802.3).
■ Loss of Carrier (LCAR) indicates that there was an
interruption in the ability of the MAC engine to monitor its own transmission. Repeated LCAR errors indicate a potentially faulty transceiver or network
connection.
■ Late Collision (LCOL) indicates that the transmission suffered a collision after the slot time. This is indicative of a badly configured network. Late
collisions should not occur in a normal operating
network.
■ Collision Error (CER) indicates that the transceiver
did not respond with an SQE Test message within
the predetermined time after a transmission completed. This may be due to a failed transceiver, disconnected or faulty transceiver drop cable, or the
92
fact the transceiver does not support this feature (or
it is disabled).
In addition to the reporting of network errors, the MAC
engine will also attempt to prevent the creation of any
network error due to the inability of the host to service
the MAC engine. During transmission, if the host fails
to keep the Transmit FIFO filled sufficiently, causing an
underflow, the MAC engine will guarantee the message
is either sent as a runt packet (which will be deleted by
the receiving station) or has an invalid FCS (which will
also cause the receiver to reject the message).
The status of each receive message is available in the
appropriate RMD and CSR areas. FCS and Framing
errors (FRAM) are reported, although the received
frame is still passed to the host. The error will only be
reported if an FCS error is detected and there are a non
integral number of bytes in the message. The MAC
engine will ignore up to 7 additional bits at the end of a
message (dribbling bits), which can occur under
normal network operating conditions. The reception of
8 additional bits will cause the MAC engine to deserialize the entire byte, and will result in the received
message and FCS being modified.
The PCnet-32 controller can handle up to 7 dribbling
bits when a received frame terminates. During the
reception, the FCS is generated on every serial bit
(including the dribbling bits) coming from the cable,
although the internally saved FCS value is only
updated on the eighth bit (on each byte boundary). The
framing error is reported to the user as follows:
■ If the number of dribbling bits are 1 to 7 and there is
no CRC (FCS) error, then there is no Framing error
(FRAM = 0).
■ If the number of dribbling bits are 1 to 7 and there is
a CRC (FCS) error, then there is also a Framing
error (FRAM = 1).
■ If the number of dribbling bits = 0, then there is no
Framing error. There may or may not be a CRC
(FCS) error.
Counters are provided to report the Receive Collision
Count and Runt Packet Count for network statistics and
utilization calculations.
Note that if the MAC engine detects a received frame
which has a 00b pattern in the preamble (after the first
8-bits which are ignored), the entire frame will be ignored. The MAC engine will wait for the network to go
inactive before attempting to receive additional frames.
Media Access Management
The basic requirement for all stations on the network is
to provide fairness of channel allocation. The 802.3/
Ethernet protocols define a media access mechanism
which permits all stations to access the channel with
equality. Any node can attempt to contend for the
channel by waiting for a predetermined time (Inter
Am79C965A
Packet Gap internal) after the last activity, before
transmitting on the media. The channel is a multidrop
communications media (with various topological
configurations permitted) which allows a single station
to transmit and all other stations to receive. If two nodes
simultaneously contend for the channel, their signals
will interact causing loss of data, defined as a collision.
It is the responsibility of the MAC to attempt to avoid
and recover from a collision, to guarantee data integrity
for the end-to-end transmission to the receiving station.
Medium Allocation
The IEEE/ANSI 802.3 Standard (ISO/IEC 8802-3
1990) requires that the CSMA/CD MAC monitor the
medium for traffic by watching for carrier activity. When
carrier is detected, the media is considered busy, and
the MAC should defer to the existing message.
asserts, at which point the IPG counter will resume the
9.6 µs count once again. Once the IFS1 period of 6.0
µs has elapsed, the PCnet-32 controller will begin
timing the second part deferral (Inter Frame Spacing
Part 2 - IFS2) of 3.6 µs. Once IFS1 has completed, and
IFS2 has commenced, the PCnet-32 controller will not
defer to a receive frame if a transmit frame is pending.
This means that the PCnet-32 controller will not
attempt to receive the receive frame, since it will start
to transmit, and generate a collision at 9.6 µs. The
PCnet-32 controller will guarantee to complete the
preamble (64-bit) and jam (32-bit) sequence before
ceasing transmission and invoking the random back-off
algorithm.
See ANSI/IEEE Std 802.3-1990 Edition, 4.2.3.2.1:
T h i s t r a n s m i t t w o p a r t d e fe r r a l a l g o r i t h m i s
implemented as an option which can be disabled using
the DXMT2PD bit in CSR3. Two part deferral after
transmission is useful for ensuring that severe IPG
shrinkage cannot occur in specific circumstances,
causing a transmit message to follow a receive
message so closely as to make them indistinguishable.
“Note: It is possible for the PLS carrier sense indication to fail to be asserted during a collision on the media. If the deference process simply times the inter
packet gap based on this indication it is possible for a
short inter packet gap to be generated, leading to a
potential reception failure of a subsequent frame. To
enhance system robustness the following optional
measures, as specified in 4.2.8, are recommended
when Inter Frame Spacing Part 1 is other than zero:
During the time period immediately after a transmission
has been completed, the external transceiver (in the
case of a standard AUI connected device), should generate the SQE Test message (a nominal 10 MHz burst
of 5-15 Bit Times duration) on the CI± pair (within 0.6 1.6 µs after the transmission ceases). During the time
period in which the SQE Test message is expected the
PCnet-32 controller will not respond to receive carrier
sense.
1. Upon completing a transmission, start timing the
interpacket gap, as soon as transmitting and carrier sense are both false.
See ANSI/IEEE Std 802.3-1990 Edition, 7.2.4.6 (1)):
The ISO 8802-3 (IEEE/ANSI 802.3) Standard also allows optional two-par t deferral after a receive
message.
2. When timing an inter packet gap following reception, reset the inter packet gap timing if carrier
sense becomes true during the first 2/3 of the
inter-packet gap timing interval. During the final 1/
3 of the interval the timer shall not be reset to en
sure fair access to the medium. An initial period
shorter than 2/3 of the interval is permissible in
cluding zero.
The MAC engine implements the optional receive two
part deferral algorithm, with a first part inter-framespacing time of 6.0 µs. The second part of the interframe-spacing interval is therefore 3.6 µs.
The PCnet-32 controller will perform the two part deferral algorithm as specified in Section 4.2.8 (Process
Deference). The Inter Packet Gap (IPG) timer will start
timing the 9.6 µs Inter Frame Spacing after the receive
carrier is de-asserted. During the first part deferral (Inter Frame Spacing Par t1 - IFS1) the PCnet-32
controller will defer any pending transmit frame and
respond to the receive message. The IPG counter will
be reset to zero continuously until the carrier de-
“At the conclusion of the output function, the DTE
opens a time window during which it expects to see
the signal_quality_error signal asserted on the
Control In circuit. The time window begins when the
CARRIER_ STATUS becomes CARRIER_OFF. If
execution of the output function does not cause
CARRIER_ON to occur, no SQE test occurs in the
DTE. The duration of the window shall be at least
4.0 µs but no more than 8.0 µs. During the time
window, the Carrier Sense Function is inhibited.”
The PCnet-32 controller implements a carrier sense
“blinding” period within 0 µs–4.0 µs from de-assertion
of carrier sense after transmission. This effectively
means that when transmit two part deferral is enabled
(DXMT2PD is cleared) the IFS1 time is from 4 µs to 6
µs after a transmission. However, since IPG shrinkage
below 4 µs will rarely be encountered on a correctly
configured networks, and since the fragment size will
be larger than the 4 µs blinding window, then the IPG
counter will be reset by a worst case IPG shrinkage/
fragment scenario and the PCnet-32 controller will
defer its transmission. In addition, the PCnet-32
controller will not restart the “blinding” period if carrier
Am79C965A
93
is detected within the 4.0 µs – 6.0 µs IFS1 period, but
will commence timing of the entire IFS1 period.
Contention Resolution (Collision Handling)
Collision detection is performed and reported to the
MAC engine by the integrated Manchester Encoder/
Decoder (MENDEC).
If a collision is detected before the complete preamble/
SFD sequence has been transmitted, the MAC Engine
will complete the preamble/SFD before appending the
jam sequence. If a collision is detected after the preamble/SFD has been completed, but prior to 512 bits
being transmitted, the MAC Engine will abort the
tr an s m i s s i on , a nd a p p en d t he j a m s e qu e nc e
immediately. The jam sequence is a 32-bit all zeroes
pattern.
The MAC Engine will attempt to transmit a frame a total
of 16 times (initial attempt plus 15 retries) due to
normal collisions (those within the slot time). Detection
of c ollis ion will caus e the tra nsmis sion to be
rescheduled, dependent on the back-off time that the
MAC Engine computes. If a single retry was required,
the ONE bit will be set in the Transmit Frame Status. If
more than one retry was required, the MORE bit will be
set. If all 16 attempts experienced collisions, the RTRY
bit will be set (ONE and MORE will be clear), and the
transmit message will be flushed from the FIFO. If
retries have been disabled by setting the DRTY bit in
CSR15, the MAC Engine will abandon transmission of
the frame on detection of the first collision. In this case,
only the RTRY bit will be set and the transmit message
will be flushed from the FIFO.
If a collision is detected after 512 bit times have been
transmitted, the collision is termed a late collision. The
MAC Engine will abort the transmission, append the
jam sequence and set the LCOL bit. No retry attempt
will be scheduled on detection of a late collision, and
the transmit message will be flushed from the FIFO.
The PCnet-32 controller provides an alternative algorithm, which suspends the counting of the slot time/IPG
during the time that receive carrier sense is detected.
This aids in networks where large numbers of nodes
are present, and numerous nodes can be in collision. It
effectively accelerates the increase in the back-off time
in busy networks, and allows nodes not involved in the
collision to access the channel whilst the colliding
nodes await a reduction in channel activity. Once
channel activity is reduced, the nodes resolving the
collision time out their slot time counters as normal.
Manchester Encoder/Decoder (MENDEC)
The integrated Manchester Encoder/Decoder provides
the PLS (Physical Layer Signaling) functions required
for a fully compliant ISO 8802-3 (IEEE/ANSI 802.3)
station. The MENDEC provides the encoding function
for data to be transmitted on the network using the high
accuracy on-board oscillator, driven by either the
crystal oscillator or an external CMOS level compatible
clock. The MENDEC also provides the decoding
function from data received from the network. The
MENDEC contains a Power On Reset (POR) circuit,
which ensures that all analog portions of the PCnet-32
controller are forced into their correct state during power
up, and prevents erroneous data transmission and/or
reception during this time.
External Crystal Characteristics
When using a crystal to drive the oscillator, the crystal
specification shown in Table 26 may be used to ensure
less than ±0.5 ns jitter at the transmit outputs.
Table 26. External Crystal Specification
Parameter
Min
1.Parallel Resonant
Frequency
2.Resonant Frequency Error
Nom
Max
20
–50
MHz
+50
3.Change in Resonant Frequency –40
With Respect To Temperature
20
(0×C–70×C)*
Unit
PPM
+40
PPM
50
pF
The ISO 8802-3 (IEEE/ANSI 802.3) Standard requires
use of a “truncated binary exponential back-off” algorithm which provides a controlled pseudo random
mechanism to enforce the collision back-off interval,
be-fore retransmission is attempted.
4.Crystal Load Capacitance
See ANSI/IEEE Std 802.3-1990 Edition, 4.2.3.2.5:
6.Series Resistance
25
ohm
7.Shunt Capacitance
7
pF
TBD
mW
“At the end of enforcing a collision (jamming), the
CSMA/CD sublayer delays before attempting to retransmit the frame. The delay is an integer multiple
of slotTime. The number of slot times to delay
before the nth retransmission attempt is chosen as
a uniformly distributed random integer r in the
range:
0 £ r < 2k –1
where k = min (n,10).”
94
5.Motional Crystal
Capacitance (C1)
0.022
8.Drive Level
pF
*Requires trimming spec,: no trim is 50 ppm total.
External Clock Drive Characteristics
When driving the oscillator from an external clock
source, XTAL2 must be left floating (unconnected). An
external clock having the following characteristics must
be used to ensure less than ±0.5 ns jitter at the transmit
outputs. See Table 27.
Am79C965A
Receiver Path
Table 27. External Clock Drive Characteristics
Clock Frequency:
20 MHz ± 0.01%
Rise/Fall Time (tR/tF):
< 6 ns from 0.5 V
to VDD–0.5
XTAL1 HIGH/LOW Time
20 ns min
The principal functions of the Receiver are to signal the
PCnet-32 controller that there is information on the receive pair, and separate the incoming Manchester encoded data stream into clock and NRZ data.
(tHIGH/tLOW):
XTAL1 Falling Edge to
Falling Edge Jitter:
< ±0.2 ns at
2.5 V input (VDD/2)
MENDEC Transmit Path
The transmit section encodes separate clock and NRZ
data input signals into a standard Manchester encoded
serial bit stream. The transmit outputs (DO±/TXD±) are
designed to operate into terminated transmission lines.
When operating into a 78 W terminated transmission
line, the transmit signaling meets the required output
levels and skew for Cheaper net, Ether net and
IEEE-802.3.
Transmitter Timing and Operation
A 20 MHz fundamental mode crystal oscillator provides
the basic timing reference for the MENDEC portion of
the PCnet-32 controller. The crystal is divided by two,
to create the internal transmit clock reference. Both
clocks are fed into the MENDEC’s Manchester Encoder
to generate the transitions in the encoded data stream.
The internal transmit clock is used by the MENDEC to
internally synchronize the Internal Transmit Data
(ITXDAT) from the controller and Internal Transmit
Enable (ITXEN). The internal transmit clock is also
used as a stable bit rate clock by the receive section of
the MENDEC and controller.
The oscillator requires an external ±0.01% timing reference. The accuracy requirements, if an external crystal
is used are tighter because allowance for the on-board
parasitics must be made to deliver a final accuracy of
0.01%.
Transmission is enabled by the controller. As long as
the ITXEN request remains active, the serial output of
the controller will be Manchester encoded and appear
at DO±/TXD±. When the internal request is dropped by
the controller, the differential transmit outputs go to one
of two idle states, dependent on TSEL in the Mode
Register (CSR15, bit 9):
TSEL LOW:
The idle state of DO±/TXD± yields “zero”
differential to operate transformer-coupled
loads.
TSEL HIGH:
In this idle state, DO+/TXD+ is positive
with respect to DO–/TXD– (logical HIGH).
The Receiver section (see Figure 30) consists of two
parallel paths. The receive data path is a zero
threshold, wide bandwidth line receiver. The carrier
path is an offset threshold bandpass detecting line
receiver. Both receivers share common bias networks
to allow operation over a wide input common mode
range.
Input Signal Conditioning
Transient noise pulses at the input data stream are rejected by the Noise Rejection Filter. Pulse width rejection is proportional to transmit data rate.
The Carrier Detection circuitry detects the presence of
an incoming data frame by discerning and rejecting
noise from expected Manchester data, and controls the
stop and start of the phase-lock loop during clock
acqui siti on.Clock acqui sitio n r equir es a vali d
Manchester bit pattern of 1010b to lock onto the
incoming message.
When input amplitude and pulse width conditions are
met at DI±/RXD±, the internal enable signal from the
MENDEC to controller (IRXCRS) is asserted and clock
acquisition cycle is initiated.
Clock Acquisition
When there is no activity at DI± (receiver is idle), the
receive oscillator is phase locked to the internal
transmit clock. The first negative clock transition (bit
cell center of first valid Manchester “0”) after IRXCRS
is asser ted interrupts the receive oscillator. The
oscillator is then restarted at the second Manchester
“0” (bit time 4) and phase locked to it. As a result, the
MENDEC acquires the clock from the incoming
Manchester bit pattern in bit times with a “1010”
Manchester bit pattern.
ISRDCLK and IRXDAT are enabled 1/4 bit time after
clock acquisition in bit cell 5. IRXDAT is at a HIGH state
when the receiver is idle (no ISRDCLK). IRXDAT
however, is undefined when clock is acquired and may
remain HIGH or change to LOW state whenever
ISRDCLK is enabled. At 1/4 bit time through bit cell
5,the controller portion of the PCnet-32 controller sees
the first ISRDCLK transition. This also strobes in the
incoming fifth bit to the MENDEC as Manchester “1”.
IRXDAT may make a transition after the ISRDCLK
rising edge bit cell 5, but its state is still undefined. The
Manchester“1” at bit 5 is clocked to IRXDAT output at 1/
4 bit time bit cell 6.
Am79C965A
95
DI±/RXD±
Data
Receiver
Manchester
Decoder
Noise
Reject
Filter
Carrier
Detect
Circuit
IRXDAT*
ISRDCLK*
IRXCRS*
*Internal signal
18219-37
Figure 30. Receive Block Diagram
PLL Tracking
Jitter Tolerance Definition
After clock acquisition, the phase-locked clock is compared to the incoming transition at the bit cell center
(BCC) and the resulting phase error is applied to a correction circuit. This circuit ensures that the phaselocked clock remains locked on the received signal.
Individual bit cell phase corrections of the Voltage
Controlled Oscillator (VCO) are limited to 10% of the
phase difference between BCC and phase-locked
clock. Hence, input data jitter is reduced in ISRDCLK
by 10 to 1.
The MENDEC utilizes a clock capture circuit to align its
internal data strobe with an incoming bit stream. The
clock acquisition circuitry requires four valid bits with
the values 1010b. Clock is phase-locked to the
negative transition at the bit cell center of the second
“0” in the pattern.
Carrier Tracking and End of Message
The carrier detection circuit monitors the DI± inputs
after IRXCRS is asserted for an end of message.
IRXCRS de-asserts 1 to 2 bit times after the last
positive transition on the incoming message. This
initiates the end of reception cycle. The time delay from
the last rising edge of the message to IRXCRS deassert allows the last bit to be strobed by ISRDCLK and
transferred to the controller section, but prevents any
extra bit(s) at the end of message.
Data Decoding
The data receiver is a comparator with clocked output
to minimize noise sensitivity to the DI±/RXD± inputs.
Input error is less than ± 35 mV to minimize sensitivity
to input rise and fall time. ISRDCLK strobes the data
receiver output at 1/4 bit time to determine the value of
the Manchester bit, and clocks the data out on IRXDAT
on the following ISRDCLK. The data receiver also
generates the signal used for phase detector
comparison to the internal MENDEC voltage controlled
oscillator (VCO).
96
Since data is strobed at 1/4 bit time, Manchester transitions which shift from their nominal placement through
1/4 bit time will result in improperly decoded data. With
this as the criteria for an error, a definition of “Jitter
Handling” is:
The peak deviation approaching or crossing 1/4 bit
cell position from nominal input transition, for which
the MENDEC section will properly decode data.
Attachment Unit Interface(AUI)
The AUI is the PLS (Physical Layer Signaling) to PMA
(Physical Medium Attachment) interface which effectively connects the DTE to a MAU. The differential
interface provided by the PCnet-32 controller is fully
compliant to Section 7 of ISO 8802-3 (ANSI/IEEE
802.3).
After the PCnet-32 controller initiates a transmission it
will expect to see data “looped-back” on the DI± pair
(when the AUI port is selected). This will internally generate a “carrier sense”, indicating that the integrity of
the data path to and from the MAU is intact, and that the
MAU is operating correctly. This “carrier sense” signal
must be asserted within TBD bit times after the first
transmitted bit on DO± (when using the AUI port). If
“carrier sense” does not become active in response to
the data transmission, or becomes inactive before the
end of transmission, the loss of carrier (LCAR) error bit
Am79C965A
will be set in the Transmit Descriptor Ring (TMD2,
bit27) after the frame has been transmitted.
Differential Input Terminations
The differential input for the Manchester data (DI±) is
externally terminated by two 40.2 W ±1% resistors and
one optional common-mode bypass capacitor, as
shown in the Differential Input Termination diagram below. The differential input impedance, ZIDF, and the
common-mode input impedance, ZICM, are specified
so that the Ethernet specification for cable termination
impedance is met using standard 1% resistor
terminators. If SIP devices are used, 39 W is also a
suitable value. The CI± differential inputs are
terminated in exactly the same way as the DI± pair.
Twisted Pair Transmit Function
The differential driver circuitry in the TXD± and TXP±
pins provides the necessary electrical driving capability
and the pre-distortion control for transmitting signals
over maximum length Twisted Pair cable, as specified
by the 10BASE-T supplement to the ISO 8802-3 (IEEE/
ANSI 802.3) Standard. The transmit function for data
output meets the propagation delays and jitter
specified by the standard.
Twisted Pair Receive Function
The receiver complies with the receiver specifications
of the ISO 8802-3 (IEEE/ANSI 802.3) 10BASE-T Standard, including noise immunity and received signal rejection criteria (‘Smart Squelch’). Signals meeting this
criteria appearing at the RXD± differential input pair are
routed to the MENDEC. The receiver function meets
the propagation delays and jitter requirements
specified by the standard. The receiver squelch level
drops to half its threshold value after unsquelch to allow
reception of minimum amplitude signals and to offset
carr ier fade in the event of worst case signal
attenuation and crosstalk noise conditions.
AUI Isolation
Transformer
DI+
PCnet 32
DI-
40.2 Ω
T-MAU gets reset during power-up by H_RESET, by
S_RESET when reset port is read, or by asserting the
RESET pin. T-MAU is not reset by STOP.
40.2 Ω
0.01 µF
to 0.1 µF
18219-38
Figure 31. AUI Differential Input Termination
Collision Detection
Note that the 10BASE-T Standard defines the receive
input amplitude at the external Media Dependent Interface (MDI). Filter and transfor mer loss are not
specified. The T-MAU receiver squelch levels are
defined to account for a 1 dB insertion loss at 10 MHz,
which is typical for the type of receive filters/
transformers employed.
Twisted-Pair Transceiver (T-MAU)
Normal 10BASE-T compatible receive thresholds are
employed when the LRT (CSR15[9]) bit is LOW. When
the LRT bit is set (HIGH), the Low Receive Threshold
option is invoked, and the sensitivity of the T-MAU receiver is increased. This allows longer line lengths to
be employed, exceeding the 100 m target distance of
normal 10BASE-T (assuming typical 24 AWG cable).
The increased receiver sensitivity compensates for the
increased signal attenuation caused by the additional
cable distance.
The T-MAU implements the Medium Attachment Unit
(MAU) functions for the Twisted Pair Medium, as specified by the supplement to ISO 8802-3 (IEEE/ANSI
802.3) standard (Type 10BASE-T). The T-MAU provides twisted pair driver and receiver circuits, including
on-board transmit digital predistortion and receiver
squelch and a number of additional features including
Link Status indication, Automatic Twisted Pair Receive
Polarity Detection/Correction and Indication, Receive
Carrier Sense, Transmit Active and Collision Present
indication.
However, making the receiver more sensitive means
that it is also more susceptible to extraneous noise, primarily caused by coupling from co-resident services
(crosstalk). For this reason, it is recommended that
when using the Low Receive Threshold option that the
service should be installed on 4-pair cable only. Multipair cables within the same outer sheath have lower
crosstalk attenuation, and may allow noise emitted
from adjacent pairs to couple into the receive pair, and
be of sufficient amplitude to falsely unsquelch the
T-MAU.
A MAU detects the collision condition on the network
and generates a differential signal at the CI± inputs.
This collision signal passes through an input stage
which detects signal levels and pulse duration. When
the signal is detected by the MENDEC it sets the
ICLSN line HIGH. The condition continues for
approximately 1.5 bit times after the last LOW-to-HIGH
transition on CI±.
Am79C965A
97
Link Test Function
The link test function is implemented as specified by
10BASE-T standard. During periods of transmit pair inactivity, ’Link beat pulses’ will be periodically sent over
the twisted pair medium to constantly monitor medium
integrity.
When the link test function is enabled (DLNKTST bit in
CSR15 is cleared), the absence of link beat pulses and
receive data on the RXD± pair will cause the T-MAU to
go into a link fail state. In the link fail state, data
transmission, data reception, data loopback and the
collision detection functions are disabled, and remain
disabled until valid data or >5 consecutive link pulses
appear on the RXD± pair. During link fail, the Link
Status signal is inactive. When the link is identified as
functional, the Link Status signal is asserted. The
LNKST pin displays the Link Status signal by default.
Transmission attempts during Link Fail state will produce no network activity and will produce LCAR and
CERR error indications.
In order to inter-operate with systems which do not implement Link Test, this function can be disabled by setting the DLNKTST bit in CSR15. With link test disabled,
the data driver, receiver and loopback functions as well
as collision detection remain enabled regardless of the
presence or absence of data or link pulses on the
RXD± pair. Link Test pulses continue to be sent
regardless of the state of the DLNKTST bit.
Polarity Detection and Reversal
The T-MAU receive function includes the ability to invert
the polarity of the signals appearing at the RXD± pair if
the polarity of the received signal is reversed (such as
in the case of a wiring error). This feature allows data
frames received from a reverse wired RXD± input pair
to be corrected in the T-MAU prior to transfer to the
MENDEC. The polarity detection function is activated
following H_RESET or Link Fail, and will reverse the
receive polarity based on both the polarity of any
pr ev i ou s l in k be at p ul s es a nd th e po la r i ty o f
subsequent frames with a valid End Transmit Delimiter
(ETD).
When in the Link Fail state, the T-MAU will recognize
link beat pulses of either positive or negative polarity.
Exit from the Link Fail state is made due to the
reception of 5–6 consecutive link beat pulses of
identical polarity. On entry to the Link Pass state, the
polarity of the last 5 link beat pulses is used to
determine the initial receive polarity configuration and
the receiver is reconfigured to subsequently recognize
only link beat pulses of the previously recognized
polarity.
Positive link beat pulses are defined as received signal
with a positive amplitude greater than 585 mV (LRT =
HIGH) with a pulse width of 60 ns–200 ns. This positive
98
excursion may be followed by a negative excursion.
This definition is consistent with the expected received
signal at a correctly wired receiver, when a link beat
pulse which fits the template of Figure 14-12 of the
10BASE-T Standard is generated at a transmitter and
passed through 100 m of twisted pair cable.
Negative link beat pulses are defined as received
signals with a negative amplitude greater than 585 mV
with a pulse width of 60 ns–200 ns. This negative
excursion may be followed by a positive excursion. This
definition is consistent with the expected received
signal at a reverse wired receiver, when a link beat
pulse which fits the template of Figure 14-12 in the
10BASE-T Standard is generated at a transmitter and
passed through 100 m of twisted pair cable.
The polarity detection/correction algorithm will remain
“armed” until two consecutive frames with valid ETD of
identical polarity are detected. When “armed”, the receiver is capable of changing the initial or previous polarity configuration based on the ETD polarity.
On receipt of the first frame with valid ETD following
H_RESET or link fail, the T-MAU will utilize the inferred
polarity information to configure its RXD± input, regardless of its previous state. On receipt of a second frame
with a valid ETD with correct polarity, the detection/correction algorithm will “lock-in” the received polarity. If
the second (or subsequent) frame is not detected as
confirming the previous polarity decision, the most
recently detected ETD polarity will be used as the
default. Note that frames with invalid ETD have no
effect on updating the previous polarity decision. Once
two consecutive frames with valid ETD have been
received, the T-MAU will disable the detection/
correction algorithm until either a Link Fail condition
occurs or H_RESET is activated.
During polarity reversal, an internal POL signal will be
active. During normal polarity conditions, this internal
POL signal is inactive. The state of this signal can be
read by software and/or displayed by LED when enabled by the LED control bits in the Bus Configuration
Registers (BCR4–BCR7).
Twisted Pair Interface Status
Three signals (XMT, RCV and COL) indicate whether
the T-MAU is transmitting, receiving, or in a collision
state with both functions active simultaneously. These
signals are internal signals and the behavior of the LED
outputs depends on how the LED Output circuiting is
programmed.
The T-MAU will power up in the Link Fail state and the
normal algorithm will apply to allow it to enter the Link
Pass state. In the Link Pass state, transmit or receive
activity will be indicated by assertion of RCV signal going active. If T-MAU is selected using the PORTSEL
bits in CSR15, then when moving from AUI to T-MAU
Am79C965A
selection the T-MAU will be forced into the Link Fail
state. In the Link Fail state, XMT, RCV and COL are
inactive.
Collision Detect Function
Activity on both twisted pair signals RXD± and TXD±
constitutes a collision, thereby causing the COL signal
to be activated. (COL is used by the LED control
circuits) COL will remain active until one of the two
colliding signals changes from active to idle. However,
transmission attempt in Link Fail state results in LCAR
and CERR indication. COL stays active for 2-bit times
at the end of a collision.
Signal Quality Error (SQE) Test (Heartbeat)
Function
The SQE function is disabled when the 10BASE-T port
is selected.
Jabber Function
The Jabber function inhibits the twisted pair transmit
function of the T-MAU if the TXD± circuit is active for an
excessive period (20 ms–150 ms). This prevents any
one node from disrupting the network due to a 'stuckon' or faulty transmitter. If this maximum transmit time
is exceeded, the T-MAU transmitter circuitr y is
disabled, the JAB bit is set (CSR4, bit1), the COL signal
is asserted. Once the transmit data stream to the
T-MAU is removed, an “unjab” time of 250 ms–750 ms
will elapse before the T-MAU COL and re-enables the
transmit circuitry.
Power Down
The T-MAU circuitry can be made to go into power savings mode. This feature is useful in battery powered or
low duty cycle systems. The T-MAU will go into power
TXD+
TXP+
TXD-
PCnet-32
TXP-
down mode when H_RESET is active, coma mode is
active, or the T-MAU is not selected. Refer to the Power
Savings Modes section for descriptions of the various
power down modes.
Any of the three conditions listed above resets the
internal logic of the T-MAU and places the device into
power down mode. In this mode, the Twisted Pair driver
pins (TXD±,TXP±) are driven LOW, and the internal TMAU status signals (LNKST, RCVPOL, XMT, RCV and
COL) signals are inactive.
Once H_RESET ends, coma mode is disabled, and the
T-MAU is selected. The T-MAU will remain in the reset
state for up to 10 µs. Immediately after the reset condition is removed, the T-MAU will be forced into the Link
Fail state. The T-MAU will move to the Link Pass state
only after 5 – 6 link beat pulses and/or a single received
message is detected on the RD± pair.
In snooze mode, the T-MAU receive circuitry will remain
enabled even while the SLEEP pin is driven LOW.
The T-MAU circuitry will always go into power down
mode if H_RESET is asserted, coma mode is enabled,
or the T-MAU is not selected.
10BASE-T Interface Connection
Figure 32 shows the proper 10BASE-T network interface design. Refer to the PCnet Family Technical Manual (PID # 18216A) for more design details, and refer to
Appendix A for a list of compatible 10BASE-T filter/
transformer modules.
Note that the recommended resistor values and filter
and transformer modules are the same as those used
by the IMR (Am79C980) and the IMR+ (Am79C981).
61.9 Ω
422 Ω
1.21 KΩ
Filter &
Transformer
Module
RJ45
Connector
1:1
XMT
Filter
61.9 Ω
422 Ω
TD+
1
TD-
2
RD+
3
RD-
6
1:1
RXD+
RCV
Filter
RXD100 Ω
18219-39
Figure 32. 10BASE-T Interface Connection
Am79C965A
99
IEEE 1149.1 Test Access Port Interface
TAP FSM
An IEEE 1149.1 compatible boundary scan Test
Access Port is provided for board level continuity test
and diagnostics. All digital input, output and input/
output pins are tested. Analog pins, including the AUI
differential driver (DO±) and receivers (DI±, CI±), and
the crystal input (XTAL1/XTAL2) pins, are tested. The
T-MAU drivers TXD±, TXP± and receiver RXD± are
also tested.
The TAP engine is a 16-state FSM, driven by the Test
Clock (TCK) and the Test Mode Select (TMS) pins. This
FSM is in its reset state at power-up or after H_RESET.
An independent power-on reset circuit is provided to
ensure the FSM is in the TEST_LOGIC_RESET state
at power-up.
The following is a brief summary of the IEEE 1149.1
compatible test functions implemented in the PCnet-32
controller.
Boundary Scan Circuit
The boundary scan test circuit requires four pins (TCK,
TMS, TDI and TDO), defined as the Test Access Port
(TAP). It includes a finite state machine (FSM), an instruction register, a data register array, and a power-on
reset circuit. Internal pull-up resistors are provided for
the TDI, TCK, and TMS pins. The TCK pin must not be
left unconnected. The boundary scan circuit remains
active during Sleep.
Supported Instructions
In addition to the minimum IEEE 1149.1 requirements
(BYPASS, EXTEST, and SAMPLE instructions), three
additional instr uctions (IDCODE, TRIBYP and
SETBYP) are provided to further ease board-level
testing. All unused instruction codes are reserved. See
Table 28 for a summary of supported instructions.
Instruction Register and Decoding Logic
After H_RESET or S_RESET or STOP, the IDCODE
instruction is always invoked. The decoding logic gives
signals to control the data flow in the DATA registers
according to the current instruction.
Boundary Scan Register (BSR)
Each BSR cell has two stages. A flip-flop and a latch
are used for the SERIAL SHIFT STAGE and the
PARALLEL OUTPUT STAGE, respectively.
Table 28. IEEE 1149.1 Supported Instruction Summary
Instruction
Name
Description
EXTEST
External Test
Selected
Data Reg
Mode
Instruction
Code
BSR
Test
0000
IDCODE
ID Code Inspection
ID REG
Normal
0001
SAMPLE
Sample Boundary
BSR
Normal
0010
TRIBYP
Force Tristate
Bypass
Normal
0011
SETBYP
Control Boundary To 1/0
Bypass
Test
0100
BYPASS
Bypass Scan
Bypass
Normal
1111
There are four possible operation modes in the BSR
cell:
1
Capture
2
Shift
3
Update
4
System Function
Bits 31–28:
Version
Bits 27–12:
Part number (0010 0100 0011 0000)
Bits 11–1:
Manufacturer ID. The 11 bit
manufacturer ID code for AMD is
00000000001 according to JEDEC
Publication 106-A.
Bit 0:
Always a logic 1
Other Data Register
3) INSCAN0
1) BYPASS REG (1 Bit)
This is an internal scan path for AMD internal testing
use.
2) DEV ID REG (32 bits)
EADI (External Address Detection
Interface)
This interface is provided to allow external address
filtering. It is selected by setting the EADISEL bit in
100
Am79C965A
BCR2 to a ONE. This feature is typically utilized for
terminal servers, bridges and/or router products. The
EADI interface can be used in conjunction with external
logic to capture the packet destination address from the
serial bit stream as it arrives at the PCnet-32 controller,
compare the captured address with a table of stored
addresses or identifiers, and then determine whether
or not the PCnet-32 controller should accept the
packet.
The EADI interface outputs are delivered directly from
the NRZ decoded data and clock recovered by the
Manchester decoder or input into the GPSI port. This
allows the external address detection to be performed
in p ara l le l wi th fr am e r e c ep ti o n a nd a dd r es s
comparison in the MAC Station Address Detection
(SAD) block of the PCnet-32 controller.
SRDCLK is provided to allow clocking of the receive bit
stream into the external address detection logic.
SRDCLK runs only during frame reception activity.
Once a received frame commences and data and clock
are available from the decoder, the EADI logic will
monitor the alternating (“1,0”) preamble pattern until
t h e t w o o n e s o f t h e S t a r t Fr a m e D e l i m i t e r
(“1,0,1,0,1,0,1,1”) are detected, at which point the SF/
BD output will be driven HIGH.
The SF/BD signal will initially be LOW. The assertion of
SF/BD is a signal to the external address detection
logic that the SFD has been detected and that
subsequent SRDCLK cycles will deliver packet data to
the external logic. Therefore, when SF/BD is asserted, the
external address matching logic should begin deserialization of the SRD data and send the resulting
destination address to a content addressable memory
(CAM) or other address detection device.
In order to reduce the amount of logic external to the
PCnet-32 controller for multiple address decoding systems, the SF/BD signal will toggle at each new byte
boundary within the packet, subsequent to the SFD.
This eliminates the need for externally supplying byte
framing logic.
The EAR pin should be driven LOW by the external address comparison logic to reject a frame.
When the EADISEL bit of BCR2 is set to a ONE and
internal address match is disabled, then all incoming
frames will be accepted by the PCnet-32 controller, unless the EAR pin becomes active during the first 64
bytes of the frame (excluding preamble and SFD). This
allows external address lookup logic approximately 58
byte times after the last destination address bit is available to generate the EAR signal, assuming that the
PCnet-32 controller is not configured to accept runt
packets. EAR will be ignored after 64 byte times after
the SFD. The frame will be accepted if EAR has not
been asserted before this time. If Runt Packet Accept
is enabled, then the EAR signal must be generated
prior to the receive message completion, if packet
rejection is to be guaranteed. Runt packet sizes could
be as short as 12 byte times (assuming 6 bytes for
source address, 2 bytes for length, no data, 4 bytes for
FCS) after the last bit of the destination address is
available. EAR must have a pulse width of at least 150
ns.
When the EADISEL bit of BCR2 is set to a ONE and the
PROM bit of the Mode Register is set to a ONE, then
all incoming frames will be accepted by the PCnet-32
controller, regardless of any activity on the EAR pin.
The EADI outputs continue to provide data throughout
the reception of a packet. This allows the external logic
to capture packet header information to determine
protocol type, inter-networking information, and other
useful data.
The EADI interface will operate as long as the STRT bit
in CSR0 is set, even if the receiver and/or transmitter
are disabled by software (DTX and DRX bits in CSR15
are set). This configuration is useful as a semi-powerdown mode in that the PCnet-32 controller will not perform any power-consuming DMA operations. However,
external circuitry can still respond to “control” frames on the
network to facilitate remote node control.
Table 29 summarizes the operation of the EADI
interface.
Table 29. EADI Operations
PROM
EAR
1
X
No timing requirements
0
1
No timing requirements
All Received Frames
0
0
Low for 150 ns within
512 bits after SFD
PCnet-32 Controller
Internal Physical and
Logical Address
Matches
If an address match is detected by internal address
comparison with either the Physical or Logical or
broadcast Address contained within the PCnet-32
controller, then the frame will be accepted regardless of
the condition of EAR. Internal address match is
disabled when PROM (CSR15[15]) = 0, DRCVBC
(CSR15[14]) = 1, DRCVPA (CSR15[13]) = 1 and
Logical Address Filter (CSR8–CSR11) = 0.
Am79C965A
Required Timing
Received
Messages
All Received Frames
101
General Purpose Serial Interface (GPSI)
The PCnet-32 controller is capable of providing a
purely digital network interface in the form of the
General Purpose Serial Interface. This interface
matches the functionality provided by earlier AMD
network controller products, such as the Am7990
LANCE, Am79C90 C-LANCE, Am79C900 ILACC
c o n t r o l l e r, A m 7 9 C 9 4 0 M AC E c o n t r o l l e r, a n d
Am79C960 PCnet-ISA controller.
mode is not active and therefore, the Software
Relocatable Mode might assume that all 30 address
bits are visible. But in a system that uses GPSI mode,
the GPSI signals would likely all be hard-wired to the
address pins, and, therefore, even though the device
never made it into GPSI mode, it will still not be able to
see the upper address bits. Therefore, it is always
recommended that SRMA24 mode be invoked as
described in the next paragraph:
TSTSHDW
Value
(BCR18 [4:3])
PVALID
(BCR19 [15])
GPSIEN
(CSR124[4])
Operating
Mode
Software Relocatable Mode Address 24 mode is invoked by connecting the LED2/SRDCLK pin to a LOW
level during H_RESET and during the execution of the
Software Relocation operation. When the LED2/
SRDCLK pin is LOW during H_RESET and Software
Relocatable Mode, then the device will be programmed
to use 24 bits of addressing while snooping accesses
on the bus during Software Relocatable Mode; In this
case, the PCnet-32 controller will assume that bits
A[31] through A[24] are matched at all times,
regardless of the actual values on these pins.
00
1
0
Normal
Operating
Mode
I/O Address Width 24 mode is invoked by writing a
ONE to the IOAW24 bit of BCR21 (bit 8 of BCR21).
This can be accomplished safely in either of two ways:
10
1
X
GPSI Mode
01
1
0
Reserved
11
1
X
Reserved
XX
0
0
Normal
Operating
Mode
The GPSI interface is selected through the PORTSEL
bits of the Mode register (CSR15) and enabled through
the TSTSHDW bits of BCR18 (bits 3 and 4) or enabled
through the GPSIEN bit in CSR124 (bit 4). The possible
settings to invoke the GPSI mode are shown in Table
30.
Table 30. GPSI Mode Selection
XX
0
1
GPSI Mode
Note that the TSTSHDW bit values are only active
when PVALID is TRUE.
The GPSI interface is multiplexed through 7 of the
upper 8 address bits of the system bus interface.
Therefore, applications that require the use of the GPSI
interface will be limited to the use of only 24 address
bits (A[23] through A[2] plus the byte enables, which
decode into two effective address bits).
In order to prevent the PCnet-32 controller from interpreting the GPSI signals as address bits during the
Software Relocatable Mode and du r in g s lave
accesses, the 24-bit Software Relocatable Mode
Address 24 mode and the I/O Address Width 24 mode
of the PCnet-32 controller must be invoked. Note that if
Software Relocatable Mode is invoked, then PVALID
must have been set to ZERO, and, therefore, the GPSI
102
1. A Software Relocation operation can write a ONE
to BCR21, bit 8.
2. A read of the EEPROM contents can write a ONE
to BCR21, bit 8, if the EEPROM contents are correctly programmed.
These two methods do NOT require a slave access to
the PCnet-32 controller, and therefore may be performed in a system in which the GPSI signals are permanently connected to the A[31] through A[23] pins
(assuming SRMA24 mode is invoked via the LED2/
SRDCLK pin to use method 1).
The PCnet-32 controller upper address pins are reconfigured during GPSI mode to the functions listed in
Table 31. Note that pin number 143 (A24) has no
e q u i va l e n t G P S I f u n c t i o n a n d s h o u l d b e l e f t
unconnected when GPSI mode is enabled.
GPSI signal functions are described in the pin description section under the GPSI subheading.
At the time that GPSI mode is entered, the internal
MAC clock is switched from a XTAL1-derived clock to a
clock derived from the STDCLK input. The STDCLK
input determines the network data rate and therefore
must meet frequency and stability specifications.
Am79C965A
Table 31. GPSI Pin Configurations
GPSI
I/O
Type
LANCE
GPSI Pin
ILACC
GPSI Pin
PCnet-32/
PCnet-ISA
GPSI Pin
PCnet-32
Pin
Number
PCnet-32
Normal
Pin Function
Transmit Data
O
TX
TXD
TXDAT
132
A31
Transmit Enable
O
TENA
RTS
TXEN
133
A30
GPSI Function
Transmit Clock
I
TCLK
TXC
STDCLK
134
A29
Collision
I
CLSN
CDT
CLSN
137
A28
Receive Clock
I
RCLK
RXC
SRDCLK
140
A26
Receive Data
I
RX
RXD
RXDAT
141
A25
Note that the XTAL1 input must always be driven with a
clock source, even if GPSI mode is to be used. It is not
necessary for the XTAL1 clock to meet the normal
frequency and stability requirements in this case. Any
frequency between 8 MHz and 20 MHz is acceptable.
However, voltage drive requirements do not change.
When GPSI mode is used, XTAL1 must be driven for
several reasons:
1. The default pin RESET configuration for the
PCnet-32 controller is “AUI port selected,” and until
GPSI mode is selected, the XTAL1 clock is needed
for some internal operations (namely, RESET).
2. The XTAL1 clock drives the EEPROM read operation, regardless of the network mode selected.
3. The XTAL1 clock determines the length of a Reset
Register read operation, regardless of the network
mode selected (due to the internal RESET caused
by the read).
Note that if a clock slower than 20 MHz is provided at
the XTAL1 input, the time needed for EEPROM read
and Reset Register Read operations will increase.
Power Savings Modes
The PCnet-32 controller supports two hardware power
savings modes. Both are entered by driving the SLEEP
pin LOW.
In coma mode, the PCnet-32 controller will go into a
deep sleep with no means to use the network to automatically wake itself up. Coma mode is enabled when
the AWAKE bit in BCR2 is reset. Coma mode is the default power down mode. When coma mode is invoked,
the T-MAU circuitry will go into power down mode. The
system bus interface will be floated and inactive during
coma mode. LDEV and the selected interrupt pin will
be driven to inactive levels. While in coma mode, if the
PCnet-32 controller is configured for a daisy chain
(HOLDI and HLDAO or LREQI and LGNTO signals
have been selected with the JTAGSEL pin), then the
daisy chain signal LREQI/HOLDI will be passed
directly to LREQ/HOLD and the system arbitration
signal LGNT/ HLDA will be passed directly to the daisychain signal LGNTO/HLDAO.
In snooze mode, enabled by setting the AWAKE bit in
BCR2 and driving the SLEEP pin LOW, the T-MAU receive circuitry will remain enabled even while the
SLEEP pin is driven LOW. The LNKST output will also
continue to function, indicating a good 10BASE-T link if
there are link beat pulses or valid frames present. This
LNKST pin can be used to drive an LED and/or external
hardware that directly controls the SLEEP pin of the
PCnet-32 controller. This configuration effectively
wakes the system when there is any activity on the
10BASE-T link. Auto wake mode can be used only if
the T-MAU is the selected network port. Link beat
pulses are not transmitted during Auto-wake mode.
The system bus interface will be floated and inactive
during snooze mode. LDEV and the selected interrupt
pin will be driven to inactive levels. While in snooze
mode, if the PCnet-32 controller is configured for a
daisy chain (HOLDI and HLDAO or LREQI and LGNTO
signals have been selected with the JTAGSEL pin),
then the daisy chain signal LREQI/HOLDI will be
passed directly to LREQ/HOLD and the system
arbitration signal LGNT/HLDA will be passed directly to
the daisy-chain signal LGNTO/HLDAO.
If the HOLD output is active when the SLEEP pin is asserted, then the PCnet-32 controller will wait until the
HLDA input is asserted. Then the PCnet-32 controller
will de-assert the HOLD pin and finally, it will internally
enter either the coma or snooze sleep mode.
Before the sleep mode is invoked, the PCnet-32
controller will perform an internal S_RESET. This
S_RESET operation will not affect the values of the
BCR registers.
The SLEEP pin should not be asserted during power
supply ramp-up. If it is desired that SLEEP be asserted
at power up time, then the system must delay the
assertion of SLEEP until three BCLK cycles after the
completion of a valid pin RESET operation.
Am79C965A
103
Software Access
Table 32. Word I/O Mapping
I/O Resources
PCnet-32 Controller I/O Resource Mapping
The PCnet-32 controller has several I/O resources.
These resources use 32 bytes of I/O space that begin
at the PCnet-32 controller I/O Base Address. The
PCnet-32 controller allows two modes of slave access.
Word I/O mode treats all PCnet-32 controller I/O
Resources as two-byte entities spaced at two-byte address intervals. Double Word I/O mode treats all
PCnet-32 controller I/O Resources as four-byte entities
spaced at four-byte address intervals. The selection of
WIO or DWIO mode is accomplished by one of two
ways:
1.
H_RESET function.
2. The PCnet-32 controller I/O mode setting will
default to WIO after H_RESET (i.e. DWIO = 0).
3. Automatic determination of DWIO mode due to
double-word I/O write access to offset 10h.
DWIO is automatically programmed as active when the
system attempts a double word write access to offset
10h of the PCnet-32 controller I/O space. Note that this
space corresponds to RDP, regardless of whether
DWIO or WIO mode has been programmed. The power
up H_RESET value of DWIO will be ZERO, and this
value will be maintained until a double word access is
performed to PCnet-32 controller I/O space.
Therefore, if DWIO mode is desired, it is imperative that
the first access to the PCnet-32 controller be a double
word write access to offset 10h.
Alternatively, if DWIO mode is not desired, then it is imperative that the software never executes a double
word write access to offset 10h of the PCnet-32
controller I/O space.
Once the DWIO bit has been set to a ONE, only a
H_RESET can reset it to a ZERO.
The DWIO mode setting is unaffected by S_RESET or
the STOP bit.
WIO I/O Resource Map
When the PCnet-32 controller I/O space is mapped as
Word I/O, then the resources that are allotted to the
PCnet-32 controller occur on word boundaries that are
offset from the PCnet-32 controller I/O Base Address
as shown in Table 32.
Offset
(Hex)
No. of
Bytes
Register
0
2
Address PROM
2
2
Address PROM
4
2
Address PROM
8
2
Address PROM
A
2
Address PROM
C
2
Address PROM
E
2
Address PROM
10
2
RDP
12
2
RAP (shared by RDP and BDP)
14
2
Reset Register
16
2
BDP
18
2
Vendor Specific Word
1A
2
Reserved
1C
2
Reserved
1E
2
Reserved
When PCnet-32 controller I/O space is Word mapped,
all I/O resources fall on word boundaries and all I/O resources are word quantities. However, while in Word I/
O mode, address PROM accesses may also be
accessed as individual bytes on byte addresses.
Attempts to write to any PCnet-32 controller I/O resources (except to offset 10h, RDP) as 32 bit quantities
while in Word I/O mode are illegal and may cause
unexpected reprogramming of the PCnet-32 controller
control registers. Attempts to read from any PCnet-32
controller I/O resources as 32-bit quantities while in
Word I/O mode are illegal and will yield undefined
values.
An attempt to write to offset 10H (RDP) as a 32 bit
quantity while in Word I/O mode will cause the
PCnet-32 controller to exit WIO mode and immediately
thereafter, to enter DWIO mode.
Accesses to non-word address boundaries are not
allowed while in WIO mode, with the exception of the
APROM locations. The PCnet-32 controller may or may
not produce an LDEV and a RDY signal in response to
such accesses, but data will be undefined.
Accesses of non-word quantities to any I/O resource
are not allowed while in WIO mode, with the exception
of byte reads from the APROM locations. PCnet-32
controller may or may not produce an LDEV and will not
produce a RDY signal in response to such accesses,
but data will be undefined.
The Vendor Specific Word (VSW) is not implemented
by the PCnet-32 controller. This particular I/O address
is reserved for customer use and will not be used by
future AMD Ethernet controller products. If more than
104
Am79C965A
one Vendor Specific Word is needed, it is suggested
that the VSW location should be divided into a VSW
Register Address Pointer (VSWRAP) at one location
(e.g. VSWRAP at byte location 18h) and a VSW Data
Port (VSWDP) at the other location (e.g. VSWDP at
byte location 19h). Alternatively, the system may
capture RAP data accesses in parallel with the
PCnet-32 controller and therefore share the PCnet-32
controller RAP to allow expanded VSW space.
PCnet-32 controller will not respond to access to the
VSW I/O address.
undefined, except for the APROM locations and
CSR88.
DWIO I/O Resource Map
The PCnet-32 controller does not respond to any addresses outside of the offset range 0h-17h when DWIO
= 0 or 0h-1F when DWIO = 1. I/O offsets 18h through
1Fh are not used by the PCnet-32 controller when
programmed for DWIO = 0 mode. Locations 1Ah
through 1Fh are reserved for future AMD use and
therefore should not be implemented by the user if
upward compatibility to future AMD devices is desired.
When the PCnet-32 controller I/O space is mapped as
Double Word I/O, then all of the resources that are
allotted to the PCnet-32 controller occur on double
word boundaries that are offset from the PCnet-32
controller I/O Base Address as shown in Table 33.
Table 33. Double Word I/O Mapping
DWIO mode is exited by asserting the RESET pin. Assertion of S_RESET or setting the STOP bit of CSR0
will have no effect on the DWIO mode setting.
I/O Space Comments
The following statements apply to both WIO and DWIO
mapping:
The RAP is shared by the RDP and the BDP.
Offset
(Hex)
No. of
Bytes
Register
0
4
Address PROM
4
4
Address PROM
8
4
Address PROM
Note that Address PROM accesses do not directly access the EEPROM, but are redirected to a set of
shadow registers on board the PCnet-32 controller that
contain a copy of the EEPROM contents that was
obtained dur ing the automatic EEPRO M read
operation that follows the RESET operation.
C
4
Address PROM
PCnet-32 Controller I/O Base Address
10
4
RDP
14
4
RAP (shared by RDP and BDP)
18
4
Reset Register
1C
4
BDP
When PCnet-32 controller I/O space is Double Wordmapped, all I/O resources fall on double word
boundaries. Address PROM resources are double
word quantities in DWIO mode. RDP, RAP and BDP
contain only two bytes of valid data. The other two
bytes of these resources are reserved for future use.
The reserved bits must be written as zeros, and when
read, are considered undefined.
Accesses to non-double word address boundaries are
not allowed while in DWIO mode. The PCnet-32
controller may or may not produce an LDEV and a RDY
signal in response to such accesses, but data will be
undefined.
Accesses of less than 4 bytes to any I/O resource are
not allowed while in DWIO mode (i.e. PCnet-32
controller will not respond to such accesses. PCnet-32
controller will not produce an LDEV and a RDY signal
in response to such accesses), but data will be
undefined. A double word write access to the RDP
offset of 10h will automatically program DWIO mode.
Note that in all cases when I/O resource width is
defined as 32 bits, the upper 16 bits of the I/O resource
is reserved and written as ZEROs and read as
The I/O Base Address Registers (BCR16 and BCR17)
will reflect the current value of the base of the
PCnet-32 controller I/O address space. BCR16
contains the lower 16 bits of the 32-bit I/O base
address for the PCnet-32 controller. BCR17 contains
the upper 16 bits of the 32-bit I/O base address for the
PCnet-32 controller. This set of registers is both
readable and writable by the host. The value contained
in these registers is affected through three means:
1. Immediately following the H_RESET operation,
the I/O Base Address will be determined by the
EEPROM read operation. During this operation,
the I/O Base Address register will become programmed with the value of the I/O Base Address
field of the EEPROM.
2. If no EEPROM exists, or if an error is detected in
the EEPROM data, then the PCnet-32 controller
will enter Software Relocatable Mode. While in
this mode, the PCnet-32 controller will not
respond to any I/O accesses directly. However, the
PCnet-32 controller will snoop accesses on the system
bus. When the PCnet-32 controller detects a specific sequence of four write accesses to I/O
address 378h, then the PCnet-32 controller will
assume that the software is attempting to relocate
the PCnet-32 controller. On eight subsequent
write accesses to I/O address 378h, the PCnet-32
controller will accept the data on the bus as a new
I/O Base Address and other programming infor-
Am79C965A
105
mation, and it will leave Software Relocatable
Mode. At this point, the PCnet-32 controller will
begin responding to I/O accesses directly.
Table 34. I/O Base Address Write Sequence in SRM
Access No.
I/O
Address
(Hex)
D[7:0]*
(Hex)
ASCII
Inter–
pretation
1
0000 0378
41
A
2
0000 0378
4D
M
3
0000 0378
44
D
4
0000 0378
01
NA
5
0000 0378
IOBASEL[7:0]
NA
Software Relocation of I/O Resources
6
0000 0378
IOBASEL[15:8]
NA
In order to allow for jumperless Ethernet implementations, the I/O Base Address register value will be automatically altered by the PCnet-32 controller during an
EEPROM read operation. In this case, the value of the
I/O Base Address for the PCnet-32 controller will be directly dependent upon the value of the BCR16 and
BCR17 fields that are stored in the EEPROM. If no
EEPROM exists and an EEPROM read is attempted,
then the PCnet-32 controller will enter Software
Relocatable Mode.
8
0000 0378
IOBASEU[15:8]
NA
9
0000 0378
BCR2[7:0]
NA
10
0000 0378
BCR2[15:8]
NA
11
0000 0378
BCR21[7:0]
NA
12
0000 0378
BCR21[15:8]
NA
While the PCnet-32 controller is in software
relocatable mode, if the LED2 pin is pulled LOW,
then the SRMA24 mode is entered and only the
lower 24 bits of address are matched to 378h.
3. The I/O Base Address Registers may be directly
written to, provided that the PCnet-32 controller is
not currently in the Software Relocatable Mode.
Software Relocatable Mode
While in Software Relocatable Mode, the PCnet-32
controller will not respond to any access on the system
bus. However, the PCnet-32 controller will snoop any I/
O write accesses that may be present. The PCnet-32
controller will watch for a specific sequence of
accesses in order to determine a value for the I/O Base
Address Registers. Specifically, the PCnet-32
controller will wait for a sequence of 12 uninterrupted
byte-write accesses to I/O address 378h.
The 12 byte-write accesses must occur without intervening I/O accesses to other locations, and they must
contain the data in the order shown in Table 34.
BE0 is required to be active during all Software
Relocatable Mode snoop accesses. BE3–BE1 may
have any value during Software Relocatable Mode
snoop accesses.
106
*Note that D[31:8] are don’t care, since the accesses
are required to one byte in width.
Immediately following the 12th write access in the sequence, the PCnet-32 controller will leave Software
Relocatable Mode, and it will then respond to I/O accesses to the 32 bytes of I/O space that begins at the
I/O Base Address location.
Note that in Figure 33 (Software Relocatable Mode
Snoop Accesses), the data that is accepted by the
PCnet-32 controller will always be the data that is
presented during the first T2 cycle, regardless of the
state of the RDYRTN input.
Since the PCnet-32 controller will not respond to the
Software Relocatable Mode snoop accesses, some
other device must drive the RDYRTN signal during
these accesses. In a typical PC environment, these I/O
accesses will be directed toward the data port of a
parallel port. Therefore, the RDYRTN will typically be
generated by the parallel port controller. In systems in
which the parallel port device does not exist, or is at a
different location, the 378h accesses will go unclaimed
by any device on the local bus or on the expansion bus.
In this case, the chipset will typically terminate the
access by providing the RDYRTN signal after some
access-time-out counter has elapsed.
Am79C965A
PCnet-32 controller
latches snoop data
on this edge
T1
T2
T2
T1
PCnet-32 controller
latches snoop data
on this edge
T2
T1
PCnet-32 controller
latches snoop data
on this edge
T2
T2
T2
Ti
T1
T2
BCLK
ADS
A4 A31,
M/IO, D/C
I/O Address 378h
I/O Address 378h
I/O Address 378h
I/O Address 378h
I/O Address 378h
I/O Address 378h
I/O Address 378h
I/O Address 378h
D0 D7
SRM
Data
SRM
Data
SRM
Data
D8 D31
Don't Care
W/R
A2 A3,
BE1 BE3
BE0
RDYRTN
BRDY
BLAST
18219-40
Figure 33. Software Relocatable Mode Snoop Cycles
The I/O Base Address register value may be altered by
a direct write to BCR16 and BCR17 by the host. Slave
accesses to the PCnet-32 controller should not be
performed until both BCR16 and BCR17 have been
written with new values. An intermediate I/O Base
address will be created when only one of the two
registers has been written. Therefore, this method of
I/O Base address reassignment is not recommended.
I/O Register Access
All I/O resources are accessed with similar I/O bus
cycles.
I/O accesses to the PCnet-32 controller begin with a
valid ADS strobe and an address on the A[31:2] lines
that falls within the I/O space of the PCnet-32
controller. The PCnet-32 controller I/O space will be
determined by the I/O Base Address Registers.
EEPROM read operations will determine the value of
the I/O Base Address Registers.
The PCnet-32 controller will respond to an access to its
I/O space by asserting the LDEV signal and eventually,
by asserting the RDY signal.
Typical I/O access times are 6 or 7 BCLK periods. The
Am79C965A
107
exact number of clock cycles for any particular access
will depend upon the relative phases of the signal on
the BCLK pin and the internal clock that is used to drive
the PCnet-32 controller buffer management unit. Since
the PCnet-32 controller buffer management unit
operates on a clock that is a ÷2 version of the interface
clock, it possible for the buffer management unit to
introduce one or more BCLK wait delays to allow for
synchronization of the two state machines before proceeding
with the access. The PCnet-32 buffer management unit
uses BCLK ÷2, so the maximum number of BCLK
cycles needed to synchronize the BIU and buffer
management units is one BCLK period.
APROM Access
The APROM space is a convenient place to store the
value of the IEEE station address. This space is automatically loaded from the serial EEPROM, if an
EEPROM is present. Its contents have no effect on the
operation of the controller. The software must copy the
station address from the APROM space to the
Initialization Block or to CSR12–CSR14 in order for the
receiver to accept unicast frames directed to this
station.
When programmed for WIO mode, any byte or word
address from an offset of 0h to an offset of Fh may be
read. An appropriate byte or word of APROM contents
will be delivered by the PCnet-32 controller in response
to accesses that fall within the APROM range of 0h to
Fh.
When programmed for DWIO mode, only double word
addresses from an offset of 0h to an offset of Fh may
be read. An appropriate double word of APROM
contents will be delivered in response to accesses that
fall within the APROM range of 0h to Fh.
Reads of non-double-word quantities are not allowed in
DWIO mode, even though such an access may be
properly aligned to a double word address boundary.
Write access to any of the APROM locations is allowed,
but only 4 bytes on double-word boundaries in DWIO
mode or 2 bytes on word boundaries in WIO mode. The
IESRWE bit (see BCR2) must be set in order to enable
such a write. Only the PCnet-32 controller on-board
IEEE Shadow registers are modified by writes to
APROM locations. The EEPROM is unaffected by
writes to APROM locations.
Note that the APROM locations occupy 16 bytes of
space, yet the IEEE station address requirement is for
6 bytes. The 6 bytes of IEEE station address occupy
the first 6 locations of the APROM space. The next six
bytes are reserved. Bytes 12 and 13 should match the
value of the checksum of bytes 1 through 11 and 14
and 15. Bytes 14 and 15 should each be ASCII “W” (57
h) if compatibility to AMD driver software is desired.
RDP Access (CSR Register Space)
RDP = Register Data Port. The RDP is used with the
RAP to gain access to any of the PCnet-32 controller
CSR locations.
Access to any of the CSR locations of the PCnet-32
controller is perfor med thr ough the PCnet-32
controller’s Register Data Port (RDP). In order to
access a particular CSR location, the Register Address
Port (RAP) should first be written with the appropriate
CSR address. The RDP now points to the selected
CSR. A read of the RDP will yield the selected CSR’s
data. A write to the RDP will write to the selected CSR.
When programmed for WIO mode, the RDP has a
width of 16 bits, hence, all CSR locations have 16 bits
of width. Note that when accessing RDP, the upper two
bytes of the data bus will be undefined since the byte
masks will not be active for those bytes.
If DWIO mode has been invoked, then the RDP has a
width of 32 bits, hence, all CSR locations have 32 bits
of width and the upper two bytes of the data bus will be
active, as indicated by the byte mask. In this case, note
that the upper 16 bits of all CSR locations (except
CSR88) are reserved and written as zeros and read as
undefined values. Therefore, during RDP write operations in DWIO mode, the upper 16 bits of all CSR locations should be written as ZEROs.
RAP Access
RAP = Register Address Port. The RAP is used with
the RDP and with the BDP to gain access to any of the
CSR and BCR register locations, respectively. The
RAP contains the address pointer that will be used by
an access to either the RDP or BDP. Therefore, it is
necessary to set the RAP value before accessing a
specific CSR or BCR location. Once the RAP has been
written with a value, the RAP value remains unchanged
until another RAP write occurs, or until an H_RESET or
S_RESET occurs. RAP is set to all zeros when an
H_RESET or S_RESET occurs. RAP is unaffected by
the STOP bit.
When programmed for WIO mode, the RAP has a width
of 16 bits. Note that when accessing RAP, the lower two
bytes of the data bus will be undefined since the byte
masks will not be active for those bytes
When programmed for DWIO mode, the RAP has a
width of 32 bits. In DWIO mode, the upper 16 bits of the
RAP are reserved and written as zeros and read as undefined. These bits should be written as zeros.
BDP Access (BCR Register Space)
BDP = Bus Configuration Register Data Port. The BDP
is used with the RAP to gain access to any of the
PCnet-32 controller BCR locations.
Access to any of the BCR locations of the PCnet-32
controller is perfor med thr ough the PCnet-32
108
Am79C965A
controller’s BCR Data Port (BDP). In order to access a
particular BCR location, the Register Address Port
(RAP) should first be written with the appropriate BCR
address. The BDP now points to the selected BCR. A
read of the BDP will yield the selected BCR’s data. A
write to the BDP will write to the selected BCR.
When programmed for WIO mode, the BDP has a width
of 16 bits, hence, all BCR locations have 16 bits of
width in WIO mode. Note that when operating in WIO
mode, the upper two bytes of the data bus will be
undefined since the byte mask will not be active for
those bytes.
If DWIO mode has been invoked, then the BDP has a
width of 32 bits, hence, all BCR locations have 32 bits
of width and the upper two bytes of the data bus will be
active, as indicated by the byte mask. In this case, note
that the upper 16 bits of all BCR locations are reserved and
written as zeros and read as undefined. Therefore,
during BDP write operations in DWIO mode, the upper
16 bits of all BCR locations should be written as zeros.
Reset Register (S_RESET)
A read of the reset register creates an internal
S_RESET pulse in the PCnet-32 controller. This read
access cycle must be 16 bits wide in WIO mode and 32
bits wide in DWIO mode. The internal S_RESET pulse
that is generated by this access is different from both
the assertion of the hardware RESET pin (H_RESET)
and from the assertion of the software STOP bit.
Specifically, the Reset register’s S_RESET will be the
equivalent of the asser tion of the RESET pin
(H_RESET) asser tion for all CSR locations, but
S_RESET will have no effect at all on the BCR
locations, and S_RESET will not cause a de-assertion
of the HOLD pin.
The NE2100 LANCE based family of Ethernet cards requires that a write access to the reset register follows
each read access to the reset register. The PCnet-32
controller does not have a similar requirement. The
write access is not required but it does not have any
harmful effects.
Write accesses to the reset register will have no effect
on the PCnet-32 controller.
Note that a read of the Reset register will take longer
than the normal I/O access time of the PCnet-32
controller. This is because an internal S_RESET pulse
will be generated due to this access, and the access
will not be allowed to complete on the system bus until
the internal S_RESET operation has been completed.
This is to avoid the problem of allowing a new I/O
access to proceed while the S_RESET operation has
not yet completed, which would result in erroneous
data being returned by (or written into) the PCnet-32
controller. The length of a read of the Reset register
can be as long as 128 BCLK cycles when Am386 mode
has been selected and 64 BCLK cycles when Am486
mode or VESA VL-Bus mode has been selected.
Note that a read of the Reset register will not cause a
de-assertion of the HOLD signal, if it happens to be active at the time of the read to the reset register. The
HOLD signal will remain active until the HLDA signal is
synchronously sampled as asserted. Following the
read of the RESET register, on the next clock cycle
after the HLDA signal is synchronously sampled as
asserted, the PCnet-32 controller will de-assert the
HOLD signal). No bus master accesses will have been
performed during this brief bus ownership period.
Note that this behavior differs from that which occurs
following the assertion of a minimum-width pulse on
the RESET pin (H_RESET). A RESET pin assertion
will cause the HOLD signal to de-assert within six clock
cycles following the assertion. In the RESET pin case,
the PCnet-32 controller will not wait for the assertion of
the HLDA signal before de-asserting the HOLD signal.
Vendor Specific Word
This I/O offset is reserved for use by the system designer. The PCnet-32 controller will not respond to accesses directed toward this offset.
Reserved I/O Space
These locations are reserved for future use by AMD.
The PCnet-32 controller does not respond to accesses
directed toward these locations, but future AMD products that are intended to be upward compatible with the
PCnet-32 controller may decode accesses to these locations. Therefore, the system designer may not utilize
these I/O locations.
Am79C965A
109
Hardware Access
Table 35. Master Accesses
PCnet-32 Controller Master Accesses
Possible
Instance
Access
R/W
BE3–BE0
4-Byte Read
RD
0000
Descriptor Read or
Initialization Block
Read or
Transmit Data
Buffer Read
Complete descriptions of the signals involved in bus
master transactions for each mode may be found in the
pin description section of this document. Timing diagrams for master accesses may be found in the block
description section for the Bus Interface Unit. This section simply lists the types of master accesses that will
be performed by the PCnet-32 controller with respect to
data size and address information.
4-Byte Write
WR
0000
Descriptor Write or
Receive Data
Buffer Write
3-Byte Write
WR
1000
Receive Data
Buffer Write
3-Byte Write
WR
0001
Receive Data
Buffer Write
The PCnet-32 controller will support master accesses
only to 32-bit peripherals in Am486 environments. The
PCnet-32 controller does not support master accesses
to 16-bit peripherals in the 486 local bus mode.
2-Byte Write
WR
1100
Receive Data
Buffer Write
2-Byte Write
WR
1001*
Receive Data
Buffer Write
The PCnet-32 controller will support master accesses
to either 32-bit or 16-bit peripherals in VESA VL-Bus
m o de. S u p p o r t o f ma s t e r a c c e s s e s to 1 6 - b i t
peripherals in VESA VL-Bus mode is provided through
the LBS16 input pin.
2-Byte Write
WR
0011
Receive Data
Buffer Write
1-Byte Write
WR
1110
Receive Data
Buffer Write
The PCnet-32 controller is not compatible with 8-bit
systems, since there is no mode that suppor ts
PCnet-32 controller accesses to 8-bit peripherals.
1-Byte Write
WR
1101*
Receive Data
Buffer Write
1-Byte Write
WR
1011*
Receive Data
Buffer Write
1-Byte Write
WR
0111
Descriptor Write or
Receive Data
Buffer Write
The particular signals involved in a PCnet-32 controller
bus master transfer depends upon the bus mode that
has been selected. There are two bus modes to choose
from. They are:
■ Am486 32-bit mode
■ VESA VL-Bus mode
Table 35 describes all possible bus master accesses
that the PCnet-32 controller will perform. The rightmost column lists all operations that may execute the
given access.
*Cases marked with an asterisk represent extreme
boundary conditions that are the result of programming
one- and two-byte buffer sizes, and therefore will not be
seen under normal circumstances.
Note that all PCnet-32 controller master read
operations will always activate all byte enables. (Note
the exception, when LBS16 has been asserted in VLBus mode, requiring a second access. In all LBS16
cases, the second access (if required) will have BE1
and BE0 disabled. Therefore, no one-, two- or threebyte read operations are indicated in the table.
In the instance where a transmit buffer pointer address
begins on a non-double-word boundary, the pointer will
be truncated to the next double-word boundary
address that lies below the given pointer address and
the first read access from the transmit buffer will be
indicated on the byte enable signals as a four-byte read
from this address. Any data from byte lanes that lie
outside of the boundary indicated by the buffer pointer
will be discarded inside of the PCnet-32 controller.
110
Am79C965A
Similarly, if the end of a transmit buffer occurs on a nondouble-word boundary, then all byte lanes will be
indicated as active by the byte enable signals, and any
data from byte lanes that lie outside of the boundary
indicated by the buffer pointer will be discarded inside
of the PCnet-32 controller.
Slave Access to I/O Resources
The PCnet-32 controller is a 32-bit peripheral device on
the system bus. However, the width of individual
software resources on board the PCnet-32 controller
may be either 16-bits or 32-bits. The PCnet-32
controller I/O resource widths are determined by the
value of the DWIO bit (BCR 18, bit 7) as indicated in
Table 36.
Note that when I/O resource width is defined as 32 bits
(DWIO mode), the upper 16 bits of the I/O resource is
reserved and written as ZEROs and read as undefined,
except for the APROM locations. The APROM
locations are the only I/O resources for which all 32 bits
will have defined values. However, this is true only
when the PCnet-32 controller is in DWIO mode.
Configuring the PCnet-32 controller for DWIO mode is
accomplished whenever there is any attempt to
perform a 32-bit write access to the RDP location
(offset 10h). See the DWIO section for more details.
Table 37 describes all possible bus slave accesses that
may be directed toward the PCnet-32 controller. (i.e.
the PCnet-32 controller is the slave device during the
transfer.) The four byte columns (D31–D24, D23–D16,
D15–D8, D7–D0) indicate the value on the data bus
during the access.
Table 36. I/O Resource Access
DWIO Setting
PCnet-32 Controller
I/O Resource Width
Example Application
DWIO = 0
16-bit
Existing PCnet-ISA driver that assumes
16-bit I/O mapping and 16-bit resource widths
DWIO = 1
32-bit
New drivers written specifically for the
PCnet-32 controller
Am79C965A
111
Table 37. Slave Accesses
R/W
BE3 – BE0
D31–D24
D23–D16
D15–D8
D7–D0
Comments
RD
0000
Data
Data
Data
Data
Double word access to double word address, e.g.
300, 30C, 310 (DWIO mode only)
RD
1100
Undef
Undef
Data
Data
WIO Mode Only: Word access to even
word address, e.g. 300, 30C, 310
RD
0011
Data
Data
Copy
Copy
WIO Mode Only: Word access to odd
word address, e.g. 302, 30E, 312
RD
1110
Undef
Undef
Undef
Data
WIO Mode APROM Read Only: Byte access to
lower byte of even word address, e.g. 300, 304
RD
1101
Undef
Undef
Data
Undef
WIO Mode APROM Read Only: Byte access to
upper byte of even word address, e.g. 301, 305
RD
1011
Undef
Data
Undef
Copy
WIO Mode APROM Read Only: Byte access to
lower byte of odd word address, e.g. 302, 306
RD
0111
Data
Undef
Copy
Undef
WIO Mode APROM Read Only: Byte access to
upper byte of odd word address, e.g. 303, 307
WR
0000
Data
Data
Data
Data
Double word access to double word address, e.g.
300, 30C, 310 (DWIO mode only)
WR
1100
Undef
Undef
Data
Data
WIO Mode Only: Word access to even word
address, e.g. 300, 30C, 310
WR
0011
Data
Data
Undef
Undef
WIO Mode Only: Word access to odd word
address, e.g. 302, 30E, 312
Data = indicates the position of the active bytes.
Copy = indicates the positions of copies of the active
bytes.
Undef = indicates byte locations that are undefined
during the transfer.
EEPROM Microwire Access
The PCnet-32 controller contains a built-in capability
for reading and writing to an external EEPROM. This
built-in capability consists of a microwire interface for
direct connection to a microwire compatible EEPROM,
an automatic EEPROM read feature, and a userprogrammable register that allows direct access to the
microwire interface pins.
Automatic EEPROM Read Operation
Shortly after the de-assertion of the RESET pin, the
PCnet-32 controller will read the contents of the
EEPROM that is attached to the microwire
interface.The automatic EEPROM read begins with
EECS being asserted approximately 2.5 EESK periods
( 2.5
) following the de-assertion of the RESET pin.
t42
Because of this automatic-read capability of the
PCnet-32 controller, an EEPROM can be used to
program many of the features of the PCnet-32
controller at power-up, allowing system-dependent
configuration information to be stored in the hardware,
instead of inside of operating code. PCnet-32 controller
interrupt pins will be floated during H_RESET and will
remain floated until either the EEPROM has been
112
successfully read, or, following an EEPROM read
failure, a Software Relocatable Mode sequence has
been successfully executed.
If an EEPROM exists on the microwire interface, the
PCnet-32 controller will read the EEPROM contents at
the end of the H_RESET operation. The EEPROM
contents will be serially shifted into a temporary
register and then sent to various register locations on
board the PCnet-32 controller. System bus interaction
will not occur during the EEPROM read operation after
H_RESET, since H_RESET will put the PCnet-32
controller into a state that will not recognize any I/O
accesses and the PCnet-32 controller will not yet be at
an operating point that requires it to request the bus for
bus mastering.
Thirty-four bytes of the EEPROM are set aside for
PCnet-32 configuration programming and 2 bytes of
the EEPROM are set aside for user programming of
logic that is external to the PCnet-32 controller and may
or may not be per tinent to the operation of the
PCnet-32 controller within the system. The user may
gain access to the EEPROM data by snooping the
PCnet-32 controller automatic read operation. Logic
may be attached to the EEPROM interface to snoop the
entire EEPROM read operation using the microwire
signals directly, or a simpler scheme may be invoked by
taking advantage of an additional signal provided by
the PCnet-32 controller (i.e. the SHFBUSY signal).
A checksum verification is performed on the data that
is read from the EEPROM. If the checksum verification
Am79C965A
of the EEPROM data fails, then at the end of the
EEPROM read sequence, the PCnet-32 controller will
force all EEPROM-programmable register locations
back to their H_RESET default values and then the
PCnet-32 controller will enter Software Relocatable
Mode. The 8-bit checksum for the entire 36 bytes of the
EEPROM should be FFh. In the event of a checksum
failure, Software Relocatable Mode is entered
(PCnet-32 controller begins snooping for a 12-byte
sequence) within 1 EESK period following the de1
assertion of EECS ( t ).
42
If the absence of an EEPROM has been signaled by
the EESK/LED1/SFBD pin at the time of the automatic
read operation, then the PCnet-32 controller will
recognize this condition and will abort the automatic
read operation and reset both the PREAD and PVALID
bits in BCR19. At this point, the PCnet-32 controller will
enter the Software Relocatable Mode, and the
EEPROM-programmable registers will be assigned
their H_RESET default values. Software Relocatable
Mode is entered (PCnet-32 controller begins snooping
)
for 12-byte sequence) within 2.5 EESK periods ( 2.5
t42
following the de-assertion of the RESET pin when
absence of an EEPROM is signalled by the EESK/LEDI
SFBD pin.
If the user wishes to modify any of the configuration bits
that are contained in the EEPROM, then the 7 command, data and status bits of BCR19 can be used to
write to the EEPROM. After writing to the EEPROM,
the host should set the PREAD bit of BCR19. This
action forces a PCnet-32 controller re-read of the
EEPROM so that the new EEPROM contents will be
loaded into the EEPROM-programmable registers on
board the PCnet-32 controller. (The EEPROMprogrammable registers may also be reprogrammed
directly, but only information that is stored in the
EEPROM will be preserved at system power-down.)
When the PREAD bit of BCR19 is set, it will cause the
PCnet-32 controller to ignore further accesses on the
system interface bus until the completion of the
EEPROM read operation.
EEPROM Auto-Detection
The PCnet-32 controller uses the EESK/LED1/SFBD
pin to determine if an EEPROM is present in the
system. At all rising BCLK edges during the assertion
of the RESET pin, the PCnet-32 controller will sample
the value of the EESK/LED1/SFBD pin. If the sampled
value is a ONE, then the PCnet-32 controller assumes
that an EEPROM is present, and the EEPROM read
operation begins shortly after the RESET pin is deasserted. If the sampled value of EESK/LED1/SFBD is
a ZERO, then the PCnet-32 controller assumes that an
external pull-down device is holding the EESK/LED1/
SFBD pin low, and therefore, there is no EEPROM in
the system. In this case, the PCnet-32 controller will
enter Software Relocatable Mode. Note that if the
designer creates a system that contains an LED circuit
on the EESK/LED1/SFBD pin but has no EEPROM
present, then the EEPROM auto-detection function will
incorrectly conclude that an EEPROM is present in the
system. However, this will not pose a problem for the
PCnet-32 controller, since it will recognize the lack of
an EEPROM at the end of the read operation, when the
checksum verification fails. At this point, the PCnet-32
controller will enter Software Relocatable Mode.
The real intention of the EEPROM auto-detection feature is to allow a user to preempt a “good EEPROM” by
temporarily resistively shorting the EESK/LED1/SFBD
pin to ground. This may need to be done if an add-in
card containing the PCnet-32 controller and its
EEPROM has been programmed in one system and
then later moved to a different system without also
moving configuration information that indicates the I/O
Base address of the card. The card would power up in
the second system with an unknown I/O Base address
if the configuration information were not carried with
the card to the new system. By allowing the EESK/
LED1/SFBD pin to be temporarily resistively shorted to
ground, the PCnet-32 controller is fooled into believing
that the EEPROM does not exist, and it will enter
Software Relocatable Mode. This allows the new
system to reconfigure the I/O Base address of the
PCnet-32 controller to a location that is compatible to
the parameters of the new system. This information will
then be written into the EEPROM by a configuration
utility through the EEPROM access port (BCR19), in
spite of the fact that the PCnet-32 controller believes
that there is no EEPROM. The resistive short to ground
may now be removed, and the next power-up of the
system will place the PCnet-32 controller into a I/O
location that is known by this system. When the
PREAD bit of BCR19 is set, an EEPROM read
operation will be performed, regardless of the value of
the EESK/ LED1/SFBD pin. Note that the H_RESETgenerated EEPROM read operation always obeys the
EESK/ LED1/SFBD indication.
Table 38 indicates the possible combinations of EEDET
and the existence of an EEPROM and the resulting operations that are possible on the EEPROM microwire
interface. Note that the EEDET value (BCR19, bit 3) is
determined from EESK/LED1/SFBD pin setting, and it
may be set even though there is no EEPROM present.
Am79C965A
113
Table 38. Effect of EEDET on EEPROM Operation
EEDET Value
(BCR19[3])
EEPROM
Connected?
Result if PREAD is set to ONE
0
No
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result, PVALID
is reset to ZERO.
First TWO EESK clock cycles
are generated, then EEPROM
read operation is aborted and
PVALID is reset to ZERO.
0
Yes
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass, PVALID
is set to ONE.
First TWO EESK clock cycles are
generated, then EEPROM read
operation is aborted and PVALID is
reset to ZERO.
1
No
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result, PVALID
is reset to ZERO.
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result,
PVALID is reset to ZERO.
1
Yes
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass, PVALID
is set to ONE.
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass,
PVALID is set to ONE.
Systems Without an EEPROM
Some systems may be able to save the cost of an
EEPROM by storing the ISO 8802-3 (IEEE/ANSI
802.3) station address and other configuration
information somewhere else in the system. For such a
system, a two step process is required. The first step
will get the PCnet-32 controller into its nor mal
operating mode within the system. The second step will
load the IEEE station address. The designer has
several choices:
1) If the LED1 and SFBD functions are not needed in
the system, then the system designer may connect the
EESK/LED1/SFBD pin to a resistive pull-down device.
This will indicate to the EEPROM auto-detection
function that no EEPROM is present, and the PCnet-32
controller will use Software Relocatable Mode to
acquire its I/O Base Address and other configuration
information (See the section on Software Relocatable
Mode).
2) If either of the LED1 or SFBD functions is needed in
the system, then the system designer will connect the
EESK/LED1/SFBD pin to a resistive pull-up device and
the EEPROM auto-detection function will incorrectly
conclude that an EEPROM is present in the system.
However, this will not pose a problem for the PCnet-32
controller, since it will recognize the lack of an
EEPROM at the end of the read operation, when the
checksum verification fails. At this point, the PCnet-32
controller into the Software Relocatable Mode to
acquire its I/O Base Address and other configuration
114
Result of Automatic EEPROM Read
Operation Following H_RESET
information (See the section on Software Relocatable
Mode).
In either case, following the execution of Software
Relocatable Mode, additional information, including the
ISO 8802-3 (IEEE/ANSI 802.3) station address, may
be loaded into the PCnet-32 controller. Note that the
IESRWE bit (bit 8 of BCR2) must be set before the
PCnet-32 controller will accept writes to the APROM
offsets within the PCnet-32 controller I/O resources
map. Startup code in the system BIOS can perform the
Software Relocatable Mode accesses, the IESRWE bit
write, and the APROM writes.
If compatibility to existing driver code is desired, then it
is not recommended that the ISO 8802-3 (IEEE/ANSI
802.3) station address be loaded into the Initialization
Block structure in memory instead of the APROM locations, since existing code typically expects to find the
ISO 8802-3 (IEEE/ANSI 802.3) station address at the
APROM offsets from the PCnet-32 controller I/O Base
Address.
Direct Access to the Microwire Interface
The user may directly access the microwire por t
through the EEPROM register, BCR19. This register
contains bits that can be used to control the microwire
interface pins. By performing an appropriate sequence
of I/O accesses to BCR19, the user can effectively
write to and read from the EEPROM. This feature may
be used by a system configuration utility to program
hardware configuration information into the EEPROM.
Am79C965A
EEPROM-Programmable Registers
The following registers contain configuration information that will be programmed automatically during the
EEPROM read operation:
1) I/O offsets 0h–Fh
Address PROM locations
2) BCR2
Miscellaneous
Configuration register
3) BCR16
I/O Base Address Lower
4) BCR17
I/O Base Address Upper
5) BCR18
Burst Size and Bus
Control Register
6) BCR21
Interrupt Control Register
EEPROM programmable register will be set to default
H_RESET values. At this point, the PCnet-32 controller
will enter Software Relocatable Mode.
Note that accesses to the Address PROM I/O locations
do not directly access the Address EEPROM itself. Instead, these accesses are routed to a set of “shadow”
registers on board the PCnet-32 controller that are
loaded with a copy of the EEPROM contents during the
automatic read operation that immediately follows the
H_RESET operation.
EEPROM MAP
If the PREAD bit (BCR19) is reset to ZERO and the
PVALID bit (BCR19) is reset to ZERO, then the EEPROM
read has experienced a failure and the contents of the
The automatic EEPROM read operation will access 18
words (i.e. 36 bytes) of the EEPROM. The format of the
EEPROM contents is shown in Table 39, beginning
with the byte that resides at the lowest EEPROM
address.
Table 39. EEPROM Content
EEPROM Contents Byte Addr
EEPROM
Word
Byte
MSB
Addr
Addr
(Most Significant Byte)
0
(Lowest
Address)
1
2nd byte of the ISO 8802-3
(IEEE/ANSI 802.3) station physical
address for this node
0
First byte of the ISO 8802-3
(IEEE/ANSI 802.3) station physical
address for this node, where first byte
refers to the first byte to appear on the
802.3 medium
1
3
4th byte of the node address
2
3rd byte of the node address
2
5
6th byte of the node address
4
5th byte of the node address
3
7
Reserved location: must be 00h
6
Reserved location: must be 00h
4
9
Hardware ID: must be 10h if
compatibility to AMD drivers is desired
8
Driver IRQ: Must be programmed to the
system IRQ channel number being used
if AMD drivers are used.
5
B
User programmable space
A
User programmable space
6
D
MSB of two-byte checksum, which is the
sum of bytes 0-B and bytes E and F
C
LSB of two-byte checksum, which is
the sum of bytes 0-B and bytes E and F
7
F
Must be ASCII “W” (57h) if compatibility
to AMD driver software is desired
E
Must be ASCII “W” (57h) if compatibility
to AMD driver software is desired
8
11
BCR16[15:8] (I/O Base Address Lower)
10
BCR16[7:0] (I/O Base Address Lower)
9
13
BCR17[15:8] (I/O Base Address Upper)
12
BCR17[7:0] (I/O Base Address Upper)
A
15
BCR18[15:8] (Burst Size and Bus Control)
14
BCR18[7:0] (Burst Size and
Bus Control)
Byte
Addr
LSB
(Lease Significant Byte)
B
17
BCR2[15:8] (Miscellaneous configuration)
16
BCR2[7:0] (Miscellaneous configuration)
C
19
BCR21[15:8] (Interrupt Control)
18
BCR21[7:0] (Interrupt Control)
D
1B
Reserved location: must be 00h
1A
Reserved location: must be 00h
E
1D
Reserved location: must be 00h
1C
Reserved location: must be 00h
F
1F
checksum adjust byte for the first
36 bytes of the EEPROM contents;
checksum of the first 36 bytes of the
EEPROM should total to FFh
1E
Reserved location: must be 00h
10
21
Reserved location: must be 00h
20
Reserved location: must be 00h
11
23
User programmable byte locations
22
User programmable byte locations
Am79C965A
115
Note that the first bit out of any WORD location in the
EEPROM is treated as the MSB of the register that is
being programmed. For example, the first bit out of
EEPROM WORD location 08h will be written into
BCR16[15], the second bit out of EEPROM WORD
location 08h will be written into BCR16[14], etc.
Th ere ar e two c hecks um loca ti ons withi n th e
EEPROM. The first is required for the EEPROM
address. This checksum will be used by AMD driver
software to verify that the ISO 8802-3 (IEEE/ANSI
802.3) station address has not been corrupted. The
value of bytes C and D should match the 16-bit sum of
bytes 0 through B and E and F. The second checksum
location “byte 1F ” is not a checksum total, but is,
instead, a checksum adjustment. The value of this byte
should be such that the total 8-bit checksum for the
entire 36 bytes of EEPROM data equals the value FFh.
The checksum adjust byte is needed by the PCnet-32
controller in order to verify that the EEPROM contents
have not been corrupted.
Byte address 8h of the EEPROM map contains the
driver IRQ field. The content of this field is used by
AMD drivers to program the interrupt channel being
used by the PCnet-32. Note that the PCnet-32 interrupt
pin selection is NOT effected by this field. The interrupt
pin selection is controlled only by the appropriate bits in
BCR21. The system interrupt channel associated with
each of the PCnet-32 INTR pins is application-dependent. AMD drivers utilize byte location 8h of the
EEPROM to resolve this dependency.
116
EEPROM-Programming of System Logic
When the user has shareable hardware resources in
the system and wishes to have these resources programmed at power up, the user may desire to take advantage of the extra space in the EEPROM that is used
to configure the PCnet-32 controller in order to store
the additional configuration information. The PCnet-32
controller provides a convenient means of access for
the user who wishes to utilize this space. The
schematic in Figure 34 illustrates an example of logic
that is used to generate static control signals for some
programmable features of the system, where the
programming information is stored on board the
PCnet-32 controller’s EEPROM and the logic is to be
automatically programmed after RESET.
Note that the EECS signal pulses low during the
EEPROM read operation and is therefore unsuitable for
use as a gate signal for the programmable logic
outputs. PCnet-32 controller provides an additional
signal, SHFBUSY, which will remain active HIGH
during the entire EEPROM read operation. This signal
will therefore be suitable for use as the gate of the
programmable logic outputs as shown in the diagram.
Note that since most of the EEPROM microwire
interface signals are multiplexed with other PCnet-32
controller functions, it is necessary for the SHFBUSY
pin to enable the shift path of the programmable logic,
otherwise the shift path would become active when the
EESK and EEDO functions were operating as their
alternate functions.
Am79C965A
PCnet-32
Controller
EEDI
EEDI
EEDO
EEDO
EECS
EECS
EESK
EESK
EEPROM
(93LC46)
SHFBUSY
RESET
RESET
FFR
D
EN
CK
FFR
D
EN
CK
Q
FFR
Q
D
EN
CK
R
R
Q
...up to 16 bits
R
RESET
OUT1
OUT2
OUT3
18219-41
Figure 34. Programming System Logic Through the PCnet-32 EEPROM Read Operation
SHFBUSY will be HIGH for the entire EEPROM read
operation, and therefore all EEPROM contents will
have been shifted through the external logic before it
settles on its final, programmed value. If the EEPROM
checksum verification fails, then the EEPROM contents
are assumed to be invalid, and the SHFBUSY signal
will remain HIGH after the completion of the EEPROM
read operation. This action will prevent incorrect
system logic values from being driven into the system.
If the EEPROM checksum verification passes, then the
EEPROM contents are assumed to be valid, and the
SHFBUSY signal will return to a LOW state after the
completion of the EEPROM read operation.
Transmit Operation
The transmit operation and features of the PCnet-32
controller are controlled by programmable options.
Transmit Function Programming
Automatic transmit features such as retry on collision,
FCS generation/transmission, and pad field insertion
can all be programmed to provide flexibility in the (re-)
transmission of messages.
Disable retry on collision (DRTY) is controlled by the
DRTY bit of the Mode register (CSR15) in the initialization block.
Automatic pad field insertion is controlled by the
APAD_XMT bit in CSR4. If APAD_XMT is set, auto-
matic pad field insertion is enabled, the DXMTFCS feature is over-ridden, and the 4 byte FCS will be added to
the transmitted frame unconditionally. If APAD_XMT is
clear, no pad field insertion will take place and runt
packet transmission is possible.
The disable FCS generation/transmission feature can
be programmed dynamically on a frame by frame
basis. See the ADD_FCS description of TMD1.
Transmit FIFO Watermark (XMTFW in CSR80) sets the
point at which the BMU requests more data from the
transmit buffers for the FIFO. A minimum of “XMTFW”
empty spaces must be available in the transmit FIFO
before the BMU will request the system bus in order to
transfer transmit packet data into the transmit FIFO.
Transmit Start Point (XMTSP in CSR80) sets the point
when the transmitter actually attempts to transmit a
frame onto the media. A minimum of “XMTSP” bytes
must be written to the transmit FIFO for the current
frame before transmission of the current frame will begin. (When automatically padded packets are being
sent, it is conceivable that the XMTSP is not reached
when all of the data has been transferred to the FIFO.
In this case, the transmission will begin when all of the
packet data has been placed into the transmit FIFO.)
When the entire frame is in the FIFO, attempts at transmission of preamble will commence regardless of the
Am79C965A
117
value in XMTSP. The default value of XMTSP is 10b,
meaning 64 bytes full.
Automatic Pad Generation
Transmit frames can be automatically padded to extend
them to 64 data bytes (excluding preamble). This
allows the minimum frame size of 64 bytes (512 bits) for
802.3/Ethernet to be guaranteed with no software
intervention from the host/controlling process. Setting
the APAD_XMT bit in CSR4 enables the automatic
padding feature. The pad is placed between the LLC
data field and FCS field in the 802.3 frame (see Figure
35). FCS is always added if the frame is padded,
regardless of the state of DXMTFCS. The transmit
frame will be padded by bytes with the value of 00h.
The default value of APAD_XMT is 0; this will disable
auto pad generation after H_RESET.
It is the responsibility of upper layer software to
correctly define the actual length field contained in the
message to correspond to the total number of LLC
Data bytes encapsulated in the packet (length field as
defined in the ISO 8802-3 (IEEE/ANSI 802.3)
standard). The length value contained in the message
is not used by the PCnet-32 controller to compute the
actual number of pad bytes to be inser ted. The
PCnet-32 controller will append pad bytes dependent
on the actual number of bits transmitted onto the
network. Once the last data byte of the frame has
completed, prior to appending the FCS, the PCnet-32
controller will check to ensure that 544 bits have been
transmitted. If not, pad bytes are added to extend the
frame size to this value, and the FCS is then added.
Preamble
1010....1010
Sync
10101011
Destination
Address
Source
Address
Length
56
Bits
8
Bits
6
Bytes
6
Bytes
2
Bytes
LLC
Data
Pad
FCS
4
Bytes
46 — 1500
Bytes
Figure 35. ISO 8802-3 (IEEE/ANSI 802.3) Data Frame
The 544 bit count is derived from the following:
Minimum frame size
(excluding preamble,
including FCS)
64 bytes
512 bits
Preamble/SFD size
8 bytes
64 bits
FCS size
4 bytes
32 bits
Transmit FCS Generation
To be classed as a minimum size frame at the receiver
the transmitted frame must contain:
Preamble + (Min Frame Size + FCS) bits
At the point that FCS is to be appended, the transmitted
frame should contain:
Preamble + (Min Frame Size–FCS) bits
64 + (512–32) bits
A minimum length transmit frame from the PCnet-32
controller will, therefore, be 576 bits, after the FCS is
appended.
The Ethernet specification assumes that minimum
length messages will be at least 64 bytes in length.
118
Automatic generation and transmission of FCS for a
transmit frame depends on the value of DXMTFCS bit
in CSR15. When DXMTFCS = 0 the transmitter will
generate and append the FCS to the transmitted frame.
I f t h e a u t o m a t i c p a d d i n g fe a t u r e i s i n vo k e d
(APAD_XMT is set in CSR4), the FCS will be appended
by the PCnet-32 controller regardless of the state of
DXMTFCS. Note that the calculated FCS is transmitted
most significant bit first. The default value of DXMTFCS
is 0 after H_RESET.
Transmit Exception Conditions
Exception conditions for frame transmission fall into
two distinct categories. Those which are the result of
normal network operation, and those which occur due
to abnormal network and/or host related events.
Normal events which may occur and which are handled
autonomously by the PCnet-32 controller include collisions within the slot time with automatic retry. The
PCnet-32 controller will ensure that collisions which occur within 512 bit times from the start of transmission
(including preamble) will be automatically retired with
no host intervention. The transmit FIFO ensures this by
Am79C965A
guaranteeing that data contained within the FIFO will
not be overwritten until at least 64 bytes (512 bits) of
preamble plus address, length and data fields have
been transmitted onto the networ k without
encountering a collision.
If 16 total attempts (initial attempt plus 15 retries) fail,
the PCnet-32 controller sets the RTRY bit in the current
transmit TDTE in host memory (TMD2), gives up
ownership (resets the OWN bit to zero) for this frame,
and processes the next frame in the transmit ring for
transmission. Abnormal network conditions include:
■ Loss of carrier.
■ Late collision.
■ SQE Test Error (does not apply to 10BASE-T port)
SQE Test Error
During the inter packet gap time following the completion of a transmitted message, the AUI CI± pair is asserted by some transceivers as a self-test. The integral
Manchester Encoder/Decoder will expect the SQE Test
Message (nominal 10 MHz sequence) to be returned
via the CI± pair, within a 40 network bit time period after
DI± goes inactive (this does not apply if the 10BASE-T
port is selected). If the CI± input is not asserted within
the 40 network bit time period following the completion
of transmission, then the PCnet-32 controller will set
the CERR bit in CSR0. CERR will be asserted in
10BASE-T mode after transmit if T-MAU is in Link Fail
state. CERR will never cause INTR to be activated. It
will, however, set the ERR bit in CSR0.
None of the abnormal network conditions should not
occur on a correctly configured 802.3 network, and will
be reported if they do.
Receive Operation
When an error occurs in the middle of a multi-buffer
frame transmission, the error status will be written in
the current desc r iptor. The OWN bit(s) in the
subsequent descriptor(s) will be reset until the STP
(the next frame) is found.
Receive Function Programming
Loss of Carrier
A loss of carrier condition will be reported if the
PCnet-32 controller cannot observe receive activity
while it is transmitting on the AUI port. After the
PCnet-32 controller initiates a transmission it will
expect to see data “looped-back” on the DI± pair. This
will internally generate a “carrier sense,” indicating that
the integrity of the data path to and from the MAU is
intact, and that the MAU is operating correctly. This
“carrier sense” signal must be asserted about 6 bit
times before the last transmitted bit on DO±. If “carrier
sense” does not become active in response to the data
transmission, or becomes inactive before the end of
transmission, the loss of carrier (LCAR) error bit will be
set in TMD2 after the frame has been transmitted. The
frame will not be retried on the basis of an LCAR error.
When the 10BASE-T port is selected, LCAR will be reported for every frame transmitted during the Link fail
condition.
Late Collision
A late collision will be reported if a collision condition
occurs after one slot time (512 bit times) after the transmit process was initiated (first bit of preamble commenced). The PCnet-32 controller will abandon the
transmit process for the particular frame, set Late Collision (LCOL) in the associated TMD2, and process the
next transmit frame in the ring. Frames experiencing a
late collision will not be retried. Recovery from this condition must be performed by upper layer software.
The receive operation and features of the PCnet-32
controller are controlled by programmable options.
Automatic pad field stripping is enabled by setting the
ASTRP_RCV bit in CSR4. this can provide flexibility in
the reception of messages using the 802.3 frame
format.
All receive frames can be accepted by setting the
PROM bit in CSR15. When PROM is set, the PCnet-32
controller will attempt to receive all messages, subject
to minimum frame enforcement. Promiscuous mode
overrides the effect of the Disable Receive Broadcast
bit on receiving broadcast frames.
The point at which the BMU will start to transfer data
from the receive FIFO to buffer memory is controlled by
the RCVFW bits in CSR80. The default established
during H_RESET is 10b which sets the threshold flag
at 64 bytes empty.
Automatic Pad Stripping
During reception of an 802.3 frame the pad field can be
stripped automatically.
ASTRP_RCV (CSR4, bit 10) = 1 enables the automatic
pad stripping feature. The pad field will be stripped before the frame is passed to the FIFO, thus preserving
FIFO space for additional frames. The FCS field will
al so be s tr i ppe d, s in ce it i s co mpu ted at th e
transmitting station based on the data and pad field
characters, and will be invalid for a receive frame that
has had the pad characters stripped.
The number of bytes to be stripped is calculated from
the embedded length field, as defined in the ISO 88023 (IEEE/ANSI 802.3) definition, contained in the frame.
The length indicates the actual number of LLC data
bytes contained in the message. Any received frame
which contains a length field less than 46 bytes will
have the pad field stripped (if ASTRP_RCV is set).
Am79C965A
119
Receive frames which have a length field of 46 bytes or
greater will be passed to the host unmodified.
Note that for some network protocols, the value passed
in the Ethernet Type and/or 802.3 Length field is not
compliant with either standard and may cause
problems.
Figure 36 shows the byte/bit ordering of the received
length field for an 802.3 compatible frame format.
Receive FCS Checking
Reception and checking of the received FCS is performed automatically by the PCnet-32 controller. Note
that if the Automatic Pad Stripping feature is enabled,
the FCS for padded frames will be verified against the
value computed for the incoming bit stream including
pad characters, but the FCS value for a padded frame
will not be passed to the host. If an FCS error is
detected in any frame, the error will be reported in the
CRC bit in RMD1.
46 Ñ 1500
Bytes
56
Bits
8
Bits
6
Bytes
6
Bytes
2
Bytes
Preamble
1010....1010
Sync
10101011
Destination
Address
Source
Address
Length
4
Bytes
LLC
Data
Pad
1 Ñ 1500
Bytes
45 Ñ 0
Bytes
FCS
Start of Frame
at Time = 0
Bit
0
Bit
7
Bit
0
Bit
7
Increasing Time
Most
Significant
Byte
Least
Significant
Byte
18219-43
Figure 36. ISO 8802.3 (IEEE/ANSI 802.3) Data Frame
Receive Exception Conditions
Exception conditions for frame reception fall into two
distinct categories: Those which are the result of
normal network operation, and those which occur due
to abnormal network and/or host related events.
Normal events which may occur and which are handled
autonomously by the PCnet-32 controller are basically
collisions within the slot time and automatic runt packet
rejection. The PCnet-32 controller will ensure that collisions which occur within 512 bit times from the start of
reception (excluding preamble) will be automatically
d e l e t e d f r o m t h e r e c e i ve F I F O w i t h n o h o s t
intervention. The receive FIFO will delete any frame
which is composed of fewer than 64 bytes provided that
the Runt Packet Accept (RPA bit in CSR124) feature
has not been enabled. This criterion will be met
regardless of whether the receive frame was the first
120
(or only) frame in the FIFO or if the receive frame was
queued behind a previously received message.
Abnormal network conditions include:
■ FCS error
■ Late collision
Host-related receive exception conditions include
MISS, BUFF, and OFLO. These are described in the
BMU section.
Loopback Operation
Loopback is a mode of operation intended for system
testing. In this mode the transmitter and receiver are
both operating at the same time so that the controller
receives its own transmissions. The controller provides
two types of internal loopback and one type of external
loopback. In internal loopback mode the transmitter
Am79C965A
data can be looped back to the receiver at one of two
places inside the controller without actually transmitting
any data to the external network. The receiver will
move the received data to the external network. The
receiver will move the received data to the next receive
buffer, where it can be examined by software.
Alternatively, in external loopback mode, data can be
transmitted to and received from the external network.
When performing an internal loopback, no frame will be
transmitted to the network. However, when the
PCnet-32 controller is configured for internal loopback
the receiver will not be able to detect network traffic.
External loopback tests will transmit frames onto the
network when the AUI port is selected. Runt Packet
Accept is automatically enabled when any loopback
mode is invoked.
There are restrictions on loopback operation. The
PCnet-32 controller has only one FCS generator
circuit. The FCS generator can be used by the
transmitter to generate the FCS that is appended to the
frame, or it can be used by the receiver to verify the
FCS of the received frame. It can not be used by the
receiver and transmitter at the same time.
Loopback mode can be performed with any frame size.
Runt Packet Accept is internally enabled (RPA bit in
CSR 124 is not affected) when any loopback mode is
invoked. This is to be backwards compatible to the
LANCE (Am7990) software.
If the FCS generator is connected to the receiver, the
transmitter will not append an FCS to the frame, but the
receiver will check for one. The user can, however,
calculate the FCS value for a frame and include this
four-byte number in the transmit buffer.
If the FCS generator is connected to the transmitter, the
transmitter will append an FCS to the frame, but the receiver will not check it. However, the user can verify the
FCS by software.
During loopback the FCS logic can be allocated to the
receiver by setting DXMTFCS = 1 in CSR15.
If DXMTFCS=0, the MAC Engine will calculate and append the FCS to the transmitted message. The receive
message passed to the host will therefore contain an
a d d i t i o n a l 4 b y t e s o f F C S. I n t h i s l o o p b a ck
configuration, the receive circuitry cannot detect FCS
errors if they occur.
If DXMTFCS=1, the last four bytes of the transmit
message must contain the (software generated) FCS
computed for the transmit data preceding it. The MAC
Engine will transmit the data without addition of an FCS
field, and the FCS will be calculated and verified at the
receiver.
The loopback facilities of the MAC Engine allow full
operation to be verified without disturbance to the
network. Loopback operation is also affected by the
state of the Loopback Control bits (LOOP, MENDECL,
and INTL) in CSR15. This affects whether the internal
MENDEC is considered part of the internal or external
loop-back path.
The multicase address detection logic uses the FCS
generator. Therefore, when in the loopback mode(s),
the multicast address detection feature of the MAC
Engine, programmed by the contents of the Logical
Address Filter (LADRF [63:0] in CSRs 8-11) can only
be tested when DXMTFCS=1, allocating the FCS
generator to the receiver. All other features operate
identically in loopback as in normal operation, such as
automatic transmit padding and receive pad stripping.
When external loopback is perfor med while the
10BASE-T MAU is selected, collision detection is
disabled. This is necessary, because a collision in a
10BASE-T system is defined as activity on the
transmitter outputs and receiver inputs at the same
time, which is exactly what happens during external
loopback.
Since a 10BASE-T hub does not normally feed the
station’s transmitter outputs back into the station’s
receiver inputs, the use of external loopback in a
10BASE-T system usually requires some sort of
external hardware that connects the outputs of the
10BASE-T MAU to its inputs.
LED Support
The PCnet-32 controller can support up to 4 LEDs.
LED outputs LNKST, LED1 and LED2 allow for direct
connection of an LED and its supporting pull-up device.
LED output LEDPRE3 may require an additional buffer
between the PCnet-32 controller output pin and the
LED and its supporting pull-up device.
Because the LEDPRE3 output is multiplexed with other
PCnet-32 controller functions, it may not always be
possible to connect an LED circuit directly to the
LEDPRE3 pin. For example, when an LED circuit is
directly connected to the EEDO/LEDPRE3/SRD pin,
then it is not possible for most serial EEPROM devices
to sink enough IOL to maintain a valid low level on the
EEDO input to the PCnet-32 controller. Therefore, in
applications that require both an EEPROM and a fourth
LED, then it is necessary to buffer the LEDPRE3 circuit
from the EEPROM-PCnet-32 controller connection.
The LED registers in the BCR resource space allow
each LED output to be programmed for either active
high or active low operation, so that both inverting and
non-inverting buffering choices are possible.
In applications where an EEPROM is not needed, the
LEDPRE3 pin may be directly connected to an LED
circuit. The PCnet-32 controller LEDPRE3 pin driver
will be able to sink enough current to properly drive the
LED circuit.
Am79C965A
121
By default, after H_RESET, the 4 LED outputs are
configured as shown in Table 40.
Table 40. LED Configuration
LED
Output
Default
Interpretation
Default
Drive
Enable
Default
Output
Polarity
LNKST
Link Status
Enabled
Active LOW
LED1
Receive
Enabled
Active LOW
LED2
Receive Polarity Enabled
Active LOW
LEDPRE3
Transmit
Active LOW
Enabled
For each LED register, each of the status signals is
ANDed with its enable signal, and these signals are all
OR’d together to form a combined status signal. Each
LED pin’s combined status signal runs to a pulse
stretcher, which consists of a 3-bit shift register clocked
at 38 Hz (26 ms). The data input of each shift register
is normally at logic 0. The OR gate output for each LED
register asynchronously sets all three bits of its shift
register when the output becomes asserted. The
inverted output of each shift register is used to control
an LED pin. Thus the pulse stretcher provides 2–3
clocks of stretched LED output, or 52 ms to 78 ms.
Figure 37 shows the LED signal circuit that exists for
each LED pin.
LNKST
LNKST E
RCVM
RCVM E
XMT
XMT E
To
Pulse
Stretcher
RXPOL
RXPOL E
RCV
RCV E
JAB
JAB E
COL
COL E
Figure 37. On-Chip LED Control Logic
H_RESET, S_RESET and STOP
There are three different types of RESET operations
that may be performed on the PCnet-32 device,
H_RESET, S_RESET and STOP. These names have
been used throughout the document. The following is a
description of each type of RESET operation:
H_RESET
H_RESET= HARDWARE_RESET is a PCnet-32
RESET operation that has been created by the proper
assertion of the RESET pin of the PCnet-32 device.
When the minimum pulse width timing as specified in
the RESET pin description has been satisfied, then an
internal RESET operation will be performed.
H_RESET will RESET all of or some portions of CSR0,
3, 4, 15, 58, 80, 82, 100, 112, 114, 122, 124 and 126 to
default values; H_RESET will RESET all of or some
portions of BCR 2, 4, 5, 6, 7, 18, 19, 20, 21 to default
values. H_RESET will cause the microcode program to
jump to its RESET state. Following the end of the
122
H_RESET operation, the PCnet-32 controller will
attempt to read the EEPROM device through the
EE PROM mic r owir e in ter fac e. The H_ RES ET
operation will unconditionally cause all INTR pins to
become inactive. (Note that there may be either 2 or 4
INTR pins, depending upon the JTAGSEL pin setting.)
The H_RESET operation will unconditionally cause the
HOLD signal to become de-asserted.
H_RESET will reset T-MAU to Link Fail state.
H_RESET is generated by proper assertion of either
the RESET or RESET pin, depending upon the mode
that has been selected through the LB/VESA pin.
S_RESET
S_RESET = SOFTWARE_RESET is a PCnet-32
RESET operation that has been created by a read access to the RESET REGISTER which is located at
offset 14h from the PCnet-32 controller I/O base
address.
Am79C965A
S_RESET will RESET all of or some portions of CSR0,
3, 4, 15, 80, 100 and 124 to default values. S_RESET
will RESET NONE of the BCR locations to default
values. S_RESET will cause the microcode program to
jump to its RESET state. Following the end of the
S_RESET operation, the PCnet-32 controller will NOT
attempt to read the EEPROM device. See also the subsection on RESET Register in the I/O Register Access
section under Software Access. The S_RESET operation will not cause INTR pins to become inactive.
S_RESET will set the T-MAU into Link Fail state.
Note that S_RESET will not cause a de-assertion of
the HOLD signal, if it happens to be active at the time
of the read to the reset register. The HOLD signal will
remain active until the HLDA signal is synchronously
sampled as asserted. Following the read of the RESET
register, on the next clock cycle after the HLDA signal
is synchronously sampled as asserted, (except in
Am386 mode, when two cycles are needed) the PCnet32 controller will de-assert the HOLD signal; No bus
master accesses will have been performed during this
brief bus ownership period.
STOP
STOP is a PCnet-32 RESET operation that has been
created by the ASSERTION of the STOP bit in CSR0.
That is, a STOP RESET is generated by writing a ONE
to the STOP bit of CSR0 when the STOP bit currently
has a value of ZERO. If the STOP bit value is currently
a ONE, and a ONE is rewritten to the STOP bit, then
NO STOP RESET will be generated. The STOP
operation will not cause INTR pins to become inactive.
STOP will RESET all or some portions of CSR0, 3, and
4 to default values; STOP will RESET NONE of the
BCR locations to default values. STOP will cause the
microcode program to jump to its RESET state. Following the end of the STOP operation, the PCnet-32 controller will not attempt to read the EEPROM device. For
the identity of individual CSRs and bit locations that are
affected by STOP, see the individual CSR register
descriptions. Setting the STOP bit does not affect the
T-MAU.
Am79C965A
123
USER ACCESSIBLE REGISTERS
The PCnet-32 controller implements all PCnet-ISA
(Am79C960) registers, all LANCE (Am7990) registers,
all ILACC (Am79C900) registers, plus a number of
additional registers. The PCnet-32 controller registers
are compatible with both the PCnet-ISA (Am79C960)
registers and all of the LANCE (Am7990) registers
upon power up. Compatibility to the ILACC set of
registers requires one access to the Software Style
register (BCR20, bits 7–0) to be performed. By setting
an appropriate value of the Software Style register
(BCR20, bits 7–0) the user can select a set of registers
that are compatible with the ILACC set of registers.
never be accessed at all. Also note that some of these
registers may be programmable through the EEPROM
read operation, and therefore do not necessarily need
to be written to by the system initialization procedure or
by the driver software.
CRS1
Initialization Address[15:0]
CSR2
Initialization Address[31:16]
CSR3
Interrupt Masks and Deferral Control
CSR4
Test and Features Control
CSR8
Logical Address Filter [15:0]
CSR9
Logical Address Filter [31:16]
CSR10
Logical Address Filter [47:32]
CSR11
Logical Address Filter [63:48]
CSR12
Physical Address Filter [15:0]
CSR13
Physical Address Filter [31:16]
CSR14
Physical Address Filter [47:32]
CSR15
Mode Register
CSR24
Base Address of Receive Ring Lower
CSR25
Base Address of Receive Ring Upper
CSR30
Base Address of Transmit Ring Lower
CRS31
Base Address of Transmit Ring Upper
CSR47
Polling Interval
CSR58
Software Style
CSR76
Receive Ring Length
CSR78
Transmit Ring Length
CSR80
Cycle Register and
FIFO Threshold Control
CSR82
Bus Activity Timer
CSR100
Memory Error Time-out Register
CSR122
Receiver Packet Alignment Control
Below is a list of the registers that fall into each of the
first two categories. Those registers that are not
included in either of these lists can be assumed to be
intended for diagnostic purposes.
BCR2
MAU configuration
BCR16
I/O Base Address Lower
BCR17
I/O Base Address Upper
Setup Registers
BCR18
Bus Size and Burst Control Register
The following is a list of those registers that would typically need to be programmed once during the setup of
the PCnet-32 controller within a system. The control
bits in each of these registers typically do not need to
be modified once they have been written. However,
there are no restrictions as to how many times these
registers may actually be accessed. Note that if the
default power up values of any of these registers is
acceptable to the application, then such registers need
BCR19
EEPROM Control and Status Register
BCR20
Software Style
BCR21
Interrupt Control
Note that all register locations are defined to be 16 bits
in width when WIO mode is selected. When DWIO
mode is selected, all register locations are defined to
be 32 bits in width. When performing register write
operations in DWIO mode, the upper 16 bits should
always be written as zeros, except APROM locations.
When performing register read operations in DWIO
mode, the upper 16 bits of I/O resources should always
be written as ZEROs, except for APROM locations and
CSR88. When performing register read operations in
DWIO mode, the upper 16 bits of I/O resources should
always be regarded as having undefined values,
except for the APROM locations and CSR88.
PCnet-32 controller registers can be divided into three
groups:
Setup registers: Registers that are intended to be
initialized by the system initialization procedure (e.g.
BIOS device initialization routine) or by the device
driver to program the operation of various PCnet-32
controller features
Running registers: Registers that are intended to be
used by the device driver software once the PCnet-32
controller is running to access status information and to
pass control information
Test registers: Registers that are intended to be used
only for testing and diagnostic purposes
124
Running Registers
The following is a list of those registers that would typically need to be periodically read and perhaps written
during the normal running operation of the PCnet-32
Am79C965A
controller within a system. Each of these registers contains control bits or status bits or both.
serves as the pointer to BCR space, which is described
in a later section.
RAP
Register Address Port Register
CSR0: PCnet-32 Controller Status
CSR0
PCnet-32 Controller Status Register
Bit
CSR4
Test and Features Control
31-16
RES
CSR112
Missed Frame Count
Reserved locations. Written
zeros and read as undefined.
CSR114
Receive Collision Count
15
ERR
Error is set by the ORing of BABL,
CERR, MISS, and MERR.
Name
RAP Register
The RAP (Register Address Pointer) register is used to gain
access to CSR and BCR registers on board the PCnet-32
controller. The value of the RAP indicates the address of a
CSR or BCR whenever an RDP or BDP access is performed. That is to say, RAP serves as a pointer to CSR and
BDP space.
As an example of RAP use, consider a read access to
CSR4. In order to access this register, it is necessary to first
load the value 0004 into the RAP by performing a write
access to the RAP offset of 12h (12h when WIO mode has
been selected, 14h when DWIO mode has been selected).
The data for the RAP write would be 0004. Then a second
access is performed on the PCnet-32 controller, this time to
the RDP offset of 10h (for either WIO or DWIO mode). The
RDP access is a read access, and since RAP has just been
loaded with the value of 0004, the RDP read will yield the
contents of CSR4. A read of the BDP at this time (offset of
16h when WIO mode has been selected, 1Ch when DWIO
mode has been selected) will yield the contents of BCR4,
since the RAP is used as the pointer into both BDP and RDP
space.
Name
14
BABL
RES
Reserved locations. Written
zeros and read as undefined.
15-8
RES
Reserved locations.
written as zeros.
7-0
RAP
Register Address Port. The value of
these 8 bits determines which CSR
or BCR will be accessed when an I/
O access to the RDP or BDP port,
respectively, is performed. RAP is
cleared by H_RESET or S_RESET
and is unaffected by the STOP bit.
Read
BABL is set by the MAC layer and
cleared by writing a “1”. Writing a “0”
has no effect. BABL is cleared by
H_RESET or S_RESET or setting
the STOP bit.
13
CERR
as
and
Collision Error indicates that the
collision inputs to the AUI port failed
to activate within 20 network bit
times after chip terminated
transmission (SQE Test). This
feature is a transceiver test feature.
In 10BASE-T mode CERR will be
set if a transmission is attempted
while the T-MAU is in Link Fail state.
CERR assertion will not result in an
interrupt being generated. CERR
assertion will set the ERR bit.
CERR is set by the MAC layer and
cleared by writing a “1”. Writing a “0”
has no effect. CERR is cleared by
H_RESET or S_RESET or setting
the STOP bit.
12
Control and Status Registers
Babble is a transmitter time-out
error. It indicates that the transmitter has been on the channel
longer than the time required to
send the maximum length frame.
BABL will be set if 1519 bytes or
greater are transmitted. When BABL
is set, INTR is asserted if IENA = 1
and the mask bit BABLM in CSR3 is
clear. BABL assertion will set the
ERR bit.
Description
31-16
as
ERR remains set as long as any of
the error flags are true. ERR is read
only. Write operations are ignored.
RAP: Register Address Port
Bit
Description
The CSR space is accessible by performing accesses
to the RDP (Register Data Port). The particular CSR
that is read or written during an RDP access will
depend upon the current setting of the RAP. RAP
serves as a pointer into the CSR space. RAP also
Am79C965A
MISS
Missed Frame is set when PCnet-32
controller has lost an incoming
receive frame resulting from a
R e c e i ve D e s c r i p t o r n o t b e i n g
ava i l a bl e. T h i s bi t i s t h e o n l y
immediate indication that receive
data has been lost since there is no
125
current receive descriptor to write
status to.
9
TINT
When MISS is set, INTR is asserted if IENA = 1 and the mask bit
MISSM in CSR3 is clear. MISS
assertion will set the ERR bit.
When TINT is set, INTR is asserted
if IENA = 1 and the mask bit TINTM
in CSR3 is clear.
MISS is set by the Buffer
Management Unit and cleared by
writing a “1”. Writing a “0” has no
effect. MISS is cleared by H_RESET
or S_RESET or setting the STOP
bit.
11
MERR Memory Error is set when PCnet-32
controller requests the use of the
system interface bus by asserting
HOLD and has not received HLDA
asser tion after a programmable
length of time.The length of time in
microseconds before MERR is
asser ted will depend upon the
setting of the Bus Time-Out Register
(CSR100). The default setting of
CSR100 will give a MERR after 51.2
µs of bus latency.
TINT is set by the Buffer Management Unit after the last transmit
bu f fe r h a s b e e n u p d a t e d a n d
cleared by writing a “1”. Writing a “0”
has no effect. TINT is cleared by
H_RESET or S_RESET or setting
the STOP bit.
8
IDON
10
RINT
Receive interrupt. RINT is set by the
Buffer Management Unit of the
PCnet-32 controller after the last
descriptor of a receive packet has
been updated by writing a ZERO to
the ownership bit. RINT may also be
set when the first descriptor of a
receive packet has been updated by
writing a ZERO to the ownership bit
if the SPRINTEN bit of CSR3 has
been set to a ONE.
IDON is set by the Buffer
Management Unit after the
initialization block has been read
from memory and cleared by writing
a “1”. Writing a “0” has no effect.
IDON is cleared by H_RESET or
S_RESET or setting the STOP bit.
7
INTR
Interrupt Flag indicates that one or
more following interrupt causing
conditions has occurred: BABL,
MISS, MERR, MFCO, RCVCCO,
RINT, RPCO, TINT, IDON, JAB or
TXSTRT. and its associated mask
bit is clear. If IENA = 1 and INTR is
set, INTR will be active.
INTR is read only. INTR is cleared
by H_RESET or S_RESET or by
setting the STOP bit or by clearing
all of the active individual interrupt
bits that have not been masked out.
6
When RINT is set, INTR is asserted
if IENA = 1 and the mask bit RINTM
in CSR3 is clear.
RINT is cleared by the host by
writing a “1”. Writing a “0” has no
effect. RINT is cleared by H_RESET
or S_RESET or by setting the STOP
bit.
126
Initialization Done indicates that the
initialization sequence has
completed. When IDON is set,
PCnet-32 controller has read the
Initialization block from memory.
When IDON is set, INTR is asserted if IENA = 1 and the mask bit
IDONM in CSR3 is clear.
When MERR is set, INTR is asserted if IENA = 1 and the mask bit
MERRM in CSR3 is clear. MERR
asser tion will set the ERR bit,
regardless of the settings of IENA
and MERRM.
MERR is set by the Bus Interface
Unit and cleared by writing a “1”.
Writing a “0” has no effect. MERR is
cleared by H_RESET or S_RESET
or by setting the STOP bit.
Transmit interrupt is set after
completion of a transmit frame and
toggling of the OWN bit in the last
buffer in the Transmit Descriptor
Ring.
Am79C965A
IENA
Interrupt Enable allows INTR to be
active if the interrupt Flag is set. If
IENA = “0” then INTR will be
disabled regardless of the state of
INTR.
IENA is set by writing a “1” and
cleared by writing a “0”. IENA is
cleared by H_RESET or S_RESET
or setting the STOP bit.
5
RXON
Receive On indicates that the
Receive function is enabled. RXON
is set if DRX (CSR15[0]) = “0” after
the START bit is set. If INIT and
START are set together, RXON will
not be set until after the initialization
block has been read in.
RXON is read only. RXON is cleared
by H _ R E S E T o r S _ R E S E T o r
setting the STOP bit.
4
3
TXON
TDMD
management operations. Setting
STRT clears the STOP bit. If STRT
and INIT are set together, PCnet-32
c ontr ol ler in iti al iz atio n wi ll b e
performed first.
STRT is set by writing a “1”. Writing
a “0” has no effect. STRT is cleared
by H_RESET or S_RESET or by
setting the STOP bit.
0
INIT
Transmit On indicates that the
Transmit function is enabled. TXON
is set if DTX (CSR15[1]) = “0” after
the START bit is set. If INIT and
START are set together, TXON will
not be set until after the initialization
block has been read in. TXON is read
only. TXON is cleared by H_RESET
or S_RESET or setting the STOP
bit.
Transmit Demand, when set, causes
the Buffer Management Unit to
access the Transmit Descriptor Ring
without waiting for the poll-time
counter to elapse. If TXON is not
enabled, TDMD bit will be reset and
no Transmit Descriptor Ring access
will occur.
TDMD is required to be set if the
DPOLL bit in CSR4 is set. Setting
TDMD while DPOLL = 0 merely
hastens the PCnet-32 controller’s
response to a Transmit Descriptor
Ring Entry.
INIT is not cleared when the
initialization sequence has
completed.
INIT is set by writing a “1”. Writing a “0” has
n o e f fe c t . I N I T i s c l e a r e d b y
H _ R E S E T o r S _ R E S E T o r by
setting the STOP bit.
CSR1: IADR[15:0]
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
IADR[15:0] Lower 16 bits of the address of
the Initialization Block.
1
STOP
STRT
STOP assertion disables the chip
from all DMA activity. The chip
remains inactive until either STRT or
INIT are set. If STOP, STRT and INIT
are all set together, STOP will
override STRT and INIT.
as
Regardless of the value of
SSIZE32(BCR20/CSR58, bit 8)
IADR[1:0] must be zero.
TDMD is set by writing a “1”. Writing
a “0” has no effect. TDMD will be
cleared by the Buffer Management
Unit when it fetches a Transmit
Descriptor. TDMD is cleared by
H_RESET or S_RESET or setting
the STOP bit.
2
INIT assertion enables PCnet-32
controller to begin the initialization
p r o c e d u r e w h i c h r ea d s i n t h e
initialization block from memory.
Setting INIT clears the STOP bit. If
STRT and INIT are set together,
PCnet-32 controller initialization will
be performed first.
This register is aliased with CSR16.
Read/Write accessible only when
t h e S TO P b i t i n C S R 0 i s s e t .
Unaffected by H_RESET or
S_RESET or by setting the STOP
bit.
CSR2: IADR[31:16]
Bit
Name
31-16 RES
Description
Reserved locations. Written
zeros and read as undefined.
as
STOP is set by writing a “1” or by
H_RESET or S_RESET. Writing a
“0” has no effect. STOP is cleared by
setting either STRT or INIT.
15-8 IADR[31:24] If SSIZE32 is set (BCR20[8]), then
the IADR[31:24] bits will be used
strictly as the upper 8 bits of the
initialization block address.
STRT assertion enables PCnet-32
controller to send and receive
f r a m e s , a n d p e r fo r m b u f fe r
However, if SSIZE32 is reset, then
the IADR[31:24] bits will be used to
generate the upper 8 bits of all bus
Am79C965A
127
mastering addresses, as required
for a 32 bit address bus. Note that
the 1 6- bi t so ftwar e s tr uc tur es
specified by the SSIZE32 = 0 setting
will yield only 24 bits of address for
PCnet-32 controller bus master
accesses, while the 32-bit hardwa r e fo r w h i c h t h e P C n e t - 3 2
controller is intended will require 32
b i t s o f a d d r e s s . T h e r e fo r e ,
w h e n ev e r S S I Z E 3 2 = 0 , t h e
IADR[31:24] bits will be appended to
the 24-bit initialization address, to
each 24-bit descriptor base address
and to each beginning 24-bit buffer
address in order to form complete
32-bit addresses. The upper 8 bits
that exist in the descriptor address
registers and the buffer address
registers which are stored on board the
PCnet-32 controller will be
overwritten with the IADR[31:24]
value, so that CSR accesses to
these registers will show the 32 bit
address that includes the appended
field.
If SSIZE32 = 1, then software will
provide 32-bit pointer values for all
of the shared software structures
(i.e. descriptor bases and buffer
a d d r e s s e s ) , a n d t h e r e fo r e ,
IADR[31:24] will not be written to the
upper 8 bits of any of these
resources, but it will be used as the
upper 8 bits of the initialization
address.
Read/Write accessible only when
t h e S TO P b i t i n C S R 0 i s s e t .
U n a f fe c t e d b y H _ R E S E T o r
S_RESET or by setting the STOP
bit.
CSR3: Interrupt Masks and Deferral Control
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15
RES
Reserved location. Read and written
as zero.
14
BABLM
Babble Mask. If BABLM is set, the
BABL bit in CSR0 will be masked
and unable to set INTR flag in
CSR0.
13
RES
Reserved location. Read and written
as zero.
12
MISSM
Missed Frame Mask. If MISSM is
set, the MISS bit in CSR0 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible always.
MISSM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
11
MERRM
Memory Error Mask. If MERRM is
set, the MERR bit in CSR0 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible always.
MERRM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
10
RINTM
Receive Interrupt Mask. If RINTM is
set, the RINT bit in CSR0 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible always.
RINTM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
9
TINTM
Transmit interrupt Mask. If TINTM is
set, the TINT bit in CSR0 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible always.
TINTM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
8
128
as
Read/Write accessible always.
BABLM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
7-0 IADR[23:16] Bits 23 through 16 of the address of
the Initialization Block. Whenever
this register is written, CSR17 is
updated with CSR2’s contents.
Read/Write accessible only when
t h e S TO P b i t i n C S R 0 i s s e t .
U n a f fe c t e d b y H _ R E S E T o r
S_RESET or by setting the STOP
bit.
Description
Am79C965A
IDONM
Initialization Done Mask. If IDONM
is set, the IDON bit in CSR0 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible always.
IDONM is cleared by H_RESET or
S_RESET and is not affected by
STOP.
7
RES
Reserved location. Read and written
as zeroes.
6
DXSUFLO Disable Transmit Stop on Underflow error.
When DXSUFLO (CSR3, bit 6) is set
to ZERO, the transmitter is turned off
when an UFLO error occurs (CSR0,
TXON = 0).
When DXSUFLO is set to ONE, the
PCnet-32 controller gracefully
recovers from an UFLO error. It
scans the transmit descriptor ring
until it finds the start of a new frame
and starts a new transmission.
Read/Write accessible always.
DXSUFLO is cleared by H_RESET
or S_RESET and is not affected by
STOP.
5
LAPPEN Look-Ahead Packet Processing
Enable. When set to a ONE, the
LAPPEN bit will cause the PCnet-32
controller to generate an interrupt
fo l l ow i n g t h e d e s c r i p t o r w r i t e
operation to the first buffer of a
receive frame. This interrupt will be
generated in addition to the interrupt
that is generated following the
descriptor write operation to the last
buffer of a receive frame. The
interrupt will be signaled through the
RINT bit of CSR0.
Setting LAPPEN to a ONE also
enables the PCnet-32 controller to
read the STP bit of receive
descriptors. The PCnet-32 controller
will use the STP information to
determine where it should begin
writing a receive frame’s data. Note
that while in this mode, the
P Cn et- 3 2 c on tr o ll e r c an wr i t e
intermediate frame data to buffers
whose descriptors do not contain
STP bits set to ONE. Following the
write to the last descriptor used by a
frame, the PCnet-32 controller will
scan through the next descriptor
entries to locate the next STP bit
that is set to a ONE. The PCnet-32
Am79C965A
controller will begin writing the next
frame’s data to the buffer pointed to
by that descriptor.
Note that because several descriptors may be allocated by the
host for each frame, and not all
messages may need all of the
de sc r i pt or s tha t ar e al lo c ate d
between descriptors that contain
STP = ONE, then some descriptors/
buffers may be skipped in the ring.
While performing the search for the
next STP bit that is set to ONE, the
PCnet-32 controller will advance
through the receive descriptor ring
regardless of the state of ownership
bits. If any of the entries that are
ex a m i n e d d u r i n g t h i s s e a r c h
indicate PCnet-32 controller
ownership of the descriptor but also
indicate STP = “0”, then the
PCnet-32 controller will RESET the
OWN bit to ZERO in these entries. If
a scanned entr y indicates host
ownership with STP = “0” then the
PCnet-32 controller will not alter the
entry, but will advance to the next
entry.
When the STP bit is found to be true,
but the descriptor that contains this
setting is not owned by the
P C n e t - 3 2 c o n t r o l l e r, t h e n t h e
PCnet-32 controller will stop
advancing through the ring entries
and begin periodic polling of this
entry. When the STP bit is found to
be true, and the descriptor that
contains this setting is owned by the
P C n e t - 3 2 c o n t r o l l e r, t h e n t h e
PCnet-32 controller will stop
advancing through the ring entries,
store the descriptor information that
it has just read, and wait for the next
receive to arrive.
This behavior allows the host
software to preassign buffer space
in such a manner that the “header”
portion of a receive frame will always
be written to a particular memory
area, and the “data” portion of a
receive frame will always be written
to a separate memory area. The
interrupt is generated when the
“header” bytes have been written to
the “header” memory area.
129
Read/Write accessible always. The
LAPPEN bit will be reset to ZERO by
H_RESET or S_RESET and will be
unaffected by STOP.
S_RESET and is not affected by
STOP.
1-0
RES
See Appendix D for more information on the LAPP concept.
4
DXMT2PD Disable Transmit Two Part Deferral.
If DXMT2PD is set, Transmit Two
Part Deferral will be disabled.
Read/Write accessible always.
DXMT2PD is cleared by H_RESET
or S_RESET and is not affected by
STOP.
3
EMBA
Enable Modified Back-off Algorithm. If EMBA is set, a modified
back-off algorithm is implemented.
Read/Write accessible always.
EMBA is cleared by H_RESET or
S_RESET and is not affected by
STOP.
2
BSWP
CSR4: Test and Features Control
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15
Enable Test Mode operation. Setting
ENTST to ONE enables internal test
functions which are useful only for
s ta n d al o n e in t egra t ed c i r c u i t
testing. In addition, the Runt Packet
Accept (RPA) bit (CSR124, bit 3)
may be changed only when ENTST
is set to ONE.
ENTST
as
To enable RPA, the user must first
write a ONE to the ENTST bit. Next,
the user must first write a ONE to the
RPA bit (CSR124, bit 3). Finally, the
user must write a ZERO to the
ENTST bit to take the device out of
test mode operation. Once the RPA
bit has been set to ONE, the device
will remain in the Runt Packet
Accept mode until the RPA bit is
cleared to ZERO.
When big Endian mode is selected,
the PCnet-32 controller will swap the
order of bytes on the data bus during
FIFO transfers only. Specifically,
D31–24 becomes Byte0, D23–16
becomes Byte1, D15–8 becomes
Byte2 and D7–0 becomes Byte3
when big Endian mode is selected.
When little Endian mode is selected,
the order of bytes on the data bus is:
D31–24 is Byte3, D23–16 is Byte2,
D15–8 is Byte1 and D7–0 is Byte0.
Read/Write accessible. ENTST is
cleared by H_RESET or S_RESET
and is unaffected by the STOP bit.
14 DMAPLUS
When DMAPLUS = “1”, disables the
burst transaction counter, CSR80. If
DMAPLUS = “0”, the burst
transaction counter is enabled.
Read
and
Write
accessible.
DMAPLUS is cleared by H_RESET
or S_RESET and is unaffected by
the STOP bit.
13
BSWP is write/readable regardless
of the state of the STOP bit. BSWP
is cleared by H_RESET or
130
Description
31-16 RES
Byte Swap. This bit is used to
c hoo se be twe en bi g an d l it tl e
Endian modes of operation. When
BSWP is set to a ONE, big Endian
mode is selected. When BSWP is
set to ZERO, little Endian mode is
selected.
Byte swap only affects data transfers
that involve the FIFOs. Initialization
block transfers are not affected by
the setting of the BSWP bit.
Descriptor transfers are not affected
by the setting of the BSWP bit. RDP,
RAP and BDP accesses are not
affected by the setting of the BSWP
bit. APROM transfers are not affected by the setting of the BSWP
bit.
Reserved locations. The default
value is ZERO for both locations.
Writing a ONE to these bits has no
effect on device function; if a ONE is
written to these bits, then a ONE will
be read back. Existing drivers may
w r i t e a O N E t o t h e s e b i t s fo r
compatibility, but new drivers should
write a ZERO to these bits and
should treat the read value as
undefined.
Am79C965A
TIMER
Timer Enable Register. If TIMER is
set, the Bus Activity Timer Register,
CSR82 is enabled. If TIMER is
cleared, the Bus Activity Timer
Register is disabled.
Read/Write accessible. TIMER is
cleared by H_RESET or S_RESET
and is unaffected by the STOP bit.
12
DPOLL
Disable Transmit Polling. If DPOLL
is set, the Buffer Management Unit
will disable transmit polling.
Likewise, if DPOLL is cleared,
automatic t ransmit polling is
enabled. If DPOLL is set, TDMD bit
in CSR0 must be periodically set in
order to initiate a manual poll of a
t r a n s m i t d e s c r i p t o r. Tr a n s m i t
descriptor polling will not take place
if TXON is reset.
grammed to the ILACC compatibility mode, then this bit has no
meaning and the PCnet-32 controller will never set the value of this
bit to ONE.
8
MFCOM
When the SWSTYLE register
(BCR20[7:0]) has been programmed to the ILACC compatibility mode, then this bit has no
meaning and the PCnet-32 controller will set the value of this bit to
a ZERO.
Read/Write accessible. DPOLL is
cleared by H_RESET or S_RESET
and is unaffected by the STOP bit.
11 APAD_XMT
Auto Pad Transmit. When set,
APAD_XMT enables the automatic
padding feature. Transmit frames
will be padded to extend them to 64
bytes including FCS. The FCS is
calculated for the entire frame
including pad, and appended after
th e p ad f ie l d. APA D_ X MT wi ll
override the programming of the
DXMTFCS bit.
7
RES
Reserved location. Written as zero
and read as zero.
6
RES
Reserved location. This bit may be
written to as either a ONE or a
ZERO, but will always be read as a
ZERO. This bit has no effect on
PCnet-32 controller operation.
5
RCVCCO Receive Collision Counter Overflow. Indicates the Receive Collision
Counter (CSR114) wrapped around.
Can be cleared by writing a 1 to this
bit. Also cleared by H_RESET or
S_RESET or by setting the STOP
bit. Writing a 0 has no effect.
Read
and
Write
accessible.
APAD_XMT is reset by H_RESET or
S_RESET and is unaffected by the
STOP bit.
10 ASTRP_RCV Auto Strip Receive. When set,
ASTRP_RCV enables the automatic
pad stripping feature. The pad and
FCS fields will be stripped from
receive frames and not placed in the
FIFO.
When RCVCCO is set, INTR is
asserted if IENA=1 and the mask bit
RCVCCOM is cleared.
When the SWSTYLE register
(BCR20[7:0]) has been programmed to the ILACC compatibility mode, then this bit has no
meaning and PCnet-32 controller
will not set the value of this bit to
ONE.
Read
and
Write
accessible.
ASTRP_RCV is reset by H_RESET
or S_RESET and is unaffected by
the STOP bit.
9
MFCO
Missed Frame Counter Overflow
interrupt. Indicates the MPC
(CSR112) wrapped around. Can be
cleared by writing a 1 to this bit. Also
cleared by H_RESET or S_RESET
or setting the STOP bit. Writing a 0
has no effect.
Missed Frame Counter Overflow
Mask. If MFCOM is set, MFCO will
be unable to set INTR in CSR0. Set
to a ONE by H_RESET or
S_RESET, unaffected by the STOP
bit.
4
When MFCO is set, INTR is asserted if IENA = 1 and the mask bit
MFCOM is cleared.
When the SWSTYLE register
(BCR20[7:0]) has been pro-
Am79C965A
RCVCCOM Receive Collision Counter Over-flow
Mask. If RCVCCOM is set,
RCVCCO will be unable to set INTR
in CSR0. RCVCCOM is set to a
ONE by H_RESET or S_RESET
and is not affected by STOP.
When the SWSTYLE register
(BCR20[7:0]) has been programmed to the ILACC compatibility mode, then this bit has no
meaning and PCnet-32 controller
131
will set the value of this bit to a
ZERO.
3
TXSTRT Transmit Start status is set
when ever PCne t- 32 co ntr oll er
begins transmission of a frame.
When TXSTRT is set, INTR is
asserted if IENA = 1 and the mask
b i t TX S T RT M ( C S R 4 b i t 2 ) i s
cleared.
TXSTRT is set by the MAC Unit and
cleared by writing a “1”, by
H_RESET or S_RESET, or setting
the STOP bit. Writing a “0” has no
effect.
2
When the SWSTYLE register
(BCR20[7:0]) has been programmed to the ILACC compatibility mode, then this bit has no
meaning and PCnet-32 controller
will set the value of this bit to a
ZERO.
CSR6: RX/TX Descriptor Table Length
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-12 TLEN
Contains a copy of the transmit
encoded ring length (TLEN) field
read from the initialization block
during PCnet-32 controller
initialization. This field is written
during the PCnet-32 controller
initialization routine.
TXSTRTM Transmit Start Mask. If TXSTRTM is
set, the TXSTRT bit in CSR4 will be
masked and unable to set INTR flag
in CSR0.
Read/Write accessible. TXSTRTM
is set to a ONE by H_RESET or
S_RESET and is not affected by the
STOP bit.
1
JAB
Jabber Error is set when the
PCnet-32 controller Twisted-pair
MAU function exceeds an allowed
transmission limit. Jabber is set by
the T-MAU cell and can only be
asserted in 10BASE-T mode.
11-8
RLEN
JAB is set by the T-MAU circuit and
cleared by writing a “1”. Writing a “0”
has no effect. JAB is also cleared by
H_RESET or S_RESET or setting
the STOP bit.
0
132
JABM
as
Read accessible only when STOP
bit is set. Write operations have no
effect and should not be performed.
TLEN is only defined after
initialization. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
When JAB is set, INTR is asserted if
IENA = 1 and the mask bit JABM
(CSR4[0]) is cleared.
When the SWSTYLE register
(BCR20[7:0]) has been programmed to the ILACC compatibility mode, then this bit has no
meaning and PCnet-32 controller
will never set the value of this bit to
ONE.
Description
Contains a copy of the receive
encoded ring length (RLEN) read
from the initialization block during
PCnet-32 controller initialization.
This field is wr itten dur ing the
PCnet-32 controller initialization
routine.
Read accessible only when STOP
bit is set. Write operations have no
effect and should not be performed.
RLEN is only defined after
initialization. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
7-0
RES
Reserved locations. Read as zero.
Write operations should not be
performed.
CSR8: Logical Address Filter, LADRF[15:0]
Jabber Error Mask. If JABM is set,
the JAB bit in CSR4 will be masked
and unable to set INTR flag in
CSR0.
Bit
Read/Write accessible. JABM is set
to a ONE by H_RESET or
S_RESET and is not affected by
STOP.
15-0 LADRF[15:0] Logical
Address
Filter,
LADRF[15:0]. Defined only after the
initialization block has been
successfully read or a direct I/O
write has been performed on this
register.
Name
31-16 RES
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
CSR12: Physical Address Register, PADR[15:0]
Bit
Name
31-16 RES
CSR9: Logical Address Filter, LADRF[31:16]
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
as
15-0 LADRF[31:16] Logical
Address
Filter,
LADRF[31:16]. Defined only after
the initialization block has been
successfully read or a direct I/O
write has been performed on this
register.
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
CSR10: Logical Address Filter, LADRF[47:32]
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0 LADRF[47:32] Logical
Address
Filter,
LADRF[47:32]. Defined only after
the initialization block has been
successfully read or a direct I/O
write has been performed on this
register.
CSR13: Physical Address Register, PADR[31:16]
Bit
Name
31-16 RES
15-0
Reserved locations. Written
zeros and read as undefined.
as
15-0 PADR[31:16] Physical
Address
Register,
PADR[31:16]. Defined only after the
initialization block has been
successfully read or a direct I/O
write has been performed on this
r e g i s t e r. T h e PA D R b i t s a r e
t ra n s m i tt e d PA D R[ 0 ] f i r s t a n d
PADR[47] last.
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
Bit
Description
Reserved locations. Written
zeros and read as undefined.
Description
CSR14: Physical Address Register, PADR[47:32]
CSR11: Logical Address Filter, LADRF[63:48]
Name
as
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
Bit
Reserved locations. Written
zeros and read as undefined.
15-0 PADR[15:0] Physical
Address
Register,
PADR[15:0]. Defined only after the
initialization block has been
successfully read or a direct I/O
write has been performed on this
r e g i s t e r. T h e PA D R b i t s a r e
t ra n s m i tt e d PA D R[ 0 ] f i r s t a n d
PADR[47] last.
31-16 RES
as
Description
as
LADRF[63:48] Logical
Address
Filter,
LADRF[63:48]. Defined only after
the initialization block has been
successfully read or a direct I/O
write has been performed on this
register.
Name
31-16 RES
15-0
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
PADR[47:32]Physical
Address
Register,
PADR[47:32]. Defined only after the
initialization block has been
successfully read or a direct I/O
write has been performed on this
r e g i s t e r. T h e PA D R b i t s a r e
t ra n s m i tt e d PA D R[ 0 ] f i r s t a n d
PADR[47] last.
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
133
CSR15: Mode Register
Bit
Name
when DAPC = “0”, the polar ity
reversal algorithm is enabled.
Description
This register’s fields are loaded
during the PCnet-32 controller
initialization routine with the
corresponding Initialization Block
values or a direct I/O write has been
performed to this register.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15
Promiscuous Mode.
PROM
This bit only has meaning when the
10BASE-T network interface is
selected.
Read/write accessible only when
STOP bit is set.
10
as
When PROM = “1”, all incoming
receive frames are accepted.
Read/write accessible only when
STOP bit is set.
9
Read/write accessible only when
STOP bit is set.
14
MENDECL MENDEC Loopback Mode. See the
descr iption of the LOOP bit in
CSR15.
DRCVBC Disable Receive Broadcast. When
set, disables the PCnet-32 controller
from receiving broadcast messages.
Used for protocols that do not
suppor t broadcast addressing,
except as a function of multicast.
DRCVBC is cleared by H_RESET or
S_RESET (broadcast messages will
be received) and is unaffected by
STOP.
LRT/TSEL Low Receive Threshold (T-MAU
Mode only)
Transmit Mode Select (AUI Mode
only)
LRT
When LRT = “0”, the unsquelch
threshold for the RXD circuit will be
the standard 10BASE-T value, 300
– 520 mV peak.
Read/write accessible only when
STOP bit is set.
13
DRCVPA Disable Receive Physical Address.
When set, the physical address
detection (Station or node ID) of the
PCnet-32 controller will be disabled.
Frames addressed to the nodes
individual physical address will not
be recognized (although the frame
may be accepted by the EADI
mechanism).
In either case, the RXD circuit post
squelch threshold will be one half of
the unsquelch threshold.
This bit only has meaning when the
10BASE-T network interface is
selected.
Read/write accessible only when
S TO P b i t i s s e t . C l e a r e d b y
H_RESET or S_RESET and is
unaffected by STOP.
Read/write accessible only when
STOP bit is set.
12
DLNKTST Disable
Link
Status.
When
DLNKTST = “1”, monitoring of Link
Pulses is disabled. When DLNKTST
= “0”, monitoring of Link Pulses is
enabled. This bit only has meaning
when the 10BASE-T network
interface is selected.
Read/write accessible only when
STOP bit is set.
11
134
DAPC
Disable Automatic Polarity Correction. When DAPC = “1”, the
10BASE-T receive polarity reversal
algorithm is disabled. Likewise,
Am79C965A
Low Receive Threshold. When LRT
= “1”, the inter nal twisted pair
receive thresholds are reduced by
4.5 dB below the standard
10BASE-T value (approximately
3/5) and the unsquelch threshold for
the RXD circuit will be 180–312 mV
peak.
TSEL
TSEL Transmit Mode Select. TSEL
controls the levels at which the AUI
drivers rest when the AUI transmit
port is idle. When TSEL = 0, DO+
and DO- yield “zero” differential to
operate transformer coupled loads
(Ethernet 2 and 802.3). When TSEL
= 1, the DO+ idles at a higher value
with respect to DO-, yielding a
logical HIGH state (Ethernet 1).
This bit only has meaning when the
AUI network interface is selected.
Read/write accessible only when
S TO P b i t i s s e t . C l e a r e d b y
H_RESET or S_RESET and is
unaffected by STOP.
8-7 PORTSEL[1:0] Port Select bits allow for software
controlled selection of the network
medium.
will ultimately result. If FCOLL = “0”,
the Force Collision logic will be
disabled.
Read/write accessible only when
STOP bit is set.
3
DXMTFCS Disable Transmit CRC (FCS).
When DXMTFCS = 0, the
transmitter will generate and append
a FCS to the transmitted frame.
When DXMTFCS = 1, the FCS logic
is allocated to the receiver and no
FCS is generated or sent with the
transmitted frame. DXMTFCS is
overridden when ADD_FCS is set in
TMD1.
PORTSEL settings of AUI and
10BASE-T are ignored when the
ASEL bit of BCR2 (bit 1) has been
set to ONE.
The network port configuration is
shown in Table 41.
Table 41. Network Port Configuration.
6
PORTSEL[1:0]
ASEL
(BCR2[1])
Link Status
(of 10BASE-T)
Network
Port
0X
1
Fail
AUI
0X
1
Pass
10BASE-T
00
0
X
AUI
01
0
X
10BASE-T
10
X
X
GPSI
11
X
X
Reserved
INTL
See also the ADD_FCS bit in TMD1.
If DXMTFCS is set and ADD_FCS is
clear for a particular frame, no FCS
will be generated. The value of
ADD_FCS is valid only when STP is
s e t . I f A D D _ F C S i s s e t fo r a
p a r t i c u l a r f r a m e, t h e s t a t e o f
DXMTFCS is ignored and a FCS will
be appended on that frame by the
transmit circuitry.
Refer to the section on General
Purpose Serial Interface for detailed information on accessing
GPSI.
In loopback mode, this bit determines if the transmitter appends
FCS or if the receiver checks the
FCS.
Read/write accessible only when
S TO P b i t i s s e t . C l e a r e d b y
H_RESET or S_RESET and is
unaffected by STOP.
This bit was called DTCR in the
LANCE (Am7990).
Internal Loopback. See the description of LOOP, CSR15-2.
Read/write accessible only when
STOP bit is set.
2
LOOP
Loopback Enable allows PCnet-32
controller to operate in full duplex
mode for test pur poses. When
LOOP = “1”, loop-back is enabled. In
combination with INTL and
M E N D E C L , va r i o u s l o o p b a c k
modes are defined in Table 42.
Read/write accessible only when
STOP bit is set.
5
4
DRTY
FCOLL
Disable Retry. When DRTY = “1”,
PCnet-32 controller will attempt only
one transmission. If DRTY = “0”,
PCnet-32 controller will attempt 16
retry attempts before signaling a
retry error. DRTY is defined when
the initialization block is read.
Table 42. Loopback Modes.
LOOP
INTL
MENDECL
Loopback Mode
Read/write accessible only when
STOP bit is set.
0
X
X
Non-Loopback
1
0
X
External Loopback
Force Collision. This bit allows the
collision logic to be tested. PCnet-32
c o n t r o l l e r mu s t b e i n i n t e r n a l
loopback for FCOLL to be valid. If
FCOLL = “1”, a collision will be
fo r c e d
during
loop-back
transmission attempts. A Retry Error
1
1
0
Internal Loopback
Include MENDEC
1
1
1
Internal Loopback
Exclude MENDEC
Am79C965A
Read/write accessible only when
STOP bit is set. LOOP is cleared by
135
H_RESET or S_RESET and is
unaffected by the STOP bit.
1
DTX
Disable Transmit results in PCnet-32
controller not accessing the
Tr a n s m i t D e s c r i p t o r Ri n g a n d
therefore no transmissions are
attempted. DTX = “0”, will set TXON
bit (CSR0 bit 4) if STRT (CSR0 bit 1)
is asserted.
Read/Write accessible only when
t h e S TO P b i t i n C S R 0 i s s e t .
Unaffected by RESET.
CSR18: Current Receive Buffer Address Lower
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the lower 16 bits of the
current receive buffer address at
which the PCnet-32 controller will
store incoming frame data.
CRBA
Read/write accessible only when
STOP bit is set.
0
DRX
Disable
Receiver
results
in
PCnet-32 controller not accessing
the Receive Descriptor Ring and
therefore all receive frame data are
ignored. DRX = “0”, will set RXON
bit (CSR0 bit 5) if STRT (CSR0 bit 1)
is asserted.
Read/write accessible only when
STOP bit is set.
CSR16: Initialization Block Address Lower
Bit
Name
Description
Description
as
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
CSR19: Current Receive Buffer Address Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
current receive buffer address at
which the PCnet-32 controller will
store incoming frame data.
CRBA
This register is an alias of the location CSR1. Accesses to/from this
register are equivalent to access to
CSR1.
as
Read/write accessible only when
STOP bit is set. These bits are
unaffected by H_RESET, S_RESET,
or STOP.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of the address of the
Initialization Block. This register is
an alias of CSR1. Whenever this
register is written, CSR1 is updated
with CSR16’s contents.
CSR20: Current Transmit Buffer Address Lower
31-16 RES
Reserved locations. Written
zeros and read as undefined.
Read/Write accessible only when
t h e S TO P b i t i n C S R 0 i s s e t .
Unaffected by RESET.
15-0
Contains the lower 16 bits of the
current transmit buffer address from
which the PCnet-32 controller is
transmitting.
IADR
as
Bit
Name
CXBA
CSR17: Initialization Block Address Upper
Bit
Name
15-0
136
IADR
Reserved locations. Written
zeros and read as undefined.
as
Read/write accessible only when
STOP bit is set.
Description
This register is an alias of the location CSR2. Accesses to/from this
register are equivalent to access to
CSR2.
31-16 RES
Description
CSR21: Current Transmit Buffer Address Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
current transmit buffer address from
which the PCnet-32 controller is
transmitting.
as
Upper 16 bits of the address of the
Initialization Block. This register is
an alias of CSR2. Whenever this
register is written, CSR2 is updated
with CSR17’s contents.
Am79C965A
CXBA
as
Read/write accessible only when
STOP bit is set.
CSR22: Next Receive Buffer Address Lower
CSR27: Next Receive Descriptor Address Upper
Bit
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the lower 16 bits of the
next receive buffer address to which
the PCnet-32 controller will store
incoming frame data.
NRBA
as
Read/write accessible only when
STOP bit is set.
CSR23: Next Receive Buffer Address Upper
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
next receive buffer address to which
the PCnet-32 controller will store
incoming frame data.
NRBA
as
CSR24: Base Address of Receive Ring Lower
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
BADR
Contains the lower 16 bits of the
base address of the Receive Ring.
as
Read/write accessible only when
STOP bit is set.
CSR25: Base Address of Receive Ring Upper
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
base address of the Receive Ring.
as
Read/write accessible only when
STOP bit is set.
CSR26: Next Receive Descriptor Address Lower
Bit
Name
Contains the upper 16 bits of the
next RDRE address pointer.
NRDA
Reserved locations. Written
zeros and read as undefined.
as
15-0
Contains the lower 16 bits of the
next RDRE address pointer.
Read/write accessible only when
STOP bit is set.
as
Read/write accessible only when
STOP bit is set.
CSR28: Current Receive Descriptor Address
Lower
Name
Description
31-16 RES Reserved locations. Written as zeros and
read as undefined.
CRDA
Contains the lower 16 bits of the
current RDRE address pointer.
Read/write accessible only when
STOP bit is set.
CSR29: Current Receive Descriptor Address Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
current RDRE address pointer.
CRDA
as
Read/write accessible only when
STOP bit is set.
CSR30: Base Address of Transmit Ring Lower
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the lower 16 bits of the
base address of the Transmit Ring.
BADX
as
Read/write accessible only when
STOP bit is set.
CSR31: Base Address of Transmit Ring Upper
Bit
Name
Description
31-16 RES
Reserved locations.
written as zero.
15-0
Contains the upper 16 bits of the
base address of the Transmit Ring.
Description
31-16 RES
NRDA
15-0
Description
31-16 RES
BADR
Reserved locations. Written
zeros and read as undefined.
15-0
Read/write accessible only when
STOP bit is set.
Description
31-16 RES
Bit
Description
Name
BADX
Read
and
Read/write accessible only when
STOP bit is set.
CSR32: Next Transmit Descriptor Address Lower
Bit
Name
31-16 RES
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
137
15-0
NXDA
Contains the lower 16 bits of the
next TDRE address pointer.
15-0
NNRDA
Read/write accessible only when
STOP bit is set.
Read/write accessible only when
STOP bit is set.
CSR33: Next Transmit Descriptor Address Upper
Bit
Name
CSR38: Next Next Transmit Descriptor Address
Lower
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
next TDRE address pointer.
NXDA
as
Read/write accessible only when
STOP bit is set.
Bit
Name
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the lower 16 bits of the
next next transmit descriptor address pointer.
NNXDA
as
Read/write accessible only when
STOP bit is set.
Description
and
CSR39: Next Next Transmit Descriptor Address
Upper
31-16 RES
Reserved locations.
written as zero.
15-0
Contains the lower 16 bits of the
current TDRE address pointer.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
Read/write accessible only when
STOP bit is set.
15-0
Contains the upper 16 bits of the
next next transmit descriptor address pointer.
CXDA
Read
Description
31-16 RES
CSR34: Current Transmit Descriptor Address
Lower
Bit
Contains the upper 16 bits of the
next next receive descriptor address pointer.
Bit
Name
NNXDA
CSR35: Current Transmit Descriptor Address
Upper
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
current TDRE address pointer.
as
CSR36: Next Next Receive Descriptor Address
Lower
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
NNRDA
Contains the lower 16 bits of the
next next receive descriptor address pointer.
CSR37: Next Next Receive Descriptor Address
Upper
31-16 RES
138
Description
Reserved locations. Written
zeros and read as undefined.
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-12 RES
Reserved locations.
written as zero.
11-0
Current Receive Byte Count. This
field is a copy of the BCNT field of
RMD 2 of the current receive
descriptor.
CRBC
as
Read/write accessible only when
STOP bit is set.
Name
CSR40: Current Receive Status and Byte Count
Lower
Read/write accessible only when
STOP bit is set.
Bit
as
Read/write accessible only when
STOP bit is set.
Description
31-16 RES
CXDA
Description
Read
as
and
Read/write accessible only when
STOP bit is set.
CSR41: Current Receive Status and Byte Count
Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-8
Current Receive Status. This field is
a copy of bits 15:8 of RMD1 of the
current receive descriptor.
as
Am79C965A
CRST
as
Read/write accessible only when
STOP bit is set.
7-0
RES
Reserved locations.
written as zero.
Read
Name
31-16 RES
7-0
RES
Description
Reserved locations. Written
zeros and read as undefined.
Read
Next Receive Status. This field is a
copy of bits 15:8 of RMD1 of the next
receive descriptor.
Read/write accessible only when
STOP bit is set.
as
Reserved locations.
written as zero.
and
11-0
Current Transmit Byte Count. This
field is a copy of the BCNT field of
TMD2 of the current transmit
descriptor.
Reserved locations.
written as zero.
Name
Description
Reserved locations. Written
zeros and read as undefined.
15-0
Poll Time Counter. This counter is
i n c r em e n t e d by th e P C n e t- 3 2
controller microcode and is used to
trigger the descriptor ring polling
operation of the PCnet-32 controller.
POLL
CSR47: Polling Interval
Bit
Name
Description
Bit
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-8
CXST
Current Transmit Status. This field is
a copy of bits 15:8 of TMD1 of the
current transmit descriptor.
15-0
RES Reserved locations. Read and
written as zero.
CSR44: Next Receive Status and Byte Count
Lower
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
Reserved locations.
written as zero.
11-0
Next Receive Byte Count. This field
is a copy of the BCNT field of RMD2
of the next receive descriptor.
NRBC
Read
as
15-12 RES
and
Read/write accessible only when
STOP bit is set.
CSR45: Next Receive Status and Byte Count
Upper
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
Name
31-16 RES
Read/write accessible only when
STOP bit is set.
Bit
as
Read/write accessible only when
STOP bit is set.
CSR43: Current Transmit Status and Byte Count
Upper
7-0
and
31-16 RES
Read/write accessible only when
STOP bit is set.
as
Read
CSR46: Poll Time Counter
Bit
15-12 RES
CXBC
NRST
and
CSR42: Current Transmit Status and Byte Count
Lower
Bit
15-8
as
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
POLLINT Polling Interval. This register
contains the time that the PCnet-32
controller will wait between
successive polling operations. The
POLLINT value is expressed as the
two’s complement of the desired
interval, where each bit of POLLINT
represents 1 BCLK period of time
(486 and VL-Bus modes; 2 BCLK
38 6 mo de) . P O LLINT[ 3:0] ar e
ignored. (POLLINT[16] is implied to
be a one, so POLLINT[15] is
significant, and does not represent
the sign of the two’s complement
POLLINT value.)
The default value of this register is
0000. This corresponds to a polling
interval of 65,536 BCLK periods
(486 and VL-Bus modes; 131,072
BCLK 386 mode). The POLLINT
value of 0000 is created during the
microcode initialization routine, and
therefore might not be seen when
reading CSR47 after H_RESET or
S_RESET.
If the user desires to program a
value for POLLINT other than the
default, then the correct procedure
is to first set INIT only in CSR0.
Then, when the initialization
139
sequence is complete, the user
must set STOP in CSR0. Then the
user may write to CSR47 and then
set STRT in CSR0. In this way, the
default value of 0000 in CSR47 will
be overwritten with the desired user
value.
15-0
If the user does NOT use the
standard initialization procedure
(standard implies use of an initialization block in memory and
setting the INIT bit of CSR0), but
instead, chooses to write directly to
ea ch of th e r eg is te rs th at a r e
involved in the INIT operation, then it
is imperative that the user also write
0000 0000 to CSR47 as part of the
alternative initialization sequence.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
Read/write accessible only when
STOP bit is set.
TMP3
Read/write accessible only when
STOP bit is set.
CSR52: Temporary Storage 4 Lower
Bit
Name
TMP4
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
TMP2
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Upper 16 bits of a Temporary
Storage location.
TMP4
CSR54: Temporary Storage 5 Lower
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Upper 16 bits of a Temporary
Storage location.
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
TMP5
CSR55: Temporary Storage 5 Upper
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Upper 16 bits of a Temporary
Storage location.
TMP5
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
TMP3
CSR56: Temporary Storage 6 Lower
Bit
31-16 RES
140
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
CSR51: Temporary Storage 3 Upper
Name
as
Read/write accessible only when
STOP bit is set.
as
Read/write accessible only when
STOP bit is set.
Bit
Description
31-16 RES
CSR50: Temporary Storage 3 Lower
Name
as
Read/write accessible only when
STOP bit is set.
as
Read/write accessible only when
STOP bit is set.
Bit
Description
31-16 RES
Description
31-16 RES
TMP2
as
Read/write accessible only when
STOP bit is set.
CSR49: Temporary Storage 2 Upper
Name
Description
31-16 RES
as
Read/write accessible only when
STOP bit is set.
Bit
as
CSR53: Temporary Storage 4 Upper
Description
31-16 RES
Description
Read/write accessible only when
STOP bit is set.
CSR48: Temporary Storage 2 Lower
Bit
Upper 16 bits of a Temporary
Storage location.
Description
Reserved locations. Written as
zeros and read as undefined.
Am79C965A
TMP6
as
Read/write accessible only when
STOP bit is set.
CSR57: Temporary Storage 6 Upper
The value of SSIZE32 is determined by the PCnet-32 controller.
SSIZE32 is read only by the host.
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
TMP6
Upper 16 bits of a Temporary
Storage location.
as
The PCnet-32 controller uses the
setting of the Software Style register
(BCR20, bits 7-0) to determine the
value for this bit. SSIZE32 is cleared
by H_RESET or S_RESET and is
not affected by STOP.
Read/write accessible only when
STOP bit is set.
If SSIZE32 is reset, then bits
IADR[31:24] of CSR2 will be used to
generate values for the upper 8 bits
of the 32 bit address bus during
master accesses initiated by the
PCnet-32 controller. This action is
required, since the 16-bit software
structures specified by the
SSIZE32=0 setting will yield only 24
b i t s o f a d d r e s s fo r P C n e t - 3 2
controller bus master accesses.
CSR58: Software Style
Bit
Name
Description
This register is an alias of the location BCR20. Accesses to/from
this r egister are equivalent to
accesses to BCR20.
31-10 RES
9
Reserved locations. Written
zeros and read as undefined.
as
CSRPCNET CSR PCnet-ISA configuration bit.
When set, this bit indicates that the
PCnet-32 controller register bits of
CSR4 and CSR3 will map directly to
the CSR4 and CSR3 bits of the
PCnet-ISA (Am79C960) device.
When cleared, this bit indicates that
PCnet-32 controller register bits of
CSR4 and CSR3 will map directly to
the CSR4 and CSR3 bits of the
ILACC (Am79C900) device.
If SSIZE32 is set, then the software
structures that are common to the
PCnet-32 controller and the host
system will supply a full 32 bits for
each address pointer that is needed
by the PCnet-32 controller for
performing master accesses.
The value of the SSIZE32 bit has no
effect on the drive of the upper 8
address pins. The upper 8 address
pins are always driven, regardless of
the state of the SSIZE32 bit.
The value of CSRPCNET is deter mined by the PCnet-32 controller. CSRPCNET is read only by
the host.
Note that the setting of the SSIZE32
bit has no effect on the defined width
for I/O resources. I/O resource width
is determined by the state of the
DWIO bit.
The PCnet-32 controller uses the
setting of the Software Style register
(BCR20[7:0]/CSR58[7:0]) to
determine the value for this bit.
CSRPCNET is set to a ONE by
H_RESET or S_RESET and is not
affected by STOP.
8
7-0
SSIZE32 Software Size 32 bits. When set, this
bit indicates that the PCnet-32
controller utilizes AMD 79C900
(ILACC) software structures. In
particular, Initialization Block and
Transmit and Receive descriptor bit
maps are affected. When cleared,
this bit indicates that the PCnet-32
controller utilizes AMD PCnet-ISA
software str uctures. Note:
Regardless of the setting of
SSIZE32, the Initialization Block
must always begin on a double-word
boundary.
Am79C965A
SWSTYLE Software Style register. The value in
this register determines the “style” of
I/O and memory resources that are
used by the PCnet-32 controller.
The S/W resource style selection
will affect the interpretation of a few
bits within the CSR space and the
width of the descriptors and
initialization block. See Table 43.
All PCnet-32 controller CSR bits and
BCR bits and all descriptor, buffer
and initialization block entries not
cited in the table above ar e
unaffected by the Software Style
selection and are therefore always
fully functional as specified in the
BCR and CSR sections.
141
Read/write accessible only when
STOP bit is set.
The SWSTYLE register will contain
the value 00h following H_RESET or
S_RESET and will be unaffected by
STOP.
Table 43. Software Resource Style Selection
SWSTYLE[7:0]
(Hex)
Style Name
CSRPCNET
SSIZE32
Altered Bit Interpretations
00
LANCE/
PCnet-ISA
1
0
ALL CSR4 bits will function as defined in the CSR4 section.
TMD1[29] functions as ADD_FCS
01
ILACC
0
1
CSR4[9:8], CSR4[5:4] and CSR4[1:0] will have no function,
but will be writeable and readable.
CSR4[15:10], CSR4[7:6] and CSR4[3:2] will function
as defined in the CSR4 section. TMD1[29] becomes NO_FCS.
02
PCnet-32
1
1
ALL CSR4 bits will function as defined in the CSR4 section.
TMD1[29] functions as ADD_FCS
All other
combinations
Reserved
Undefined
Undefined
Undefined
CSR59: IR Register
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the value 0105.
IRREG
Read/write accessible only when
STOP bit is set.
as
CSR62: Previous Transmit Status and Byte Count
Lower
Bit
This register always contains the
same value. It is not writable.
Read accessible only when STOP
bit is set.
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-12 RES
Reserved locations.
written as zero.
11-0
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
PXDA
Contains the lower 16 bits of the
previous TDRE address pointer.
PCnet-32 controller has the capability to stack multiple transmit
frames.
CSR61: Previous Transmit Descriptor Address
Upper
Reserved locations. Written
zeros and read as undefined.
15-0
Contains the upper 16 bits of the
previous TDRE address pointer.
PCnet-32 controller has the capability to stack multiple transmit
frames.
142
and
Previous Transmit Byte Count. This
field is a copy of the BCNT field of
TMD2 of the previous transmit
descriptor.
Read/write accessible only when
STOP bit is set.
CSR63: Previous Transmit Status and Byte Count
Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-8
Previous Transmit Status. This field
is a copy of bits 15:8 of TMD1 of the
previous transmit descriptor.
PXST
Description
31-16 RES
PXDA
PXBC
as
Read/write accessible only when
STOP bit is set.
Name
Read
as
Accessible only when STOP bit is
set.
CSR60: Previous Transmit Descriptor Address
Lower
Bit
Description
as
as
Read/write accessible only when
STOP bit is set.
7-0
Am79C965A
RES
Reserved locations.
written as zero.
Read
and
Accessible only when STOP bit is
set.
CSR64: Next Transmit Buffer Address Lower
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
NXBA
Contains the lower 16 bits of the
next transmit buffer address from
which the PCnet-32 controller will
transmit an outgoing frame.
as
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-8
Next Transmit Status. This field is a
copy of bits 15:8 of TMD1 of the next
transmit descriptor.
NXST
Read/write accessible only when
STOP bit is set.
7-0
RES
Read/write accessible only when
STOP bit is set.
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
NXBA
Contains the upper 16 bits of the
next transmit buffer address from
which the PCnet-32 controller will
transmit an outgoing frame.
as
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-12 RES
Reserved locations.
written as zero.
Read
Bit
Name
NXBC
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Transmit Status
Temporary Storage location.
XSTMP
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Transmit Status Temporary Storage
location.
XSTMP
and
Next Transmit Byte Count. This field
is a copy of the BCNT field of TMD2
of the next transmit descriptor.
Description
31-16 RES
as
CSR67: Next Transmit Status and Byte Counter
Upper
Name
as
Read/write accessible only when
STOP bit is set.
as
Read/write accessible only when
STOP bit is set.
CSR70: Temporary Storage Lower
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Lower 16 bits of a Temporary
Storage location.
Read/write accessible only when STOP bit is set.
Bit
Description
31-16 RES
Bit
Accessible only when STOP bit is
set.
11-0
and
CSR69: Transmit Status Temporary Storage Upper
Description
31-16 RES
Read
CSR68: Transmit Status Temporary Storage
Lower
Read/write accessible only when
STOP bit is set.
CSR66: Next Transmit Status and Byte Count
Lower
Reserved locations.
written as zero.
Accessible only when STOP bit is
set.
CSR65: Next Transmit Buffer Address Upper
Bit
as
TMP8
as
Read/write accessible only when
STOP bit is set.
Description
Am79C965A
143
CSR71: Temporary Storage Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Upper 16 bits of a Temporary
Storage location.
TMP8
register can be manually altered. the
actual receive ring length is defined
by the current value in this register.
The ring length can be defined as
any value from 1 to 65535.
as
Read/write accessible only when
STOP bit is set.
CSR72: Receive Ring Counter
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
RCVRC
Receive Ring Counter location.
Contai ns a Two ’s c ompl emen t
binary number used to number the
current receive descriptor. This
counter inter prets the value in
CSR76 as pointing to the first
descriptor. A counter value of zero
corresponds to the last descriptor in
the ring.
as
Read/write accessible only when
STOP bit is set.
CSR78: Transmit Ring Length
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Transmit Ring Length. Contains the
two’s complement of the transmit
descriptor ring length. This register
is initialized during the PCnet-32
controller initialization routine based
on the value in the TLEN field of the
initialization block. However, this
register can be manually altered.
The actual transmit ring length is
defined by the current value in this
register. The ring length can be
defined as any value from 1 to
65535.
XMTRL
Read/write accessible only when
STOP bit is set.
Name
Description
CSR80: Burst and FIFO Threshold Control
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Transmit Ring Counter location.
Contai ns a Two ’s c ompl emen t
binary number used to number the
current transmit descriptor. This
counter inter prets the value in
CSR78 as pointing to the first
descriptor. A counter value of zero
corresponds to the last descriptor in
the ring.
XMTRC
as
Read/write accessible only when
STOP bit is set.
CSR76: Receive Ring Length
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Receive Ring Length. Contains the
two’s complement of the receive
descriptor ring length. This register
is initialized during the PCnet-32
controller initialization routine based
on the value in the RLEN field of the
initialization block. However, this
144
RCVRL
as
Read/write accessible only when
STOP bit is set.
CSR74: Transmit Ring Counter
Bit
Description
as
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
as
15-14 RES
Reserved locations. Read as ones
and written as zero.
13-12 RCVFW[1:0] Receive
FIFO
Watermark.
RCVFW controls the point at which
receive DMA is requested in relation
to the number of received bytes in
the receive FIFO. RCVFW specifies
the number of bytes which must be
present (once the frame has been
ve r ifi ed as a no n- r unt) b efor e
receive DMA is requested. Note
however that in order for receive
DMA to be performed for a new
frame, at least 64 bytes must have
been received. This effectively
avoids having to react to receive
frames which are runts or suffer a
collision during the slot time (512 bit
times). If the Runt Packet Accept
feature is enabled, receive DMA will
be requested as soon as either the
RCVFW threshold is reached, or a
complete valid receive frame is
Am79C965A
detected (regardless of length).
RCVFW is set to a value of 10 (64
bytes) after H_RESET or S_RESET
and is unaffected by STOP.
RCVFW[1:0]
Bytes Received
00
01
10
11
16
32
64
Reserved
9-8
Read/write accessible only when
STOP bit is set.
Certain combinations of watermark
programming and LINBC (BCR18[20 ] ) p r o g r a m m i n g m ay c r e a t e
situations where no linear bursting is
possible, or where the FIFO may be
excessively read or excessively
written. Such combinations are
declared as illegal.
Combinations of watermark settings and LINBC settings must obey
the following relationship:
watermark (in bytes) Š LINBC (in
bytes)
Combinations of watermark and
LINBC settings that violate this rule
may cause unexpected behavior.
11-10 XMTSP[1:0]Transmit Start Point. XMTSP
controls the point at which prea m bl e t r a n s m i s s i o n a t t e m p t s
commence in relation to the number
of bytes written to the transmit FIFO
for the current transmit frame. When
the entire frame is in the FIFO,
transmission will start regardless of
the value in XMTSP. XMTSP is given
a valu e of 1 0 ( 64 byt es ) a fter
H_RESET or S_RESET and is
unaffected by STOP. Regardless of
XMTSP, the FIFO will not internally
over write its data until at least 64
bytes (or the entire frame if <64
bytes) have been transmitted onto
the network. This ensures that for
c o l l i s i on s wi t h i n th e s l o t t i m e
window, transmit data need not be
rewritten to the transmit FIFO, and
retries
will
be
handled
autonomously by the MAC. This bit
is read/write accessible only when
the STOP bit is set.
XMTSP[1:0]
Bytes Written
00
01
10
11
4
16
64
112
XMTFW[1:0] Transmit
FIFO
Watermark.
XMTFW specifies the point at which
transmit DMA stops, based upon the
number of write cycles that could be
perfor med to the transmit FIFO
without FIFO overflow. Transmit
DMA is allowed at any time when the
number of write cycles specified by
SMTFW could be executed without
causing transmit FIFO overflow.
XMTFW is set to a value of 00b (8
cycles) after H_RESET or
S_RESET and is unaffected by
STOP. Read/write accessible only
when STOP bit is set.
XMTFW[1:0]
Write Cycles
00
01
10
11
8
16
32
Reserved
Certain combinations of watermark
programming
and
LINBC
programming may create situations
where no linear bursting is possible,
o r w h e r e t h e F I F O m ay b e
excessively read or excessively
written. Such combinations are
declared as illegal.
Combinations of watermark settings and LINBC settings must obey
the following relationship:
watermark (in bytes) Š LINBC (in
bytes)
Combinations of watermark and
LINBC settings that violate this rule
may cause unexpected behavior.
7-0
DMACR[7:0] DMA Cycle Register. This register contains the maximum allowable number of transfers to system
memory that the Bus Interface will
perform during a single DMA cycle.
The Cycle Register is not used to
limit the number of transfers during
Descriptor transfers. A value of zero
will be interpreted as one transfer.
Am79C965A
145
During H_RESET or S_RESET a
value of 16 is loaded in the BURST
register. If the DMAPLUS bit in
CSR4 is set, the DMA Cycle
Register is disabled. When the
ENTST bit in CSR4 is set, all writes
to this register will automatically
perform a decrement cycle.
When the Cycle Register times out
in the middle of a linear burst, the
linear burst will continue until a legal
starting address is reached, and
then the PCnet-32 controller will
relinquish the bus.
Therefore, if linear bursting is
enabled, and the user wishes the
PCnet-32 controller to limit bus
activity to desired_max transfers,
then the Cycle Register should be
programmed to a value of:
Burst count setting = (desired_ max
D I V ( l e n g t h o f l i n e a r bu r s t i n
transfers) x length of linear burst in
transfers where DIV is the operation
that yields the INTEGER portion of
the ³ operation.
Note: If either Linear Burst Write is
enabled, the value has to be greater
than or equal to 4.
Read/write accessible only when
the STOP bit is set.
CSR82: Bus Activity Timer
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
DMABAT Bus Activity Timer Register. If the
TIMER bit in CSR4 is set, this
register contains the maximum
a l l owa bl e t i m e t h a t P C n e t - 3 2
controller will take up on the system
bus during FIFO data transfers for a
single DMA cycle. The Bus Activity
Timer Register does not limit the
n u m b e r o f t r a n s fe r s d u r i n g
Descriptor transfers.
as
The DMABAT value is interpreted as
an unsigned number with a
resolution of 0.1 µs. For instance, a
value of 51 µs would be
programmed with a value of 510. If
the TIMER bit in CSR4 is set,
DMABAT is enabled and must be
initialized by the user. The DMABAT
146
Am79C965A
register is undefined until written.
When the ENTST bit in CSR4 is set,
all writes to this register will
automatically perform a decrement
cycle.
If the user has NOT enabled the
Linear Burst function and wishes the
PCnet-32 controller to limit bus
activity to MAX_TIME µs, then the
Burst Timer should be programmed
to a value of:
MAX_TIME- [(11 + 4w) x (BCLK
period)],
where w = wait states.
If the user has enabled the Linear
Burst function and wis hes the
PCnet-32 controller to limit bus
activity to MAX_TIME µs, then the
Burst Timer should be programmed
to a value of:
MAX_TIME- [((3+lbs) x w + 10 + lbs)
x (BCLK period)],
where w = wait states and lbs =
li near bur s t s ize in nu mber of
transfers per sequence.
This is because the PCnet-32
controller may use as much as one
“ l i n e a r bu r s t s i z e ” p l u s t h r e e
transfers in order to complete the
linear burst before releasing the bus.
As an example, if the linear burst
si ze is four trans fer s, and the
number of wait states for the system
memory is two, and the BCLK period
is 30 ns and the MAX time allowed
on the bus is 3 µs, then the Burst
Timer should be programmed for:
MAX_TIME- [((3+lbs) x w + 10 +
lbs) x (BCLK period)], 3 mS - [(3 + 4)
x 2 +10 + 4) x (30 ns)] = 3 mS - (28
x 30 ns) = 3 - 0.84 mS = 2.16 mS.
Then, if the PCnet-32 controller’s
Bus ActivityTimer times out after
2.16 µs when the PCnet-32
controller has completed all but the
last three transfers of a linear burst,
the PCnet-32 controller may take as
much as 0.84 µs to complete the
bursts and release the bus. The bus
release will occur at 2.16 + 0.84 = 3
ms.
A value of zero will in the DMABAT
register with the TIMER bit in CSR4
set to ONE will produce single linear
burst sequences per bus master
period when programmed for linear
burst mode, and will yield sets of
th r e e tra n s fer s wh e n no t pr o grammed for linear burst mode.
The Bus Activity Timer is set to a
value of 00h after H_RESET or
S_RESET and is unaffected by
STOP.
Read/write accessible only when
STOP bit is set.
CSR86: Buffer Byte Counter
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-12 RES
Reserved, Read and written with
ones.
11-0
DMA Byte Count Register. Contains a Two’s complement binary
number of the current size of the
remaining transmit or receive buffer
in bytes. This register is
incremented by the Bus Interface
Unit. The DMABC register is
un d efi n ed un ti l wr it te n. W he n
ENTST (CSR4.15) is asserted, all
writes to this register will
automatically perform an increment
cycle.
DMABC
Read/write accessible only when
STOP bit is set.
CSR84: DMA Address Lower
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
DMABA
DMA Address Register.
as
This register contains the lower 16
bi t s o f th e ad d r e s s of s y s t em
memory for the current DMA cycle.
The Bus Interface Unit controls the
Address Register by issuing
increment commands to increment
the memory address for sequential
operations. The DMABA register is
undefined until the first PCnet-32
controller DMA operation. When the
ENTST bit in CSR4 is set, all writes
to this register will automatically
perform an increment cycle.
Read/write accessible only when
STOP bit is set.
Name
CSR88: Chip ID Lower
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
DMA Address Register.
DMABA
as
Description
This register is exactly the same as
the Chip ID register in the JTAG
description.
31 - 28 Version.
This 4-bit pattern is silicon-revision
dependent.
27 - 12 Part number. The 16-bit code for the PCnet-32
controller is 0010 0100 0011 0000b.
11 - 1
Manufacturer
ID.
The
11-bit
manufacturer code for AMD is
00000000001b. This code is per the
JEDEC Publication 106-A.
0
Always a logic 1.
Description
31-16 RES
as
Read/write accessible only when
STOP bit is set.
CSR85: DMA Address Upper
Bit
Description
CSR89: Chip ID Upper
Bit
This register contains the upper 16
bi t s o f th e ad d r e s s of s y s t em
memory for the current DMA cycle.
The Bus Interface Unit controls the
Address Register by issuing
increment commands to increment
the memory address for sequential
operations. The DMABA register is
undefined until the first PCnet-32
controller DMA operation. When the
ENTST bit in CSR4 is set, all writes
to this register will automatically
perform an increment cycle.
Name
Description
The lower 16 bits of this register are
exactly the same as the upper 16
bits of the Chip ID register in the
JTAG description, which are exactly
the same as the upper 16 bits of
CSR88.
31 - 16
Reserved locations.
undefined.
15 - 12
Version. This 4-bit pattern is siliconrevision dependent.
Am79C965A
Read
as
147
11 - 0
Upper 12 bits of the PCnet-32
controller part number, i.e. 0010
0100 0011b.
CSR92: Ring Length Conversion
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
RCON
Ring Length Conversion Register.
This register performs a ring length
conversion from an encoded value
as found in the initialization block to
a Two’s complement value used for
internal counting. By writing bits 1512 with an encoded ring length, a
Two’s complemented value is read.
The RCON register is undefined
until written.
CSR94: Transmit Time Domain Reflectometry
Count
Name
Name
Reserved locations. Written
zeros and read as undefined.
15-10 RES
Reserved locations.
written as zero.
Read
Reserved locations. Written
zeros and read as undefined.
15-0 S CR0
This register is shared between the
Buffer Management Unit and the
Bus Interface Unit. All Descriptor
Data communications between the
BIU and BMU are written and read
through SCR0 and SCR1 registers.
The SCR0 register is undefined until
written.
CSR98: Bus Interface Scratch Register 1 Lower
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
This register is shared between the
Buffer Management Unit and the
Bus Interface Unit. All Descriptor
Data communications between the
BIU and BMU are written and read
through SCR0 and SCR1 registers.
SCR1
and
as
Read/write accessible only when
STOP bit is set.
CSR99: Bus Interface Scratch Register 1 Upper
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
This register is shared between the
Buffer Management Unit and the
Bus Interface Unit. All Descriptor
Data communications between the
BIU and BMU are written and read
through SCR0 and SCR1 registers.
SCR1
Read accessible only when STOP
bit is set. Write operations are
ignored. XMTTDR is cleared by
H_RESET or S_RESET.
CSR96: Bus Interface Scratch Register 0 Lower
as
Read/write accessible only when
STOP bit is set.
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
SCR0
This register is shared between the
Buffer Management Unit and the
Bus Interface Unit. All Descriptor
Data communications between the
BIU and BMU are written and read
through SCR0 and SCR1 registers.
The SCR0 register is undefined until
written.
as
CSR100: Bus Time-Out
Bit
Name
31-16 RES
15-0
Read/write accessible only when
STOP bit is set.
148
as
Read/write accessible only when
STOP bit is set.
as
XMTTDR Time Domain Reflectometry reflects the state of an internal counter
that counts from the star t of
transmission to the occurrence of
loss of carrier. TDR is incremented
at a rate of 10 MHz.
Description
31-16 RES
Description
31-16 RES
9-0
Bit
as
Read/write accessible only when
STOP bit is set.
Bit
CSR97: Bus Interface Scratch Register 0 Upper
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
MERRTO This register contains the value of
the longest allowable bus latency
(interval between assertion of HOLD
and assertion of HLDA) that a slave
device may insert into a PCnet-32
controller master transfer. If this
value of bus latency is exceeded,
then a MERR will be indicated in
CSR0, bit 11, and an interrupt may
be generated, depending upon the
setting of the MERRM bit (CSR3, bit
11) and IENA bit (CSR0[6]).
The value in this register is interpreted as a number of XTAL1³2
clock periods. (i.e. the value in this
regis ter is given in 0.1 ms increments.) For example, the value
0200h (512 decimal) will cause a
MERR to be indicated after 51.2 µs
of bus latency.
the lower 16 bits and CSR105 holds
the upper 16 bits.
Read/write accessible only when
STOP bit is set.
CSR108: Buffer Management Scratch Lower
Bit
Name
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
The Buffer Management Scratch
register is used for assembling
Receive and Transmit Status. This
register is also used as the primary
scan
register
fo r
B u f fe r
Management Test Modes. BMSCR
register is undefined until written.
BMSCR
A value of zero will allow an infinitely long bus latency. i.e. a value of
zero will never give a bus time-out
error. A non-zero value is interpreted
as an unsigned number of BCLK
cycles.
This register is set to 0200 by
H_RESET or S_RESET and is
unaffected by STOP.
Read/write accessible only when
STOP bit is set.
Name
CSR109: Buffer Management Scratch Upper
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
This register performs word and
byte swapping depending upon if
3 2 - b i t o r 1 6 - b i t i n te r n a l wr i t e
operations are perfor med. This
register is used internally by the BIU/
BMU as a word or byte swapper.
The register is externally accessible
for test reasons only. CSR104 holds
the lower 16 bits and CSR105 holds
the upper 16 bits.
SWAP
Reserved locations. Written
zeros and read as undefined.
15-0
The Buffer Management Scratch
register is used for assembling
Receive and Transmit Status. This
register is also used as the primary
scan
register
fo r
B u f fe r
Management Test Modes. BMSCR
register is undefined until written.
BMSCR
as
CSR112: Missed Frame Count
Bit
Name
Reserved locations. Written
zeros and read as undefined.
15-0
Missed Frame Count. Indicates the
number of missed frames.
MFC
Reserved locations. Written
zeros and read as undefined.
15-0
This register performs word and
byte swapping depending upon if
3 2 - b i t o r 1 6 - b i t i n te r n a l wr i t e
operations are perfor med. This
register is used internally by the BIU/
BMU as a word or byte swapper.
The register is externally accessible
for test reasons only. CSR104 holds
SWAP
as
MFC will roll over to a count of zero
from the value 65535. The MFCO bit
of CSR4 (bit 8) will be set each time
that this occurs.
Description
31-16 RES
Description
31-16 RES
CSR105: SWAP Register Upper
Name
as
Read/write accessible only when
STOP bit is set.
Read/write accessible only when
STOP bit is set.
Bit
Description
31-16 RES
Description
31-16 RES
as
Read/write accessible only when
STOP bit is set.
CSR104: SWAP Register Lower
Bit
Description
as
This register is always readable and
is cleared by H_RESET or
S_RESET or STOP.
A write to this register performs an
increment when the ENTST bit in
CSR4 is set.
CSR114: Receive Collision Count
Bit
Am79C965A
Name
Description
149
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-0
Receive Collision Count. Indicates
th e t o ta l nu m b e r o f c o l l i s i on s
encountered by the receiver since
the last reset of the counter.
RCC
as
CSR124: Buffer Management Test
Bit
Name
This register is used to place the
BMU/BIU into various test mode to
support Test/Debug. This register is
writable only when the ENTST bit in
CSR4 and the STOP bit of CSR0 are
both set. The functions controlled by
this register are enabled only if the
ENTST bit is set.
RCC will roll over to a count of zero
fr om the value 65535. The
RCVCCO bit of CSR4 (bit 5) will be
set each time that this occurs.
ENTST should be set before
anything in CSR124 can be programmed, including RUNTACC.
The RCC value is read accessible at
all times, regardless of the value of
the STOP bit. Write operations are
ignored. RCC is cleared by
H _ R E S E T o r S _ R E S E T o r by
setting the STOP bit.
ENTST must be reset after writing to
CSR124 before writing to any other
register. If it is done, the PCnet-32
controller will not run.
A write to this register performs an
increment when the ENTST bit in
CSR4 is set.
All bits in this register or cleared by
H_RESET or S_RESET and are not
affected by STOP.
CSR122: Receive Frame Alignment Control
Bit
Name
31-16 RES
15-1
0
RES
Description
Reserved locations. Written
zeros and read as undefined.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15-5
RES
Reserved locations.
written as zero.
4
GPSIEN
This bit places the PCnet-32
controller in the GPSI mode. This
mode will reconfigure the System
Interface Address Pins so that the
GPSI port is exposed. This allows
bypassing the MENDEC T-MAU
logic. The GPSI mode may also be
enabled by test shadow bits setting
of BCR18, bits 4 and 3 as in Table
44.
as
Reserved locations, written as zeros
and read as undefined.
RCVALGN Receive Frame Align. When set,
this bit forces the data field of ISO
8802-3 (IEEE/ANSI 802.3) frames
to align to 0 MOD 4 address
boundaries (i.e. double word aligned
addresses). It is important to note
that this feature will only function
c o r r e c t l y i f a l l r e c e i v e b u f fe r
boundaries are double-word aligned
and all receive buffers have 0 MOD
4 lengths. In order to accomplish the
da ta a li g nm en t, th e P C ne t- 3 2
controller simply inserts two bytes of
random data at the beginning of the
receive packet (i.e. before the ISO
8802-3 (IEEE/ ANSI 802.3)
destination address field). The
MCNT field reported to the receive
descriptor will not include the extra
two bytes.
RCVALGN is cleared by H_RESET
or S_RESET and is not affected by
STOP.
Read
as
and
See Table 45 for pin reconfiguration
in GPSI mode.
Note that when the GPSI mode is
invoked, only the lower 24 bits of the
address bus are available. During
Software Relocatable Mode the
LED2 pin must be pulled LOW.
IOAW24 (BCR21[8]) must be set to
allow slave operations. Dur ing
master accesses in GPSI mode, the
PCnet-32 controller will not drive the
upper 8 bits of the address bus with
address information.
3
Read/write accessible only when
STOP bit is set.
150
Description
Am79C965A
RPA
Runt Packet Accept. This bit forces
the receive logic to accept runt
packets (packets shorter than 64
bytes). The state of the RPA bit can
be changed only when the device is
in the test mode (when the ENTST
bit in CSR4 is set to ONE). To enable
RPA, software must first write a ONE
to the ENTST bit. Next, software
must write a ONE to the RPA bit.
Finally, software must write a ZERO
to the ENTST bit to take the device
out of test mode operation. Once the
RPA bit has been set to ONE, the
device will remain in the Runt Packet
Accept mode until the RPA bit is
cleared to ZERO.
2-0
RES
Reserved locations. Written
zeros and read as undefined.
as
Table 44. GPSI Mode Selection
TSTSHDW
Value
(BCR18[4:3])
PVALID
(BCR19[15])
GPSIEN
Operating
Mode
00
X
0
Normal
Operating
Mode
10
1
X
GPSI Mode
01
1
0
Reserved
11
1
X
Reserved
XX
0
0
Normal
Operating
Mode
XX
0
1
GPSI Mode
Table 45. GPSI Pin Configurations
GPSI Function
GPSI
I/O
Type
LANCE
GPSI Pin
ILACC
GPSI Pin
PCnet-32/
PCnet-ISA
GPSI Pin
PCnet-32
Pin
Number
PCnet-32
Normal
Pin Function
Transmit Data
O
TX
TXD
TXDAT
132
A31
Transmit Enable
O
TENA
RTS
TXEN
133
A30
Transmit Clock
I
TCLK
TXC
STDCLK
134
A29
Collision
I
CLSN
CDT
CLSN
137
A28
Receive Carrier Sense
I
RENA
CRS
RXCRS
138
A27
Receive Clock
I
RCLK
RXC
SRDCLK
140
A26
Receive Data
I
RX
RXD
RXDAT
141
A25
Am79C965A
151
Bus Configuration Registers
stated. BCR register values are unaffected by
S_RESET and are unaffected by the assertion of the
STOP bit.
The Bus Configuration Registers (BCR) are used to
program the configuration of the bus interface and
other special features of the PCnet-32 controller that
are not related to the IEEE 8802-3 MAC functions. The
BCRs are accessed by first setting the appropriate
RAP value, and then by performing a slave access to
the BDP.
Note that several registers have no default value. BCR3
and BCR8-BCR15 are reserved and have undefined
values. BCR2, BCR16, BCR17 and BCR21 are not
observable without first being programmed, either
through the EEPROM read operation or through the
Software Relocatable Mode. Therefore, the only
observable values for these registers are those that
have been programmed and a default value is not
applicable. See Table 46.
All BCR registers are 16 bits in width in WIO mode and
32 bits in width in DWIO mode. The upper 16 bits of all
BCR registers is undefined when in DWIO mode.
These bits should be written as ZEROs and should be
treated as undefined when read. The “Default” value
given for any BCR is the value in the register after
H_RESET, and is hexadecimal unless otherwise
Writes to those registers marked as “Reserved” will
have no effect. Reads from these locations will produce
undefined values.
Table 46. Bus Configuration Registers
RAP
Addr.
Mnemonic
Default
(Hex)
Name
Programmability
User
EEPROM
SRM
1
MSWRA
0005
Master Mode Write Active
No
No
No
2
MC
N/A*
Miscellaneous Configuration
Yes
Yes
Yes
3
Reserved
N/A
No
No
No
4
LNKST
00C0
Link Status (Default)
Yes
No
No
5
LED1
0084
Receive (Default)
Yes
No
No
6
LED2
0088
Receive Polarity (Default)
Yes
No
No
Transmit (Default)
Yes
No
No
No
No
No
7
LED3
0090
8–15
Reserved
N/A
16
IOBASEL
N/A*
I/O Base Address Lower
Yes
Yes
Yes
17
IOBASEU
N/A*
I/O Base Address Upper
Yes
Yes
Yes
18
BSBC
2101
Burst Size and Bus Control
Yes
Yes
No
19
EECAS
0002
EEPROM Control and Status
Yes
No
No
20
SWSTYLE
0000
Software Style
Yes
No
No
21
INTCON
N/A*
Interrupt Control
Yes
Yes
Yes
Key: SRM = Software Relocatable Mode
* Registers marked with an asterisk (*) have no default value, since they are not observable without first being
programmed, either through the EEPROM read operation or through the Software Relocatable Mode. Therefore,
the only observable values for these registers are those that have been programmed and a default value is not
applicable.
BCR0: Master Mode Read Active
Bit
Name
Description
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15-0
MSRDA
Reserved
locations.
After
H_RESET, the value in this register
will be 0005. The settings of this
register will have no effect on any
PCnet-32 controller function.
152
Writes to this register have no effect
on the operation of the PCnet-32
controller and will not alter the value
that is read.
as
BCR1: Master Mode Write Active
Bit
Name
31-16 RES
Am79C965A
Description
Reserved locations. Written
zeros and read as undefined.
as
15-0
MSWRA
Reserved
locations.
After
H_RESET, the value in this register
will be 0005. The settings of this
register will have no effect on any
PCnet-32 controller function.
7
INTLEVEL Interrupt Level. This bit allows the
i n te r r u p t o u tp u t s i g n a l s to b e
programmed for edge or levelsensitive applications.
When INTLEVEL is set to a ZERO,
the selected interrupt pin is
c o n f i g u r e d fo r e d g e s e n s i t i ve
operation. In this mode, an interrupt
request is signaled by a high level
driven on the selected interrupt pin
by the PCnet-32 controller. When
the interrupt is cleared, the selected
interrupt pin is driven to a low level
by the PCnet-32 controller. This
mode is intended for systems that
do not allow interrupt channels to be
shared by multiple devices.
Writes to this register have no effect
on the operation of the PCnet-32
controller and will not alter the value
that is read.
BCR2: Miscellaneous Configuration
Bit
Name
Description
Note that all bits in this register are
programmable through the
EEPROM PREAD operation and
through the Software Relocatable
Mode operation.
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15
Reserved location. Written and read
as zero.
RES
When INTLEVEL is set to a ONE,
the selected interrupt pin is
c o n f i g u r e d fo r l eve l s e n s i t i ve
operation. In this mode, an interrupt
request is signaled by a low level
driven on the selected interrupt pin
by the PCnet-32 controller. When
the interrupt is cleared, the selected
i nt er r up t p i n i s f l oa te d by th e
PCnet-32 controller and allowed to
be pulled to a high level by an
external pull-up device. This mode is
intended for systems which allow
the interrupt signal to be shared by
multiple devices.
as
14 T-MAULOOP When set, this bit allows external
loopback packets to pass onto the
n e t w o r k t h r o u g h t h e T- M AU
interface, if the T-MAU interface has
b e e n s e l e c t e d . I f t h e T- M AU
interface has not been selected,
then this bit has no effect.
This bit is reset to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
13-9
RES
8
IESRWE IEEE Shadow Ram Write Enable.
The PCnet-32 controller contains a
shadow RAM on board for storage of
the IEEE address following the
serial EEPROM read operation. Accesses to APROM I/O Resources
will be directed toward this RAM.
When IESRWE is set to a ONE, then
32-bit and 16-bit write access to the
shadow RAM will be enabled.
This bit is reset to ZERO by
H_RESET and is unaffected by
R_RESET or STOP.
Reserved locations. Written and
read as zero.
6-4
RES
3
EADISEL EADI Select. When set, this bit
configures three of the four LED
outputs to function as the outputs of
an EADI interface. LED1 becomes
SFBD, LED2 becomes SRDCLK
an d L ED PRE 3 be co me s S RD.
LNKST continues to function as an
LED output. In addition to these
reassignments, the INTR2 pin will
be reassigned to function as the
EAR pin.
When IESRWE is set to a ZERO,
then 32-bit and 16-bit write access
to the shadow RAM will be disabled.
At no time are 8-bit write accesses
to the shadow RAM allowed.
This bit is reset to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
Reserved locations. Written and
read as zero.
This bit is reset to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
2
Am79C965A
AWAKE
Auto-Wake. If LNKST is set and
AWAKE = “1”, the 10BASE-T receive circuitry is active during sleep
153
and listens for Link Pulses. LNKST
indicates Link Status and goes
active if the 10BASE-T port comes
of out of “link fail” state. This LNKST
pin can be used by external circuitry
to re-enable the PCnet-32 controller
and/or other devices.
The network port configuration are
as follows:
PORTSEL(1:0)
ASEL
(BCR2[1])
Link Status
(of 10BASE-T)
Network
Port
0X
1
0
AUI
0X
1
1
10BASE-T
00
0
X
AUI
01
0
X
10BASE-T
10
X
X
GPSI
11
X
X
Reserved
When AWAKE = “0”, the Auto-Wake
circuitry is disabled. This bit only has
m e a n i n g wh e n t h e 1 0 B A S E - T
network interface is selected.
This bit is reset to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
1
ASEL
Auto Select. When set, the
P Cne t- 32 c on tr ol l er wi l l a ut omatically select the operating media
interface port, unless the user has
selected GPSI mode through
appropriate programming of the
PORTSEL bits of the Mode Register
(CSR15). If GPSI mode has not
been selected and ASEL has been
set to a ONE, then when the
10BASE-T transceiver is in the link
pass state (due to receiving valid
frame data and/or Link Test pulses
or the DLNKTST bit is set), the
10BASE-T port will be used. If GPSI
mode has not been selected and
ASEL has been set to a ONE, then
when the 10BASE-T port is port will
be used. Switching between the
por ts will not occur during
transmission, to avoid any type of
fragment generation.
When ASEL is set to ONE, Link Beat
Pulses will be transmitted on the
10BASE-T port, regardless of the
state of Link Status. When ASEL is
reset to ZERO, Link Beat Pulses will
only be transmitted on the
10BASE-T port when the PORTSEL
bits of the Mode Register (CSR15)
have selected 10BASE-T as the
active port.
0
Reserved location. The default
value of this bit is a ZERO. Writing a
ONE to this bit has no effect on
device function. Existing drivers may
write a ONE to this bit, but new
drivers should write a ZERO to this
bit.
BCR4: Link Status LED
Bit
Name
Description
BCR4 controls the function(s) that
the LNKST pin displays. Multiple
functions can be simultaneously
enabled on this LED pin. The LED
display will indicate the logical OR of
the enabled functions. BCR4
defaults to Link Status (LNKST) with
pulse stretcher enabled (PSE = 1)
and is fully programmable.
The default setting after H_RESET
for the LNKST register is 00C0h.
T h e L N K S T r e g i s t e r va l u e i s
unaffected by S_RESET or STOP.
31-16 RES
15
When ASEL is set to a ZERO, then
the selected network port will be
determined by the settings of the
PORTSEL bits of CSR15.
The ASEL bit is reset to ONE by
H_RESET and is unaffected by
S_RESET or STOP.
154
RES
Am79C965A
Reserved locations. Written
zeros and read as undefined.
as
LEDOUT This bit indicates the current (nonstretched) value of the LED output
pin. A value of ONE in this bit
indicates that the OR of the enabled
signals is true.
The logical value of the LEDOUT
status signal is determined by the
settings of the individual Status
Enable bits of the LED register (Bits
6-0).
This bit is READ only by the host,
and is unaffected by H_RESET or
S_RESET or STOP.
This bit is valid only if the network
link status is PASS.
14
LEDPOL LED Polarity. When this bit has the
value ZERO, then the LED pin will
be driven to a LOW level whenever
the OR of the enabled signals is true
and the LED pin will be floated and
allowed to float high whenever the
OR of the enabled signals is false
(i.e. the LED output will be an Open
Drain output and the output value
will be the inverse of the LEDOUT
status bit).
When this bit has the value ONE,
then the LED pin will be driven to a
HIGH level whenever the OR of the
enabled signals is true and the LED
pin will be driven to a LOW level
whenever the OR of the enabled
signals is false (i.e. the LED output
will be a Totem Pole output and the
outp ut va lue wi ll be the s am e
polarity as the LEDOUT status bit).
network that has passed the address match function for this node.
All address matching modes are
included: Physical, Logical filtering,
Promiscuous, Broadcast, and EADI.
A value of 0 disables the signal. A
value of 1 enables the signal.
4
XMTE
A value of 0 disables the signal. A
value of 1 enables the signal.
3
RXPOLE Receive Polarity status Enable.
In di c at es th e c u r r en t Re c ei ve
Polarity condition on the Twisted
Pair interface. A value of ONE
indicates that the polarity of the
RXD± pair has been reversed. A
value of ZERO indicates that the
polarity of the RXD± pair has not
been reversed.
The setting of this bit will not affect
the polarity of the LEDOUT bit for
this register.
13
LEDDIS
LED Disable. This bit is used to
disable the LED output. When
LEDDIS has the value ONE, then
the LED output will always be
floated. When LEDDIS has the
value ZERO, then the LED output
va lu e wi ll be g ove r ned by th e
LEDOUT and LEDPOL values.
12-8
RES
Reserved locations. Written
ZEROs, read as undefined.
as
7
PSE
Pulse Stretcher Enable. Extends the
LED illumination time for each new
occurrence of the enabled function
for this LED output.
Receive polarity indication is valid
only if the LNKST bit of BCR4
indicates link PASS status.
A value of 0 disables the signal. A
value of 1 enables the signal.
2
RCVE
LNKSTE Link Status Enable. Indicates the
current link status on the Twisted
Pair interface. When this bit is set, a
value of ONE will be passed to the
LEDOUT signal to indicate that the
link status state is PASS. A value of
ZERO will be passed to the
LEDOUT signal to indicate that the
link status state is FAIL.
1
JABE
RCVME
Jabber status Enable. Indicates that
the PCnet-32 controller is jabbering
on the network.
A value of 0 disables the signal. A
value of 1 enables the signal.
0
COLE
Collision status Enable. Indicates
collision activity on the network.
When the AUI por t is selected,
collision activity during the 4.0 ms
i n t e r n a l fo l l o w i n g a t r a n s m i t
completion (SQE internal) will not
activate the LEDOUT bit.
A value of 0 disables the signal. A
value of 1 enables the signal.
BCR5: LED1 Status
Bit
A value of 0 disables the signal. A
value of 1 enables the signal.
5
Receive status Enable. Indicates
receive activity on the network.
A value of 0 disables the signal. A
value of 1 enables the signal.
A value of 0 disables the function. A
value of 1 enables the function.
6
Transmit status Enable. Indicates
PCnet-32 controller transmit activity.
Receive Match status Enable.
Indicates receive activity on the
Am79C965A
Name
Description
BCR5 controls the function(s) that
the LED1 pin displays. Multiple
functions can be simultaneously
enabled on this LED pin. The LED
display will indicate the logical OR of
155
the enabled functions. BCR5
defaults to Receive Status (RCV)
with pulse stretcher enabled (PSE =
1) and is fully programmable.
The default setting after H_RESET
for the LED1 register is 0084h. The
LED1 register value is unaffected by
S_RESET or STOP.
31-16 RES
15
Reserved locations. Written
zeros and read as undefined.
the LED output will always be
floated. When LEDDIS has the
value ZERO, then the LED output
va lu e wi ll be g over ned by th e
LEDOUT and LEDPOL values.
12-8
RES
Reserved locations. Write
ZEROs, read as undefined.
7
PSE
Pulse Stretcher Enable. Extends the
LED illumination time for each new
occurrence of the enabled function
for this LED output.
as
LEDOUT This bit indicates the current (nonstretched) value of the LED output
pin. A value of ONE in this bit
indicates that the OR of the enabled
signals is true.
A value of 0 disables the function. A
value of 1 enables the function.
6
The logical value of the LEDOUT
status signal is determined by the
settings of the individual Status
Enable bits of the LED register (Bits
6-0).
This bit is READ only by the host,
and is unaffected by H_RESET
S_RESET or STOP.
This bit is valid only if the network
link status is PASS.
14
LEDPOL LED Polarity. When this bit has the
value ZERO, then the LED pin will
be driven to a LOW level whenever
the OR of the enabled signals is true
and the LED pin will be floated and
allowed to float high whenever the
OR of the enabled signals is false
(i.e. the LED output will be an Open
Drain output and the output value
will be the inverse of the LEDOUT
status bit).
When this bit has the value ONE,
then the LED pin will be driven to a
HIGH level whenever the OR of the
enabled signals is true and the LED
pin will be driven to a LOW level
whenever the OR of the enabled
signals is false (i.e. the LED output
will be a Totem Pole output and the
outp ut va lue wi ll be the s am e
polarity as the LEDOUT status bit).
156
LEDDIS
LNKSTE Link Status Enable. Indicates the
current link status on the Twisted
Pair interface. When this bit is set, a
value of ONE will be passed to the
LEDOUT signal to indicate that the
link status state is PASS. A value of
ZERO will be passed to the
LEDOUT signal to indicate that the
link status state is FAIL.
A value of 0 disables the signal. A
value of 1 enables the signal.
5
RCVME
Receive Match status Enable.
Indicates receive activity on the
network that has passed the address match function for this node.
All address matching modes are
included: Physical, Logical filtering,
Promiscuous, Broadcast, and EADI.
A value of 0 disables the signal. A
value of 1 enables the signal.
4
XMTE
Transmit status Enable. Indicates
PCnet-32 controller transmit activity.
A value of 0 disables the signal. A
value of 1 enables the signal.
3
The setting of this bit will not affect
the polarity of the LEDOUT bit for
this register.
13
as
LED Disable. This bit is used to
disable the LED output. When
LEDDIS has the value ONE, then
Am79C965A
RXPOLE Receive Polarity status
E n a bl e. I n d i c a t e s t h e c u r r e n t
Receive Polarity condition on the
Twisted Pair interface. A value of
ONE indicates that the polarity of the
RXD± pair has been reversed. A
value of ZERO indicates that the
polarity of the RXD± pair has not
been reversed.
Receive polarity indication is valid
only if the LNKST bit of BCR4
indicates link PASS status.
A value of 0 disables the signal. A
value of 1 enables the signal.
2
RCVE
Receive status Enable. Indicates
receive activity on the network.
14
A value of 0 disables the signal. A
value of 1 enables the signal.
1
JABE
Jabber status Enable. Indicates that
the PCnet-32 controller is jabbering
on the network.
A value of 0 disables the signal. A
value of 1 enables the signal.
0
COLE
LEDPOL LED Polarity. When this bit has the
value ZERO, then the LED pin will
be driven to a LOW level whenever
the OR of the enabled signals is true
and the LED pin will be floated and
allowed to float high whenever the
OR of the enabled signals is false
(i.e. the LED output will be an Open
Drain output and the output value
will be the inverse of the LEDOUT
status bit).
Collision status Enable. Indicates
collision activity on the network.
When the AUI por t is selected,
collision activity during the 4.0 ms
i n t e r n a l fo l l o w i n g a t r a n s m i t
completion (SQE internal) will not
activate the LEDOUT bit.
When this bit has the value ONE,
then the LED pin will be driven to a
HIGH level whenever the OR of the
enabled signals is true and the LED
pin will be driven to a LOW level
whenever the OR of the enabled
signals is false (i.e. the LED output
will be a Totem Pole output and the
outp ut va lue w ill be the s am e
polarity as the LEDOUT status bit).
A value of 0 disables the signal. A
value of 1 enables the signal.
BCR6: LED2 Status
Bit
Name
The setting of this bit will not affect
the polarity of the LEDOUT bit for
this register.
Description
BCR6 controls the function(s) that
the LED2 pin displays. Multiple
functions can be simultaneously
enabled on this LED pin. The LED
display will indicate the logical OR of
the enabled functions. BCR6
d e fa u l t s t o t w i s t e d p a i r M AU
Receive Polarity (RCVPOL) with
pulse stretcher enabled (PSE = 1)
and is fully programmable.
The default setting after H_RESET
for the LED2 register is 0088h. The
LED2 register value is unaffected by
S_RESET or STOP.
31-16
RES
Reserved locations. Written
zeros and read as undefined.
15
LEDOUT This bit indicates the current (nonstretched) value of the LED output
pin. A value of ONE in this bit
indicates that the OR of the enabled
signals is true.
13
LEDDIS
LED Disable. This bit is used to
disable the LED output. When
LEDDIS has the value ONE, then
the LED output will always be
floated. When LEDDIS has the
value ZERO, then the LED output
va lu e wi ll be g over ned by th e
LEDOUT and LEDPOL values.
12-8
RES
Reserved locations. Write
ZEROs, read as undefined.
7
PSE
Pulse Stretcher Enable. Extends the
LED illumination time for each new
occurrence of the enabled function
for this LED output.
as
A value of 0 disables the function. A
value of 1 enables the function.
6
The logical value of the LEDOUT
status signal is determined by the
settings of the individual Status
Enable bits of the LED register (Bits
11-8 and 5-0).
LNKSTE Link Status Enable. Indicates the
current link status on the Twisted
Pair interface. When this bit is set, a
value of ONE will be passed to the
LEDOUT signal to indicate that the
link status state is PASS. A value of
ZERO will be passed to the
LEDOUT signal to indicate that the
link status state is FAIL.
This bit is READ only by the host,
and is unaffected by H_RESET
S_RESET or STOP.
This bit is valid only if the network
link status is PASS.
as
A value of 0 disables the signal. A
value of 1 enables the signal.
5
Am79C965A
RCVME
Receive Match status Enable.
Indicates receive activity on the
157
network that has passed the address match function for this node.
All address matching modes are
included: Physical, Logical filtering,
Promiscuous, Broadcast, and EADI.
the enabled functions. BCR7
defaults to Transmit Status (XMT)
with pulse stretcher enabled (PSE =
1) and is fully programmable.
The default setting after H_RESET
for the LED3 register is 0090h. The
LED3 register value is unaffected by
S_RESET or STOP.
A value of 0 disables the signal. A
value of 1 enables the signal.
4
3
XMTE
Transmit status Enable. Indicates
PCnet-32 controller transmit activity.
31-16 RES
A value of 0 disables the signal. A
value of 1 enables the signal.
15
RXPOLE Receive Polarity status Enable.
In di c ate s th e c u r r en t Re c ei ve
Polarity condition on the Twisted
The logical value of the LEDOUT
status signal is determined by the
settings of the individual Status
Enable bits of the LED register (Bits
11-8 and 5-0).
This bit is READ only by the host,
and is unaffected by H_RESET
S_RESET or STOP.
Receive polarity indication is valid
only if the LNKST bit of BCR4
indicates link PASS status.
This bit is valid only if the network
link status is PASS.
A value of 0 disables the signal. A
value of 1 enables the signal.
RCVE
Receive status Enable. Indicates
receive activity on the network.
14
A value of 0 disables the signal. A
value of 1 enables the signal.
1
JABE
Jabber status Enable. Indicates that
the PCnet-32 controller is jabbering
on the network.
A value of 0 disables the signal. A
value of 1 enables the signal.
0
COLE
LEDPOL LED Polarity. When this bit has the
value ZERO, then the LED pin will
be driven to a LOW level whenever
the OR of the enabled signals is true
and the LED pin will be floated and
allowed to float high whenever the
OR of the enabled signals is false
(i.e. the LED output will be an Open
Drain output and the output value
will be the inverse of the LEDOUT
status bit).
Collision status Enable. Indicates
collision activity on the network.
When the AUI por t is selected,
collision activity during the 4.0 ms
i n t e r n a l fo l l o w i n g a t r a n s m i t
completion (SQE internal) will not
activate the LEDOUT bit.
When this bit has the value ONE,
then the LED pin will be driven to a
HIGH level whenever the OR of the
enabled signals is true and the LED
pin will be driven to a LOW level
whenever the OR of the enabled
signals is false (i.e. the LED output
will be a Totem Pole output and the
outp ut va lue w ill be the s am e
polarity as the LEDOUT status bit).
A value of 0 disables the signal. A
value of 1 enables the signal.
BCR7: LED3 Status
Bit
Name
158
The setting of this bit will not affect
the polarity of the LEDOUT bit for
this register.
Description
BCR7 controls the function(s) that
the LEDPRE3 pin displays. Multiple
functions can be simultaneously
enabled on this LED pin. The LED
display will indicate the logical OR of
as
LEDOUT This bit indicates the current (nonstretched) value of the LED output
pin. A value of ONE in this bit
indicates that the OR of the enabled
signals is true.
Pair interface. A value of ONE
indicates that the polarity of the
RXD± pair has been reversed. A
value of ZERO indicates that the
polarity of the RXD± pair has not
been reversed.
2
Reserved locations. Written
zeros and read as undefined.
13
Am79C965A
LEDDIS
LED Disable. This bit is used to
disable the LED output. When
LEDDIS has the value ONE, then
the LED output will always be
floated. When LEDDIS has the
value ZERO, then the LED output
va lu e wi ll be g ove r ned by th e
LEDOUT and LEDPOL values.
12-8
RES
Reserved locations. Write
ZEROs, read as undefined.
as
7
PSE
Pulse Stretcher Enable. Extends the
LED illumination time for each new
occurrence of the enabled function
for this LED output.
A value of 0 disables the function. A
value of 1 enables the function.
6
LNKSTE Link Status Enable. Indicates the
current link status on the Twisted
Pair interface. When this bit is set, a
value of ONE will be passed to the
LEDOUT signal to indicate that the
link status state is PASS. A value of
ZERO will be passed to the
LEDOUT signal to indicate that the
link status state is FAIL.
2
RCVE
A value of 0 disables the signal. A
value of 1 enables the signal.
1
JABE
RCVME
Receive Match status Enable.
Indicates receive activity on the
network that has passed the address match function for this node.
All address matching modes are
included: Physical, Logical filtering,
Promiscuous, Broadcast, and EADI.
0
COLE
XMTE
BCR16: I/O Base Address Lower
Bit
Name
Description
Note that all bits in this register are
programmable through the
EEPROM PREAD operation and
through the Software Relocatable
Mode operation.
31-16 RES
15-5
Transmit status Enable. Indicates
PCnet-32 controller transmit activity.
A value of 0 disables the signal. A
value of 1 enables the signal.
3
Collision status Enable. Indicates
collision activity on the network.
When the AUI por t is selected,
collision activity during the 4.0 ms
i n t e r n a l fo l l o w i n g a t r a n s m i t
completion (SQE internal) will not
activate the LEDOUT bit.
A value of 0 disables the signal. A
value of 1 enables the signal.
A value of 0 disables the signal. A
value of 1 enables the signal.
4
Jabber status Enable. Indicates that
the PCnet-32 controller is jabbering
on the network.
A value of 0 disables the signal. A
value of 1 enables the signal.
A value of 0 disables the signal. A
value of 1 enables the signal.
5
Receive status Enable. Indicates
receive activity on the network.
RXPOLE Receive Polarity status Enable.
In di c ate s th e c u r r en t Re c ei ve
Polarity condition on the Twisted
Pair interface. A value of ONE
indicates that the polarity of the
RXD± pair has been reversed. A
value of ZERO indicates that the
polarity of the RXD± pair has not
been reversed.
Receive polarity indication is valid
only if the LNKST bit of BCR4
indicates link PASS status.
A value of 0 disables the signal. A
value of 1 enables the signal.
Am79C965A
Reserved locations. Written
zeros and read as undefined.
as
IOBASEL I/O Base Address Lower 16 bits.
These bits are used to determine
the location of the PCnet-32
controller in all of I/O space. They
function as bits 15 through 5 of the I/
O address of the PCnet-32
controller. Note that the lowest five
bits of the PCnet-32 controller I/O
space are not programmable. These
bits are assumed to be ZEROs. This
means that it is not possible to
locate the PCnet-32 controller on a
space that does not begin on a 32byte block boundary. The value of
IOBASEL is determined in either of
two ways:
1.The ISOBASEL value may be set
during the EEPROM read.
2.If no EEPROM exists, or if there
is an error detected in the
EEPROM data, then the PCnet-32
controller will enter Software Relocatable Mode, and a specific
sequence of write accesses to I/O
address 378h will cause the
159
IOBASEL value to be updated.
Refer to the Software Relocatable
Mode section of this document for
more details.
4-0
RES
BCR18: Burst Size and Bus Control
Bit
Name
A direct write access to the I/O Base
Address Lower register may be
performed.
31-16 RES
IOBASEL is not
S_RESET or STOP.
Reserved locations. Written
zeros and read as undefined.
15-11 CLL
Cache Line Length. These bits are
used to deter mine how often a
cache invalidation cycle needs to be
performed when Generate Cache
I nva l i d a t i o n C y c l e s h a s b e e n
activated by setting the GCIC bit (bit
10 of BCR18) to a one. CLL values
are interpreted as multiples of 4
bytes. For example, a CLL value of
00001b means the cache line length
is 4 bytes and a cache invalidation
cycle (assertion of EADS) will be
performed every 4 bytes. A CLL
value of 00010b means the cache
line length is 8 bytes, and a cache
invalidation cycle will be performed
every 8 bytes. A CLL value of 00100
means the cache line length is 16
bytes. A value of 00000 means that
the cache line size is “infinite”. In
other words, a single EADS
assertion will be performed on the
first access at the beginning of each
bu s m a s t e r s h i p p e r i o d ( w r i t e
accesses only) and no subsequent
EADS asser tions will be made
during this bus mastership period.
affected
Reserved locations. Written
ZEROs, read as undefined.
by
as
Description
Note that all bits in this register are
programmable through the
EEPROM PREAD operation and
software relocatable mode.
31-16 RES
15-0
Reserved locations. Written
zeros and read as undefined.
as
IOBASEU I/O Base Address Upper 16 bits.
These bits are used to determine
the location of the PCnet-32
controller in all of I/O space. They
function as bits 31 through 16 of the
I/O address of the PCnet-32
controller. The value of IOBASEU is
determined in either of two ways:
1. The IOBASEU value may be set
during the EEPROM read.
2. If no EEPROM exists, or if there is
an error detected in the EEPROM
data, then the PCnet-32 controller
will enter Software Relocatable
Mode, and a specific sequence of
write accesses to I/O address
378h will cause the IOBASEU
value to be updated. Refer to the
S o f t wa r e R e l o c a t a bl e M o d e
section of this document for more
details.
A direct write access to the I/O Base
Address Upper register may be
performed.
IOBASEU is not
S_RESET or STOP.
160
Description
Note that all bits in this register are
programmable through the
EEPROM PREAD operation.
BCR17: I/O Base Address Upper
Bit
Name
affected
by
Am79C965A
as
Cache invalidation cycles are
performed only during PCnet-32
controller bus master write accesses.
Some CLL values are reserved (see
chart below).
The portion of the Address Bus that
will be floated at the time of an
address hold operation (AHOLD
asserted) will be determined by the
value of the Cache Line Length
register. The following chart lists all
of the legal values of CLL showing
the portion of the Address Bus that
wil l bec ome floa ted dur ing a n
address hold operation:
CLL Value
Portion of Address Bus Floated
During AHOLD
00000
None
00001
A31-A2
00010
A31-A3
00011
Reserved CLL Value
00100
A31-A4
00101–00111
Reserved CLL Values
01000
A31-A5
01001 –01111
Reserved CLL Values
10000
A31-A6
10001– 11111
Reserved CLL Values
according to the GCIC and CLL bits,
regardless of the setting of the
Am486/Am386 pin.
IWBACK Ignore WBACK signal. When this bit
is set and the VESA VL-Bus Mode
has been selected, then the
PCnet-32 device will operate as
though the WBACK input pin is
always held HIGH, even though the
real value of the WBACK input may
change. This function is provided to
a l l ow t h e P C n e t - 3 2 d ev i c e t o
operate in systems which violate
VESA VL-Bus WBACK operation by
either floating this pin or by always
driving this pin LOW.
Note that the default value of CLL
after RESET is 00100b. All timing
diagrams in this document are
drawn with the assumption that this
is the value of CLL.
LEADS is always asserted with each
assertion of ADS when VESA VLBus mode has been s elec ted,
regardless of the setting of the
GCIC/IWBACK bit.
When VESA VL-Bus mode is
sel ecte d, then the LEA DS pi n
functions as if CLL = 00001b
regardless of the actual CLL setting.
GCIC/IWBACK is cleared by
H_RESET and is not affected by
S_RESET or STOP.
9
CLL is set to 00100b by H_RESET
and is not affected by S_RESET or
STOP.
10 GCIC/IWBACKGenerate
Cache
Invalidation
Cycles. Ignore WBACK signal.
GCIC Generate Cache Invalidation
Cycles. When this bit is set and the
Am486 mode has been selected,
then the PCnet-32 controller
assumes that the host system
contains a cache, but the host
system does not snoop the local bus
master accesses of the PCnet-32
controller, and therefore, that cache
invalidation cyc les must be
generated by the PCnet-32
controller for PCnet-32 controller
master accesses. PCnet-32
controller will not perform snoops to
invalidate cache lines for local bus
ac c es s es th at oth er l oc al bus
masters may have executed. When
GCIC is a ZERO, the PCnet-32
controller assumes that logic in the
host system will create the cache
invalidation cycles that may be
necessary as a result of PCnet-32
controller local bus master
accesses. The cache invalidation
l o g i c p e r fo r m s i t s f u n c t i o n s
Am79C965A
PRPCNET Priority PCnet. This bit is used to set
the pr ior ity of the dai sy chai n
arbitration logic that resides within
the PCnet-32 controller. When
PRPCNET = 1, the priority of the
daisy chain logic is set to PCnet-32
controller highest priority, External
d ev i c e l o w e s t p r i o r i t y. W h e n
PRPCNET = 0, the priority of the
daisy chain logic is set to External
device highest priority, PCnet-32
controller lowest priority. In the case
PRPCNET = 0, where the PCnet-32
controller has lower priority than the
external device and the PCnet-32
controller is preempted due to a
HOLDI request from the external
device, the PCnet-32 controller will
complete the current sequence of
accesses and then pass the HLDA
to the external device by asserting
the HLDAO signa l. The HO LD
output signal from the PCnet-32
controller will not change state
during the HLDAO hand-off. If the
PCnet-32 controller is performing a
linear burst, then the PCnet-32
controller will complete the linear
burst and then pass the HLDA to the
external device through the HLDAO
signal. For more details on exact
timing of preemption events, see the
161
individual descriptions of the various
DMA transfers.
6
PRPCNET is cleared by H_RESET
and is not affected by S_RESET or
STOP.
The default setting for this bit will be
PRPCNET = 0. This default value
reflects the nature of the CPU’s
handling of a HOLD request (i.e. the
CPU has lowest priority). By making
this the default setting, the PCnet-32
controller response to HOLDI is as
close as possible to the timing of the
CPU response to HOLD, so that
minimal design difficulty will be
created by inserting the PCnet-32
controller into the system as the
mediating device between the CPU
and the extension bus chipset.
8
RES
BREADE is cleared by H_RESET
and is not affected by S_RESET or
STOP.
Reserved bit. Must be written as a
ONE. Will be read as a ONE.
Burst Read activity is not allowed
when the BCLK frequency is >33
MHz. Linear bursting is disabled in
VL-Bus systems that operate above
this frequency by connecting the
VLBEN pin to either ID(3) (for VLBus version 1.0 systems) or ID(4)
AND ID(3) AND ID(1) AND ID(0) (for
VL-Bus version 1.1 or 2.0 systems).
In Am486-style systems that have
BCLK frequencies above 33 MHz,
disabling the linear burst capability
is ideally carried out through
EEPROM bit programming, since
the EEPROM programming can be
setup for a par ticular machine’s
architecture. When the VLBEN pin
has been reset to a ZERO, then the
BREADE bit will be forced to a value
of ZERO. Any attempt to change this
value by writing to the BREADE bit
location will have no effect.
This reserved location is SET by
H_RESET and is not affected by
S_RESET or STOP.
7
DWIO
Double Word I/O. When set, this bit
indicates that the PCnet-32
controller is programmed for DWIO
m o d e. W h e n c l e a r e d , t h i s b i t
indicates that the PCnet-32
controller is programmed for Word
I/O mode. This bit affects the I/O
Resource Offset map and it affects
the defined width of the PCnet-32
controller’s I/O resources. See the
DWIO and WIO sections for more
details.
The PCnet-32 controller will set
DWIO if it detects a double-word
write access to offset 10h from the
PCnet-32 controller I/O Base
Address (corresponding to the RDP
resource). A double word write
access to offset 10h is the only way
that the DWIO bit can be set. DWIO
cannot be set by a direct write to
BCR18.
5
Once the DWIO bit has been set to
a ONE, only a H_RESET can reset
it to a ZERO.
DWIO is read only by the host.
DWIO is cleared by H_RESET and
is not affected by S_RESET or
STOP.
162
BREADE Burst Read Enable. When set, this
bit enables Linear Bursting during
memor y read accesses, where
Linear Bursting is defined to mean
that only the first transfer in the
current bus arbitration will contain
an address cycle. Subsequent
transfers will consist of data only.
However, the entire address bus will
still be driven with appropr iate
val ues d ur i ng t he s u bs eq uen t
cycles, but ADS will not be asserted.
When cleared, this bit prevents the
part from performing linear bursting
during read accesses. In no case
will the par t linearly burst a
descriptor access or an initialization
access.
Am79C965A
BWRITE Burst Write Enable. When set, this
bit enables Linear Bursting during
memor y write accesses, where
Linear Bursting is defined to mean
that only the first transfer in the
current bus arbitration will contain
an address cycle. Subsequent
transfers will consist of data only.
However, the entire address bus will
still be driven with appropr iate
val ues d ur i ng t he s u bs eq uen t
cycles, but ADS will not be asserted.
When cleared, this bit prevents the
part from performing linear bursting
during write accesses. In no case
will the par t linearly burst a
descriptor access or an initialization
access.
Note that when the GPSI mode is
invoked, only the lower 24 bits of the
address bus are available. IOAW24
(BCR21[8]) must be set to allow
slave operations. During master
accesses in GPSI mode, the
PCnet-32 controller will not drive the
upper 8 bits of the address bus with
address information.
BWRITE is cleared by H_RESET
and is not affected by S_RESET or
STOP.
Burst Write activity is not allowed
when the BCLK frequency is >33
MHz. Linear bursting is disabled in
VL-Bus systems that operate above
this frequency by connecting the
VLBEN pin to either ID(3) (for VLBus version 1.0 systems) or ID(4)
AND ID(3) AND ID(1) AND ID(0) (for
VL-Bus version 1.1 or 2.0 systems).
In Am486-style systems that have
BCLK frequencies above 33 MHz,
disabling the linear burst capability
is ideally carried out through
EEPROM bit programming, since
the EEPROM programming can be
setup for a par ticular machine’s
architecture. When the VLBEN pin
has been reset to a ZERO, then the
BWRITE bit will be forced to a value
of ZERO. Any attempt to change this
value by writing to the BWRITE bit
location will have no effect.
4-3
These bits are not writable, regardless of the setting of the ENTST
bit in CSR4. Values may only be
programmed to these bits through
the EEPROM read operation.
BCR18[4:3] are set to 0 by
H_RESET and are unaffected by
S_RESET or STOP.
2-0
LINBC[2:0] Linear Burst Count. The 3-bit value
in this register sets the upper limit for
the number of transfer cycles in a
Linear Burst. This limit determines
how often the PCnet-32 controller
will assert the ADS signal during
linear burst transfers. Each time that
the inter preted value of LINBC
transfers is reached, the PCnet-32
controller will assert the ADS signal
with a new valid address. The
LINBC value should contain only
one active bit. LINBC values with
m o r e t ha n on e a c t i ve b i t m ay
produce predictable results, but
such values will not be compatible
with future AMD network controllers.
The LINBC entry is shifted by two
bits before being used by the PCnet32 controller. For example, the value
LINBC[2:0] = 010 is understood by
the PCnet-32 con-troller to mean
01000 = 8. Therefore, the value
LINBC[2:0] = 010 will cause the
PCnet-32 controller to issue a new
ADS every 01000b = 8 transfers.
T h e P C n e t - 3 2 c o n t r o l l e r m ay
linearly burst fewer than the value
represented by LINBC, due to other
conditions that cause the burst to
end prematurely. Therefore, LINBC
should be regarded as an upper limit
to the length of linear burst.
Am79C965A
163
TSTSHDW Test Shadow bits. These bits are
used to place the PCnet-32
controller into GPSI mode.
BCR18[3] must be set to ZERO. The
ope ratin g mo des pos s ible ar e
indicated in Table 47.
See Table 48 for pin reconfiguration
in GPSI mode.
TSTSHDW
Value
(BCR18[4:3])
PVALID
GPSIEN
(BCR19[15]) (CSR124[4])
Operating
Mode
00
X
0
Normal
Operating
Mode
10
1
X
GPSI Mode
01
1
0
Reserved
11
1
X
Reserved
XX
0
0
Normal
Operating
Mode
XX
0
1
GPSI Mode
Table 48. GPSI Pin Configuration
GPSI
I/O
Type
LANCE
GPSI Pin
ILACC
GPSI Pin
PCnet-32/
PCnet-ISA
GPSI Pin
PCnet-32
Pin
Number
PCnet-32
Normal
Pin Function
Transmit Data
O
TX
TXD
TXDAT
132
A31
Transmit Enable
O
TENA
RTS
TXEN
133
A30
Transmit Clock
I
TCLK
TXC
STDCLK
134
A29
Collision
I
CLSN
CDT
CLSN
137
A28
Receive Carrier Sense
I
RENA
CRS
RXCRS
138
A27
Receive Clock
I
RCLK
RXC
SRDCLK
140
A26
Receive Data
I
RX
RXD
RXDAT
141
A25
GPSI Function
Note that linear burst operation will
only begin on certain addresses.
The general rule for linear burst
starting addresses is:
A[31:0] MOD (LINBC x 16) = 0.
Table 49 illustrates all possible
starting address values for all legal
LINBC values (only 1, 2, and 4 are
legal; other values are reserved).
Note that A[31:8] are don’t care
values for all addresses. (A[1:0] do
not exist within a 32 bit system,
however, they are valid bits within
the buffer pointer field of descriptor
word 0.)
Table 49. Linear Burst Cycles
LINBC[2:0]
LBS = Linear
Burst Size
(No. of
Transfers)
Size of
Burst
(Byte)
Linear Burst
Beginning
Addresses
(A[31:6] =
Don’t Care)
A[5:0] =
1
2
4
4
8
16
16
32
64
00, 10, 20, 30
00, 20
00
Due to the beginning address
restrictions just given, it can be
shown that some por tion of the
address bus will be held stable
throughout each linear burst sequence, while the lowest portion of
the address bus will change value
with each new cycle. The portion of
the address bus that will be held
stable during a linear burst access is
given in Table 50.
164
Am79C965A
Table 50. Linear Burst Address Bus
LINBC Value
Portion of Address Bus Stable
During Linear Burst
001
010
100
A[31:4]
A[31:5]
A[31:6]
The assertion of RDYRTN in the
place of BRDY within a linear burst
cycle will cause the linear burst to be
i n t e r r u p t e d . I n t h a t c a s e, t h e
PCnet-32 controller will revert to
ordinary two-cycle transfers, except
that BLAST will remain de-asserted
to show that linear bursting is being
requested by the PCnet-32
controller. This situation is defined
as interrupted linear burst cycles. If
BRDY is sampled as asser ted
(without also sampling RDYRTN
asserted during the same access)
dur ing interr upted linear burst
cycles, then linear bursting will
resume.
There are several events which may
cause early termination of linear
burst. Among those events are: no
more data available for transfer in
either a buffer or in the FIFO or if
either the Cycle Register (CSR80)
or the Bus Activity Timer Register
(CSR82) times out. In any of these
cases, the PCnet-32 controller will
end the Linear Burst by asserting
BLAST and then releasing the bus.
A Par tial Linear Burst may have
been sent out before the assertion of
BLAST, where “Partial Linear Burst”
refers to the case where the number
of data words transferred between
the last asser ted ADS and the
asser tion of BLAST is less than
LINBC.
PVALID is set to ZERO during
H_RESET and is unaffected by
S _ R E S E T o r t h e S TO P b i t .
However, following the H_RESET
operation, an automatic read of the
EEPROM will be performed. Just as
i s t r ue fo r th e no r ma l P RE A D
command, at the end of this
aut omat ic re ad op erati on, th e
PVALID bit may be set to ONE.
Therefore, H_RESET will set the
PVALID bit to ZERO at first, but the
automatic EEPROM read operation
may later set PVALID to a ONE.
The value on the address bus will be
updated with appropriate values
every clock cycle during linear burst
operations, even though ADS will
not be asserted during every clock
cycle.
Certain combinations of watermark
programming
and
LINBC
programming may create situations
where no linear bursting is possible,
o r w h e r e t h e F I F O m ay b e
excessively read or excessively
written. Such combinations are
declared as illegal.
If PVALID becomes ZERO following
an EEPROM read operation (either
a u to m a ti c al l y g e ne r at e d a f te r
H_RESET, or requested through
PREAD), then all EEPROMprogrammable BCR locations will be
reset to their H_RESET values.
Combinations of watermark settings and LINBC settings must obey
the following relationship:
watermark (in bytes) ³ LINBC (in
bytes)
If no EEPROM is present at the
EESK, EEDI and EEDO pins, then
all attempted PREAD commands
will terminate early and PVALID will
NOT be set. This applies to the
automatic read of the EEPROM
after H_RESET as well as to hostinitiated PREAD commands.
Combinations of watermark and
LINBC settings that violate this rule
may cause unexpected behavior.
LINBC is set to the value of 001 by
H_RESET and is not affected by
S_RESET or STOP. This gives a
default linear burst length of 4
transfers = 001 x 4.
14
BCR19: EEPROM Control and Status
Bit
Name
Description
31-16 RES
Reserved locations. Written
zeros and read as undefined.
15
EEPROM Valid status bit. This bit is
read only by the host. A value of
ONE in this bit indicates that a
PREAD operation has occurred,
and that 1) there is an EEPROM
connected to the PCnet-32
controller microwire interface pins
and 2) the contents read from the
EEPROM have passed the
checksum verification operation.
PVALID
as
A value of ZERO in this bit indicates
that the contents of the EEPROM
are different from the contents of the
applicable PCnet-32 controller onboard registers and/or that the
checksum for the entire 36 bytes of
EEPROM is incorrect or that no
E E P RO M i s c o n n e c t e d t o th e
microwire interface pins.
Am79C965A
PREAD
EEPROM Read command bit. When
this bit is set to a ONE by the host,
the PVALID bit (BCR19[15]) will
immediately be reset to a ZERO and
then the PCnet-32 controller will
perform a read operation of 36 bytes
from the EEPROM through the
microwire interface. The EEPROM
data that is fetched during the read
will be stored in the appropriate
inter nal registers on board the
P C n e t - 3 2 c o n t r o l l e r. U p o n
completion of the EEPROM read
operation, the PCnet-32 controller
will assert the PVALID bit. EEPROM
contents will be indirectly accessible
to the host through I/O read
accesses to the Address PROM
(offsets 0h through Fh) and through
I/O read accesses to other
EEPROM programmable registers.
Note that I/O read accesses from
these locations will not actually
access the EEPROM itself, but
instead will access the PCnet-32
controller’s internal copy of the
E E P RO M c o n t e n t s . I / O w r i t e
165
accesses to these locations may
change the PCnet-32 controller
register contents, but the EEPROM
loc ati ons will not be a ffe cted .
EEPROM locations may be
accessed directly through BCR19.
Note that at the end of the
H_RESET operation, a read of the
E E P R O M w i l l b e p e r fo r m e d
automati cally. This H_RESETgenerated EEPROM read function
will not proceed if the auto-detection
pin (EESK/LED1/SFBD) indicates
that no EEPROM is present.
Instead, Software Relocatable Mode
will be entered immediately.
At the end of the read operation, the
PREAD bit will automatically be
reset to a ZERO by the PCnet-32
controller and PVALID will bet set,
provided that an EEPROM existed
on the microwire interface pins and
that the checksum for the entire 36
bytes of EEPROM was correct.
Note that when PREAD is set to a
ONE, then the PCnet-32 controller
will no longer respond to I/O
accesses directed toward it, until the
PREAD operation has completed
successfully.
If a PREAD command is given to the
PCnet-32 controller but no
EEPROM is attached to the
microwire interface pins, then the
PREAD command will terminate
early, the PREAD bit will be cleared
to a ZERO and the PVALID bit will
remain reset with a value of ZERO.
The PCnet-32 controller will then
enter Software Relocatable Mode to
await further programming. This applies to the automatic read of the
EEPROM after H_RESET as well as
to host initiated PREAD commands.
EEPROM programmable locations
on board the PCnet-32 controller will
be set to their default values by such
an aborted PREAD operation. For
example, if the abor ted PREAD
operation immediately followed the
H_RESET operation, then the final
state
of
the
EEPROM
programmable locations will be
equal
to
the
H_RESET
programming for those locations.
PREAD is set to ZERO during
H_RESET and is unaffected by
S_RESET or STOP.
PREAD is only writable when the
STOP bit is set to ONE.
13
EEPROM Detect. This bit indicates
the sampled value of the EESK/
L E D1 / S FB D p i n a t th e e n d o f
H_RESET. The value of this bit is
independent whether or not an
EEPROM is actually present at the
EEPROM interface. It is only a
function of the sampled value of the
EESK/LEDI/SFBD pin at the end of
H_RESET.
The value of this bit is determined at
the end of the H_RESET operation.
It is unaffected by S_RESET or
STOP.
This bit is not writable. It is read only.
Table 51 indicates the possible
combinations of EEDET and the
existence of an EEPROM and the
resulting operations that are
possible on the EEPROM microwire
interface.
12-5
RES
Reserved locations. Written
ZERO, read as undefined.
4
EEN
EEPROM port enable. When this bit
is set to a one, it causes the values
of EBUSY, ECS, ESK and EDI to be
driven onto the SHFBUSY, EECS,
EESK and EEDI pins, respectively.
When this bit is reset to a zero, then
the SHFBUSY pin will be driven with
the inverse of the PVALID (bit 15 of
BCR19) value. PVALID is set to
“ONE” if the EEPROM read was
successful. It is set to “ZERO”
otherwise.
If a PREAD command is given to the
PCnet-32 controller and the
autodetection pin (EESK/LED1/
SFBD) indicates that no EEPROM is
present, then the EEPROM read
operation will still be attempted.
166
EEDET
Am79C965A
as
Table 51. EEDET Effects on EEPROM Operation
EEDET Value
(BCR19[3])
EEPROM
Connected?
Result if PREAD is set to ONE
Result of Automatic EEPROM Read
Operation Following H_RESET
0
No
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result, PVALID
is reset to ZERO.
First TWO EESK clock cycles
are generated, then EEPROM
read operation is aborted and
PVALID is reset to ZERO.
0
Yes
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass, PVALID
is set to ONE.
First TWO EESK clock cycles are
generated, then EEPROM read
operation is aborted and PVALID is
reset to ZERO.
1
No
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result, PVALID
is reset to ZERO.
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum failure will result,
PVALID is reset to ZERO.
1
Yes
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass, PVALID
is set to ONE.
EEPROM read operation is attempted.
Entire read sequence will occur,
checksum operation will pass,
PVALID is set to ONE.
If EEN = 0 and no EEPROM read
function is currently active, then
EECS will be driven LOW. When
EEN = 0 and no EEPROM read
function is currently active, EESK
and EEDI pins will be driven by the
LED registers BCR5 and BCR4,
respectively. See Table 52.
dur ing BCR19 accesses to the
EEPROM. A programmed PREAD
operation following the BCR19
EEPROM programming accesses
will cause the SHFBUSY pin to
b e c o m e L OW i f t h e E E P RO M
checksum is verified.
EBUSY has no effect on the output
value of the SHFBUSY pin unless
the PREAD bit is set to ZERO and
the EEN bit is set to ONE.
EEN is set to ZERO by H_RESET
and is unaffected by S_RESET or
STOP.
3
EBUSY
EEPROM BUSY. This bit controls
the value of the SHFBUSY pin of the
PCnet-32 controller when the EEN
bit is set to ONE and the PREAD bit
is set to ZERO. This bit is used to
indicate to exter nal EEPROMprogrammable logic that an
EEPROM access is occurring.
EBUSY is set to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
2
When user programming of the
EEPROM is desired through the
BCR19 EEPROM Port, then EBUSY
should be set to ONE before EEN is
s e t to O NE i n s y s t e m s w h er e
EEPROM-programmable external
logic exists. At the end of the
EEPROM programming operation,
EBUSY should either remain set at
ONE until after EEN is set to ZERO,
or the user may reset EBUSY to
ZERO with EEN = 1 immediately
following a read of EEPROM byte
locations 35 and 36, which should
be the last accesses performed
Am79C965A
ECS
EEPROM Chip Select. This bit is
used to control the value of the
EECS pin of the microwire interface
when the EEN bit is set to ONE and
the PREAD bit is set to ZERO. If
EEN = “1” and PREAD = “0” and
ECS is set to a ONE, then the EECS
pin will be forced to a HIGH level at
the rising edge of the next BCLK
following bit programming. If EEN =
“1” and PREAD = “0” and ECS is set
to a ZERO, then the EECS pin will
be forced to a LOW level at the rising
edge of the next BCLK following bit
programming.
ECS has no effect on the output
value of the EECS pin unless the
PREAD bit is set to ZERO and the
EEN bit is set to ONE.
167
ECS is set to ZERO by H_RESET
and is unaffected by S_RESET or
STOP.
1
ESK
programming, except when the
PREAD bit is set to ONE or the EEN
bit is set to ZERO. If both the ESK bit
and the EDI/EDO bit values are
changed during one BCR19 write
operation, while EEN = 1, then setup
and hold times of the EEDI pin value
with respect to the EESK signal
edge are not guaranteed.
EEPROM Serial Clock. This bit and
the EDI/EDO bit are used to control
host access to the EEPROM. Values
programmed to this bit are placed
onto the EESK pin at the rising edge
of the next BCLK following bit
Table 52. EEPROM Enable
Reset
Pin
PREAD or
EEN
EECS
SHFBUSY
EESK
EEDI
Auto Read in
Progress
High
X
X
0
1
Z
Z
Low
1
X
Active
1
Active
Active
Low
0
1
From ECS
Bit of BCR19
From EBUSY
Bit of BCR19
From ESK Bit
of BCR19
From EEDI Bit
of BCR19
Low
0
0
0
PVALID
LED1
LNKST
ESK has no effect on the EESK pin
unless the PREAD bit is set to
ZERO and the EEN bit is set to
ONE.
9
ESK is reset to ONE by H_RESET
and is unaffected by S_RESET or
STOP.
0
EDI/EDO EEPROM Data In/EEPROM Data
Out. Data that is written to this bit will
appear on the EEDI output of the
microwire interface, except when the
PREAD bit is set to ONE or the EEN
bit is set to ZERO. Data that is read
from this bit reflects the value of the
E E D O i n p u t o f t h e m i c r ow i r e
interface.
The value of CSRPCNET is
determined by the PCnet-32 controller. CSRPCNET is read only by
the host.
The PCnet-32 controller uses the
setting of the Software Style register
(BCR20[7:0]) to determine the value
for this bit.
EDI/EDO has no effect on the EEDI
pin unless the PREAD bit is set to
ZERO and the EEN bit is set to
ONE.
EDI/EDO is reset to ZERO by
H_RESET and is unaffected by
S_RESET or STOP.
CSRPCNET is set by H_RESET
and is not affected by S_RESET or
STOP.
8
BCR20: Software Style
Bit
Name
Description
This register is an alias of the location CSR58. Accesses to/from
this r egister are equivalent to
accesses to CSR58.
31-10 RES
168
Reserved locations. Written
ZEROs and read as undefined.
CSRPCNET CSR PCnet-ISA configuration bit.
When set, this bit indicates that the
PCnet-32 controller register bits of
CSR4 and CSR3 will map directly to
the CSR4 and CSR3 bits of the
PCnet-ISA (Am79C960) device.
When cleared, this bit indicates that
PCnet-32 controller register bits of
CSR4 and CSR3 will map directly to
the CSR4 and CSR3 bits of the
ILACC (Am79C900) device.
as
Am79C965A
SSIZE32 Software Size 32 bits. When set, this
bit indicates that the PCnet-32
controller utilizes AMD79C900
(ILACC) software structures. In
particular, Initialization Block and
Transmit and Receive descriptor bit
maps are affected. When cleared,
this bit indicates that the PCnet-32
controller utilizes AMD PCnet-ISA
software structures. Note:
Regardless of the setting of
SSIZE32, the Initialization Block
must always begin on a double-word
boundary.
fully functional as specified in the
CS R a n d B C R an d d e s c r i p to r
sections.
The value of SSIZE32 is determined by the PCnet-32 controller.
SSIZE32 is read only by the host.
The PCnet-32 controller uses the
s e t t i n g o f t h e S o f t wa r e S t y l e
register(BCR20[7:0]/CSR58[7:0]) to
determine the value for this bit.
SSIZE32 is cleared by H_RESET
and is not affected by S_RESET or
STOP.
If SSIZE32 is reset, then bits
IADR[31:24] of CSR2 will be used to
generate values for the upper 8 bits
of the 32 bit address bus during
master accesses initiated by the
PCnet-32 controller. This action is
required, since the 16-bit software
str uctures specified by the
SSIZE32=0 setting will yield only 24
b i t s o f a d d r e s s fo r P C n e t - 3 2
controller bus master accesses.
Read/write accessible only when
the STOP bit is set.
The SWSTLYE register will contain
the value 00h following H_RESET
and is not affected by S_RESET or
STOP.
BCR21: Interrupt Control
Bit
31-9
RES
Reserved locations. Written
ZEROs and read as undefined.
8
IOAW24
I/O Address Width 24 bits. When set
to a ONE, the IOAW24 bit will cause
the PCnet-32 controller to ignore the
upper 8 bits of the address bus
when determining whether an I/O
address matches PCnet-32
controller I/O space. When IOAW24
is set to a ZERO, then the PCnet-32
controller will examine all 32 bits of
the address bus when determining
whether an I/O address matches
PCnet-32 controller I/O space.
The value of the SSIZE32 bit has no
effect on the drive of the upper 8
address pins. The upper 8 address
pins are always driven, regardless of
the state of the SSIZE32 bit.
7-0
Description
Note that all bits in this register are
programmable through the
EEPROM PREAD operation and
software relocatable mode.
If SSIZE32 is set, then the software
structures that are common to the
PCnet-32 controller and the host
system will supply a full 32 bits for
each address pointer that is needed
by the PCnet-32 controller for
performing master accesses.
Note:The setting of the SSIZE32 bit has
no effect on the defined width for I/O resources.I/O resource width is determined by the state of the DWIO bit.
Name
as
Read/write accessible only when
the STOP bit is set.
The IOAW24 bit will be reset to
ZERO by H_RESET and is not
affected by S_RESET or STOP.
7
SWSTYLE Software Style register. The value in
this register determines the “style” of
I/O and memory resources that shall
be used by the PCnet-32 controller.
The Software Style selection will affect the interpretation of a few bits
within the CSR space and the width
of the descriptors and initialization
block. See Table 53.
All PCnet-32 controller CSR bits and
BCR bits and all descriptor, buffer
and initialization block entries not
cited in the table above ar e
unaffected by the Software Style
selection and are therefore always
Am79C965A
REJECTDIS Reject Disable. When set to a
ONE, the REJECTDIS bit will cause
th e E A R fu nc ti on of th e E AD I
interface to be disabled. Specifically,
the INTR2 pin will retain its function
as INTR2 and will not function as
EAR, regardless of the setting of the
BCR2 EADISEL bit. When reset to a
ZERO, the REJECTDIS bit will allow
the INTR2 pin to be redefined to
function as EAR of the EADI
interface when the EADISEL bit of
BCR2 has been set to a ONE.
Read/write accessible only when
STOP bit is set.
The REJECTDIS bit will be reset to
ZERO by H_RESET and is not
affected by S_RESET or STOP.
169
6-2
RES
Reserved locations. Written
ZEROs and read as undefined.
as
combination of INTSEL and
JTAGSEL values.
1-0
INTSEL
Interrupt Select. The value of these
bits determines which of the
interrupt pins will be the active
interrupt. Table 55 indicates which
interrupt will be selected for each
Interrupt pins that are not selected
will be floated.
The INTSEL register will contain the
value 00 following H_RESET and is
not affected by S_RESET or STOP.
Table 53. Software Style Selection
SWSTYLE[7:0]
(Hex)
Style Name
CSRPCNET
SSIZE32
00
LANCE/
PCnet-ISA
1
0
ALL CSR4 bits will function as defined in the CSR4 section.
TMD1[29] functions as ADD_FCS
01
ILACC
0
1
CSR4[9:8], CSR4[5:4] and CSR4[1:0] will have no function,
but will be writeable and readable.
CSR4[15:10], CSR4[7:6] and CSR4[3:2] will function as
defined in the CSR4 section. TMD1[29] becomes NO_FCS.
02
PCnet-32
1
1
ALL CSR4 bits will function as defined in the CSR4 section.
TMD1[29] functions as ADD_FCS
All other
combinations
Reserved
Undefined
Initialization Block
Table 54. Interrupt Select
170
Altered Bit Interpretations
INTSEL[1:0]
JTAGSEL
Selected
interrupt Pin
00
0
INTR1
01
0
INTR2
10
0
INTR3
11
0
INTR4
00
1
INTR1
01
1
INTR2
10
1
INTR1
11
1
INTR2
When SSIZE32=0 (BCR20/CSR58, bit 8) the software
structures are defined to be 16 bits wide and the
initialization block looks as shown in Table 55. When
SSIZE32=1, the software structures are defined to be
32 bits wide and the initialization block looks as shown
in Table 56. Regardless of the value of SSIZE32, the
initialization block must be aligned to a double word
boundary, i.e. CSR1[1:0] and CSR16[1:0] must be set
to ZERO.
Note that the PCnet-32 device performs double-word
accesses to read the initialization block. This statement
is always true, regardless of the setting of the SSIZE32
bit.
Am79C965A
Table 55. Initialization Block (when SSIZE = 0)
Address
Bits 15-13
Bit 12
Bits 11-8
Bits 7-4
IADR+00
MODE 15-00
IADR+02
PADR 15-00
IADR+04
PADR 31-16
IADR+06
PADR 47-32
IADR+08
LADRF 15-00
IADR+0A
LADRF 31-16
IADR+0C
LADRF 47-32
IADR+0E
LADRF 63-48
IADR+10
RDRA 15-00
IADR+12
RLEN
0
RES
IADR+14
IADR+16
Bits 3-0
RDRA 23-16
TDRA 15-00
TLEN
0
RES
TDRA 23-16
Table 56. Initialization Block (when SSIZE = 1)
Address
Bits
31-28
Bits
27-24
Bits
23-20
Bits
19-16
IADR+00
TLEN
RES
RLEN
RES
Bits
15-12
Bits
11-8
Bits
7-4
Bits
3-0
MODE
PADR 31–00
IADR+04
IADR+08
RES
PADR 47-32
IADR+0C
LADR 31–00
IADR+10
LADR 63–32
IADR+14
RDRA 31–00
IADR+18
TDRA 31-00
RLEN and TLEN
When SSIZE32 = 0 (BCR20[8]), then the software
structures are defined to be 16 bits wide, and the RLEN and
TLEN fields in the initialization block are 3 bits wide,
occupying bits 15,14, and 13 and the value in these fields
determines the number of Transmit and Receive Descriptor
Ring Entries (DRE) which are used in the descriptor rings.
Their meaning is shown in Table 57.
Table 57. Descriptor Ring Entries (SSIZE32 = 0)
R/TLEN
No. of DREs
000
1
001
2
010
4
011
8
100
16
101
32
110
64
111
128
zation is complete. See the description of the appropriate CSRs.
When SSIZE32=1 (BCR20[8]), then the software structures are defined to be 32 bits wide, and the RLEN and
TLEN fields in the initialization block are 4 bits wide, occupying bits 15,14, 13, and 12, and the value in these
fields determines the number of Transmit and Receive
Descriptor Ring Entries (DRE) which are used in the
descriptor rings. Their meaning is shown in Table 58.
If a value other than those listed in the above table is
desired, CSR76 and CSR78 can be written after initialization is complete. See the description of the appropriate CSRs.
If a value other than those listed in the above table is
desired, CSR76 and CSR78 can be written after initiali-
Am79C965A
171
R/TLEN
No. of DREs
0000
1
must be located at 0 MOD 16 address values when
SSIZE32 = 1 (BCR20[8]). Each DRE must be located
at 0 MOD 8 address values when SSIZE32 = 0
(BCR20[8]).
0001
2
LADRF
0010
4
0011
8
0100
16
0101
32
0110
64
0111
128
The Logical Address Filter (LADRF) is a 64-bit mask
that is used to accept incoming Logical Addresses. If
the first bit in the incoming address (as transmitted on
the wire) is a “1”, the address is deemed logical. If the
first bit is a “0”, it is a physical address and is compared
against the physical address that was loaded through
the initialization block.
1000
256
1001
512
11XX
512
1X1X
512
Table 58. Descriptor Ring Entries (SSIZE = 1)
A logical address is passed through the CRC
generator, producing a 32 bit result. The high order 6
bits of the CRC is used to select one of the 64 bit
positions in the Logical Address Filter. If the selected
filter bit is set, the address is accepted and the frame is
placed into memory. See Figure 38.
RDRA and TDRA
TDRA and RDRA indicate where the transmit and receive descriptor rings, respectively, begin. Each DRE
32-BIT RESULTANT CRC
31
26
0
RECEIVED MESSAGE
DESTINATION ADDRESS
47
1 0
1
CRC
GEN
63
SEL
0
64
MATCH=1: PACKET ACCEPTED
MATCH=0: PACKET REJECTED
MATCH
PACKET ACCEPTED
MATCH
LOGICAL
ADDRESS
FILTER
(LADRF)
MUX
MATCH
PACKET REJECTED
6
18219-45
Figure 38. Address Match Logic
The Logical Address Filter is used in multicast addressing schemes. The acceptance of the incoming frame
based on the filter value indicates that the message
may be intended for the node. It is the node’s
responsibility to determine if the message is actually
intended for the node by comparing the destination
address of the stored message with a list of acceptable
logical addresses.
If the Logical Address Filter is loaded with all zeroes
and promiscuous mode is disabled, all incoming logical
addresses except broadcast will be rejected.
172
The Broadcast address, which is all ones, does not go
through the Logical Address Filter and is handled as
follows:
■ If the Disable Broadcast Bit is cleared, the broadcast address is accepted
■ If the Disable Broadcast Bit is set and promiscuous
mode is enabled, the broadcast address is accepted.
■ If the Disable Broadcast Bit is set and promiscuous
mode is disabled, the broadcast address is rejected.
Am79C965A
If external loopback is used, the FCS logic must be allocated to the receiver (by setting the DXMTFCS bit in
CSR15, and clearing the ADD_FCS bit in TMD1) when
using multicast addressing.
Table 59. Receive Descriptors (SSIZE32 = 0)
PADR
This 48-bit value represents the unique node address
assigned by the ISO 8802-3 (IEEE/ANSI 802.3) and
used for internal address comparison. PADR[0] is the
first address bit transmitted on the wire, and must be
zero. The six hex-digit nomenclature used by the ISO
8802-3 (IEEE/ANSI 802.3) maps to the PCnet-32 controller PADR register as follows: the first byte comprises
PADR[7:0], with PADR[0] being the least significant bit
of the byte. The second ISO 8802-3 (IEEE/ANSI 802.3)
byte maps to PADR[15:8], again from LS bit to MS bit,
and so on. The sixth byte maps to PADR[47:40], the LS
bit being PADR[40].
MODE
The mode register in the initialization block is copied
in to CS R15 a nd i nter pr eted ac co rd ing to th e
description of CSR15.
PCnet-32
Descriptor Designation
LANCE/
PCnet-ISA
Descriptor
Designation
Address
Bits 15-0
CRDA+00
RMD0
Bits 15-8
Bits 7-0
CRDA+02
RMD1
CRDA+04
RMD2
RMD1[15:0]
CRDA+06
RMD3
RMD2[15:0]
RMD0[15:0]
RMD1[31:24]
RMD0[23:16]
PCnet-32 reference names within the table above refer
to the descriptor definitions given in text below. Since
the text descriptions are for 32-bit descriptors, the table
above shows the mapping of the 32-bit descriptors into
the 16-bit descriptor space. Since 16-bit descriptors
are a subset of the 32-bit descriptors, some portions of
the 32-bit descriptors may not appear in Table 59.
When SSIZE32 = 1 (BCR 20[8]), then the software
structures are defined to be 32 bits wide, and receive
descriptors look as shown in Table 60.
Receive Descriptors
When SSIZE32 = 0 (BCR20[8]), then the software
structures are defined to be 16 bits wide, and receive
descriptors look as shown in Table 59.
Table 60. Receive Descriptors (SSIZE 32 = 1)
LANCE/PCnet-ISA
Descriptor Designation
Address
PCnet-32
Descriptor
Designation
Bits 31-24
Bits 23-16
Bits 15-8
Bits 7-0
Bits 31-0
CRDA+00
*NA
RMD1[7:0]
RMD0[15:8]
RMD0[7:0]
RMD0
CRDA+04
RMD1[15:8]
*NA
RMD2[15:8]
RMD2[7:0]
RMD1
CRDA+08
*NA
*NA
RMD3[15:8]
RMD3[7:0]
RMD2
CRDA+0C
*NA
*NA
*NA
*NA
RMD3
* NA = These 8 bits do not exist in any LANCE descriptor.
The Receive Descriptor Ring Entries (RDREs) are
composed of four receive message descriptors
(RMD0– RMD3). Together they contain the following
information:
RMD0
Bit
Name
Description
31-0
RBADR
RECEIVE BUFFER ADDRESS.
This field contains the address of
the receive buffer that is associated
with this descriptor.
Bit
Name
Description
31
OWN
This bit indicates that the descriptor entry is owned by the host
(OWN=0) or by the PCnet-32
controller (OWN=1). The PCnet-32
■ The address of the actual message data buffer in
user (host) memory.
■ The length of that message buffer.
■ Status information indicating the condition of the
buffer. The eight most significant bits of RMD1
(RMD1[31:24]) are collectively termed the STATUS
of the receive descriptor.
RMD1
Am79C965A
173
controller clears the OWN bit after
filling the buffer pointed to by the
descriptor entry. The host sets the
OWN bit after emptying the buffer.
Once the PCnet-32 controller or
host has relinquished ownership of
a buffer, it must not change any
field in the descriptor entry.
30
ERR
ERR is the OR of FRAM, OFLO,
CRC, or BUFF. ERR is set by the
PCnet-32 controller and cleared by
the host.
29
FRAM
FRAMING ERROR indicates that
the incoming frame contained a
non-integer multiple of eight bits
and there was an FCS error. If
there was no FCS error on the
incoming frame, then FRAM will
not be set even if there was a non
integer multiple of eight bits in the
frame. FRAM is not valid in internal
loopback mode. FRAM is valid only
when ENP is set and OFLO is not.
FRAM is set by the PCnet-32
controller and cleared by the host.
28
27
26
OFLO
CRC
BUFF
OVERFLOW error indicates that
the receiver has lost all or part of
the incoming frame, due to an
inability to store the frame in a
memory buffer before the internal
FIFO overflowed. OFLO is valid
only when ENP is not set. OFLO is
set by the PCnet-32 controller and
cleared by the host.
CRC indicates that the receiver
has detected a CRC (FCS) error
on the incoming frame. CRC is
valid only when ENP is set and
OFLO is not. CRC is set by the
PCnet-32 controller and cleared by
the host.
BUFFER ERROR is set any time
the PCnet-32 controller does not
own the next buffer while data
chaining a received frame. This
can occur in either of two ways:
If a Buffer Error occurs, an Overflow Error may also occur internally in the FIFO, but will not be
reported in the descriptor status
entry unless both BUFF and OFLO
errors occur at the same time.
BUFF is set by the PCnet-32
controller and cleared by the host.
25
STP
START OF PACKET indicates that
this is the first buffer used by the
PCnet-32 controller for this frame.
It is used for data chaining buffers.
S T P i s s e t by t h e P C n e t - 3 2
controller and cleared by the host.
24
ENP
END OF PACKET indicates that
this is the last buffer used by the
PCnet-32 controller for this frame.
It is used for data chaining buffers.
If both STP and ENP are set, the
frame fits not one buffer and there
is no data chaining. ENP is set by
the PCnet-32 controller and
cleared by the host.
23-16 RES
Reserved locations. These locations should be read and written as
ZEROs.
15-12 ONES
These four bits must be written as
ONES. They are written by the host
and unchanged by the PCnet-32
controller.
11-0
BCNT
BUFFER BYTE COUNT is the
length of the buffer pointed to by
this descriptor, expressed as the
two’s complement of the length of
the buffer. This field is written by
the host and unchanged by the
PCnet-32 controller.
Name
Description
RMD2
Bit
31-24 RCC
1. The OWN bit of the next buffer
is zero.
2. FIFO overflow occurred before
the PCnet-32 controller
received the STATUS
(RMD1[31:24]) of the next descriptor.
174
Am79C965A
Receive Collision Count. Indicates the accumulated number of
collisions on the network since the
l a s t f r a m e wa s s u c c e s s f u l l y
received, excluding collisions that
occurred during transmissions
from this node. The PCnet-32
controller implementation of this
counter may not be compatible
with the ILACC RCC definition. If
network statistics are to be
monitored, then CSR114 should
b e u s e d fo r t h e p u r p o s e o f
monitoring Receive collisions
instead of these bits.
23-16 RPC
15-12 ZEROs
11-0
MCNT
Runt Packet Count. Indicates the
accumulated number of runts that
were addressed to this node since
the last time that a receive packet
was successfully received and its
corresponding RMD2 ring entry
was written to by the PCnet-32
controller. In order to be included in
the RPC value, a runt must be long
enough to meet the minimum
requirement of the internal address
matching logic. The minimum
requirement for a runt to pass the
internal address matching
mechanism is: 18 bits of valid
preamble plus a valid SF D
detected, followed by 7 bytes of
frame data. This requirement is
u nva r y i n g , r e g a r d l e s s o f t h e
address matching mechanisms in
force at the time of reception (i.e.
physical, logical, broadcast or
pr omi sc uo us) . The P Cnet -3 2
controller implementation of this
counter may not be compatible
with the ILACC RPC definition.
This field is reserved. PCnet-32
controller will write ZEROs to these
locations.
MESSAGE Byte COUNT is the
length in bytes of the received
message, expressed as an unsigned binary integer. MCNT is
valid only when ERR is clear and
ENP is set. MCNT is written by the
PCnet-32 controller and cleared by
the host.
RMD3
Bit
Name
Description
31-0
RES
Reserved locations. All bits must
be ZEROs.
Transmit Descriptors
When SSIZE32 = 0 (BCR 20[8]), then the software
structures are defined to be 16 bits wide, and transmit
descriptors look as shown in Table 61.
PCnet-32 reference names within the table above refer
to the descriptor definitions given in text below. Since
the text descriptions are for 32-bit descriptors, the table
above shows the mapping of the 32-bit descriptors into
the 16-bit descriptor space. Since 16-bit descriptors
are a subset of the 32-bit descriptors, some portions of
the 32-bit descriptors may not appear in Table 61.
When SSIZE32 = 1 (BCR 20[8]), then the software
structures are defined to be 32 bits wide, and transmit
descriptors look as shown in Table 62.
Table 61. Transmit Descriptor (SSIZE32 = 0)
LANCE
Descriptor
Designation
PCnet-32
Descriptor Designation
Address
Bits 15-0
Bits 15-8
Bits 7-0
CRDA+00
TMD0
CRDA+02
TMD1
CRDA+04
TMD2
TMD1[15:0]
CRDA+06
TMD3
TMD2[15:0]
TMD0[15:0]
TMD1[31:24]
TMD0[23:16]
Table 62. Transmit Descriptor (SSIZE32 = 1)
LANCE
Descriptor Designation
PCnet-32 Descriptor
Designation
Address
Bits 31-24
Bits 23-16
Bits 15-8
Bits 7-0
Bits 31-0
CTDA+00
*NA
TMD1[7:0]
TMD0[15:8]
TMD0[7:0]
TMD0
CTDA+04
TMD1[15:8]
*NA
TMD2[15:8]
TMD2[7:0]
TMD1
CTDA+08
TMD3[15:8]
TMD3[7:0]
*NA
*NA
TMD2
CTDA+0C
*NA
*NA
*NA
*NA
TMD3
* NA = These 8 bits do not exist in any LANCE descriptor.
The Transmit Descriptor Ring Entries (TDREs) are
composed of 4 transmit message descriptors (TMD0T M D 3 ) . To g e t h e r t h ey c o n t a i n t h e fo l l o w i n g
information:
■ The address of the actual message data buffer in
user or host memory.
■ The length of the message buffer.
■ Status information indicating the condition of the
buffer. The eight most significant bits of TMD1
(TMD1[31:24]) are collectively termed the STATUS
of the transmit descriptor.
Am79C965A
175
TMD0
Bit
Name
Description
31-0
TBADR
Transmit Buffer address. This field
contains the address of the
transmit buffer that is associated
with this descriptor.
Bit
Name
Description
31
OWN
This bit indicates that the descriptor entry is owned by the host
(OWN=0) or by the PCnet-32
controller (OWN=1). The host sets
the OWN bit after filling the buffer
pointed to by the descriptor entry.
The PCnet-32 controller clears the
OWN bit after transmitting the
contents of the buffer. Both the
PCnet-32 controller and the host
must not alter a descriptor entry
after it has relinquished ownership.
NO_FCS
NO_FCS dynamically controls the
generation of FCS on a frame by
frame basis. It is valid only if the
ENP bit is set. When NO_FCS is
set, the state of DXMTFCS is
i gn or ed an d tran s mi tt er FCS
generation is deactivated. When
NO_FCS = 0, FCS generation is
controlled by DXMTFCS. NO_FCS
is set by the host, and unchanged
by the PCnet-32 controller. This
was a reserved bit in the LANCE
(Am7990). This function is identi
cal to the ILACC function for this
bit.
28
MORE
MORE indicates that more than
one retry was needed to transmit a
frame. The value of MORE is
written by the PCnet-32 controller.
This bit has meaning only if the
ENP bit is set.
27
ONE
ONE indicates that exactly one
retry was needed to transmit a
frame. ONE flag is not valid when
LCOL is set. The value of the ONE
bit is written by the PCnet-32
controller. This bit has meaning
only if the ENP bit is set.
26
DEF
DEFERED indicates that the
PCnet-32 controller had to defer
while trying to transmit a frame.
This condition occurs if the channel
is busy when the PCnet-32
controller is ready to transmit. DEF
is set by the PCnet-32 controller
and cleared by the host.
25
STP
START OF PACKET indicates that
this is the first buffer to be used by
the PCnet-32 controller for this
frame. It is used for data chaining
buffers. The STP bit must be set in
the first buffer of the frame, or the
PCnet-32 controller will skip over
the descriptor and poll the next
descriptor(s) until the OWN and
STP bits are set.
TMD1
30
29
ERR
ER is the OR of UFLO, LCOL,
LCAR, or RTRY. ERR is set by the
PCnet-32 controller and cleared by
the host. This bit is set in the
current descriptor when the error
occurs, and therefore may be set in
any descriptor of a chained buffer
transmission.
ADD_FCS/NO_FCS
Bit 29 functions as ADD_FCS
when programmed for the default
I/O style of PCnet-ISA and when
programmed for the I/O style
P C n e t - 3 2 c o n t r o l l e r. B i t 2 9
functions as NO_FCS when
programmed for the I/O style
ILACC.
ADD_FCS ADD_FCS dynamically controls
the generation of FCS on a frame
by frame basis. It is valid only if the
STP bit is set. When ADD_FCS is
set, the state of DXMTFCS is
ig no r ed an d t ran s mi tte r FCS
generation is activated. When
ADD_FCS = 0, FCS generation is
controlled by DXMTFCS.
ADD_FCS is set by the host, and
u n c h a n g e d by t h e P C n e t - 3 2
controller. This was a reserved bit
in the LANCE (Am7990). This
function differs from the ILACC
function for this bit.
176
STP is set by the host and unchanged by the PCnet-32
controller.
24
Am79C965A
ENP
END OF PACKET indicates that
this is the last buffer to be used by
the PCnet-32 controller for this
frame. It is used for data chaining
buffers. If both STP and ENP are
set, the frame fits into one buffer
and there is no data chaining. ENP
is set by the host and unchanged
by the PCnet-32 controller.
23-16 RES
Reserved locations.
15-12 ONES
Must be Ones. This field is written
by the host and unchanged by the
PCnet-32 controller.
11-0
BUFFER BYTE COUNT is the
usable length of the buffer pointed
to by this descriptor, expressed as
the two’s complement of the length
of the buffer. This is the number of
bytes from this buffer that will be
t ra n s m i t t ed by t h e P C n e t- 3 2
controller. This field is written by
the host and unchanged by the
PCnet-32 controller. There are no
minimum buffer size restrictions.
BCNT
UFLO is set by the PCnet-32
controller and cleared by the host.
29
EXDEF
28
LCOL LATE COLLISION indicates that a
collision has occurred after the slot
time of the channel has elapsed.
The PCnet-32 controller does not
retry on late collisions. LCOL is set
by the PCnet-32 controller and
cleared by the host.
27
LCAR
LOSS OF CARRIER is set in AUI
mode when the carrier is lost
during an PCnet-32 controllerinitiated transmission. The
PCnet-32 controller does not re-try
upon loss of carrier. It will continue
to transmit the whole frame until
done. In 10BASE-T mode LCAR
will be set when the T-MAU is in
Link Fail state. LCAR is not valid in
Internal Loopback Mode. LCAR is
set by the PCnet-32 controller and
cleared by the host.
26
RTRY
RETRY ERROR indicates that the
transmitter has failed after 16
attempts to successfully transmit a
message, due to repeated
collisions on the medium. If DRTY
= 1 in the MODE register, RTRY
will set after 1 failed transmission
a t t e m p t . RT RY i s s e t by t h e
PCnet-32 controller and cleared by
the host.
TMD2
Bit
Name
Description
31
BUFF
BUFFER ERROR is set by the
PCnet-32 controller during
transmission when the PCnet-32
controller does not find the ENP
flag in the current buffer and does
not own the next buffer. This can
occur in either of two ways:
1. The OWN bit of the next buffer
is zero.
2. FIFO underflow occurred before
the PCnet-32 controller
obtained the STATUS byte
(TMD1[31:24]) of the next
descriptor. BUFF is set by the
PCnet-32 controller and cleared
by the host. BUFF error will turn
off the transmitter (CSR0,
TXON = 0).
25-16 TDR
If a Buffer Error occurs, an Underflow Error will also occur. BUFF
is not valid when LCOL or RTRY
error is set during transmit data
chaining. BUFF is set by the
PCnet-32 controller and cleared by
the host.
30
UFLO
UNDERFLOW ERROR indicates
that the transmitter has truncated a
message due to data late from
memory. UFLO indicates that the
FIFO has emptied before the end
of the frame was reached. Upon
UFLO error, the transmitter is
tur ned off (CSR0, TXON = 0).
Am79C965A
EXCESSIVE DEFERRAL. Indicates that the transmitter has
experienced Excessive Deferral on
this transmit frame, where
Excessive Deferral is defined in
ISO 8802-3 (IEEE/ANSI 802.3).
TIME
DOMAIN
REFLECTOMETRY reflects the state of an
inter nal PCnet-32 controller
counter that counts at a 10 MHz
rate from the start of a transmission to the occurrence of a collision or loss of carrier. This value is
useful in deter mining the approximate distance to a cable fault.
The TDR value is written by the
PCnet-32 controller and is valid
only if RTRY is set.
Note that 10 MHz gives very low
resolution and in general has not
been found to be par ticular ly
u s e f u l . T h i s fe a t u r e i s h e r e
primarily to maintain full
177
compatibility with the LANCE
(Am7990).
15-4
RES
Reserved locations.
3-0
TRC
TRANSMIT RETRY COUNT. Indicates the number of transmit
retries of the associated packet.
The maximum count is 15. However, if a RETRY error occurs, the
count will roll over to zero. In this
case only, the Transmit Retr y
178
Count value of zero should be
interpreted as meaning 16. TRC is
written by the PCnet-32 controller
into the last transmit descriptor of a
frame, or when an error terminates
a frame. Valid only when OWN = 0.
TMD3
Bit
Name
Description
31-0
RES
Reserved locations. All bits must
be ZEROs.
Am79C965A
REGISTER SUMMARY
CSRs — Control and Status Registers
Comments
Use
RAP
Addr
Symbol
Default Value After
H_RESET
(Hex)
00
CSR0
xxxx 0004
PCnet-32 Controller Status
R
01
CSR1
xxxx xxxx
Lower IADR: maps to location 16
S
02
CSR2
xxxx xxxx
Upper IADR: maps to location 17
S
03
CSR3
xxxx 0000
Interrupt Masks and Deferral Control
S
04
CSR4
xxxx 0115
Test and Features Control
R
05
CSR5
xxxx 0000
Reserved
T
06
CSR6
xxxx xxxx
RXTX: RX/TX Descriptor Table Length
T
07
CSR7
xxxx 0000
Reserved
T
08
CSR8
xxxx xxxx
LADR0: Logical Address Filter — LADRF[15:0]
T
09
CSR9
xxxx xxxx
LADR1: Logical Address Filter — LADRF[31:16]
T
10
CSR10
xxxx xxxx
LADR2: Logical Address Filter — LADRF[47:32]
T
11
CSR11
xxxx xxxx
LADR3: Logical Address Filter — LADRF[63:48]
T
12
CSR12
xxxx xxxx
PADR0: Physical Address Register — PADR[15:0][
T
13
CSR13
xxxx xxxx
PADR1: Physical Address Register — PADR[31:16]
T
14
CSR14
xxxx xxxx
PADR2: Physical Address Register — PADR[47:32]
T
15
CSR15
See Register Desc.
MODE: Mode Register
S
16
CSR16
xxxx xxxx
IADR: Base Address of INIT Block Lower (Copy)
T
17
CSR17
xxxx xxxx
IADR: Base Address of INIT Block Upper (Copy)
T
18
CSR18
xxxx xxxx
CRBA: Current RCV Buffer Address Lower
T
19
CSR22
xxxx xxxx
CRBA: Current RCV Buffer Address Upper
T
20
CSR20
xxxx xxxx
CXBA: Current XMT Buffer Address Lower
T
21
CSR21
xxxx xxxx
CXBA: Current XMT Buffer Address Upper
T
22
CSR22
xxxx xxxx
NRBA: Next RCV Buffer Address Lower
T
23
CSR23
xxxx xxxx
NRBA: Next RCV Buffer Address Upper
T
24
CSR24
xxxx xxxx
BADR: Base Address of RCV Ring Lower
S
25
CSR25
xxxx xxxx
BADR: Base Address of RCV Ring Upper
S
27
CSR27
xxxx xxxx
NRDA: Next RCV Descriptor Address Upper
T
28
CSR28
xxxx xxxx
CRDA: Current RCV Descriptor Address Lower
T
29
CSR29
xxxx xxxx
CRDA: Current RCV Descriptor Address Upper
T
30
CSR30
xxxx xxxx
BADX: Base Address of XMT Ring Lower
S
31
CSR31
xxxx xxxx
BADX: Base Address of XMT Ring Upper
S
32
CSR32
xxxx xxxx
NXDA: Next XMT Descriptor Address Lower
T
33
CSR33
xxxx xxxx
NXDA: Next XMT Descriptor Address Upper
T
34
CSR34
xxxx xxxx
CXDA: Current XMT Descriptor Address Lower
T
35
CSR35
xxxx xxxx
CXDA: Current XMT Descriptor Address Upper
T
36
CSR36
xxxx xxxx
NNRDA: Next Next Receive Descriptor Address Lower
T
Key:
x = undefined
R = Running Register
S = Setup Register
Am79C965A
T = Test Register
179
REGISTER SUMMARY (continued)
CSRs — Control and Status Registers
Use
Symbol
Default Value After
H_RESET
(Hex)
37
CSR37
xxxx xxxx
NNRDA: Next Next Receive Descriptor Address Upper
T
38
CSR38
xxxx xxxx
NNXDA: Next Next Transmit Descriptor Address Lower
T
39
CSR39
xxxx xxxx
NNXDA: Next Next Transmit Descriptor Address Upper
T
40
CSR40
xxxx xxxx
CRBC: Current RCV Status and Byte Count Lower
T
41
CSR41
xxxx xxxx
CRBC: Current RCV Status and Byte Count Upper
T
42
CSR42
xxxx xxxx
CXBC: Current XMT Status and Byte Count Lower
T
43
CSR43
xxxx xxxx
CXBC: Current XMT Status and Byte Count Upper
T
44
CSR44
xxxx xxxx
NRBC: Next RCV Status and Byte Count Lower
T
45
CSR45
xxxx xxxx
NRBC: Next RCV Status and Byte Count Upper
T
46
CSR46
xxxx xxxx
POLL: Poll Time Counter
T
47
CSR47
xxxx xxxx
PI: Polling Interval
S
48
CSR48
xxxx xxxx
TMP2: Temporary Storage Lower
T
49
CSR48
xxxx xxxx
TMP2: Temporary Storage Upper
T
50
CSR50
xxxx xxxx
TMP3: Temporary Storage Lower
T
51
CSR50
xxxx xxxx
TMP3: Temporary Storage Upper
T
52
CSR52
xxxx xxxx
TMP4: Temporary Storage Lower
T
53
CSR52
xxxx xxxx
TMP4: Temporary Storage Upper
T
54
CSR54
xxxx xxxx
TMP5: Temporary Storage Lower
T
55
CSR54
xxxx xxxx
TMP5: Temporary Storage Upper
T
56
CSR56
xxxx xxxx
TMP6: Temporary Storage Lower
T
57
CSR56
xxxx xxxx
TMP6: Temporary Storage Upper
T
58
CSR58
See Register Desc.
SWS: Software Style
S
59
CSR59
xxxx 0105
IR: IR Register
T
60
CSR60
xxxx xxxx
PXDA: Previous XMT Descriptor Address Lower
T
61
CSR61
xxxx xxxx
PXDA: Previous XMT Descriptor Address Upper
T
62
CSR62
xxxx xxxx
PXBC: Previous XMT Status and Byte Count Lower
T
63
CSR63
xxxx xxxx
PXBC: Previous XMT Status and Byte Count Upper
T
64
CSR64
xxxx xxxx
NXBA: Next XMT Buffer Address Lower
T
65
CSR65
xxxx xxxx
NXBA: Next XMT Buffer Address Upper
T
66
CSR66
xxxx xxxx
NXBC: Next XMT Status and Byte Count Lower
T
67
CSR67
xxxx xxxx
NXBC: Next XMT Status and Byte Count Upper
T
68
CSR68
xxxx xxxx
XSTMP: XMT Status Temporary Storage Lower
T
69
CSR69
xxxx xxxx
XSTMP: XMT Status Temporary Storage Upper
T
70
CSR70
xxxx xxxx
RSTMP: RCV Status Temporary Storage Lower
T
71
CSR71
xxxx xxxx
RSTMP: RCV Status Temporary Storage Upper
T
72
CSR72
xxxx xxxx
RCVRC: RCV Ring Counter
T
Key:
180
Comments
RAP
Addr
x = undefined
R = Running Register
S = Setup Register
Am79C965A
T = Test Register
REGISTER SUMMARY
CSRs — Control and Status Registers (continued)
Comments
Use
RAP
Addr
Symbol
Default Value After
H_RESET
(Hex)
73
CSR73
xxxx xxxx
Reserved
T
74
CSR74
xxxx xxxx
XMTRC: XMT Ring Counter
T
75
CSR75
xxxx xxxx
Reserved
T
76
CSR76
xxxx xxxx
RCVRL: RCV Ring Length
S
77
CSR77
xxxx xxxx
Reserved
T
78
CSR78
xxxx xxxx
XMTRL: XMT Ring Length
S
79
CSR79
xxxx xxxx
Reserved
T
80
CSR80
xxxx E810
Burst and FIFO Threshold Control
S
81
CSR81
xxxx xxxx
Reserved
T
82
CSR82
xxxx 0000
DMABAT: Bus Acitivty Timer
S
83
CSR83
xxxx xxxx
Reserved
T
84
CSR84
xxxx xxxx
DMABA: DMA Address Lower
T
85
CSR85
xxxx xxxx
DMABA: DMA Address Upper
T
86
CSR86
xxxx xxxx
DMABC: Buffer Byte Counter
T
87
CSR87
xxxx xxxx
Reserved
T
88
CSR88
0243 0003
Chip ID Lower
T
89
CSR89
xxxx 0243
Chip ID Upper
T
90
CSR90
xxxx xxxx
Reserved
T
91
CSR91
xxxx xxxx
Reserved
T
92
CSR92
xxxx xxxx
RCON: Ring Length Conversion
T
93
CSR93
xxxx xxxx
Reserved
T
94
CSR94
xxxx 0000
XMTTDR: Transmit Time Domain Reflectometry Count
T
95
CSR95
xxxx xxxx
Reserved
T
96
CSR96
xxxx xxxx
SCR0: BIU Scratch Register 0 Lower
T
97
CSR97
xxxx xxxx
SCR0: BIU Scratch Register 0 Upper
T
98
CSR98
xxxx xxxx
SCR1: BIU Scratch Register 1 Lower
T
99
CSR99
xxxx xxxx
SCR1: BIU Scratch Register 1 Upper
T
100
CSR100
xxxx 0200
Bus Time-Out
S
101
CSR101
xxxx xxxx
Reserved
T
102
CSR102
xxxx xxxx
Reserved
T
103
CSR103
xxxx 0105
Reserved
T
104
CSR104
xxxx xxxx
SWAP: Swap Register Lower
T
105
CSR105
xxxx xxxx
SWAP: Swap Register Upper
T
106
CSR106
xxxx xxxx
Reserved
T
107
CSR107
xxxx xxxx
Reserved
T
108
CSR108
xxxx xxxx
BMSCR: BMU Scratch Register Lower
T
109
CSR109
xxxx xxxx
BMSCR: BMU Scratch Register Upper
T
Key:
x = undefined
R = Running Register
S = Setup Register
Am79C965A
T = Test Register
181
REGISTER SUMMARY (continued)
CSRs — Control and Status Registers
Use
Symbol
Default Value After
H_RESET
(Hex)
110
CSR110
xxxx xxxx
Reserved
T
111
CSR111
xxxx xxxx
Reserved
T
112
CSR112
xxxx 0000
Missed Frame Count
R
113
CSR113
xxxx xxxx
Reserved
T
114
CSR114
xxxx 0000
Receive Collision Count
R
115
CSR115
xxxx xxxx
Reserved
T
116
CSR116
xxxx xxxx
Reserved
T
117
CSR117
xxxx xxxx
Reserved
T
118
CSR118
xxxx xxxx
Reserved
T
119
CSR119
xxxx xxxx
Reserved
T
120
CSR120
xxxx xxxx
Reserved
T
121
CSR121
xxxx xxxx
Reserved
T
122
CSR122
See Register Desc.
Receive Frame Alignment Control
S
123
CSR123
xxxx xxxx
Reserved
T
124
CSR124
See Register Desc.
BMU Test
T
125
CSR125
xxxx xxxx
Reserved
T
126
CSR126
xxxx xxxx
Reserved
T
127
CSR127
xxxx xxxx
Reserved
T
Key:
182
Comments
RAP
Addr
x = undefined
R = Running Register
S = Setup Register
Am79C965A
T = Test Register
REGISTER SUMMARY
BCR — Bus Configuration Registers
RAP
Addr.
Mnemonic
Default
(Hex)
Programmability
Name
User
EEPROM
SRM
0
MSRDA
0005
Master Mode Read Active
No
No
No
1
MSWRA
0005
Master Mode Write Active
No
No
No
2
MC
N/A*
Miscellaneous Configuration
Yes
Yes
Yes
3
Reserved
N/A
No
No
No
4
LNKST
00C0
Link Status (Default)
Yes
No
No
5
LED1
0084
Receive (Default)
Yes
No
No
6
LED2
0088
Receive Polarity (Default)
Yes
No
No
Transmit (Default)
Yes
No
No
No
No
No
Yes
Yes
Yes
7
LED3
0090
8–15
Reserved
N/A
16
IOBASEL
N/A*
17
IOBASEU
N/A*
I/O Base Address Upper
Yes
Yes
Yes
18
BSBC
2101
Burst Size and Bus Control
Yes
Yes
No
19
EECAS
0002
EEPROM Control and Status
Yes
No
No
20
SWSTYLE
0000
Software Style
Yes
No
No
21
INTCON
N/A*
Interrupt Control
Yes
Yes
Yes
I/O Base Address Lower
Key: SRM = Software Relocatable Mode
* Registers marked with an asterisk (*) have no default value, since they are not observable without first being programmed, either through
the EEPROM read operation or through the Software Relocatable Mode. Therefore, the only observable values for these registers are
those that have been programmed and a default value is not applicable.
Am79C965A
183
ABSOLUTE MAXIMUM RATINGS
OPERATING RANGES
Storage Temperature .................... –65°C to +150°C
Commercial (C) Devices
Ambient Temperature
Under Bias ..................................... –65°C to +125°C
Temperature (TA) ................................. 0°C to +70°C
Supply Voltages
Supply Voltage to AVSS
or DVSS (AVDD, DVDD)..................... –0.3 V to +6.0 V
(AVDD, DVDD) ..............................................5 V ± 5%
All inputs within the range: ....... AVSS – 0.5 V ≥ Vin ≥
AVDD + 0.5 V, or
DVSS – 0.5 V ≥ Vin ≥
DVDD + 0.5 V
Stresses above those listed under Absolute Maximum
Ratings may cause permanent device failure. Functionality at
or above these limits is not implied. Exposure to Absolute
Maximum Ratings for extended periods may affect device
reliability. Programming conditions may differ.
Operating ranges define those limits between which the
functionality of the device is guaranteed.
DC CHARACTERISTICS over COMMERCIAL operating ranges unless otherwise specified
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
0.8
V
Digital Input Voltage
VIL
Input LOW Voltage
VIH
Input HIGH Voltage
2.0
V
Digital Ouput Voltage
VOL
Output LOW Voltage
IOL1 = 8 mA, IOL2 = 4 mA
(Notes 1 and 5)
VOH
Output HIGH Voltage (Note
2)
IOH = –4 mA (Note 5)
2.4
VDD = 5 V, VIN = 0 V
–10
–10
0.45
V
V
Digital Input Leakage Current
IIX
Input Leakage Current
(Note 3)
10
µA
Digital Ouput Leakage Current
IOZL
Output Low Leakage
Current (Note 4)
VOUT = 0 V
IOZH
Output High Leakage
Current (Note 4)
VOUT = VDD
VILX
XTAL1 Input LOW
Threshold Voltage
VIN = External Clock
VILHX
XTAL1 Input HIGH
Threshold Voltage
VIN = External Clock
XTAL1 Input LOW Current
VIN = 0 V
µA
10
µA
–0.5
0.8
V
VDD–0.8
VDD + 0.5
V
–120
–10
0
µA
+10
µA
120
µA
400
µA
Crystal Input
IILX
Active
Sleep
IIHX
XTAL1 Input HIGH Current
VIN = VDD
Active
Sleep
0
Attachment Unit Interface
184
IIAXD
Input Current at DI+
and DI–
–1 V < VIN < AVDD +0.5 V
–500
+500
µA
IIAXC
Input Current at
CI+ and CI–
–1 V < VIN < AVDD
–500
+500
µA
VAOD
Differential Output Voltage
|(DO+)–(DO–)|
RL = 78 Ω
630
1200
mV
VAODOFF
Transmit Differential Output
Idle Voltage
RL = 78 Ω (Note 9)
–40
+40
mV
+0.5 V
Am79C965A
DC CHARACTERISTICS over COMMERCIAL operating ranges unless otherwise specified
(continued)
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
Attachment Unit Interface (Continued)
Transmit Differential
Output Idle Current
RL = 78 Ω (Note 8)
–1
+1
mA
VCMT
Transmit Output Common
Mode Voltage
RL = 78 Ω
2.5
AVDD
V
VODI
DO± Transmit Differential
Output Voltage Imbalance
RL = 78 Ω (Note 7)
25
mV
VATH
Receive Data Differential
Input Threshold
–35
35
mV
VASQ
DI± and CI± Differential
Input Threshold (Squelch)
–275
–160
mV
VIRDVD
DI± and CI± Differential
Mode Input Voltage Range
–1.5
+1.5
V
AVDD–3.0
AVDD–1.0
V
–100
mV
500
µA
IAODOFF
VICM
DI± and CI± Input Bias
Voltage
IIN = 0 mA
VOPD
DO± Undershoot Voltage at
Zero Differential on Transmit
Return to Zero (ETD)
(Note 9)
Twisted Pair Interface
IIRXD
Input Current at RXD±
RRXD
RXD± Differential Input
Resistance
VTIVB
RXD+, RXD– Open Circuit
Input Voltage (Bias)
IIN = 0 mA
VTIDV
Differential Mode Input
AVDD = 5 V
AVSS < VIN < AVDD
–500
KΩ
10
Voltage Range (RXD±)
AVDD – 1.5
V
–3.1
+3.1
V
300
520
mV
–520
–300
mV
150
293
mV
–293
–150
mV
AVDD
– 3.0
VTSQ+
RXD Positive Squelch
Threshold (Peak)
Sinusoid
5 MHz ≤ f ≤10 MHz
VTSQ–
RXD Negative Squelch
Threshold (Peak)
Sinusoid
RXD Post-Squelch
Positive Threshold (Peak)
Sinusoid
VTHS–
RXD Post-Squelch
Negative Threshold (Peak)
Sinusoid
5 MHz ≤ f ≤10 MHz
VLTSQ+
RXD Positive Squelch
Threshold (Peak)
LRT = LOW
180
312
mV
VLTSQ–
RXD Negative Squelch
Threshold (Peak)
LRT = LOW
–312
–180
mV
VLTHS+
RXD Post-Squelch Positive
Threshold (Peak)
LRT = LOW
90
176
mV
VLTHS–
RXD Post-Squelch
Negative Threshold (Peak)
LRT = LOW
–176
–90
mV
VTHS+
5 MHz ≤ f ≤10 MHz
5 MHz ≤ f ≤10 MHz
Am79C965A
185
DC CHARACTERISTICS over COMMERCIAL operating ranges unless otherwise specified
(continued)
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
–35
35
mV
DVDD – 0.6
DVDD
V
DVSS
DVSS + 0.6
V
–40
+40
mV
40
mV
Twisted Pair Interface (continued)
VRXDTH
RXD Switching Threshold
(Note 4)
VTXH
TXD± and TXP± Output
HIGH Voltage
DVSS = 0 V
VTXL
TXD± and TXP± Output
LOW Voltage
DVDD = +5 V
VTXI
TXD± and TXP±
Differential Output
Voltage Imbalance
VTXOFF
RTX
TXD± and TXP± Idle
Output Voltage
TXD± Differential Driver
Output Impedance
(Note 4)
40
Ω
TXP± Differential Driver
Output Impedance
(Note 4)
80
Ω
0.8
V
IEEE 1149.1 (JTAG) Test Port
VIL
TCK, TMS, TDI
VIH
TCK, TMS, TDI
VOL
TDO
IOL = 2.0 mA
VOH
TDO
IOH = –0.4 mA
IIL
TCK, TMS, TDI
VDD = 5.5 V, VI = 0.5 V
–200
µA
IIH
TCK, TMS, TDI
VDD =5.5 V, VI = 2.7V
–100
µA
IOZ
TDO
VOUT = 0 V, VOUT = VDD
+10
µA
2.0
V
0.4
2.4
–10
V
V
Power Supply Current
Active Power Supply Current
XTAL1 = 20 MHz
100
mA
Coma Mode Power
Supply Current
SLEEP active
200
µA
Snooze Mode Power
Supply Current
AWAKE bit set active
10
mA
CIN
Input Pin Capacitance
FC = 1 MHz (Note 6)
10
pF
CO
I/O or Output Pin Capacitance
FC = 1 MHz (Note 6)
10
pF
BCLK Pin Capacitance
FC = 1 MHz (Note 6)
10
pF
IDD
IDDCOMA
IDDSNOOZE
Pin Capacitance
CCLK
Notes:
1. IOL1 = 8 mA applies to all output and I/O pins except HOLD and LDEV. IOL2 = 4 mA applies to HOLD and LDEV only.
2. VOH does not apply to open-drain output pins.
3. IIX applies to all input only pins except DI±, CI±, and XTAL1.
4. IOZL and IOZH apply to all three-state output pins and bi-directional pins.
5. Outputs are CMOS and will be driven to rail if the load is not resistive.
6. Parameter not tested; value determined by characterization.
7. Tested, but to values in excess of limits. Test accuracy not sufficient to allow screening guard bands.
8. Correlated to other tested parameters – not tested directly.
9. Test not implemented to data sheet specification.
186
Am79C965A
SWITCHING CHARACTERISTICS: BUS INTERFACE
Min
Max
Unit
CLK Frequency
1
33
MHz
t1
CLK Period
30
1000
ns
t2
CLK High time
@ 2.0 V
14
ns
t3
CLK Low Time
@ 0.8 V
14
ns
t4
CLK Fall Time
2.0 V to 0.8 V (Note 1)
3
ns
t5
CLK Rise Time
0.8 V to 2.0 V (Note 1)
3
ns
12
ns
18
ns
Parameter
Symbol
Parameter Description
Test Conditions
(CL = 50 pF
Unless Otherwise Noted)
Clock Timing
Output and Float Delay Timing
t6
A2–A31, BE0–BE3, M/IO, D/C,
W/R, ADS, HOLD, HLDAO,
INTR, EADS, RDY Valid Delay
t7
A2–A31, BE0–BE3, M/IO, D/C,
W/R, ADS, RDY Float Delay
3
t8
ns
t8a
BLAST Valid Delay
t9
BLAST Float Delay
t10
D0–D31 Data Valid Delay
t11
D0–D31 Data Float Delay
t12
(This symbol is not used)
t13
(This symbol is not used)
3
3
12
ns
18
ns
12
ns
18
ns
Setup and Hold Timing
t14
LBS16 Setup time
5
ns
t15
LBS16 Hold Time
2
ns
t16
BRDY, RDYRTN Setup Time
5
ns
t17
BRDY, RDYRTN Hold Time
2
ns
t18
HOLDI, AHOLD, HLDA, SLEEP
Setup Time
6
ns
t18a
BOFF Setup Time
8
ns
t19
HOLDI, BOFF, AHOLD, HLDA,
SLEEP Hold Time
2
ns
t20
RESET, CLKRESET
Setup Time
5
ns
t21
RESET, CLKRESET
Hold Time
2
ns
t22
D0–D31, A2–A31, BE0–BE3,
ADS, M/IO, D/C, W/R
Setup Time
4
ns
t23
D0–D31, A2–A31, BE0–BE3,
ADS, M/IO, D/C, W/R
Hold Time
2
ns
Am79C965A
187
SWITCHING CHARACTERISTICS: BUS INTERFACE (CONTINUED)
Parameter
Symbol
Parameter Description
Test Conditions
(CL = 50 pF
Unless Otherwise Noted)
Min
Max
Unit
10
MHz
JTAG (IEEE 1149.1) Test Signal Timing
t24
TCK Frequency
t25
TCK Period
t26
TCK High Time
t27
TCK Low Time
t28
TCK Rise Time
4
ns
t29
TCK Fall Time
4
ns
t30
TDI, TMS Setup Time
16
ns
t31
TDI, TMS Hold Time
10
ns
t32
TDO Valid Delay
3
t33
TDO Float Delay
t34
All Outputs (Non-Test)
Valid Delay
t35
All Outputs (Non-Test)
Float Delay
t36
All Inputs (Non-Test))
Setup Time
8
ns
t37
All Inputs (Non-Test) Hold Time
7
ns
100
ns
@ 2.0 V
45
ns
@ 0.8 V
45
ns
3
60
ns
50
ns
25
ns
36
ns
LDEV Timing
t38
ADS Asserted to LDEV
Asserted
t39
LDEV Valid Pulse Width
20
ns
tBCLK
Data Bus Activation Timing (Slave)
t40
1
Data Bus Driven After ADS
Sampled Asserted
BCLK
HOLD Inactive Timing
t41
HOLD Deasserted to HOLD
Asserted
2 BCLK –15 ns
EEPROM Timing
t42
EESK Frequency
(Note 2)
650
t43
EESK HIGH Time
(Note 2)
780
ns
t44
EESK LOW Time
(Note 2)
780
ns
t45
EECS, EEDI, SHFBUSY
Valid Output Delay from EESK
(Note 2)
–15
t46
EECS LOW Time
(Note 2)
1550
ns
t47
EEDO Setup Time to EESK
50
ns
t48
EEDO Hold Time to EESK
0
ns
+15
kHz
ns
Notes:
1. Not 100% tested; guaranteed by design characterization.
2. Parameter value is given for automatic EEPROM read operation. When EEPROM port (BCR19) is used to
access the EEPROM, software is responsible for meeting EEPROM timing requirements.
188
Am79C965A
SWITCHING CHARACTERISTICS: 10BASE-T INTERFACE
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
250
350
ns
Transmit Timing
tTETD
Transmit Start of Idle
tTR
Transmitter Rise Time
(10% to 90%)
5.5
ns
tTF
Transmitter Fall Time
(90% to 10%)
5.5
ns
tTM
Transmitter Rise and Fall
Time Mismatch
1
ns
8
24
ms
tPERLP
Idle Signal Period
tPWLP
Idle Link Pulse Width
(Note 1)
75
120
ns
tPWPLP
Predistortion Idle Link Pulse
Width
(Note 1)
45
55
ns
tJA
Transmit Jabber Activation Time
20
150
ms
tJR
Transmit Jabber Reset Time
250
750
ms
Transmit Jabber Recovery Time
(minimum time gap between
transmitted frames to prevent
jabber activation)
1.0
tJREC
µs
Receive Timing
tPWNRD
RXD Pulse Width Not to Turn
Off Internal Carrier Sense
VIN > VTHS (min)
tPWROFF
RXD Pulse Width to Turn Off
VIN > VTHS (min)
136
–
ns
200
ns
tRETD
Receive Start of Idle
200
ns
tRCVON
RCV Asserted Delay
TRON - 50
TRON + 100
ns
tRCVOFF
RCV De-Asserted Delay
20
62
ms
Collision Detection and SQE Test
tCOLON
COL Asserted Delay
750
900
ns
tCOLOFF
COL De-Asserted Delay
20
62
ms
Note:
1. Not tested; parameter guaranteed by characterization.
Am79C965A
189
SWITCHING CHARACTERISTICS: AUI
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
AUI Port
tDOTR
DO+,DO- rise time (10% to 90%)
2.5
5.0
ns
tDOTF
DO+,DO- fall time (90% to 10%)
2.5
5.0
ns
tDORM
DO+,DO- rise and fall time mismatch
–
1.0
ns
tDOETD
DO+/- End of Transmission
200
375
ns
tPWODI
DI pulse width accept/reject
threshold
|VIN| > |VASQ|
(Note 1)
15
45
ns
tPWKDI
DI pulse width maintain/turn-off
threshold
|VIN| > |VASQ|
(Note 2)
136
200
ns
tPWOCI
CI pulse width accept/reject
threshold
|VIN| > |VASQ|
(Note 3)
10
26
ns
tPWKCI
CI pulse width maintain/turn-off
threshold
|VIN| > |VASQ|
(Note 4)
90
160
ns
50.005
ns
Internal MENDEC Clock Timing
tX1
XTAL1 period
VIN = External Clock
49.995
tX1H
XTAL1 HIGH pulse width
VIN = External Clock
20
ns
tX1L
XTAL1 LOW pulse width
VIN = External Clock
20
ns
tX1R
XTAL1 rise time
VIN = External Clock
5
ns
tX1F
XTAL1 fall time
VIN = External Clock
5
ns
Notes:
1.
DI pulses narrower than tPWODI (min) will be rejected; pulses wider than tPWODI (max) will turn internal DI carrier sense
on.
2.
DI pulses narrower than tPWKDI (min) will maintain internal DI carrier sense on; pulses wider than tPWKDI (max) will turn
internal DI carrier sense off.
3.
CI pulses narrower than tPWOCI (min) will be rejected; pulses wider than tPWOCI (max) will turn internal CI carrier sense
on.
4.
CI pulses narrower than tPWKCI (min) will maintain internal CI carrier sense on; pulses wider than tPWKCI (max) will turn
internal CI carrier sense off.
190
Am79C965A
SWITCHING CHARACTERISTICS: GPSI
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
99.99
100.01
ns
Transmit Timing
tGPT1
STDCLK period (802.3 Compliant)
tGPT2
STDCLK High Time
40
60
ns
tGPT3
TXDAT and TXEN delay from ↑ STDCLK
0
70
ns
tGPT4
RXCRS setup before ↑ STDCLK (Last Bit)
tGPT5
RXCRS hold after ↓ TXEN
tGPT6
CLSN active time to trigger collision
tGPT7
tGPT8
210
ns
0
ns
110
ns
CLSN active to ↓ RXCRS to prevent
LCAR assertion
0
ns
CLSN active to ↓ RXCRS for SQE
0
4.0
µs
0
51.2
µs
(Note 1)
Hearbeat Window
tGPT9
CLSN active to ↑ RXCRS for normal collision
Receive Timing
tGPR1
SRDCLK period
(Note 2)
80
120
ns
tGPR2
SRDCLK High Time
(Note 2)
30
80
ns
tGPR3
SRDCLK Low Time
(Note 2)
30
80
ns
tGPR4
RXDAT and RXCRS setup to ↑ SRDCLK
15
ns
tGPR5
RXDAT hold after ↑ SRDCLK
15
ns
tGPR6
RXCRS hold after ↓ SRDCLK
0
ns
tGPR7
CLSN active to first ↑ SRDCLK
(Collision Recognition)
0
ns
tGPR8
CLSN active to ↑ SRDCLK for
Address Type Designation Bit
51.2
µs
tGPR9
CLSN setup to last ↑ SRDCLK for
Collision Recognition
210
ns
tGPR10
CLSN active
110
ns
tGPR11
CLSN inactive setup to first ↑ SRDCLK
300
ns
tGPR12
CLSN inactive hold to last ↑ SRDCLK
300
ns
(Note 3)
Notes:
1.
CLSN must be asserted for a continuous period of 110 nsec or more. Assertion for less than 110 nsec period may or may
not result in CLSN recognition.
2.
RXCRS should meet jitter requirements of IEEE 802.3 specification.
3.
CLSN assertion before 51.2 msec will be indicated as a normal collision. CLSN assertion after 51.2 msec will be considered as a Late Receive Collision.
Am79C965A
191
SWITCHING CHARACTERISTICS: EADI
Parameter
Symbol
192
Parameter Description
Test Conditions
Min
Max
Unit
tEAD1
SRD setup to ↑ SRDCLK
40
ns
tEAD2
SRD hold to ↑ SRDCLK
40
ns
tEAD3
SF/BD change to ↓ SRDCLK
tEAD4
EAR de-assertion to ↑
SRDCLK (first rising edge)
50
tEAD5
EAR assertion after SFD
event (packet rejection)
0
tEAD6
EAR assertion
–15
110
Am79C965A
+15
ns
ns
51,090
ns
ns
KEY TO SWITCHING WAVEFORMS
WAVEFORM
INPUTS
OUTPUTS
Must Be
Steady
Will Be
Steady
May
Change
from H to L
Will Be
Changing
from H to L
May
Change
from L to H
Will Be
Changing
from L to H
Don't Care
Any Change
Permitted
Changing
State
Unknown
Does Not
Apply
Center
Line is High
Impedance
Off" State
KS000010
SWITCHING TEST CIRCUITS
IOL
Sense Point
VTHRESHOLD
CL
IOH
18219-46
Normal and Three-State Outputs
Am79C965A
193
SWITCHING TEST CIRCUITS
AVDD
52.3 Ω
DO+
DO-
Test Point
154 Ω
100 pF
AV
18219-47
AUI DO Switching Test Circuit
DVDD
294 Ω
TXD+
TXD-
Test Point
294 Ω
100 pF
Includes Test
Jig Capacitance
DVSS
18219-48
TXD Switching Test Circuit
DVDD
715 Ω
TXP+
TXP-
Test Point
715 Ω
100 pF
Includes Test
Jig Capacitance
DVSS
18219-49
TXP Outputs Test Circuit
194
Am79C965A
ESTIMATED OUTPUT VALID DELAY VS. LOAD CAPACITANCE
Note that this graph represents change in output delay for estimated conditions.
Maximum output delay (ns)
MAX+6
MAX+4
MAX+2
MAX
MAX–D2
25
50
75
100
125
150
CL (pF)
Notes: This graph will not be linear outside of the CL range shown.
MAX = maximum value given in A.C. characteristics table.
18219-50
Output Delay Versus Load Capacitance Under Estimated Conditions
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
t2
BCLK
2.0V
1.5V
0.8V
t3
0.8V
t5
t4
t1
18219-51
BLCK Waveform
Am79C965A
195
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
Tx
Tx
Tx
BCLK
t6
A2–A31, BE0–BE3, M/IO,
D/C, W/R, ADS,
HOLD, HLDAO, INTR,
RDY, EADS
D0–D31
Min
Valid n
Valid n+1
t10
Min
Max
Valid n
Valid n+1
t8a
BLAST
Max
Min
Max
Valid n
Valid n+1
18219-52
Output Valid Delay Timing
Tx
Tx
Tx
BCLK
t6
A2–A31, BE0–BE3, M/IO,
D/C, W/R, ADS
Min
t11
Valid n
t8a
BLAST
t7
Valid n
t10
D0–D31
Min
Min
t9
Valid n
18219-53
Maximum Float Delay Timing
196
Am79C965A
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
Tx
Tx
BCLK
t14
t15
t18
t19
t20
t21
t22
t23
t18a
t19
LBS16
HOLDI, AHOLD,
HLDA, SLEEP
RESET,
CLKRESET
A2–A31, BE0–BE3,
ADS, D/C,
M/IO, W/R
BOFF
18219-54
Input Setup and Hold Timing
T2
Tx
BCLK
t16
t17
t22
t23
RDY,
BRDY,
RDYRTN
D0–D31
18219-55
Ready Data Setup and Hold Timing
Am79C965A
197
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
t26
TCK
2.0V
1.5V
0.8V
t27
0.8V
t28
t29
t25
18219-56
JTAG (IEEE 1149.1) TCK Waveform
t25
TCK
t30
t31
TDI, TMS
t32
t33
t34
t35
TDO
Output
Signals
t36
t37
Input
Signals
18219-57
JTAG (IEEE 1149.1) Test Signal Timing
198
Am79C965A
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
Tx
Tx
Tx
BCLK
A2–A31, BE0–BE3,
M/IO, D/C, W/R, RDY
Valid PCnet-32 Address
ADS
t38
Min
Max
LDEV
t39
Valid PCnet-32 Data
D0–D31
t40
18219-58
LDEV Timing and Data Bus Activation Timing
Tx
Tx
Tx
BCLK
t41
HOLD
HLDA
18219-59
HOLD Inactive Timing
Am79C965A
199
SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE
EESK
EECS
EEDI
0
1
1
0
A5
A4
A3
A2
A1
A0
EEDO
D15
SHFBUSY
D14
D13
D2
D3
D0
Falling transition on SHFBUSY after 17th word read if the
checksum adjust byte in byte 1Fh of EEPROM is correct.
18219-60
Automatic EEPROM Read Functional Timing
t43
t47
t44
EESK
t48
t45
Stable
EEDO
t46
EECS
EEDI
SHFBUSY
18219-61
Automatic EEPROM Read Timing
200
Am79C965A
SWITCHING WAVEFORMS: 10BASE-T INTERFACE
tTR
tTF
TXD+
tTETD
TXP+
TXD-
TXP-
XMT
18219-62
Transmit Timing
tPWPLP
TXD+
TXP+
TXD-
TXPtPWLP
tPERLP
18219-63
Idle Link Test Pulse
Am79C965A
201
SWITCHING WAVEFORMS: 10BASE-T INTERFACE
VTSQ+
VTHS+
RXD±
VTHS–
VTSQ–
18219-64
Receive Thresholds (LRT = 0)
VLTSQ+
VLTHS+
RXD±
VLTHS–
VLTSQ–
18219-65
Receive Threshold (LRT = 1)
202
Am79C965A
SWITCHING WAVEFORMS: AUI
tX1H
XTAL1
tX1L
tX1F
tX1R
tXI
ISTDCLK
(Note 1)
ITXEN
(Note 1)
1
1
ITXDAT+
(Note 1)
1
1
0
0
tDOTR
tDOTF
DO+
DO–
1
DO±
Note 1:
Note 1: Internal signal and is shown for clarification only.
18219-66
Transmit Timing—Start of Packet
XTAL1
ISTDCLK
(Note 1)
ITXEN
(Note 1)
1
1
ITXDAT+
(Note 1)
0
0
DO+
DO–
DO±
1
Bit (n–2)
0
tDOETD
Typical > 200 ns
0
Bit (n–1)
Bit (n)
Note 1: Internal signal and is shown for clarification only.
18219-67
Transmit Timing—End of Packet (Last Bit = 0)
Am79C965A
203
SWITCHING WAVEFORMS: AUI
XTAL1
ISTDCLK
(Note 1)
ITXEN
(Note 1)
1
1
1
ITXDAT+
(Note 1)
0
DO+
DO–
DO±
1
Bit (n–2)
0
tDOETD
Typical > 250 ns
Bit (n–1) Bit (n)
Note 1: Internal signal and is shown for clarification only.
Transmit Timing—End of Packet (Last Bit = 1)
204
Am79C965A
18219-68
SWITCHING WAVEFORMS: AUI
tPWKDI
DI+/–
VASQ
tPWKDI
tPWODI
18219-69
Receiving Timing Diagram
tPWKCI
CI+/–
VASQ
tPWOCI
tPWKCI
18219-70
Collision Timing Diagram
tDOETD
DO+/–
40 mV
0V
100 mV max.
80 Bit Times
18219-71
Port DO ETD Waveform
Am79C965A
205
SWITCHING WAVEFORMS: GPSI
(First Bit Preamble)
t GPT1
(Last Bit )
t GPT2
Transmit
Clock
(STDCLK)
t GPT3
Transmit
Data
(TXDAT)
t GPT3
t GPT3
Transmit
Enable
(TXEN)
t GPT4
Carrier
Present
(RXCRS)
(Note 1)
t GPT5
t GPT9
t GPT6
Collision
(CLSN)
(Note 2)
t GPT7
t GPT8
Notes:
1. If RXCRS is not present during transmission, LCAR bit in TMD2 will be set.
2. If CLSN is not present during or shortly after transmission, CERR in CSR0 will be set.
18219-72
Transmit Timing
(First Bit Preamble)
(Address Type Designation Bit) (Last Bit)
tGPR1
tGPR2
Receive
Clock
(SRDCLK)
Receive
Data
(RXDAT)
tGPR5
tGPR4
Collision
(CLSN),
Inactive
tGPR5
tGPR4
tGPR6
Carrier
Present
(RXCRS)
Collision
(CLSN),
Active
tGPR3
tGPR8
tGPR9
tGPR10
tGPR7
tGPR11
tGPR12
(No Collision)
18219-73
Receive Timing
206
Am79C965A
SWITCHING WAVEFORMS: EADI
Preamble
Data Field
SRDCLK
One Zero One
SRD
tEAD1
SF/BD
tEAD4
SFD
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4
Bit 8 Bit 0
Bit 7 Bit 8
tEAD2
tEAD3
tEAD3
Accept
EAR
tEAD5
Reject
tEAD6
18219-74
EADI Reject Timing
Am79C965A
207
PHYSICAL DIMENSIONS*
PQR160
Plastic Quad Flat Pack Trimmed and Formed
PQR 160
Dwg Rev AA; 08/00
208
Am79C965A
APPENDIX A
PCnet-32 Compatible Media
Interface Modules
PCNET-32 COMPATIBLE 10BASE-T
FILTERS AND TRANSFORMERS
The table below provides a sample list of PCnet-32 compatible 10BASE-T filter and transformer modules available
from various vendors. Contact the respective manufacturer for a complete and updated listing of components.
Manufacturer
Part No.
Package
Filters
and
Transformers
Filters
Transformers
and Choke
Filters
Transformers
Dual Choke
Bel Fuse
A556-2006-DE
16-pin 0.3” DIL
√
Bel Fuse
0556-2006-00
14-pin SIP
√
Bel Fuse
0556-2006-01
14-pin SIP
√
Bel Fuse
0556-6392-00
16-pin 0.5” DIL
√
Halo Electronics
FD02-101G
16-pin 0.3” DIL
Halo Electronics
FD12-101G
16-pin 0.3” DIL
Halo Electronics
FD22-101G
16-pin 0.3” DIL
PCA Electronics
EPA1990A
16-pin 0.3” DIL
PCA Electronics
EPA2013D
16-pin 0.3” DIL
PCA Electronics
EPA2162
16-pin 0.3” SIP
Pulse Engineering
PE-65421
16-pin 0.3” DIL
Pulse Engineering
PE-65434
16-pin 0.3” SIL
√
Pulse Engineering
PE-65445
16-pin 0.3” DIL
√
Pulse Engineering
PE-65467
12-pin 0.5”
SMT
Valor Electronics
PT3877
16-pin 0.3” DIL
Valor Electronics
FL1043
16-pin 0.3” DIL
Filters
Transformers Dual
Chokes
√
√
√
√
√
√
√
√
√
√
PCnet-32 Compatible AUI Isolation
Transformers
The table below provides a sample list of PCnet-32 compatible AUI isolation transformers available from various vendors. Contact the respective manufacturer for a complete and updated listing of components.
Manufacturer
Bel Fuse
Bel Fuse
Halo Electronics
Halo Electronics
PCA Electronics
Pulse Engineering
Pulse Engineering
Valor Electronics
Valor Electronics
Part No.
A553-0506-AB
S553-0756-AE
Package
16-pin 0.3” DIL
16-pin 0.3” SMD
50 µH
75 µH
Description
TD01-0756K
16-pin 0.3” DIL
75 µH
TG01-0756W
EP9531-4
16-pin 0.3” SMD
16-pin 0.3” DIL
75 µH
50 µH
PE64106
16-pin 0.3” DIL
PE65723
LT6032
16-pin 0.3” SMT
16-pin 0.3” DIL
50 µH
75 µH
ST7032
16-pin 0.3” SMD
Am79C965A
75 µH
75 µH
A-209
PCnet-32 Compatible DC/DC Converters
The table below provides a sample list of PCnet-32 compatible DC/DC converters available from various vendors.
Contact the respective manufacturer for a complete and updated listing of components.
Manufacturer
Part No.
Package
Voltage
Remote On/Off
Halo Electronics
DCU0-0509D
24-pin DIP
5/-9
No
Halo Electronics
DCU0-0509E
24-pin DIP
5/-9
Yes
PCA Electronics
EPC1007P
24-pin DIP
5/-9
No
PCA Electronics
EPC1054P
24-pin DIP
5/-9
Yes
PCA Electronics
EPC1078
24-pin DIP
5/-9
Yes
Valor Electronics
PM7202
24-pin DIP
5/-9
No
Valor Electronics
PM7222
24-pin DIP
5/-9
Yes
MANUFACTURER CONTACT
INFORMATION
Contact the following companies for further information on their products:
Company
Bel Fuse
Halo Electronics
PCA Electronics
(HPC in Hong Kong)
Pulse Engineering
Valor Electronics
A-210
U.S. and Domestic
Asia
Europe
Phone:
FAX:
(201) 432-0463
852-328-5515
33-1-69410402
(201) 432-9542
852-352-3706
33-1-69413320
Phone:
FAX:
(415) 969-7313
65-285-1566
(415) 367-7158
65-284-9466
Phone:
FAX:
(818)-892-0761
852-553-0165
33-1-44894800
(818)-894-5791
852-873-1550
33-1-42051579
Phone:
FAX:
(619) 674-8100
852-425-1651
353-093-24107
(619) 675-8262
852-480-5974
353-093-24459
Phone:
FAX:
(619) 537-2500
852-513-8210
49-89-6923122
(619) 537-2525
852-513-8214
49-89-6926542
Am79C965A
APPENDIX B
Recommendation for Power and Ground
Decoupling
The mixed analog/digital circuitry in the PCnet-32
make it imperative to provide noise-free power and
ground connections to the device. Without clean power
and ground connections, a design may suffer from high
bit error rates or may not function at all. Hence, it is
highly recommended that the guidelines presented
here are followed to ensure a reliable design.
Decoupling/Bypass Capacitors: Adequate decoupling
of the power and ground pins and planes is required by
all PCnet-32 designs. This includes both low-frequency
bulk capacitors and high frequency capacitors. It is recommended that at least one low-frequency bulk (e.g.
22 µF) decoupling capacitor be used in the area of the
PCnet-32 device. The bulk capacitor(s) should be connected directly to the power and ground planes. In addition, at least 8 high frequency decoupling capacitors
(e.g. 0.1 µF multilayer ceramic capacitors) should be
used around the periphery of the PCnet-32 device to
prevent power and ground bounce from affecting device operation. To reduce the inductance between the
power and ground pins and the capacitors, the pins
should be connected directly to the capacitors, rather
than through the planes to the capacitors. The suggested connection scheme for the capacitors is shown
in the figure below. Note also that the traces connecting
these pins to the capacitors should be as wide as possible to reduce inductance (15 mils is desirable).
The most critical pins in the layout of a PCnet-32 design are the 4 analog power and 2 analog ground pins,
AVDD[1-4] and AVSS[1-2], respectively. All of these
pins are located in one corner of the device, the “analog
corner”. Specific functions and layout requirements of
the analog power and ground pins are given below.
AVSS1 and AVDD3: These pins provide the power and
ground for the Twisted Pair and AUI drivers. In addition
AVSS1 serves as the ground for the logic interfaces in
the 20 MHz Crystal Oscillator. Hence, these pins can
be very noisy. A dedicated 0.1 µF capacitor between
these pins is recommended.
AVSS2 and AVDD2: These pins are the most critical
pins on the PCnet-32 device because they provide the
power and ground for the phase-lock loop (PLL) portion
of the chip. The voltage-controlled oscillator (VCO) portion of the PLL is sensitive to noise in the 60 kHz – 200
kHz range. To prevent noise in this frequency range
from disrupting the VCO, it is strongly recommended
that the low-pass filter shown below be implemented on
these pins.
VDD plane
33 µF to 10 µF
AVDD2
1 Ω to 10 Ω
Via to the Power Plane
Vdd
C
A
P
PCnet
AVSS2
Vdd
C
A
P
PCnet
Vss
Vss
C
A
P
PCnet
Vss
To determine the value for the resistor and capacitor,
the formula is:
R * C ≥ 88
Via to the Ground Plane
Correct
Correct
VSS plane
PCnetTM
Vdd
Incorrect
where R is in ohms and C is in microfarads. Some possible combinations are given below. To minimize the
voltage drop across the resistor, the R value should not
be more than 10 Ω.
Am79C965A
B-1
R
C
2.7 Ω
33 µF
4.3 Ω
22 µF
6.8 Ω
15 µF
10 Ω
10 µF
AVDD1: AVDD1 provides power for the control and interface logic in the PLL. Ground for this logic is provided by digital ground pins. No specific decoupling is
necessary on this pin.
AVSS2 and AVDD2/AVDD4: These pins provide power
and ground for the AUI and twisted pair receive circuitry. In addition, as mentioned earlier, AVSS2 and
AVDD2 provide power and ground for the phase-lock
loop portion of the chip. Except for the filter circuit already mentioned, no specific decoupling is necessary
on these pins.
B-2
Special Note for Adapter Cards: In adapter card designs, it is important to utilize all available power and
ground pins available on the bus edge connector. In addition, the connection from the bus edge connector to
the power or ground plane should be made through
more than one via and with wide traces (15 mils desirable) wherever possible. Following these recommendations results in minimal inductance in the power and
ground paths. By minimizing this inductance, ground
bounce is minimized.
Am79C965A
APPENDIX C
Alternative Method
for Initialization
The PCnet-32 controller may be initialized by performing I/O writes only. That is, data can be written directly
to the appropriate control and status registers (CSR)
instead of reading from the Initialization Block in memory. The registers that must be written are shown in the
table below. These books are followed by writing the
START bit in CSR0.
Control and
Status Register
Comment
CSR8
LADRF[15:0]
CSR9
LADRF[31:16]
CSR10
LADRF[47:32]
CSR11
LADRF[63:48]
CSR12
PADR[15:0]
CSR13
PADR[31:16]
CSR14
PADR[47:32]
CSR15
Mode
CSR24-25
BADR
CSR30-31
BADX
CSR47
POLLINT
CSR76
RCVRL
CSR78
XMTRL
Note: The INIT bit must not be set or the initialization block
will be accessed instead.
Am79C965A
C-1
C-2
Am79C965A
APPENDIX D
Introduction of the Look-Ahead
Packet Processing (LAPP) Concept
A driver for the PCnet-32 controller would normally require that the CPU copy receive frame data from the
controller’s buffer space to the application’s buffer
space after the entire frame has been received by the
controller. For applications that use a ping-pong windowing style, the traffic on the network will be halted
until the current frame has been completely processed
by the entire application stack. This means that the
time between last byte of a receive frame arriving at the
client’s Ethernet controller and the client’s transmission
of the first byte of the next outgoing frame will be separated by:
1. the time that it takes the client’s CPU’s interrupt procedure to pass software control from the current
task to the driver
2. plus the time that it takes the client driver to pass the
header data to the application and request an application buffer
3. plus the time that it takes the application to generate
the buffer pointer and then return the buffer pointer
to the driver
4. plus the time that it takes the client driver to transfer
all of the frame data from the controller’s buffer
space into the application’s buffer space and then
call the application again to process the complete
frame
5. plus the time that it takes the application to process
the frame and generate the next outgoing frame
6. plus the time that it takes the client driver to set up
the descriptor for the controller and then write a
TDMD bit to CSR0
The sum of these times can often be about the same
as the time taken to actually transmit the frames on the
wire, thereby yielding a network utilization rate of less
than 50%.
An important thing to note is that the PCnet-32 controller’s data transfers to its buffer space are such that the
system bus is needed by the PCnet-32 controller for
approximately 4% of the time. This leaves 96% of the
sytem bus bandwidth for the CPU to perform some of
the inter-frame operations in advance of the completion
of network receive activity, if possible. The question
then becomes: how much of the tasks that need to be
performed between reception of a frame and transmis-
sion of the next frame can be performed before the reception of the frame actually ends at the network, and
how can the CPU be instructed to perform these tasks
during the network reception time?
The answer depends upon exactly what is happening
in the driver and application code, but the steps that
can be performed at the same time as the receive data
are arriving include as much as the first three steps and
part of the fourth step shown in the sequence above.
By performing these steps before the entire frame has
arrived, the frame throughput can be substantially increased.
A good increase in performance can be expected when
the first three steps are performed before the end of the
network receive operation. A much more significant
performance increase could be realized if the PCnet-32
controller could place the frame data directly into the
application’s buffer space; (i.e. eliminate the need for
step four.) In order to make this work, it is necessary
that the application buffer pointer be determined before
the frame has completely arrived, then the buffer
pointer in the next desriptor for the receive frame would
need to be modified in order to direct the PCnet-32 controller to write directly to the application buffer. More details on this operation will be given later.
An alternative modification to the existing system can
gain a smaller, but still significant improvement in performance. This alternative leaves step four unchanged
in that the CPU is still required to perform the copy operation, but it allows a large portion of the copy operation to be done before the frame has been completely
received by the controller, (i.e. the CPU can perform
the copy operation of the receive data from the PCnet32 controller’s buffer space into the application buffer
space before the frame data has completely arrived
from the network.) This allows the copy operation of
step four to be performed concurrently with the arrival
of network data, rather than sequentially, following the
end of network receive activity.
Outline of the LAPP Flow:
This section gives a suggested outline for a driver that
utilizes the LAPP feature of the PCnet-32 controller.
Note: The labels in the following text are used as references in the timeline diagram that follows.
Am79C965A
D-1
SETUP:
space. Only when the message does not fit will it
signal a buffer error condition – there is no need to
panic at the point that it discovers that it does not
yet own descriptor number 3.]
The driver should set up descriptors in groups of 3, with
the OWN and STP bits of each set of three descriptors
to read as follows: 11b, 10b, 00b.
An option bit (LAPPEN) exists in CSR3, bit position 5.
The software should set this bit. When set, the LAPPEN bit directs the PCnet-32 controller to generate an
INTERRUPT when STP has been written to a receive
descriptor by the PCnet-32 controller.
FLOW:
The PCnet-32 controller polls the current receive descriptor at some point in time before a message arrives.
The PCnet-32 controller determines that this receive
buffer is OWNed by the PCnet-32 controller and it
stores the descriptor information to be used when a
message does arrive.
N0: Frame preamble appears on the wire, followed by
SFD and destination address.
N1: The 64th byte of frame data arrives from the wire.
This causes the PCnet-32 controller to begin frame
data DMA operations to the first buffer.
C0: When the 64th byte of the message arrives, the
PCnet-32 controller performs a look-ahead operation to the next receive descriptor. This descriptor
should be owned by the PCnet-32 controller.
C1: The PCnet-32 controller intermittently requests the
bus to transfer frame data to the first buffer as it arrives on the wire.
S0: The driver remains idle.
C2: When the PCnet-32 controller has completely filled
the first buffer, it writes status to the first descriptor.
C3: When the first descriptor for the frame has been
written, changing ownership from the PCnet-32
controller to the CPU, the PCnet-32 controller will
generate an SRP INTERRUPT. (This interrupt appears as a RINT interrupt in CSR0.)
S1: The SRP INTERRUPT causes the CPU to switch
tasks to allow the PCnet-32 controller’s driver to
run.
C4: During the CPU interrupt–generated task switching, the PCnet-32 controller is performing a lookahead operation to the third descriptor. At this point
in time, the third descriptor is owned by the CPU.
[Note: Even though the third buffer is not owned by
the PCnet-32 controller, existing AMD Ethernet
controllers will continue to perform data DMA into
the buffer space that the controller already owns
(i.e. buffer number 2). The controller does not know
if buffer space in buffer number 2 will be sufficient
or not, for this frame, but it has no way to tell except
by trying to move the entire message into that
D-2
S2: The first task of the driver’s interrupt service routine
is to collect the header information from the PCnet32 controller’s first buffer and pass it to the application.
S3: The application will return an application buffer
pointer to the driver. The driver will add an offset to
the application data buffer pointer, since the
PCnet-32 controller will be placing the first portion
of the message into the first and second buffers.
(The modified application data buffer pointer will
only be directly used by the PCnet-32 controller
when it reaches the third buffer.) The driver will
place the modified data buffer pointer into the final
descriptor of the group (#3) and will grant ownership of this descriptor to the PCnet-32 controller.
C5: Interleaved with S2, S3 and S4 driver activity, the
PCnet-32 controller will write frame data to buffer
number 2.
S4: The driver will next proceed to copy the contents of
the PCnet-32 controller’s first buffer to the beginning of the application space. This copy will be to
the exact (unmodified) buffer pointer that was
passed by the application.
S5: After copying all of the data from the first buffer into
the beginning of the application data buffer, the
driver will begin to poll the ownership bit of the second descriptor. The driver is waiting for the
PCnet-32 controller to finish filling the second
buffer.
C6: At this point, knowing that it had not previously
owned the third descriptor, and knowing that the
current message has not ended (there is more data
in the fifo), the PCnet-32 controller will make a “last
ditch look-ahead” to the final (third) descriptor; This
time, the ownership will be TRUE (i.e. the descriptor belongs to the controller), because the driver
wrote the application pointer into this descriptor
and then changed the ownership to give the descriptor to the PCnet-32 controller back at S3. Note
that if steps S1, S2 and S3 have not completed at
this time, a BUFF error will result.
C7: After filling the second buffer and performing the
last chance look-ahead to the next descriptor, the
PCnet-32 controller will write the status and
change the ownership bit of descriptor number 2.
S6: After the ownership of descriptor number 2 has
been changed by the PCnet-32 controller, the next
driver poll of the 2nd descriptor will show ownership granted to the CPU. The driver now copies the
data from buffer number 2 into the “middle section”
Am79C965A
of the application buffer space. This operation is interleaved with the C7 and C8 operations.
C8: The PCnet-32 controller will perform data DMA to
the last buffer, whose pointer is pointing to application space. Data entering the last buffer will not
need the infamous “double copy” that is required by
existing drivers, since it is being placed directly into
the application buffer space.
N2: The message on the wire ends.
S7: When the driver completes the copy of buffer number 2 data to the application buffer space, it begins
polling descriptor number 3.
Ethernet
Wire
activity:
C9: When the PCnet-32 controller has finished all data
DMA operations, it writes status and changes ownership of descriptor number 3.
S8: The driver sees that the ownership of descriptor
number 3 has changed, and it calls the application
to tell the application that a frame has arrived.
S9: The application processes the received frame and
generates the next TX frame, placing it into a TX
buffer.
S10:The driver sets up the TX descriptor for the
PCnet-32 controller.
Ethernet
Controller
activity:
Software
activity:
S10: Driver sets up TX descriptor.
S9: Application processes packet, generates TX packet.
S8: Driver calls application
to tell application that
packet has arrived.
S7: Driver polls descriptor of buffer #3.
{
C9: Controller writes descriptor #3.
C8: Controller is performing intermittent
bursts of DMA to fill data buffer #3.
N2: EOM
Buffer
#3
C7: Controller writes descriptor #2.
S6: Driver copies data from buffer #2 to the application buffer.
S5: Driver polls descriptor #2.
C6: "Last chance" lookahead to
descriptor #3 (OWN).
S4: Driver copies data from buffer #1 to the application buffer.
C5: Controller is performing intermittent
bursts of DMA to fill data buffer #2.
}{
Buffer
#2
C4: Lookahead to descriptor #3 (OWN).
C3: SRP interrupt
is generated.
S1: Interrupt latency.
packet data arriving
}
S3: Driver writes modified application
pointer to descriptor #3.
S2: Driver call to application to
get application buffer pointer.
C2: Controller writes descriptor #1.
C1: Controller is performing intermittent
bursts of DMA to fill data buffer #1.
Buffer
#1
S0: Driver is idle.
C0: Lookahead to descriptor #2.
N1: 64th byte of packet
data arrives.
{
N0: Packet preamble, SFD
and destination address
are arriving.
18219-76
Figure 1. LAPP Timeline
Am79C965A
D-3
LAPP Software Requirements
LAPP Rules for Parsing of Descriptors
Software needs to set up a receive ring with descriptors
formed into groups of 3. The first descriptor of each
group should have OWN = 1 and STP = 1, the second
descriptor of each group should have OWN = 1 and
STP = 0. The third descriptor of each group should
have OWN = 0 and STP = 0. The size of the first buffer
(as indicated in the first descriptor), should be at least
equal to the largest expected header size; However, for
maximum efficiency of CPU utilization, the first buffer
size should be larger than the header size. It should be
equal to the expected number of message bytes, minus
the time needed for Interrupt latency and minus the application call latency, minus the time needed for the
driver to write to the third descriptor, minus the time
needed for the driver to copy data from buffer #1 to the
application buffer space, and minus the time needed for
the driver to copy data from buffer #2 to the application
buffer space. Note that the time needed for the copies
performed by the driver depends upon the sizes of the
2nd and 3rd buffers, and that the sizes of the second
and third buffers need to be set according to the time
needed for the data copy operations! This means that
an iterative self-adjusting mechanism needs to be
placed into the software to determine the correct buffer
sizing for optimal operation. Fixed values for buffer
sizes may be used; In such a case, the LAPP method
will still provide a significant performance increase, but
the performance increase will not be maximized.
When using the LAPP method, software must use a
modified form of descriptor parsing as follows:
The following diagram illustrates this setup for a receive
ring size of 9:
Descriptor
#9
OWN = 0 STP = 0
SIZE = S6
Descriptor
#8
OWN = 1 STP = 0
SIZE = S1+S2+S3+S4
Descriptor
#7
OWN = 1 STP = 1
SIZE = A-(S1+S2+S3+S4+S6)
Descriptor
#6
OWN = 0 STP = 0
SIZE = S6
Descriptor
#5
OWN = 1 STP = 0
SIZE = S1+S2+S3+S4
Descriptor
#4
OWN = 1 STP = 1
SIZE = A-(S1+S2+S3+S4+S6)
Descriptor
#3
OWN = 0 STP = 0
SIZE = S6
Descriptor
#2
OWN = 1 STP = 0
SIZE = S1+S2+S3+S4
Descriptor
#1
OWN = 1 STP = 1
SIZE = A-(S1+S2+S3+S4+S6)
Software will examine OWN and STP to determine
where a RCV frame begins. RCV frames will only begin
in buffers that have OWN = 0 and STP = 1.
Software shall assume that a frame continues until it
finds either ENP = 1 or ERR= 1.
Software must discard all descriptors with OWN = 0
and STP = 0 and move to the next descriptor when
searching for the beginning of a new frame; ENP and
ERR should be ignored by software during this search.
Software cannot change an STP value in the receive
descriptor ring after the initial setup of the ring is complete, even if software has ownership of the STP descriptor unless the previous STP descriptor in the ring
is also OWNED by the software.
When LAPPEN = 1, then hardware will use a modified
form of descriptor parsing as follows:
The controller will examine OWN and STP to determine
where to begin placing a RCV frame. A new RCV frame
will only begin in a buffer that has OWN = 1 and STP =
1.
The controller will always obey the OWN bit for determining whether or not it may use the next buffer for a
chain.
The controller will always mark the end of a frame with
either ENP = 1 or ERR = 1.
A = Expected message size in bytes
S1 = Interrupt latency
S2 = Application call latency
S3 =Time needed for driver to write
to third descriptor
S4 = Time needed for driver to copy
data from buffer #1 to
application buffer space
S6 = Time needed for driver to copy
data from buffer #2 to
application buffer space
Note that the times needed for tasks S1,
S2, S3, S4, and S6 should be divided by
0.8 microseconds to yield an equivalent
number of network byte times before
subtracting these quantities from the
expected message size A.
18219-77
Figure 2. LAPP 3 Buffering Grouping
D-4
Am79C965A
The controller will discard all descriptors with OWN = 1
and STP = 0 and move to the next descriptor when
searching for a place to begin a new frame. It discards these desciptors by simply changing the ownership bit from OWN=1 to OWN = 0. Such a descriptor is
unused for receive purposes by the controller, and the
driver must recognize this. (The driver will recognize
this if it follows the software rules.)
ring that it does not own, but only when it is looking for
a place to begin a new frame.
The controller will ignore all descriptors with OWN = 0
and STP = 0 and move to the next descriptor when
searching for a place to begin a new frame. In other
words, the controller is allowed to skip entries in the
1. Assume that a 1060 byte frame arrives correctly,
and that the timing of the early interrupt and the
software is smooth. The descriptors will have
changed from:
Descriptor
Number
Before the
Frame Arrived
Some Examples of LAPP Descriptor
Interaction
Choose an expected frame size of 1060 bytes.
Choose buffer sizes of 800, 200 and 200 bytes.
After the Frame has Arrived
Comments
(After Frame Arrival)
OWN
STP
ENP*
OWN
STP
ENP*
1
1
1
X
0
1
0
Bytes 1–800
2
1
0
X
0
0
0
Bytes 801–1000
3
0
0
X
0
0
1
Bytes 1001–1060
4
1
1
X
1
1
X
Controller’s current
location
5
1
0
X
1
0
X
Not yet used
6
0
0
X
0
0
X
Not yet used
etc.
1
1
X
1
1
X
Not yet used
* ENP or ERR
2. Assume that instead of the expected 1060 byte
frame, a 900 byte frame arrives, either because
Descriptor
Number
there was an error in the network, or because this is
the last frame in a file transmission sequence.
Before the
Frame Arrived
After the
Frame has Arrived
Comments
(After Frame Arrival)
OWN
STP
ENP*
OWN
STP
ENP*
1
1
1
X
0
1
0
Bytes 1–800
2
1
0
X
0
0
1
Bytes 801–900
3
0
0
X
0
0
?**
4
1
1
X
1
1
X
Controller’s current
location
5
1
0
X
1
0
X
Not yet used
6
0
0
X
0
0
X
Not yet used
etc.
1
1
X
1
1
X
Not yet used
Discarded buffer
*ENP or ERR
** Note that the PCnet-32 controller might write a ZERO to ENP location in the 3rd descriptor. Here are the two possibilities:
1) If the controller finishes the data transfers into buffer number 2 after the driver writes the application’s modified buffer pointer
into the third descriptor, then the controller will write a ZERO to ENP for this buffer and will write a ZERO to OWN and STP.
2) If the controller finishes the data transfers into buffer number 2 before the driver writes the application’s modified buffer
pointer into the third descriptor, then the controller will complete the frame in buffer number two and then skip the then unowned third buffer. In this case, the PCnet-32 controller will not have had the opportunity to RESET the ENP bit in this descriptor, and it is possible that the software left this bit as ENP=1 from the last time through the ring. Therefore, the software
Am79C965A
D-5
must treat the location as a don’t care; The rule is, after finding ENP=1 (or ERR=1) in descriptor number 2, the software
must ignore ENP bits until it finds the next STP=1.
3. Assume that instead of the expected 1060 byte
frame, a 100 byte frame arrives, because there was
an error in the network, or because this is the last
Descriptor
Number
frame in a file transmission sequence, or perhaps
because it is an acknowledge frame.
Before the
Frame Arrived
After the
Frame has Arrived
Comments
(After Frame Arrival)
OWN
STP
ENP*
OWN
STP
ENP*
1
1
1
X
0
1
1
2
1
0
X
0
0
0***
Discarded buffer
Discarded buffer
Bytes 1–100
3
0
0
X
0
0
?**
4
1
1
X
1
1
X
Controller’s current
location
5
1
0
X
1
0
X
Not yet used
6
0
0
X
0
0
X
Not yet used
etc.
1
1
X
1
1
X
Not yet used
* ENP or ERR
** Same as note in case 2 above, except that in this case, it is very unlikely that the driver can respond to the interrupt and get the pointer from the application before the PCnet-32 controller has completed its poll of the next
descriptors. This means that for almost all occurrences of this case, the PCnet-32 controller will not find the
OWN bit set for this descriptor and therefore, the ENP bit will almost always contain the old value, since the
PCnet-32 controller will not have had an opportunity to modify it.
*** Note that even though the PCnet-32 controller will write a ZERO to this ENP location, the software should treat
the location as a don’t care, since after finding the ENP=1 in descriptor number 2, the software should ignore
ENP bits until it finds the next STP=1.
Buffer Size Tuning
For maximum performance, buffer sizes should be adjusted depending upon the expected frame size and
the values of the interrupt latency and application call
latency. The best driver code will minimize the CPU utilization while also minimizing the latency from frame
end on the network to frame sent to application from
driver (frame latency). These objectives are aimed at
increasing throughput on the network while decreasing
CPU utilization.
Note that the buffer sizes in the ring may be altered at
any time that the CPU has ownership of the corresponding descriptor. The best choice for buffer sizes
will maximize the time that the driver is swapped out,
while minimizing the time from the last byte written by
the PCnet-32 controller to the time that the data is
passed from the driver to the application. In the diagram, this corresponds to maximizing S0, while minimizing the time between C9 and S8. (The timeline
happens to show a minimal time from C9 to S8.)
Note that by increasing the size of buffer number 1, we
increase the value of S0. However, when we increase
the size of buffer number 1, we also increase the value
of S4. If the size of buffer number 1 is too large, then
D-6
the driver will not have enough time to perform tasks
S2, S3, S4, S5 and S6. The result is that there will be
delay from the execution of task C9 until the execution
of task S8. A perfectly timed system will have the values for S5 and S7 at a minimum.
An average increase in performance can be achieved if
the general guidelines of buffer sizes in figure 2 is followed. However, as was noted earlier, the correct sizing
for buffers will depend upon the expected message
size. There are two problems with relating expected
message size with the correct buffer sizing:
1. Message sizes cannot always be accurately predicted, since a single application may expect different message sizes at different times, therefore, the
buffer sizes chosen will not always maximize
throughput.
2. Within a single application, message sizes might be
somewhat predictable, but when the same driver is
to be shared with multiple applications, there may
not be a common predictable message size.
Additional problems occur when trying to define the
correct sizing because the correct size also depends
Am79C965A
upon the interrupt latency, which may vary from system
to system, depending upon both the hardware and the
software installed in each system. In order to deal with
the unpredictable nature of the message size, the
driver can implement a self-tuning mechanism that
examines the amount of time spent in tasks S5 and S7
as such: While the driver is polling for each descriptor,
it could count the number of poll operations performed
and then adjust the number 1 buffer size to a larger
value, by adding “t” bytes to the buffer count, if the number of poll operations was greater than “x”. If fewer than
“x” poll operations were needed for each of S5 and S7,
then the software should adjust the buffer size to a
smaller value by, subtracting “y” bytes from the buffer
count. Experiments with such a tuning mechanism
must be performed to determine the best values for “X”
and “y.”
Note whenever the size of buffer number 1 is adjusted,
buffer sizes for buffer number 2 and buffer 3 should also
be adjusted.
In some systems the typical mix of receive frames on a
network for a client application consists mostly of large
data frames, with very few small frames. In this case,
for maximum efficiency of buffer sizing, when a frame
arrives under a certain size limit, the driver should not
adjust the buffer sizes in response to the short frame.
An Alternative LAPP Flow – the TWO Interrupt
Method
An alternative to the above suggested flow is to use two
interrupts, one at the start of the Receive frame and the
other at the end of the receive frame, instead of just
looking for the SRP interrupt as was described above.
This alternative attempts to reduce the amount of time
that the software “wastes” while polling for descriptor
own bits. This time would then be available for other
CPU tasks. It also minimizes the amount of time the
CPU needs for data copying. This savings can be applied to other CPU tasks.
The time from the end of frame arrival on the wire to delivery of the frame to the application is labeled as frame
latency. For the one-interrupt method, frame latency is
minimized, while CPU utilization increases. For the
two-interrupt method, frame latency becomes greater,
while CPU utilization decreases.
Note that some of the CPU time that can be applied to
non-Ethernet tasks is used for task switching in the
CPU. One task switch is required to swap a non-Ethernet task into the CPU (after S7A) and a second task
switch is needed to swap the Ethernet driver back in
again (at S8A). If the time needed to perform these task
switches exceeds the time saved by not polling descriptors, then there is a net loss in performance with this
method. Therefore, the SPRINT method implemented
should be carefully chosen.
Figure 3 shows the event flow for the two-interrupt
method.
Figure 4 shows the buffer sizing for the two-interrupt
method. Note that the second buffer size will be about
the same for each method.
There is another alternative which is a marriage of the
two previous methods. This third possibility would use
the buffer sizes set by the two-interrupt method, but
would use the polling method of determining frame
end. This will give good frame latency but at the price
of very high CPU utilization.
And still, there are even more compromise positions
that use various fixed buffer sizes and effectively, the
flow of the one-interrupt method. All of these compromises will reduce the complexity of the one-interrupt
method by removing the heuristic buffer sizing code,
but they all become less efficient than heuristic code
would allow.
Am79C965A
D-7
Ethernet
Wire
activity:
Ethernet
Controller
activity:
Software
activity:
S10: Driver sets up TX descriptor.
S9: Application processes packet, generates TX packet.
S8: Driver calls application
to tell application that
packet has arrived.
S8A: Interrupt latency.
{
}
C10: ERP interrupt
is generated.
C9: Controller writes descriptor #3.
C8: Controller is performing intermittent
bursts of DMA to fill data buffer #3.
N2: EOM
Buffer
#3
C7: Controller writes descriptor #2.
S7: Driver is swapped out, allowing a non-Etherenet
application to run.
S7A: Driver Interrupt Service
Routine executes
RETURN.
S6: Driver copies data from buffer #2 to the application buffer.
{
S5: Driver polls descriptor #2.
C6: "Last chance" lookahead to
descriptor #3 (OWN).
S4: Driver copies data from buffer #1 to the application buffer.
C5: Controller is performing intermittent
bursts of DMA to fill data buffer #2.
}{
Buffer
#2
C4: Lookahead to descriptor #3 (OWN).
C3: SRP interrupt
is generated.
S1: Interrupt latency.
packet data arriving
}
S3: Driver writes modified application
pointer to descriptor #3.
S2: Driver call to application to
get application buffer pointer.
C2: Controller writes descriptor #1.
C1: Controller is performing intermittent
bursts of DMA to fill data buffer #1.
Buffer
#1
S0: Driver is idle.
C0: Lookahead to descriptor #2.
{
N1: 64th byte of packet
data arrives.
N0: Packet preamble, SFD
and destination address
are arriving.
18218-78
Figure 3. LAPP Timeline for TWO-INTERRUPT Method
D-8
Am79C965A
Descriptor
#9
OWN = 0
STP = 0
SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE)
Descriptor
#8
OWN = 1
SIZE = S1+S2+S3+S4
Descriptor
#7
OWN = 1
STP = 1
SIZE = HEADER_SIZE (minimum 64 bytes)
Descriptor
#6
OWN = 0
STP = 0
SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE)
Descriptor
#5
OWN = 1
SIZE = S1+S2+S3+S4
Descriptor
#4
OWN = 1
STP = 1
SIZE = HEADER_SIZE (minimum 64 bytes)
Descriptor
#3
OWN = 0
STP = 0
SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE)
Descriptor
#2
OWN = 1
SIZE = S1+S2+S3+S4
Descriptor
#1
OWN = 1
STP = 1
SIZE = HEADER_SIZE (minimum 64 bytes)
STP = 0
STP = 0
STP = 0
A = Expected message size in bytes
S1 = Interrupt latency
S2 = Application call latency
S3 =Time needed for driver to write
to third descriptor
S4 = Time needed for driver to copy
data from buffer #1 to
application buffer space
S6 = Time needed for driver to copy
data from buffer #2 to
application buffer space
Note that the times needed for tasks S1,
S2, S3, S4, and S6 should be divided by
0.8 microseconds to yield an equivalent
number of network byte times before
subtracting these quantities from the
expected message size A.
18219-79
Figure 4. LAPP 3 Buffer Grouping for TW0-INTERRUPT Method
Am79C965A
D-9
D-10
Am79C965A
APPENDIX E
Am79C965A PCnet-32
Silicon Errata Report
AM 79C965A REV B1 SILICON STATUS
The items below are the known errata for Rev B1 silicon. Rev B1 silicon is the production silicon.
Note: A signal followed by "*" indicates active low; i.e., Master*.
The "Description" section of this document gives an external description of the problem. The "Implication" section
gives an explanation of how to PCnet-ISA II controller behaves and its impact on the system. The "Work-around"
section describes a work-around for the problem. The "Status" section describes when and how the problem will
be corrected.
Current package marking for this revision:
Line 1: <Logo>
Line 2: Am79C965AKC (Assuming package is PQFP)
Line 3: <Date Code> B1
Line 4: (c) 1993 AMD
Value of chip ID registers CSR89+CSR88 [31:0] for this revision = 32430003h. (When read in 16-bit mode.)
1. Incorrect interpretation of descriptor ring length in 32-bit software mode
Description:
In 32-bit software mode, if TLEN and RLEN is set to 8 hex, indicating a descriptor ring length of 256 in the INIT block,
the PCnet-32 controller will internally interpret ring length to be 512. Also, if TLEN or RLEN is set to C hex, the
PCnet-32 controller converts it to 256 instead of 512. The table below summarizes the corresponding TLEN/RLEN
settings and their actual interpretations.
TLEN or RLEN Value
Correct Ring Length
Erratum Ring
Length
0
1
1
1
2
2
2
4
4
3
8
8
4
16
16
5
32
32
6
64
64
7
128
128
8
256
512
*Bad
9
512
512
A
512
512
B
512
512
C
512
D
512
512
E
512
512
F
512
512
Am79C965A
256
*Bad
E-1
Implication:
There is no jeopardy to customers using AMD drivers, because AMD OS drivers do not use ring lengths that long.
For customers developing proprietary drivers, implementation of the following work-around is highly recommended.
Work-around:
1. Program TLEN or RLEN to C hex if ring length of
256 is desired, or
2. – Initialize INIT block with any value for TLEN or
RLEN
– Set INIT, don’t set STRT
– After IDON, set STOP
– Write to CSR76 (RCVRL) and CSR78 (XMTRL) with correct value
–Set STRT
Status:
No current plan to revise silicon to fix this erratum.
2. Receive Frame Align feature not functioning correctly
Description:
The Receive Frame Align feature does not function correctly. The data field of a received frame will not necessarily
be forced to align to a double-word aligned address boundary when the RCVALGN bit (bit 0) in CSR122 is set. Two
extra bytes will not always be inserted at the beginning of the receive packet destination address field.
Implication:
Users are not able to force the data field of 802.3 frames to align to 0 MOD 4 address boundaries, i.e. double-word
aligned addresses, by setting this bit.
Work-around:
None. Do not activate this bit. This feature of the device does not function as described in the data sheet.
Status:
No current plan to revise silicon to fix this erratum.
3. False BABL errors generated
Description:
The PCnet-32 device will intermittently give BABL error indications when the network traffic has frames equal to or
greater than 1518 bytes.
Implication:
False BABL errors on the receiving station can be passed up to the upper layer software if the PCnet-32 device is
just coming out of a deferral and the multi-purpose counter used to count the number of bytes received reaches 1518
at the same time. If the network is heavily loaded with full-size frames, the probability of a false BABL error is high.
Work-around:
There are two possible work-arounds.
1. If the user has no intention to transmit frames larger than 1518 bytes, the BABL bit may be masked to ignore
babble errors. In this case, the false babble error will not cause an interrupt, nor will it be passed to the higherlevel software.
2. Check to see if the device is transmitting in ISR (Interrupt Service Routine), which is induced by the BABL error.
The BCRs that control the LED settings can be programmed to indicate a transmit activity, assuming the interrupt
latency is not longer than one minute IFG (Inter-Frame Gap) time.
E-2
Am79C965A
If (ISR_LATENCY < 9.6 us)
True_bable_err = BABL* (TINT+XMT_LED)
{ i.e.False_bable_err = ~ (BABL* (TINT+XMT_LET))}
else
Cannot tell if the BABL error is true or false just by reading BABL, TINT,
XMT_LED bits in ISR.
Status:
No current plan to fix this item.
Enhancement
The Enhancement section gives an external description of the enhancement. The Implication section gives an explanation of how the PCnet-32 ISA behaves and its impact on the system. The Status section indicates when the
enhancement will be implemented.
1. Improved Phase Lock Loop function
Enhancement: The PLL (Phase Lock Loop) circuit in revision B1 silicon is enhanced to provide better phase
tracking.
Implication:
With this PLL enhancement, the number of potentially dropped packets is effectively zero.
Status:
Implemented in revision B1 silicon.
Am79C965A
E-3
The contents of this document are provided in connection with Advanced Micro Devices, Inc. (“AMD”) products. AMD makes no
representations or warranties with respect to the accuracy or completeness of the contents of this publication and reserves the
right to make changes to specifications and product descriptions at any time without notice. No license, whether express, implied,
arising by estoppel or otherwise, to any intellectual property rights is granted by this publication. Except as set forth in AMD’s
Standard Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty,
relating to its products including, but not limited to, the implied warranty of merchantability, fitness for a particular purpose, or
infringement of any intellectual property right.
AMD’s products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other applications intended to support or sustain life, or in any other application in which the failure of
AMD’s product could create a situation where personal injury, death, or severe property or environmental damage may occur.
AMD reserves the right to discontinue or make changes to its products at any time without notice.
Trademarks
Copyright © 1998, 2000 Advanced Micro Devices, Inc. All rights reserved.
AMD, the AMD logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc.
Am186, Am386, Am486, Am29000, bIMR, eIMR, eIMR+, GigaPHY, HIMIB, ILACC, IMR, IMR+, IMR2, ISA-HUB, MACE, Magic Packet, PCnet, PCnet- FAST, PCnetFAST+, PCnet-Mobile, QFEX, QFEXr, QuASI, QuEST, QuIET, TAXIchip, TPEX, and TPEX Plus are trademarks of Advanced Micro Devices, Inc.
Microsoft is a registered trademark of Microsoft Corporation.
Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Am79C965A