AMD AM79C974

PRELIMINARY
Am79C974
PCnetTM-SCSI Combination Ethernet and SCSI Controller
for PCI Systems
Advanced
Micro
Devices
DISTINCTIVE CHARACTERISTICS
PCI Features
SCSI Features
■ Direct glueless interface to 33 MHz, 32-bit PCI
local bus
■ Compliant to ANSI standards X3.131 – 1986
(SCSI-1) and X3.131 – 199X (SCSI-2)
■ 132 Mbyte/s burst DMA transfer rate
■ Fast 8-bit SCSI-2 10 Mbyte/s synchronous or
7 Mbyte/s asynchronous data transfer rate
■ Compliant to PCI local bus Specification
Revision 2.0
Ethernet Features
■ Supports ISO 8802-3 (IEEE/ANSI 802.3) and
Ethernet Standards
■ High-performance Bus Master architecture with
integrated DMA Buffer Management Unit for
low CPU and bus utilization
■ Individual 136-byte transmit and 128-byte
receive FIFOs provide frame buffering for
increased system latency
■ MicrowireTM EEPROM interface supports
jumperless design
■ Integrated Manchester Encoder/Decoder
■ 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
■ 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 10BASE2, 10BASE5,
10BASE-T or 10BASE-F MAU
— Internal 10BASE-T transceiver with Smart
Squelch to Twisted-Pair medium
■ SCSI specific Bus Mastering DMA engine
(32-bit address/data)
■ 96-byte DMA FIFO for low bus latency
■ On-chip state machine to control the SCSI
sequences in hardware
■ Integrated industry standard Fast SCSI-2 core
■ Single-Ended 48 mA outputs to drive the SCSI
bus directly
■ Support for Scatter-Gather DMA data transfers
■ Hooks in silicon and software to enable disk
drive spin down for power savings
General Features
■ Software compatible with AMD’s Am79C960
PCnet-ISA, Am79C961 PCnet-ISA+, Am79C965
PCnet-32, Am79C970 PCnet-PCI register and
descriptor architecture
■ Plug-in and software compatible with AMD’s
PCSCSI family of SCSI controllers for PCI
■ NAND Tree test mode for connectivity testing
on printed circuit boards
■ Single +5 V power supply operation
■ Low-power, CMOS design with sleep modes for
both Ethernet and SCSI controllers allows reduced power consumption for critical battery
powered applications and ‘Green PCs’
■ Fully static design for low frequency and
power operation
■ 132-pin PQFP package
GENERAL DESCRIPTION
The PCnet-SCSI combination Ethernet and 8-bit Fast
SCSI controller with a 32-bit PCI bus interface is a highly
integrated Ethernet-Fast SCSI system solution designed to address high-performance system application
requirements. This single-chip is a flexible bus-mastering device that can be used in many applications, including network- and SCSI-ready PCs, printers, fax
modems, and bridge/router designs. The bus-master
architecture provides high data throughput in the system and low CPU and system bus utilization. The
PCnet-SCSI controller is fabricated with AMD’s advanced low-power CMOS process to provide low operating and standby current for power sensitive
applications.
This document contains information on a product under development at Advanced Micro Devices, Inc. The information is intended
to help you to evaluate this product. AMD reserves the right to change or discontinue work on this proposed product without notice.
Publication# 18681 Rev. B
Issue Date: October 1994
Amendment /1
AMD
PRELIMINARY
The PCnet-SCSI is part of AMD’s PCI product family of
plug-in and software compatible SCSI and Ethernet
controllers. This product compatibility ensures a low
cost system upgrade path and lower motherboard
manufacturing costs.
Ethernet Specific
The PCnet-SCSI controller includes a complete Ethernet node integrated into a single VLSI device. It contains
a bus interface unit, a DMA buffer management unit, an
IEEE 802.3-defined Media Access Control (MAC) function, individual 136-byte transmit and 128-byte receive
FIFOs, an IEEE 802.3-defined Attachment Unit Interface (AUI) and Twisted-Pair Transceiver Media Attachment Unit (10BASE-T MAU), and a Microwire EEPROM
interface. The PCnet-SCSI controller is also register
compatible with the LANCE (Am7990) Ethernet controller, the C-LANCE (Am79C90) Ethernet controller, the
ILACC (Am79C900) Ethernet controller, and all Ethernet controllers in the PCnet Family, including the PCnetISA controller (Am79C960), the PCnet-ISA+ controller
(Am79C961),
and
the
PCnet-32
controller
(Am79C965). The buffer management unit supports the
LANCE, ILACC, and PCnet descriptor software models.
The PCnet-SCSI controller is software compatible with
the Novell NE2100 and NE1500 Ethernet adapter card
architectures. In addition, a Sleep function has been incorporated to provide low standby current, excellent for
notebooks and Green PCs.
overhead, providing sufficient latency during frame
transmission and reception, and minimizing intervention
during normal network error recovery. The integrated
Manchester encoder/decoder (MENDEC) eliminates
the need for an external Serial Interface Adapter (SIA) in
the system. In addition, the device provides programmable on-chip LED drivers for transmit, receive, collision, receive polarity, link integrity or jabber status.
SCSI Specific
The PCnet-SCSI controller also includes a highperformance Fast SCSI controller with a glueless interface to the PCI local bus. The PCnet-SCSI integrates its
own 32-bit bus mastering DMA engine with an industry
standard Fast SCSI-2 block. The DMA engine and accompanying 96 byte DMA FIFO allow 32-bit burst data
transfers across the high bandwidth PCI bus at speeds
of up to 132 Mbyte/s. Full support for scatter-gather
DMA transfers optimize performance in multi-tasking
system applications.
The PCnet-SCSI’s on-chip state machine controls SCSI
bus sequences in hardware and is coupled with the bus
mastering DMA engine to eliminate the need for an onchip RISC processor. This results in a smaller die size
giving the Am79C974 superior price/performance versus competitive offerings.
AMD supports the Am79C974 with a total system solution which includes:
The 32-bit multiplexed bus interface unit provides a direct interface to the PCI local bus applications, simplifying the design of an Ethernet node in a PC system. With
its built-in support for both little and big endian byte
alignment, this controller also addresses proprietary
non-PC applications.
A full suite of licensable SCSI drivers and utilities
fully tested under the following operating system
environments:
— DOS 5.0 – 6.0
— Windows 3.1
— Windows NT
— OS/2 2.x
— Netware 3.x, 4.x
— SCO UNIX 3.2.4, ODT 2.0
An INT13h Compatible SCSI ROM BIOS
The PCnet-SCSI controller supports auto configuration
in the PCI configuration space. Additional PCnet-SCSI
controller configuration parameters, including the
unique IEEE physical address, can be read from an external non-volatile memory (serial EEPROM) immediately following system RESET.
The controller also has the capability to automatically
select either the AUI port or the Twisted-Pair transceiver. Only one interface is active at any one time. The
individual transmit and receive FIFOs optimize system
2
ASPI Compatibility
Complete hardware reference design kit
For more detailed information on the PCnet-SCSI refer
to the technical manual, PID #18738A.
Am79C974
AMD
PRELIMINARY
HIGH LEVEL BLOCK DIAGRAM
SCSI Data
SCSI Control
10Base-T, AUI Ports
SCSI Sequences,
SCSI Control,
SCSI Registers
SCSI FIFO
DMA
FIFO
96 Bytes
802.3 MAC Core
DMA Registers
RCV
FIFO
FIFO &
DMA Control
FIFO
Control
XMT
FIFO
DMA Registers
DMA Control
PCI Host Control and Interface
18681A-1
PCI Data/Address
PCI Host Control
Am79C974
3
AMD
PRELIMINARY
Cache
SRAM
DRAM
Memory
PCnet-SCSI
(Am79C974)
Video
Control
Control
CPU
Address
Core
Logic
Data
PCI
to
ISA
PCI Bus
PC-AT ISA Bus
Super I/O
IDE/Floppy
Ser/Par
Keyboard
Control
18681A-2
Am79C974 in a PCI System
4
Am79C974
PRELIMINARY
AMD
TABLE OF CONTENTS
DISTINCTIVE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
GENERAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
HIGH LEVEL BLOCK DIAGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
RELATED PRODUCTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
CONNECTION DIAGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
ORDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
PIN DESIGNATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Listed By Pin Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listed By Pin Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quick Reference Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listed By Driver Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
16
17
LOGIC SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
PIN DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
PCI Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Ethernet Controller Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Board Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Microwire EEPROM Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attachment Unit Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Twisted-Pair Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
23
24
24
SCSI Controller Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Test Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
25
25
25
BASIC FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
System Bus Interface Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Software Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ethernet Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCSI Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
26
26
26
DETAILED FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Bus Interface Unit (BIU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Slave Configuration Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slave I/O Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus Master DMA Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Target Initiated Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Master Initiated Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
29
31
32
37
40
Ethernet Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Buffer Management Unit (BMU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Re-Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Buffer Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Descriptor Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Descriptor Ring Access Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmit Descriptor Table Entry (TDTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Receive Descriptor Table Entry (RDTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Am79C974
43
43
43
43
44
46
46
48
5
AMD
PRELIMINARY
Media Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Transmit and Receive Message Data Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Media Access Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Manchester Encoder/Decoder (MENDEC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
External Crystal Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
External Clock Drive Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MENDEC Transmit Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmitter Timing and Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Receiver Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input Signal Conditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Clock Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLL Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Carrier Tracking and End of Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Differential Input Terminations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Collision Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jitter Tolerance Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attachment Unit Interface (AUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
52
52
52
53
53
53
54
54
54
54
55
55
55
Twisted-Pair Transceiver (T-MAU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Twisted-Pair Transmit Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Twisted-Pair Receive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Link Test Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Polarity Detection and Reversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Twisted-Pair Interface Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Collision Detect Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Signal Quality Error (SQE) Test (Heartbeat) Function . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jabber Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10BASE-T Interface Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
55
56
56
56
57
57
57
57
57
Ethernet Power Savings Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Software Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Ethernet PCI Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
I/O Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
I/O Register Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Hardware Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
PCnet-SCSI Controller Master Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Slave Access to I/O Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
EEPROM Microwire Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Transmit Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Transmit Function Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Automatic Pad Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmit FCS Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmit Exception Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
69
70
70
Receive Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Receive Function Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Automatic Pad Stripping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Receive FCS Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Receive Exception Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
71
72
72
Loopback Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
LED Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6
Am79C974
PRELIMINARY
AMD
H_RESET, S_RESET, and STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
H_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
S_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
SCSI Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
SCSI Specific DMA Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
DMA FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DMA Blast Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funneling Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCSI DMA Programming Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MDL Based DMA Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DMA Scatter-Gather Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
76
76
76
76
78
Memory Descriptor List (MDL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
DMA Scatter-Gather Operation (4k aligned elements) . . . . . . . . . . . . . . . . . . . . . . . . 78
DMA Scatter-Gather Operation (Non-4k aligned elements MDL not set) . . . . . . . . . . 80
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
The Fast SCSI Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
SCSI Block ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCSI FIFO Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REQ/ACK Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
81
81
81
82
Parity Checking on the SCSI Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Parity Generating on the SCSI Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Reset Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Hard Reset: (H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Soft Reset: (S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Disconnected Reset: (D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Command Stacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Invalid Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initiator Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
84
84
84
Information Transfer Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initiator Command Complete Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Accepted Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transfer Pad Bytes Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set ATN Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset ATN Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
85
85
85
85
86
Idle State Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Select Without ATN Steps Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select With ATN Steps Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select With ATN and Stop Steps Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enable Selection/Reselection Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disable Selection/Reselection Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select With ATN3 Steps Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
86
86
86
87
87
General Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
No Operation Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Clear FIFO Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset Device Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset SCSI Bus Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Am79C974
87
87
87
87
7
AMD
PRELIMINARY
SCSI Power Management Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
SCSI Activity Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Reduced Power Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Power Down Pin (PWDN Pin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Software Disk Spin-Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
NAND Tree Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
OPERATING RANGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
DC CHARACTERISTICS: PCI Bus and Board Interface
. . . . . . . . . . . . . . . . . . . . . . . . . . . 92
DC CHARACTERISTICS: Attachment Unit Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
DC CHARACTERISTICS: 10BASE-T Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
DC CHARACTERISTICS: SCSI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
DC CHARACTERISTICS: Capacitance, ESD, and Latch Up . . . . . . . . . . . . . . . . . . . . . . . . 95
AC SWITCHING CHARACTERISTICS: PCI Bus and Board Interface . . . . . . . . . . . . . . . . . 96
AC SWITCHING CHARACTERISTICS: 10BASE-T Interface . . . . . . . . . . . . . . . . . . . . . . . . . 97
AC SWITCHING CHARACTERISTICS: Attachment Unit Interface . . . . . . . . . . . . . . . . . . . 98
AC SWITCHING CHARACTERISTICS: SCSI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
KEY TO SWITCHING WAVEFORMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
AC SWITCHING TEST CIRCUITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
AC SWITCHING WAVEFORMS: System Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
AC SWITCHING WAVEFORMS: 10BASE-T Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
AC SWITCHING WAVEFORMS: Attachment Unit Interface . . . . . . . . . . . . . . . . . . . . . . . . 107
AC SWITCHING WAVEFORMS: SCSI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
PHYSICAL DIMENSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
APPENDIX A – Register Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Ethernet Controller
Control and Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
BCR —Bus Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
SCSI Controller
SCSI Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
DMA Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
APPENDIX B – PCnet-SCSI Compatible Media Interface Modules . . . . . . . . . . . . . . . . . . 119
APPENDIX C – Recommendation for Power and Ground Decoupling . . . . . . . . . . . . . . . 121
APPENDIX D – Alternative Method for Initialization of Ethernet Controller . . . . . . . . . . . 123
APPENDIX E – SCSI System Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
APPENDIX F – Designing a Single Motherboard for AMD PCI Family . . . . . . . . . . . . . . . 132
8
Am79C974
PRELIMINARY
AMD
LIST OF FIGURES
Figure 1. Slave Configuration Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figure 2. Slave Configuration Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figure 3. Slave I/O Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Figure 4. Slave I/O Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 5. Bus Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 6. Non-Burst Read Cycles With Wait States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 7. Non-Burst Read Cycles Without Wait States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figure 8. Non-Burst Read Cycles With and Without Wait States . . . . . . . . . . . . . . . . . . . . . . . . 34
Figure 9. Burst Read Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figure 10. Burst Write Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figure 11. Disconnect With Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figure 12. Disconnect Without Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figure 13. Target Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figure 14. Preemption When FRAME is Deasserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Figure 15. Preemption When FRAME is Asserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figure 16. Master Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figure 17. 16-Bit Data Structures: Initialization Block and Descriptor Rings . . . . . . . . . . . . . . . 44
Figure 18. 32-Bit Data Structures: Initialization Block and Descriptor Rings . . . . . . . . . . . . . . . 45
Figure 19. Receiver Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Figure 20. Differential Input Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Figure 21. 10BASE-T Interface Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figure 22. ISO 8802-3 (IEEE/ANSI 802.3) Data Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Figure 23. 802.3 Frame and Length Field Transmission Order . . . . . . . . . . . . . . . . . . . . . . . . . 72
Figure 24. LED Control Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Figure 25. PCI BIU – DMA Engine – SCSI Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Figure 26. DMA FIFO to SCSI FIFO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Figure 27. Am79C974 NAND Tree Test Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Figure 28. NAND Tree Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Figure 29. SCSI Clock Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Figure 30. Asynchronous Initiator Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Figure 31. Asynchronous Initiator Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Figure 32. Synchronous Initiator Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Figure 33. Synchronous Initiator Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Figure E-1. Ideal Routing Scheme for SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Figure E-2. A Poor Routing Scheme for SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Figure E-3. Motherboard Layout – Approach #1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Figure E-4. Motherboard Layout – Approach #2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Figure E-5. Decoupling Capacitor Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Figure E-6. Regulated Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Figure F-1. PCI Family Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Am79C974
9
AMD
PRELIMINARY
LIST OF TABLES
Table 1. Crystal Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table 2. Clock Drive Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table 3. Bus Master Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Table 4. Bus Slave Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Table 5. EEPROM Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Table 6. The DMA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Table 7. Summary of SCSI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Table 8. NAND Tree Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10
Am79C974
PRELIMINARY
AMD
RELATED PRODUCTS
Part No.
Description
Am33C93A
Synchronous SCSI Controller
Am386
High-Performance 32-Bit Microprocessor
Am486TM
High-Performance 32-Bit Microprocessor
Am53C94/96
High-Performance SCSI Controller
Am53C974
PCSCSITM Bus Mastering Fast SCSI Controller for PCI Systems
Am53CF94/96
Enhanced Fast SCSI-2 Controller
Am79C90
CMOS Local Area Network Controller for Ethernet (C-LANCE)
Am79C98
Twisted-Pair Ethernet Transceiver (TPEX)
Am79C100
Twisted-Pair Ethernet Transceiver Plus (TPEX+)
Am79C900
Integrated Local Area Communications ControllerTM (ILACCTM)
Am79C940
Media Acces Controller for Ethernet (MACETM)
Am79C960
PCnet-ISA Single-Chip Ethernet Controller (for ISA bus)
Am79C961
PCnet-ISA+ Single-Chip Ethernet Controller (with Microsoft Plug n’ Play support)
Am79C965
PCnet-32 Single-Chip 32-Bit Ethernet Controller (for 386DX, 486 and VL buses)
Am79C970
PCnet-PCI Single-Chip Ethernet Controller for PCI Local Bus
Am79C981
Integrated Multiport Repeater PlusTM (IMR+TM)
Am79C987
Hardware Implemented Management Information BaseTM (HIMIBTM)
Am7990
Local Area Network Controller for Ethernet (LANCE)
Am7996
IEEE 802.3/Ethernet/Cheapernet Tap Transceiver
Am85C30
Enhanced Serial Communication Controller
Am79C974
11
AMD
PRELIMINARY
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
AD28
AD29
VSSB
AD30
AD31
REQA
REQB
VSS
GNTA
GNTB
VDD
CLK
RST
VSS
INTB
INTA
RESERVE
SLEEP
EECS
DVSS
EESK/LED1
EEDI/LNKST
EEDO/LED3
DVDD
AVDD2
CI+
CIDI+
DIAVDD1
DO+
DOAVSS1
CONNECTION DIAGRAM
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
Am79C974
PCnet-SCSI
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
XTAL2
AVSS2
XTAL1
AVDD3
TXD+
TXP+
TXDTXPAVDD4
RXD+
RXDDVSS
I/O
C/D
MSG
VDD
ACK
VSSBS
REQ
SEL
DVSS
SDP
SD7
VDDBS
SD6
SD5
SD4
VSSBS
SD3
SD2
SD1
SD0
VSSBS
PAR
C/BE1
AD15
VSSB
AD14
AD13
AD12
AD11
AD10
VSSB
AD9
AD8
VDDB
C/BE0
AD7
AD6
VSSB
AD5
AD4
AD3
AD2
VSSB
AD1
AD0
PWDN
VDD
SCSICLK
VSS
BUSY
VSS
BSY
ATN
SCSI^RST
34
35
36
37
38
39
40
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
VDDB
AD27
AD26
VSSB
AD25
AD24
C/BE3
VDD
IDSELA
IDSELB
VSS
AD23
AD22
VSSB
AD21
AD20
VDDB
AD19
AD18
VSSB
AD17
AD16
C/BE2
FRAME
IRDY
TRDY
DEVSEL
STOP
LOCK
VSS
PERR
SERR
VDDB
18681A-3
Pin 1 is marked for orientation.
RESERVE = Don’t Connect.
12
Am79C974
AMD
PRELIMINARY
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:
AM79C974
K
C
\W
ALTERNATE PACKAGING OPTION
\W = Trimmed and Formed in a Tray
OPTIONAL PROCESSING
Blank = Standard Processing
TEMPERATURE RANGE
C = Commercial (0°C to +70°C)
PACKAGE TYPE (per Prod. Nomenclature)
K = Plastic Quad Flat Pack Trimmed and Formed
(PQB132)
SPEED OPTION
Not Applicable
DEVICE NUMBER/DESCRIPTION
Am79C974
PCnet-SCSI Combination Ethernet and
SCSI Controller for PCI Systems
Valid Combinations
Valid Combinations
AM79C974
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.
Am79C974
13
AMD
PRELIMINARY
PIN DESIGNATIONS
Listed by Pin Number
14
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
1
VDDB
34
PAR
67
VSSBS
100
AVSS1
2
AD27
35
C/BE1
68
SD0
101
DO–
3
AD26
36
AD15
69
SD1
102
DO+
4
VSSB
37
VSSB
70
SD2
103
AVDD1
5
AD25
38
AD14
71
SD3
104
DI–
6
AD24
39
AD13
72
VSSBS
105
DI+
7
C/BE3
40
AD12
73
SD4
106
CI–
8
VDD
41
AD11
74
SD5
107
CI+
9
IDSELA
42
AD10
75
SD6
108
AVDD2
10
IDSELB
43
VSSB
76
VDDBS
109
DVDD
11
VSS
44
AD9
77
SD7
110
EEDO/LED3
12
AD23
45
AD8
78
SDP
111
EEDI/LNKST
13
AD22
46
VDDB
79
DVSS
112
EESK/LED1
14
VSSB
47
C/BE0
80
SEL
113
DVSS
15
AD21
48
AD7
81
REQ
114
EECS
16
AD20
49
AD6
82
VSSBS
115
SLEEP
17
VDDB
50
VSSB
83
ACK
116
RESERVE
18
AD19
51
AD5
84
DVDD
117
INTA
19
AD18
52
AD4
85
MSG
118
INTB
20
VSSB
53
AD3
86
C/D
119
VSS
21
AD17
54
AD2
87
I/O
120
RST
22
AD16
55
VSSB
88
DVSS
121
CLK
23
C/BE2
56
AD1
89
RXD–
122
VDD
24
FRAME
57
AD0
90
RXD+
123
GNTB
25
IRDY
58
PWDN
91
AVDD4
124
GNTA
26
TRDY
59
VDD
92
TXP–
125
VSS
27
DEVSEL
60
SCSICLK
93
TXD–
126
REQB
28
STOP
61
VSS
94
TXP+
127
REQA
29
LOCK
62
BUSY
95
TXD+
128
AD31
30
VSS
63
VSS
96
AVDD3
129
AD30
31
PERR
64
BSY
97
XTAL1
130
VSSB
32
SERR
65
ATN
98
AVSS2
131
AD29
33
VDDB
66
SCSI^RST
99
XTAL2
132
AD28
Am79C974
AMD
PRELIMINARY
PIN DESIGNATIONS
Listed by Pin Name
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
ACK
83
ATN
65
GNTB
123
STOP
28
AD0
57
AVDD1
103
IDSELA
9
TRDY
26
AD1
56
AVDD2
108
IDSEL
10
XTAL1
97
AD2
54
AVDD3
96
INTA
117
XTAL2
99
AD3
53
AVDD4
91
INTB
118
TXD–
93
AD4
52
AVSS1
100
I/O
87
TXD+
95
AD5
51
AVSS2
98
IRDY
25
TXP–
92
AD6
49
BSY
64
LOCK
29
TXP+
94
AD7
48
BUSY
62
MSG
85
VDD
8
AD8
45
C/BE0
47
PAR
34
VDD
59
AD9
44
C/BE1
35
PERR
31
VDD
122
AD10
42
C/BE2
23
PWDN
58
VDDB
1
AD11
41
C/BE3
7
REQ
81
VDDB
17
AD12
40
C/D
86
REQA
127
VDDB
33
AD13
39
CLK
121
REQB
126
VDDB
46
AD14
38
CI–
106
RESERVE
116
VDDBS
76
AD15
36
CI+
107
RST
120
VSS
11
AD16
22
DEVSEL
27
RXD–
89
VSS
30
AD17
21
DI–
104
RXD+
90
VSS
61
AD18
19
DI+
105
SCSICLK
60
VSS
63
AD19
18
DO–
101
SCSI^RST
66
VSS
119
AD20
16
DO+
102
SD0
68
VSS
125
AD21
15
DVDD
84
SD1
69
VSSB
4
AD22
13
DVDD
109
SD2
70
VSSB
14
AD23
12
DVSS
79
SD3
71
VSSB
20
AD24
6
DVSS
88
SD4
73
VSSB
37
AD25
5
DVSS
113
SD5
74
VSSB
43
AD26
3
EECS
114
SD6
75
VSSB
50
AD27
2
EEDI/LNKST
111
SD7
77
VSSB
55
AD28
132
EEDO/LED3
110
SDP
78
VSSB
130
AD29
131
EESK/LED1
112
SEL
80
VSSBS
67
AD30
129
FRAME
24
SERR
32
VSSBS
72
AD31
128
GNTA
124
SLEEP
115
VSSBS
82
Am79C974
15
AMD
PRELIMINARY
PIN DESIGNATIONS
Quick Reference Pin Description
Pin Name
Description
Type
Driver
# Pins
PCI Bus Interface
AD[31:00]
Address/Data Bus
IO
TS3
32
C/BE[3:0]
Bus Command/Byte Enable
IO
TS3
4
CLK
Bus Clock
I
NA
1
DEVSEL
Device Select
IO
TS6
1
FRAME
Cycle Frame
IO
TS6
1
GNTA, GNTB
Bus Grant
I
NA
1
IDSELA, IDSELB
Initialization Device Select
I
NA
1
INTA, INTB
Interrupt
IO
OD6
1
IRDY
Initiator Ready
IO
TS6
1
LOCK
Bus Lock
IO
TS6
1
PAR
Parity
IO
TS6
1
PERR
Parity Error
IO
TS6
1
REQA, REQB
Bus Request
IO
TS3
1
RST
Reset
I
NA
1
SERR
System Error
IO
OD6
1
STOP
Stop
IO
TS6
1
TRDY
Target Ready
IO
TS6
1
O
O8
1
1
ETHERNET SPECIFIC
Board Interface
EECS
Microwire Serial PROM Chip Select
EEDI/LNKST
Microwire Serial EEPROM Data In/Link Status
O
LED
EEDO/LED3
Microwire APROM Data Out/LED predriver
IO
LED
1
EESK/LED1
Microwire Serial PROM Clock/LED1
IO
LED
1
SLEEP
Sleep Mode
XTAL1–2
Crystal Input/Output
I
NA
1
IO
NA
2
I
NA
2
Attachment Unit Interface (AUI)
CI+/CI–
AUI Collision Differential Pair
DI+/DI–
AUI Data In Differential Pair
I
NA
2
DO+/DO–
AUI Data Out Differential Pair
O
DO
2
10BASE-T Interface
RXD+/RXD–
Receive Differential Pair
I
NA
2
TXD+/TXD–
Transmit Differential Pair
O
TDO
2
TXP+/TXP–
Transmit Pre-distortion Differential Pair
O
TPO
2
LNKST/EEDI
Link Status/Microwire Serial EEPROM Data In
O
LED
1
16
Am79C974
AMD
PRELIMINARY
PIN DESIGNATIONS (continued)
Quick Reference Pin Description
Pin Name
Description
Type
Driver
# Pins
SCSI SPECIFIC
SCSI Interface
SD [7:0]
SCSI Data
IO
OD48
8
SDP
SCSI Data Parity
IO
OD48
1
MSG
Message
C/D
Command/Data
I
1
I/O
Input/Output
I
1
ATN
Attention
O
OD48
1
BSY
Busy
IO
OD48
1
SEL
Select
IO
OD48
1
SCSI^RST
SCSI Bus Reset
IO
OD48
1
REQ
Request
I
ACK
Acknowledge
O
SCSI CLK
SCSI Core Clock
I
1
RESERVE
Reserved, DO NOT CONNECT
I
1
Power Down Indicator
I
1
NAND Tree Test Output
O
O3
1
AVDD
Analog Power
P
NA
4
AVSS
Analog Ground
P
NA
2
VDD/DVDD
Digital Power
P
NA
5
VSS/DVSS
Digital Ground
P
NA
9
VDDB/VDDBS
I/O Buffer Power
P
NA
5
VSSB/VSSBS
I/O Buffer Ground
P
NA
11
I
1
1
OD48
1
Miscellaneous
Power Management
PWDN
Test Interface
BUSY
Power Supplies
Listed by Driver Type
The following table describes the various types of drivers that are implemented in the PCnet-SCSI controller. Current
is given as milliamperes:
Name
Type
TM
IOL (mA)
IOH (mA)
pF
TS3
Tri-State
3
–2.0
50
TS6
Tri-State
6
–2.0
50
O3
Totem Pole
3
–0.4
50
O6
Totem Pole
6
–0.4
50
O8
Totem Pole
8
–0.4
50
OD6
Open Drain
6
NA
50
OD48
Open Drain
48
NA
—
LED
12
–0.4
50
LED
Am79C974
17
AMD
PRELIMINARY
LOGIC SYMBOL
CI+/–
AD [31:0]
DI+/–
XTAL1
C/BE [3:0]
XTAL2
DO+/–
PAR
RXD+/–
FRAME
Ethernet
TXD+/–
TRDY
TXP+/–
EEDI/LINKST
IRDY
EECS
STOP
EESK/LED1
EEDO/LED3
DEVSEL
PCI Interface
IDSELA
SD [7:0]
IDSELB
REQA
SDP
PCnet-SCSI
(Am79C974)
MSG
C/D
REQB
I/O
GNTA
ATN
BSY
GNTB
SCSI
SEL
CLK
SCSI^RST
RST
REQ
INTA
ACK
INTB
SCSI CLK
RESERVE
LOCK
PERR
SERR
PWDN
Power
Management
Signals
BUSY
Test Interface
18248B-4
VDD
18
VSS
Am79C974
PRELIMINARY
AMD
with respect to this edge. The PCnet-SCSI controller operates over a range of 0 to 33 MHz.
PIN DESCRIPTION
PCI Bus Interface
AD[31:00]
When RST is active, CLK is an input for NAND tree
testing.
Address and Data
Input/Output, Active High
DEVSEL
These signals are multiplexed on the same PCI pins.
During the first clock of a transaction AD[31:00] contain
the physical byte address (32 bits). During the subsequent clocks AD[31:00] contain data. Byte ordering is little endian by default. AD[07:00] are defined as least
significant byte and AD[31:24] are defined as the most
significant byte. For FIFO data transfers, the PCnetSCSI controller can be programmed for big endian byte
ordering. See CSR3, bit 2 (BSWP) for more details.
During the address phase of the transaction, when the
PCnet-SCSI controller is a bus master, AD[31:2] will address the active DWORD (double-word). The PCnetSCSI controller always drives AD[1:0] to ‘00’ during the
address phase indicating linear burst order. When the
PCnet-SCSI controller is not a bus master, the
AD[31:00] lines are continuously monitored to determine if an address match exists for I/O slave transfers.
During the data phase of the transaction, AD[31:00] are
driven by the PCnet-SCSI controller when performing
bus master writes and slave read operations. Data on
AD[31:00] is latched by the PCnet-SCSI controller when
performing bus master reads and slave write
operations.
When RST is active, AD[31:0] are inputs for NAND tree
testing.
C/BE [3:0]
Device Select
Input/Output, Active Low
This signal when actively driven by the PCnet-SCSI
controller as a slave device signals to the master device
that the PCnet-SCSI controller has decoded its address
as the target of the current access. As an input it indicates whether any device on the bus has been selected.
When RST is active, DEVSEL is an input for NAND tree
testing.
FRAME
Cycle Frame
Input/Output, Active Low
This signal is driven by the PCnet-SCSI controller when
it is the bus master to indicate the beginning and duration of the access. FRAME is asserted to indicate a bus
transaction is beginning. FRAME is asserted while data
transfers continue. FRAME is deasserted when the
transaction is in the final data phase.
When RST is active, FRAME is an input for NAND tree
testing.
GNTA
Bus Grant
Input, Active Low
This signal indicates that the access to the bus has been
granted to the Am79C974’s SCSI controller.
Bus Command and Byte Enables
Input/Output, Active Low
These signals are multiplexed on the same PCI pins.
During the address phase of the transaction, C/BE[3:0]
define the bus command. During the data phase
C/BE[3:0] are used as Byte Enables. The Byte Enables
define which physical byte lanes carry meaningful data.
C/BE0 applies to byte 0 (AD[07:00]) and C/BE3 applies
to byte 3 (AD[31:24]). The function of the Byte Enables
is independent of the byte ordering mode (CSR3, bit 2).
When RST is active, C/BE[3:0] are inputs for NAND tree
testing.
CLK
Clock
Input
This signal provides timing for all the transactions on the
PCI bus and all PCI devices on the bus including the
PCnet-SCSI controller. All bus signals are sampled on
the rising edge of CLK and all parameters are defined
The Am79C974 controller supports bus parking. When
the PCI bus is idle and the system arbiter asserts GNTA
without an active REQA from the Am79C974 controller,
the controller will actively drive the AD[31:00], C/
BE[3:0], and PAR lines.
When RST is active, GNTA is an input for NAND tree
testing.
GNTB
Bus Grant
Input, Active Low
This signal indicates that the access to the bus has been
granted to the Am79C974’s Ethernet controller. The
Am79C974 controller supports bus parking. When the
PCI bus is idle and the system arbiter asserts GNTB
without an active REQB from the Am79C974 controller,
the controller will actively drive the AD, C/BE and PAR
lines.
Am79C974
19
AMD
PRELIMINARY
When RST is active, GNTB is an input for NAND tree
testing.
IDSELA
Initialization Device Select
Input, Active High
This signal is used as a SCSI controller selection for the
Am79C974
during
configuration
read
and
write transaction.
When RST is active, IDSELA is an input for NAND tree
testing.
IDSELB
Initialization Device Select
Input, Active High
This signal is used as an Ethernet controller selection for
the PCnet-SCSI controller during configuration read
and write transaction.
When RST is active, IDSELB is an input for NAND tree
testing.
INTA
Interrupt Request
Input/Output, Active Low, Open Drain
IRDY
Initiator Ready
Input/Output, Active Low
This signal indicates PCnet-SCSI controller’s ability, as
a master device, to complete the current data phase of
the transaction. IRDY is used in conjunction with the
TRDY. A data phase is completed on any clock when
both IRDY and TRDY are asserted. During a write IRDY
indicates that valid data is present on AD[31:00]. During
a read IRDY indicates that data is accepted by the
PCnet-SCSI controller as a bus master. Wait states are
inserted until both IRDY and TRDY are asserted simultaneously.
When RST is active, IRDY is an input for NAND tree
testing.
LOCK
Lock
Input, Active Low
LOCK is used by the current bus master to indicate an
atomic operation that may require multiple transfers.
As a slave device, the PCnet-SCSI controller can be
locked by any master device. When another master attempts to access the PCnet-SCSI while it is locked, the
PCnet-SCSI controller will respond by asserting
DEVSEL and STOP with TRDY deasserted (PCI retry).
This signal combines the interrupt requests from both
the SCSI DMA engine and the SCSI core. The interrupt
source can be determined by reading the SCSI DMA
Status Register. It is cleared when the Status Register is
read.
The PCnet-SCSI controller will never assert LOCK as a
master.
When RST is active, INTA is an input for NAND tree testing. This is the only time INTA is an input.
When RST is active, LOCK is an input for NAND tree
testing.
INTB
PAR
Interrupt Request
Input/Output, Active Low, Open Drain
Parity
Input/Output, Active High
An asynchronous attention signal which indicates that
one or more of the following status flags is set: BABL,
MISS, MERR, RINT, IDON, RCVCCO, RPCO, JAB,
MPCO, or TXSTRT. Each status flag has a mask bit
which allows for suppression of INTB assertion. The
flags have the following meaning:
BABL
RCVCCO
RPCO
JAB
MISS
MERR
MPCO
RINT
IDON
TXSTRT
Babble
Receive Collision Count Overflow
Runt Packet Count Overflow
Jabber
Missed Frame
Memory Error
Missed Packet Count Overflow
Receive Interrupt
Initialization Done
Transmit Start
When RST is active, INTB is an input for NAND tree
testing. This is the only time INTB is an input.
20
Parity is even parity across AD[31:00] and C/BE[3:0].
When the PCnet-SCSI controller is a bus master, it
generates parity during the address and write data
phases. It checks parity during read data phases. When
the PCnet-SCSI controller operates in slave mode and
is the target of the current cycle, it generates parity during read data phases. It checks parity during address
and write data phases.
When RST is active, PAR is an input for NAND tree
testing.
PERR
Parity Error
Input/Output, Active Low, Open Drain
This signal is asserted for one CLK by the PCnet-SCSI
controller when it detects a parity error during any data
phase when its AD[31:00] lines are inputs. The PERR
pin is only active when PERREN (bit 6) in the PCI command register is set.
Am79C974
PRELIMINARY
The PCnet-SCSI controller monitors the PERR input
during a bus master write cycle. It will assert the Data
Parity Reported bit in the Status register of the Configuration Space when a parity error is reported by the target
device.
When RST is active, PERR is an input for NAND tree
testing.
REQA
Bus Request
Input/Output, Active Low
AMD
When RST is active, SERR is an input for NAND tree
testing.
STOP
Stop
Input/Output, Active Low
In the slave role, the PCnet-SCSI controller drives the
STOP signal to inform the bus master to stop the current
transaction. In the bus master role, the PCnet-SCSI
controller receives the STOP signal and stops the current transaction.
The Am79C974’s SCSI controller asserts REQA pin as
a signal that it wishes to become a bus master. Once asserted, REQA remains active until GNTA has become
active.
When RST is active, STOP is an input for NAND tree
testing.
When RST is active, REQA is an input for NAND tree
testing. This is the only time REQA is an input.
Target Ready
Input/Output, Active Low
REQB
Bus Request
Input/Output, Active Low
The Am79C974’s Ethernet controller asserts REQB pin
as a signal that it wishes to become a bus master. Once
asserted, REQB remains active until GNT has become
active, independent of subsequent assertion of SLEEP
or setting of the STOP bit or access to the S_RESET
port (offset 14h).
When RST is active, REQB is an input for NAND tree
testing. This is the only time REQB is an input.
TRDY
This signal indicates the PCnet-SCSI controller’s ability
as a selected device to complete the current data phase
of the transaction. TRDY is used in conjunction with the
IRDY. A data phase is completed on any clock both
TRDY and IRDY are asserted. During a read TRDY indicates that valid data is present on AD[31:00]. During a
write, TRDY indicates that data has been accepted.
Wait states are inserted until both IRDY and TRDY are
asserted simultaneously.
When RST is active, TRDY is an input for NAND tree
testing.
RST
Ethernet Controller Pins
Reset
Input, Active Low
Board Interface
When RST is asserted low, then the PCnet-SCSI controller performs an internal system reset of the type
H_RESET (HARDWARE_RESET). RST must be held
for a minimum of 30 CLK periods. While in the H_RESET state, the PCnet-SCSI controller will disable or
deassert all outputs. RST may be asynchronous to the
CLK when asserted or deasserted. It is recommended
that the deassertion be synchronous to guarantee a
clean and bounce free edge.
LED1
Output
When RST is active, NAND tree testing is enabled. All
PCI interface pins are in input mode. The result of the
NAND tree testing can be observed on the BUSY output
(pin 62).
SERR
System Error
Input/Output, Active Low, Open Drain
This signal is asserted for one CLK by the PCnet-SCSI
controller when it detects a parity error during the address phase when its AD[31:00] lines are inputs.
The SERR pin is only active when SERREN (bit 8) and
PERREN (bit 6) in the PCI command register are set.
LED1
This pin is shared with the EESK function. As LED1, the
function and polarity of this pin are programmable
through BCR5. By default, LED1 is active LOW and it indicates receive activity on the network. The LED1 output
from the PCnet-SCSI controller is capable of sinking the
12 mA of current necessary to drive an LED directly.
The LED1 pin is also used during EEPROM Auto-detection to determine whether or not an EEPROM is present
at the PCnet-SCSI controller Microwire interface. At the
trailing edge of the RST pin, LED1 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 Auto-detection section for more details.
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 EEDET setting.
Am79C974
21
AMD
PRELIMINARY
LED3
LED3
Output
This pin is shared with the EEDO function of the
Microwire serial EEPROM interface. When functioning
as LED3, the signal on this pin is programmable through
BCR7. By default, LED3 is active LOW and it indicates
transmit activity on the network. Special attention must
be given to the external circuitry attached to 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 LED3 pin and the LED
circuit. If no EEPROM is included in the system design,
then the LED3 signal may be directly connected to an
LED without buffering. The LED3 output from the
PCnet-SCSI controller is capable of sinking the 12 mA of
current necessary 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. By default, it
indicates an active link connection on the 10BASE-T interface. This pin can also be programmed to indicate
other network status (see BCR4). The LNKST pin
polarity is programmable, but by default, it is active
LOW. Note that this pin is multiplexed with the EEDI
function.
SLEEP
Sleep
Input
When SLEEP is asserted (active LOW), the PCnetSCSI 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.) The PCI interface section
is not effected by SLEEP. In particular, access to the
PCI configuration space remains possible. None of the
configuration registers will be reset by SLEEP. All I/O
accesses to the PCnet-SCSI controller will result in a
PCI target abort response. The PCnet-SCSI controller
will not assert REQ while in sleep mode. When SLEEP
is asserted, all non-PCI interface outputs will be placed
in their normal S_RESET condition. All non-PCI interface 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-SCSI device for 0.5 seconds following the deassertion of the SLEEP signal in order to allow
internal analog circuits to stabilize.
22
Both CLK and XTAL1 inputs must have valid clock signals present in order for the SLEEP command to take
effect. If SLEEP is asserted while REQ is asserted, then
the PCnet-SCSI controller will wait for the assertion of
GNT. When GNT is asserted, the REQ signal will be deasserted and then the PCnet-SCSI controller will proceed to the power savings mode.
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 CLK cycles after the completion of a valid pin RST operation.
The SLEEP pin does not affect the SCSI section.
XTAL1
Crystal Oscillator Input
Input
XTAL2
Crystal Oscillator Output
Output
The crystal frequency determines the network data rate.
The PCnet-SCSI controller supports the use of quartz
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-SCSI
controller is in coma mode, there is an internal 22 KΩ 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 deassertion of REQ.
Microwire EEPROM Interface
EESK
EEPROM Serial Clock
Input/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-SCSI controller directly
during a read of the entire EEPROM, or indirectly by the
host system by writing to BCR19, bit 1.
The EESK pin is also used during EEPROM Auto-detection to determine whether or not an EEPROM is present
Am79C974
PRELIMINARY
at the PCnet-SCSI controller Microwire interface. At the
trailing edge of the RST signal, EESK 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 Auto-detection section for more details.
EESK is shared with the LED1 function. 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
EEDET setting.
EEDO
EEPROM Data Out
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 is shared with the LED3 function.
AMD
Attachment Unit Interface
CI±
Collision In
Input
A differential input pair signaling the PCnet-SCSI 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-SCSI controller carrying Manchester encoded data from the network. Operates at pseudo ECL levels.
DO±
Data Out
Output
A differential output pair from the PCnet-SCSI controller
for transmitting Manchester encoded data to the network. Operates at pseudo ECL levels.
Twisted-Pair Interface
EECS
RXD±
EEPROM Chip Select
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-SCSI controller during command portions of
a read of the entire EEPROM, or indirectly by the host
system by writing to BCR19 bit 2.
10BASE-T Receive Data
Input
10BASE-T port differential receivers.
TXD±
10BASE-T Transmit Data
Output
10BASE-T port differential drivers.
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-SCSI controller during command portions of a
read of the entire EEPROM, or indirectly by the host system by writing to BCR19 bit 0.
TXP±
10BASE-T Pre-Distortion Control
Output
These outputs provide transmit pre-distortion control in
conjunction with the 10BASE-T port differential drivers.
EEDI is shared with the LNKST function.
Am79C974
23
AMD
PRELIMINARY
SCSI Controller Pins
SCSI^RST
SCSI Bus Interface Signals
SCSI Bus Pins
Reset
Input/Output, Active Low, Schmitt Trigger,
Open Drain
As a SCSI input signal it has a Schmitt trigger and as an
output signal it has a 48 mA drive.
SD [7:0]
SCSI Data
Input/Output, Active Low, Open Drain/Active
Negation, Schmitt Trigger
These pins are defined as bi-directional SCSI data bus.
SDP
SCSI Data Parity
Input/Output, Active Low, Open Drain/Active
Negation, Schmitt Trigger
This pin is defined as bi-directional SCSI data parity.
MSG
Message
Input, Active Low, Schmitt Trigger
It is a Schmitt trigger input in the initiator mode.
Request
Input, Active Low, Schmitt Trigger
This is a SCSI input signal with a Schmitt trigger in the
initiator mode.
ACK
Acknowledge
Output, Active Low, Open Drain/Active Negation
This is a SCSI output signal with a 48 mA drive in the
initiator mode.
SCSI CLK
SCSI Clock
Input
The SCSI clock signal is used to generate all internal device timings. The maximum frequency of this input is
40 MHz and a minimum of 10 MHz is required to maintain the SCSI bus timings.
C/D
Command/Data
Input, Schmitt Trigger
It is a Schmitt trigger input in the initiator mode.
I/O
Input/Output
Input, Schmitt Trigger
It is a Schmitt trigger input in the initiator mode.
Note:
A 40 MHz clock must be supplied at this input to achieve
10 Mbyte/s Synchronous Fast SCSI transfers.
ATN
PWDN
Attention
Output, Active Low, Open Drain
This signal is a 48 mA output in the initiator mode. This
signal will be asserted when the device detects a parity
error; also, it can be asserted via certain commands.
BSY
Busy
Input/Output, Active Low, Schmitt Trigger,
Open Drain
As a SCSI input signal it has a Schmitt trigger and as an
output signal it has a 48 mA drive.
SEL
Select
Input/Output, Active Low, Schmitt Trigger,
Open Drain
As a SCSI input signal it has a Schmitt trigger and as an
output signal it has a 48 mA drive.
24
REQ
Power Down Indicator
Input, Active High
This signal, when asserted, sets the PWDN status bit in
the DMA status register and sends an interrupt to
the host.
Test Interface
BUSY
NAND Tree Out
Output, Active Low
This signal is logically equivalent to the SCSI bus signal
BSY. It is duplicated so that external logic can be
connected to monitor SCSI bus activity.
The results of the NAND tree testing can be observed on
the BUSY pin where RST is asserted; otherwise, BUSY
will reflect the state of the SCSI Bus Signal line BSY
(pin 64).
Am79C974
PRELIMINARY
Miscellaneous
RESERVED
Digital Power Supply Pins
Reserved_DO NOT CONNECT
Input
This pin (#116) is reserved for internal test logic. It
MUST NOT BE CONNECTED to anything for proper
chip operation. It’s use is subject to change in future
products.
Digital Power (5 Pins)
Power
Power Supply Pins
Analog Power Supply Pins
AVDD
VDDB/VDDB
AMD
VDD/DVDD
There are 5 power supply pins that are used by the internal digital circuitry. All VDD pins must be connected to a
+5 V supply.
I/O Buffer Power (5 Pins)
Power
There are 5 power supply pins that are used by the PCI
bus Input/Output buffer drivers. All VDDB pins must be
connected to a +5 V supply.
Analog Power (4 Pins)
Power
There are four analog +5 V supply pins. Special attention should be paid to the printed circuit board layout to
avoid excessive noise on these lines. Refer to
Appendix C and the Technical Manual (PID #18738A)
for details.
VSS/DVSS
Digital Ground (9 Pins)
Ground
AVSS
There are 9 ground pins that are used by the internal
digital circuitry.
Analog Ground (2 Pins)
Power
VSSB/VSSBS
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 C and
the Technical Manual (PID #18738A) for details.
I/O Buffer Ground (11 Pins)
Ground
There are 11 ground pins that are used by the PCI bus
Input/Output buffer drivers.
Am79C974
25
AMD
PRELIMINARY
registers are used to set up controller operating modes,
to enable or disable various features, to start certain operations, and to monitor operating status.
BASIC FUNCTIONS
System Bus Interface Function
During normal operations the Am79C974 operates as a
bus master with a few slave l/O accesses for status and
control functions.
The Ethernet controller is initialized through a combination of PCI Configuration Space accesses, I/O space
Bus Slave accesses, Memory Space Bus Master accesses, and optional reads of an external serial
EEPROM. The EEPROM is read through the Microwire
interface either automatically by the Am79C974 or indirectly by a series of bus slave accesses to one of the
Ethernet Bus Configuration Registers (BCRs). The
EEPROM normally contains the ISO 8802-3 (IEEE/
ANSI 802.3) Ethernet node address and data to be
loaded into some of the Ethernet BCRs.
The SCSI controller is initialized by bus slave writes to
SCSI Core and SCSI DMA registers.
Software Interface
The Am79C794 uses four address spaces: Ethernet
PCI configuration space, SCSI PCI configuration space,
I/O space, and memory space.
SCSI PCI configuration space is selected when the
IDSELA pin is active. Ethernet PCI configuration space
is selected when the IDSELB pin is active. The way that
IDSELA and IDSELB are controlled depends on external hardware. Section 3.6.4.1 of the PCI Specification
recommends two methods of generating configuration
cycles called Configuration Mechanism #1 and Configuration Mechanism #2.
The PCI Configuration Spaces are used by system software to identify the SCSI and Ethernet controllers and to
set up device configuration without the use of jumpers.
Certain PCI configuration registers have read-only information about the devices resource requirements. Other
registers are used as mail boxes that system configuration software uses to inform other software what resources have been allocated to the device. The only PCI
Configuration Registers that affect the operation of the
Am79C794 are the SCSI and Ethernet Base Address
Registers, which are found at offset 10h in each of the
two configuration spaces, and the Command Registers
at offset 4. Writing to these registers establishes the
base address of the SCSI l/O space and the base address of the Ethernet I/O space.
The SCSI controller registers occupy 96 bytes of l/O
space that starts on whatever 128-byte boundary that is
programmed into the Base Address Register at offset
10h in the SCSI PCI Configuration Space. The Ethernet
controller registers occupy 32 bytes of l/O space that
starts on whatever 32-byte boundary that is programmed into the Base Address Register at offset 10h
in the Ethernet PCI Configuration Space. These
26
In addition to the registers in the l/O space, the Ethernet
controller uses certain data structures that are set up
(typically by the host computer) in normal memory
space. These data structures are (1) the initialization
block that contains configuration data that the Ethernet
controller automatically loads into its Configuration and
Status Registers (CSRs), (2) the Receive and Transmit
Descriptor Rings, that contain pointers to receive and
transmit buffers and status and control information
about these buffers, and (3) the receive and transmit
buffers. The Ethernet controller uses bus master accesses to read the locations of the buffers, to store
frames received from the network into the receive buffers, and to transmit the contents of the transmit buffers.
Ethernet Interfaces
The Am79C974 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
remote MAU or an on-board transceiver. 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.
SCSI Interfaces
The Am79C974 acts as a bridge between the PCI and
SCSI buses. As the maximum data transfer rate on the
PCI bus is a very high 132 Mbyte/s compared with the
SCSI bus 10 Mbyte/s, buffering is required between the
two buses. The buffering is provided by two FIFOs: a
16-byte (16X8 bits) SCSI Core FIFO and an additional
96-byte (24X32 bits) DMA FIFO. These FIFOs provide a
temporary storage for all command, data, status and
message bytes as they are transferred between the
32-bit PCI bus and the 8-bit SCSI bus.
The Am79C974’s SCSI Core and DMA registers are addressed using the value in the Base Address Register
(offset 10h in the PCI Configuration Space). The SCSI
registers occupy 16 double words and the DMA engine
registers occupy 8 double word locations. The I/O address map is as follows:
Start Offset
End Offset
Block Name
Size
0x0000
0x003F
SCSI Core Reg
16 DW/64B
0x0040
0x005F
PCI DMA CCB
8 DW/32B
The PCI configuration space, Ethernet controller and
SCSI controller are described in detail in the following
sections.
Am79C974
AMD
PRELIMINARY
space with a configuration read or write command. The
Am79C974 controller will assert DEVSEL if the IDSEL
input is asserted during the address phase and if the access is a configuration cycle. DEVSEL is asserted two
clock cycles after the host has asserted FRAME. All
configuration cycles are of fixed length. The Am79C974
controller will assert TRDY on the 3rd clock of the
data phase.
DETAILED FUNCTIONS
Bus Interface Unit (BIU)
The bus interface unit is built of several state machines
that run synchronously to CLK. One bus interface unit
state machine handles accesses where the Am79C974
controller is the bus slave, and another handles accesses where the Am79C974 controller is the bus master. All inputs are synchronously sampled. All outputs
are synchronously generated on the rising edge of CLK.
Slave Configuration Read
The Slave Configuration Read command is used by the
host CPU to read the configuration space in the
Am79C974 controller. This provides the host CPU with
information concerning the device and its capabilities.
This is a single cycle, non-burst 8-bit, 16-bit, or 32-bit
transfer.
In the descriptions that follow, GNT, REQ, INT, and
IDSEL are used to refer to the set of GNTA, REQA,
INTA, and IDSELA for the SCSI controller and to the set
of GNTB, REQB, INTB, and IDSELB for the Ethernet
Controller, respectively.
Slave Configuration Transfers
The host can access the Am79C974 PCI configuration
CLK
1
2
3
4
5
6
FRAME
AD
ADDR
C/BE
1010
PAR
DATA
BE's
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
IDSEL
18681A-5
Figure 1. Slave Configuration Read
Am79C974
27
AMD
PRELIMINARY
Slave Configuration Write
control basic activity of the device, such as enable/disable, change I/O location, etc. This is a single cycle,
non-burst 8-bit, 16-bit, or 32-bit transfer.
The Slave Configuration Write command is used by the
host CPU to write the configuration space in the
Am79C974 controller. This allows the host CPU to
CLK
1
2
3
4
5
6
FRAME
AD
ADDR
C/BE
1011
PAR
DATA
BE's
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
IDSEL
18681A-6
Figure 2. Slave Configuration Write
28
Am79C974
AMD
PRELIMINARY
Slave I/O Transfers
After the Am79C974 controller is configured as I/O device (by setting IOEN in the PCI Command register), it
starts monitoring the PCI bus for access to its internal
registers. The Am79C974 controller will look for an address that falls within its I/O address space. The
Am79C974 controller will assert DEVSEL if it detects an
address match and the access is an I/O cycle. DEVSEL
is asserted two clock cycles after the host has asserted
FRAME. The Am79C974 controller will not assert DEVSEL if it detects an address match, but the PCI command is not of the type I/O read or I/O write. The
Am79C974 controller will suspend looking for I/O cycles
while being a bus master.
Slave I/O Read
The Slave I/O Read command is used by the host CPU
to read the Am79C974’s CSRs, BCRs and EEPROM locations and SCSI and CCB registers. It is a single cycle,
non-burst 8-bit,16-bit or 32-bit transfer which is initiated
by the host CPU. The typical number of wait states
added to a slave I/O read access on the part of the
Am79C974 controller is 6 to 7 clock cycles. The
Am79C974 controller will not produce Slave I/O Read
commands while being a bus master.
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
ADDR
C/BE
0010
PAR
DATA
BE's
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
18681A-7
Figure 3. Slave I/O Read
Am79C974
29
AMD
PRELIMINARY
Slave I/O Write
The Slave I/O Write command is used by the host CPU
to write to the Am79C974’s CSRs, BCRs and EEPROM
locations and SCSI and CCB registers. It is a single cycle, non-burst 8-bit, 16–bit, or 32-bit transfer which is
initiated by the host CPU. The typical number of wait
states added to a slave I/O write access on the part of
the Am79C974 controller is 6 to 7 clock cycles. The
Am79C974 controller will not produce Slave I/O write
commands while being a bus master.
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
ADDR
C/BE
0011
PAR
DATA
BE's
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
18681A-8
Figure 4. Slave I/O Write
30
Am79C974
AMD
PRELIMINARY
Bus Acquisition
The Am79C974 microcode (in the buffer management
section) will determine when a DMA transfer should be
initiated. The first step in any Am79C974 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 REQ signal and ownership
is granted by the arbiter through the GNT signal.
CLK
1
2
3
4
5
FRAME
Figure 5 shows the Am79C974 controller bus acquisition. GNT is asserted at clock 3. The Am79C974 controller starts driving AD[31:00] and C/BE[3:0] prior to clock
4. FRAME is asserted at clock 5 indicating a valid address and command on AD[31:00] and C/BE[3:0].
ADSTEP (bit 7) in the PCI Command register is set to
ONE to indicated that the Am79C974 controller uses address stepping. Address stepping is only used for the
first address phase of a bus master period.
AD
ADDR
C/BE
CMD
REQ
GNT
18681A-9
Figure 5. Bus Acquisition
Am79C974
31
AMD
PRELIMINARY
Bus Master DMA Transfers
There are four primary types of DMA transfers. The
Am79C974 controller uses non-burst as well as burst
cycles for read and write access to the main memory.
Basic Non-Burst Read Cycles
All Am79C974 controller non-burst read accesses are of
the PCI command type Memory Read (type 6). Note that
during all non-burst read operations, the Am79C974
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 Am79C974 controller will internally discard unneeded bytes.
Figure 6 shows a typical non-burst read access. The
Am79C974 controller asserts IRDY at clock 5 immediately after the address phase and starts sampling
DEVSEL. The target extends the cycle by asserting
DEVSEL not until clock 6. Additionally, the target inserts
one wait state by asserting its ready (TRDY) at clock 8.
CLK
1
2
3
4
5
6
7
8
9
FRAME
AD
C/BE
PAR
ADDR
0110
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-10
Figure 6. Non-Burst Read Cycles With Wait States
32
Am79C974
AMD
PRELIMINARY
Figure 7 shows two non-burst read access within one arbitration cycle. The Am79C974 controller will drop
FRAME between two consecutive non-burst read cycles. The Am79C974 controller will re-request the bus
right again if it is preempted before starting the second
access. The example below also shows a target that can
respond to the Am79C974 controller read cycles without
wait states.
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
C/BE
PAR
ADDR
0110
DATA
ADDR
0000
PAR
0110
PAR
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-11
Figure 7. Non-Burst Read Cycles Without Wait States
Am79C974
33
AMD
PRELIMINARY
immediately if it is preempted before starting the second
access. The example below shows an extended cycle
for the first access. The target asserts DEVSEL 2 clock
cycles after the address phase (FRAME asserted) and
adds one extra wait state by asserting TRDY only on
clock 7. The second write cycle in the example shows a
ZERO wait state access.
Basic Non-Burst Write
All Am79C974 controller non-burst write accesses are
of the PCI command type Memory Write (type 7).
Figure 8 shows two non-burst write access within one
arbitration cycle. The Am79C974 controller will drop
FRAME between two consecutive non-burst write cycles. The Am79C974 controller will re-request the bus
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
C/BE
PAR
ADDR
DATA
ADDR
DATA
0111
BE's
0111
BE's
PAR
PAR
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-12
Figure 8. Non-Burst Write Cycles With and Without Wait States
34
Am79C974
AMD
PRELIMINARY
Basic Burst Read Cycles
mode.
All Am79C974 controller burst read transfers are of the
PCI command type Memory Read Line (type14).
AD[1:0] will both be ZERO during the address phase indicating a linear burst order. All four byte enable signals
will be ZERO during the data phase as the Am79C974
controller always reads a full 32-bit word when in burst
Figure 9 shows a typical burst read access. The
Am79C974 controller arbitrates for the bus, is granted
access, and reads four 32-bit words (DWORD) from
system memory and then releases the bus. All four data
phases in this example take two clock cycles each,
which is determined by the timing of TRDY.
CLK
1
2
3
4
5
6
7
8
9
10
11
12
13
FRAME
AD
C/BE
PAR
ADDR
1110
DATA
DATA
DATA
DATA
0000
PAR
PAR
PAR
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-13
Figure 9. Burst Read Cycles
Am79C974
35
AMD
PRELIMINARY
Basic Burst Write Cycles
Am79C974 controller arbitrates for the bus, is granted
access, and writes four 32-bit words (DWORDs) from
system memory and then releases the bus. In this example, the memory system extends the data phase of
the first access by one wait state. The following three
data phases take one clock cycle each, which is determined by the timing of TRDY.
All Am79C974 controller burst write transfers are of the
PCI command type Memory Write (type 7). AD[1:0] will
both be ZERO during the address phase indicating a linear burst order. All four byte enable signals will be ZERO
during the data phase as the Am79C974 controller always writes a full 32-bit word when in burst mode.
Figure 10 shows a typical burst write access. The
CLK
1
2
3
4
5
6
7
8
9
10
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
DATA
DATA
DATA
PAR
PAR
0000
PAR
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-14
Figure 10. Burst Write Cycles
36
Am79C974
AMD
PRELIMINARY
Transaction Termination
Disconnect With Data Transfer
Termination of a PCI transaction may be initiated by
either the master or the target. During termination, the
master remains in control to bring all PCI transactions to
an orderly and systematic conclusion regardless of what
caused the termination. All transactions are concluded
when FRAME and IRDY are both deasserted, indicating
an IDLE cycle.
Figure 11 shows a disconnection in which one last data
transfer occurs after the target asserted STOP. STOP is
asserted on clock 4 to start the termination sequence.
Data is still transferred during this cycles, since both
IRDY and TRDY are asserted. The Am79C974 controller terminates the current transfer with the deassertion
of FRAME on clock 5 and then one clock cycle later with
the deassertion of IRDY. It finally releases the bus on
clock 6. The Am79C974 controller will re-request the
bus after 2 clock cycles, if it wants to transfer more data.
The starting address of the new transfer will be the address of the next untransferred data.
Target Initiated Termination
When the Am79C974 controller is a bus master, the cycles it produces on the PCI bus may be terminated by
the target in one of three different ways: Disconnect with
data transfer, disconnect without data transfer, and target abort.
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
C/BE
PAR
ADDR i
0111
DATA
ADDR i+8
DATA
0000
PAR
0111
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-15
Figure 11. Disconnect with Data Transfer
Am79C974
37
AMD
PRELIMINARY
Disconnect Without Data Transfer
Figure 12 shows a target disconnect sequence during
which no data is transferred. STOP is asserted on clock
4 without TRDY being asserted at the same time. The
Am79C974 controller terminates the current transfer
with the deassertion of FRAME on clock 5 and one clock
cycle later with the deassertion of IRDY. It finally releases the bus on clock 6. The Am79C974 controller will
re-request the bus after 2 clock cycles to retry the last
transfer. The starting address of the new transfer will be
the same address as of the last untransferred data.
CLK
1
2
3
4
5
6
7
8
9
10
11
FRAME
AD
C/BE
PAR
ADDRi
0111
ADDRi
DATA
0000
PAR
0111
PAR
IRDY
TRDY
DEVSEL
STOP
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-16
Figure 12. Disconnect Without Data Transfer
38
Am79C974
AMD
PRELIMINARY
Target Abort
Since data integrity is not guaranteed, the Am79C974
controller cannot recover from a target abort event. For
Ethernet, the Am79C974 controller will reset all CSR
and BCR locations to their H_RESET values. Any ongoing network activity will be stopped immediately. The
PCI configuration registers will not be cleared. For
SCSI, when target aborts, INTA will not be asserted, but
the ABORT bit (bit 2 of the DMA status register at offset
54h), is set. For either Ethernet or SCSI a target abort
causes RTABORT (bit 12) of the status register in the
appropriate PCI configuration space to be set.
Figure 13 shows a target abort sequence. The target asserts DEVSEL for one clock. It then deasserts DEVSEL
and asserts STOP on clock 4. A target can use the target
abort sequence to indicate that it cannot service the data
transfer and that it does not want the transaction to be
retried. Additionally, the Am79C974 controller cannot
make any assumption about the success of the previous
data transfers in the current transaction. The
Am79C974 controller terminates the current transfer
with the deassertion of FRAME on clock 5 and one clock
cycle later with the deassertion of IRDY. It finally releases the bus on clock 6.
CLK
1
2
3
4
5
6
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-17
Figure 13. Target Abort
Am79C974
39
AMD
PRELIMINARY
when transferring data. FRAME is deasserted in between two address phases. While FRAME is deasserted, the central arbiter can remove GNT to the
Am79C974 controller at any time to service another
master. When GNT is removed, the Am79C974 controller will finish the current transfer and then release the
bus. It will keep REQ asserted to regain bus ownership
as soon as possible.
Master Initiated Termination
There are three scenarios besides normal completion of
a transaction where the Am79C974 controller will terminate the cycles it produces on the PCI bus. These are
Preemption with and without FRAME assertion and
Master Abort.
Preemption When FRAME is Deasserted
The Am79C974 controller can generate multiple address phases during a single bus ownership period
CLK
1
2
3
4
5
6
7
8
FRAME
AD
C/BE
PAR
ADDR
DATA
0111
BE's
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-18
Figure 14. Preemption When FRAME is Deasserted
40
Am79C974
AMD
PRELIMINARY
Preemption When FRAME is Asserted
troller will finish the current transfer and then immediately release the bus. The Latency Timer in PCI
configuration space of the Am79C974 controller is always set to ZERO. The Am79C974 controller will keep
REQ asserted to regain bus ownership as soon as possible.
The central arbiter can take GNT to the Am79C974 controller away if the current bus operation takes too long.
This may happen, for example, when the Am79C974
controller tries to fill the whole Ethernet transmit FIFO
and the target inserts extra wait states for every data
phase. When GNT is taken away, the Am79C974 con-
CLK
1
2
3
4
5
6
7
8
9
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
DATA
DATA
0000
PAR
PAR
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-19
Figure 15. Preemption When FRAME is Asserted
Am79C974
41
AMD
PRELIMINARY
Master Abort
The PCI configuration registers will not be cleared. For
SCSI, when the master aborts, INTA will not be asserted, but the ABORT bit (bit 2 of the DMA status register at offset 54h), is set. For either Ethernet or SCSI
master abort causes RMABORT (bit 13) of the status
register in the appropriate PCI configuration space to
be set.
The Am79C974 controller will terminate its cycle with a
Master Abort sequence if DEVSEL is not asserted within
4 clocks after FRAME is asserted. Master Abort is
treated as a fatal error by the Am79C974 controller. For
the Ethernet, the Am79C974 controller will reset all CSR
and BCR locations to their H_RESET values. Any
on-going network activity will be stopped immediately.
CLK
1
2
3
4
5
6
7
8
9
10
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A-20
Figure 16. Master Abort
42
Am79C974
PRELIMINARY
AMD
the detection of certain error conditions (MERR, UFLO,
TX BUFF error).
Ethernet Controller
Buffer Management Unit (BMU)
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 half the speed of the
CLK input.
Initialization
Am79C974 initialization includes the reading of the initialization block in memory to obtain the operating parameters. 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 DWORDs are read during each period of bus mastership. When SSIZE32 = 1 (BCR20, bit 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 Am79C974 controller obtains the start address of
the Initialization Block from the contents of CSR1 (least
significant 16 bits of address) and CSR2 (most significant 16 bits of address). The host must write CSR1 and
CSR2 before setting the INIT bit. The block contains the
user defined conditions for Am79C974 operation, together with the base addresses and length information
of the transmit and receive descriptor rings.
There is an alternative method to initialize the
Am79C974 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.
If initialization is done by writing directly to registers, the
Polling Interval register (CSR47) must be initialized in
addition to those registers that can be loaded automatically from the initialization block.
Re-Initialization
The transmitter and receiver sections of the Am79C974
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
Am79C974 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
Reinitialization 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
Am79C974 controller as in the LANCE. In particular,
upon restart, the Am79C974 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 Am79C974
controller. The reload of descriptor base addresses is
performed in the LANCE only after initialization, so a restart 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
DWORDs, or 16 bytes, when SSIZE32 = 1. The size of a
message descriptor entry is 4 words, or 8 bytes, when
SSIZE32 = 0.
Descriptor Rings
Each descriptor ring must be organized in a contiguous
area of memory. At initialization time (setting the INIT bit
in CSR0), the Am79C974 controller reads the user-defined 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, and
8-byte boundary when SSIZE=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 de-queuing of message buffers, ownership of each buffer is allocated to either the
Am79C974 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 Am79C974 controller cur-
Am79C974
43
AMD
PRELIMINARY
rently 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 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 Am79C974 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 LAPPEN = 1
(CSR3, bit 5), then this rule is modified. See the LAPPEN description). Strict adherence to these rules insures that “Deadly Embrace” conditions are avoided.
Descriptor Ring Access Mechanism
base address of both the transmit and receive descriptor
rings into CSRs for use by the Am79C974 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. The following diagram, Figure 17, 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 Am79C974 controller reads the
N
N
24-Bit Base Address
Pointer to
Initialization Block
CSR2
RES
N
N
•
•
•
Rcv Descriptor
Ring
1st desc.
start
CSR1
2nd desc.
start
IADR[15:0]
IADR[23:16]
RMD0
RMD0
RMD1 RMD2
RMD3
Initialization
Block
PADR[31:16]
PADR[47:32]
Data
Buffer
1
Rcv
Buffers
LADRF[15:0]
LADRF[31:16]
M
LADRF[47:32]
LADRF[63:48]
RES
RDRA[23:16]
TDRA[15:0]
TLEN
RES
Data
Buffer
N
M
M
M
•
RX DESCRIPTOR RINGS
RDRA[15:0]
RLEN
Data
Buffer
2
•
•
•
MODE
PADR[15:0]
•
Xmt Descriptor
RX DESCRIPTOR
RINGS
Ring
2nd desc.
start
1st desc.
start
TDRA[23:16]
TMD0
TMD0
TMD1
Data
Buffer
1
TMD2
Data
Buffer
2
TMD3
•
•
•
Xmt
Buffers
Data
Buffer
M
Figure 17. 16-Bit Data Structures: Initialization Block and Descriptor Rings
44
•
Am79C974
18681A-21
AMD
PRELIMINARY
When SSIZE32 = 1, software data structures are 32 bits
wide. The following diagram illustrates, Figure 18, 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 = 1.
N
N
32-Bit Base Address
Pointer to
Initialization Block
CSR2
CSR1
IADR[31:16]
N
N
•
•
•
Rcv Descriptor
Ring
1st desc.
start
2nd desc.
start
IADR[15:0]
RMD0
RMD0
RMD1 RMD2 RMD3
Initialization
Block
TLEN RES
Rcv
Buffers
Data
Buffer
1
Data
Buffer
2
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
M
RX DESCRIPTOR RINGS
•
•
•
Xmt Descriptor
RX DESCRIPTOR
RINGS
Ring
2nd desc.
start
1st desc.
start
TMD0
Data
Buffer
1
Data
Buffer
2
TMD3
•
•
•
Xmt
Buffers
TMD0
TMD1 TMD2
Data
Buffer
M
18681A-22
Figure 18. 32-Bit Data Structures: Initialization Block and Descriptor Rings
Am79C974
45
AMD
PRELIMINARY
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 Am79C974 controller, then the
Am79C974 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 the transmit polling function is disabled.
A typical polling operation consists of the following: The
Am79C974 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 internally in the appropriate CSRs. (i.e.
CSR18, CSR19, CSR20, CSR21, CSR40, CSR42,
CSR50, CSR52). UnOWNed descriptor status will be internally ignored.
A typical receive poll is the product of the following
conditions:
1. Am79C974 controller does not possess ownership
of the current RDTE and the poll time has elapsed
and RXON=1 (CSR0, bit 5), or
2. Am79C974 controller does not possess ownership
of the next RDTE the poll time has elapsed and
RXON=1.
If RXON=0 the Am79C974 controller will never poll
RDTE locations.
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. Am79C974 controller does not possess ownership
of the current TDTE and
46
DPOLL=0 (CSR4, bit 2) and
TXON=1 (CSR0, bit 4) and
the poll time has elapsed, or
2. Am79C974 controller does not possess ownership
of the current TDTE and
DPOLL=0 and
TXON=1 and
a frame has just been received, or
3. Am79C974 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
controller to exit the poll counting code and 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 clock periods by modifying the value in
the Polling Interval register (CSR47). Note that if a non–
default value is desired, then a strict sequence of setting
the INIT bit in CSR0, waiting for the IDON bit in CSR0,
then writing to CSR47, and then setting STRT in CSR0
must be observed, otherwise the default value will not
be overwritten. See the CSR47 section for details.
Transmit Descriptor Table Entry (TDTE)
If, after a TDTE access, the Am79C974 controller finds
that the OWN bit of that TDTE is not set, then the
Am79C974 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 Start of Frame
(STP) bit is not set, the Am79C974 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 Am79C974 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 frame (STP) bit is
set, then microcode control proceeds to a routine that
will enable transmit data transfers to the FIFO. The
Am79C974
PRELIMINARY
Am79C974 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 Am79C974 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 Am79C974 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
Am79C974 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 Am79C974 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 operation), 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 lookahead operation. (i.e. a lookahead to the third
descriptor.)
The Am79C974 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 Am79C974 controller
can perform lookahead data transfer past the ENP of
frame “X”, it is possible for the Am79C974 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 Am79C974 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 Am79C974
controller has, in this instance, returned ownership of a
TDTE to the host out of a “normal” sequence.
AMD
For this reason, it becomes imperative that the host system should never read the Transmit DTE ownership bits
out of order. Software should always process buffers in
sequence, waiting for the ownership before proceeding.
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 Am79C974 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
Am79C974 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
Am79C974 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 Am79C974 controller will always perform another poll operation. As described earlier, this poll operation will begin with a check of the
current RDTE, unless the Am79C974 controller already
owns that descriptor. Then the Am79C974 controller will
proceed to polling the next TDTE. If the transmit descriptor OWN bit has a ZERO value, then the Am79C974
controller will resume poll time count incrementing. If the
transmit descriptor OWN bit has a value of ONE, then
the Am79C974 controller will begin filling the FIFO with
transmit data and initiate a transmission. This end–of–
operation poll coupled with the TDTE lookahead operation allows the Am79C974 controller to avoid inserting
poll time counts between successive transmit frames.
Whenever the Am79C974 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.
Am79C974
47
AMD
PRELIMINARY
Receive Descriptor Table Entry (RDTE)
If the Am79C974 controller does not own both the current and the next Receive Descriptor Table Entry then
the Am79C974 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 Am79C974 controller then additional poll accesses are not necessary. Future poll operations will not include RDTE accesses as long as the
Am79C974 controller retains ownership of the current
and the next RDTE.
When receive activity is present on the channel, the
Am79C974 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 Am79C974 controller checks the current receive buffer status register
CRST (CSR41) to determine the ownership of the current buffer.
If ownership is lacking, then the Am79C974 controller
will immediately perform a (last ditch) poll of the current
RDTE. If ownership is still denied, then the Am79C974
controller has no buffer in which to store the incoming
message. The Missed Frame Count register (CSR112)
will be incremented and the MISS bit will be set in CSR0
and an interrupt will be generated if IENA=1 (CSR0) and
MISSM=0 (CSR3). Another poll of the current RDTE will
not occur until the frame has finished.
If the Am79C974 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 Am79C974 controller will continue to perform receive data DMA transfers to the first buffer. If the frame
length exceeds the length of the first buffer, and the
Am79C974 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 Am79C974 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 Am79C974 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 de48
scriptor. In any case, lookahead 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 Am79C974 controller
recognizes the completion of the frame (the last byte of
this receive message has been removed from the
FIFO). The Am79C974 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 sub-system 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, automatic
retransmission without reloading the FIFO, automatic
deletion of collision fragments, 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 (CSR, bit 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
Am79C974
PRELIMINARY
ASTRP_RCV = 1 (CSR4, bit 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 over-ridden to allow illegally short (less than 64
bytes of frame data) messages to be transmitted and/or
received. The use of this feature reduces bus utilization
because the pad bytes are not transferred into or out of
main 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 entire data portion of
the frame. The data portion of the frame consists of destination address, source address, length/type, and
frame data.
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.
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 exact number of transmission retry attempts
(ONE, MORE, RTRY or TRC).
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), indicating 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.
The user is responsible for the correct ordering and content in each of the fields in the frame.
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, 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. The
Am79C974 controller has the ability to accept runt packets for diagnostics purposes and proprietary networks.
AMD
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 (CERR) 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 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).
Am79C974
49
AMD
PRELIMINARY
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 FRAM 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 de-serialize the
entire byte, and will result in the received message and
FCS being modified.
The Am79C974 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:
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.
The ISO 8802-3 (IEEE/ANSI 802.3) Standard also allows optional two part deferral after a receive message.
See ANSI/IEEE Std 802.3 –1990 Edition, 4.2.3.2.1:
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 interFrame gap
based on this indication it is possible for a short interFrame 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 InterFrameSpacingPart1 is other than ZERO:
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).
1. Upon completing a transmission, start timing the
interpacket gap, as soon as transmitting and carrier Sense are both false.
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).
2. When timing an interFrame gap following reception, reset the interFrame gap timing if carrier
Sense becomes true during the first 2/3 of the interFrame gap timing interval. During the final 1/3 of
the interval the timer shall not be reset to ensure
fair access to the medium. An initial period shorter
than 2/3 of the interval is permissible including
ZERO.
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 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.
50
Medium Allocation
The MAC engine implements the optional receive two
part deferral algorithm, with a first part inter-frame-spacing time of 6.0 µs. The second part of the inter-framespacing interval is therefore 3.6 µs.
The Am79C974 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 InterFrameSpacing after the receive
carrier is de-asserted. During the first part deferral (InterFrameSpacingPart1 – IFS1) the Am79C974 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-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
Am79C974 controller will begin timing the second part
deferral (InterFrame Spacing Part 2 – IFS2) of 3.6 µs.
Once IFS1 has completed, and IFS2 has commenced,
the Am79C974 controller will not defer to a receive
frame if a transmit frame is pending. This means that the
Am79C974 controller will not attempt to receive the receive frame, since it will start to transmit, and generate a
collision at 9.6 µs. The Am79C974 controller will guarantee to complete the preamble (64-bit) and jam (32-bit)
Am79C974
AMD
PRELIMINARY
sequence before ceasing transmission and invoking the
random backoff algorithm.
This transmit two part deferral algorithm is 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.
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 µs –
1.6 µs after the transmission ceases). During the time
period in which the SQE Test message is expected the
Am79C974 controller will not respond to receive carrier
sense.
See ANSI/IEEE Std 802.3—1990 Edition, 7.2.4.6 (1):
“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 Am79C974 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 Am79C974 controller will defer its transmission. In addition, the Am79C974 controller will not
restart the “blinding” period if carrier 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 transmission, and append the jam sequence
immediately. The jam sequence is a 32-bit all Zeros 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 collision will cause the transmission to be re-scheduled, dependent on the backoff 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 ISO 8802-3 (IEEE/ANSI 802.3) Standard requires
use of a “truncated binary exponential backoff” algorithm which provides a controlled pseudo random
mechanism to enforce the collision backoff interval, before re-transmission is attempted.
See ANSI/IEEE Std 802.3—1990 Edition, 4.2.3.2.5:
“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
slot Time. The number of slot times to delay before the
nth re-transmission attempt is chosen as a uniformly
distributed random integer r in the range:
0 £ r <2k
where
k = min (n,10).”
The Am79C974 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 backoff 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.
Am79C974
51
AMD
PRELIMINARY
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 Am79C974 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 following
crystal specification may be used to ensure less than
±0.5 ns jitter at DO±. See Table 1 below.
Table 1. Crystal Specification
Parameter
Min
1. Parallel Resonant Frequency
Nom
Max
20
Unit
MHz
2. Resonant Frequency Error
–50
+50
PPM
3. Change in Resonant Frequency
With Respect to Temperature (0 – 70 C)
–40
+40
PPM
4. Crystal Load Capacitance
20
50
pF
5. Motional Crystal Capacitance (C1)
0.022
6. Series Resistance
pF
35
7. Shunt Capacitance
8. Drive Level
Ω
7
pF
TBD
mW
External Clock Drive Characteristics
When driving the oscillator from a CMOS level 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
DO±. See Table 2.
Table 2. Clock Drive Characteristics
Clock Frequency:
20 MHz ±0.01%
Rise/Fall Time (tR/tF):
<= 6 ns from 0.5 V to VDD –0.5 V
XTAL1 HIGH/LOW Time (tHIGH/tLOW):
20 ns min
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±) are designed to operate into terminated transmission lines.
When operating into a 78 Ω terminated transmission
line, the transmit signaling meets the required output
levels and skew for Cheapernet, Ethernet and
IEEE-802.3.
Transmitter Timing and Operation
the basic timing reference for the MENDEC portion of
the Am79C974 controller. The crystal is divided by two,
to create the internal transmit clock reference. Both
clocks are fed into the MENDECs 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.
A 20 MHz fundamental mode crystal oscillator provides
52
Am79C974
AMD
PRELIMINARY
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%.
Receiver Path
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±. 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):
The Receiver section (see Receiver Block Diagram)
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.
TSEL LOW:
The principal functions of the Receiver are to signal the
Am79C974 controller that there is information on the receive pair, and separate the incoming Manchester encoded data stream into clock and NRZ data.
The idle state of DO± yields “ZERO”
differential to operate transformercoupled loads.
TSEL HIGH: In this idle state, DO+ is positive with
respect to DO– (logical HIGH).
DI±
Data
Receiver
Manchester
Decoder
Noise
Reject
Filter
Carrier
Detect
Circuit
IRXDAT*
ISRDCLK*
IRXCRS*
*Internal signal
18681A-23
Figure 19. Receiver Block Diagram
Input Signal Conditioning
Clock Acquisition
Transient noise pulses at the input data stream are rejected by the Noise Rejection Filter. Pulse width rejection is proportional to transmit data rate, (which is fixed
at 10 MHz for Ethernet but could be different for proprietary networks). DC inputs more negative than minus
100 mV are also surpressed.
When there is no activity at DI± (receiver is idle), the receive oscillator is phase locked to internal transmit
clock. The first negative clock transition (bit cell center of
first valid Manchester “0”) after IRXCRS is asserted interrupts the receive oscillator. The oscillator is then restarted at the second Manchester “0” (bit time 4) and is
phase locked to it. As a result, the MENDEC acquires
the clock from the incoming Manchester bit pattern in
4 bit times with a 1010b Manchester bit pattern.
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 acquisition. Clock acquisition requires a valid Manchester bit
pattern of 1010b to lock onto the incoming message.
When input amplitude and pulse width conditions are
met at DI±, the internal enable signal from the MENDEC
to controller (IRXCRS) is asserted and a clock acquisition cycle is initiated.
The internal serial receive data clock, ISRDCLK and the
internal received data, 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,
Am79C974
53
AMD
PRELIMINARY
the controller portion of the Am79C974 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 in 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 in bit cell 6.
PLL Tracking
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.
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 de-assert 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± 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).
Differential Input Terminations
The differential input for the Manchester data (DI±)
should be externally terminated by two 40.2 Ω ±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 Ω is the nearest
usable value. The CI± differential inputs are terminated
in exactly the same way as the DI± pair.
AUI Isolation
Transformer
DI+
Am79C974
DI-
40.2 Ω
40.2 Ω
0.01 µF
to
0.1 µF
18681A-24
Figure 20. Differential Input Termination
54
Am79C974
PRELIMINARY
Collision Detection
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 internal collision
signal HIGH. The condition continues for approximately
1.5 bit times after the last LOW-to-HIGH transition on
CI±.
Jitter Tolerance Definition
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.
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 Am79C974 controller is fully
compliant to Section 7 of ISO 8802-3 (ANSI/IEEE
802.3).
After the Am79C974 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 at least 6 bit times before the last
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 will
be set in the Transmit Descriptor Ring (TMD2, bit 27) after the frame has been transmitted.
Twisted-Pair Transceiver (T-MAU)
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
AMD
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.
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 these
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 carrier fade in
the event of worst case signal attenuation and crosstalk
noise conditions.
Note that the 10BASE-T Standard defines the receive
input amplitude at the external Media Dependent Interface (MDI). Filter and transformer 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.
Normal 10BASE-T compatible receive thresholds are
employed when the LRT bit (CSR15[9]) 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.
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.
Am79C974
55
AMD
PRELIMINARY
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 TMAU 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 (LNKST pin)
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 irrespective 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 previous link
beat pulses and the polarity of 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
excursion may be followed by a negative excursion.
This definition is consistent with the expected received
56
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 internal 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 circuitry is programmed.
The T-MAU will power up in the Link Fail state and 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 selection the
T-MAU will be forced into the LINK Fail state.
In the Link Fail state, XMT, RCV and COL are inactive.
Am79C974
AMD
PRELIMINARY
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 TXD± is active for an excessive
period (20 ms – 150 ms). This prevents any one node
from disrupting the network due to a ‘stuck-on’ or faulty
transmitter. If this maximum transmit time is exceeded,
the T-MAU transmitter circuitry is disabled, the JAB bit is
set (CSR4, bit 1) 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
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 T-MAU
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 21 shows the proper 10BASE-T network interface design. Refer to the Technical Manual (PID
#18738A) for more design details, and refer to
Appendix B 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).
Filter &
Transformer
Module
61.9 Ω
TXD+
TXP+
TXD-
Am79C974
TXP-
1.21 KΩ
422 Ω
RJ45
Connector
1:1
XMT
Filter
61.9 Ω
422 Ω
TD+
1
TD-
2
RD+
3
RD-
6
1:1
RXD+
RCV
Filter
RXD100 Ω
18681A-25
Figure 21. 10BASE-T Interface Connection
Am79C974
57
AMD
PRELIMINARY
Ethernet Power Savings Modes
The Am79C974’s Ethernet controller supports two hardware power savings modes. Both are entered by driving
the SLEEP pin LOW.
The PCI interface section is not effected by SLEEP. In
particular, access to the PCI configuration space remains possible. None of the configuration registers will
be reset by SLEEP. All I/O accesses to the Am79C974’s
Ethernet controller will result in a PCI target abort
response.
The first power saving mode is called coma mode. In
coma mode, the Am79C974 controller has 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.
The second power saving mode is called snooze mode.
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 is the only
one of the LED pins that continues to function. The
LNKSTE bit must be set in BCR4 to enable indication of
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 Am79C974 controller. This
configuration effectively wakes the system when there
is any activity on the 10BASE-T link. Snooze mode can
be used only if the T-MAU is the selected network port.
58
Link beat pulses are not transmitted during snooze
mode.
If the REQ output is active when the SLEEP pin is asserted, then the Am79C974 controller will wait until the
GNT input is asserted. Next, the Am79C974 controller
will deassert the REQ pin and finally, it will internally enter either the coma or snooze sleep mode.
Before the sleep mode is invoked, the Am79C974 controller will perform an internal S_RESET. This
S_RESET operation will not affect the values of the BCR
registers or the PCI configuration space.
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 CLK cycles after the completion of a valid pin RST operation.
Software Access
Ethernet PCI Configuration Registers
The Am79C974 controller supports the 64-byte header
portion of the configuration space as predefined by the
PCI specification revision 2.0. None of the device specific registers in locations 64 – 255 are used by the
Ethernet controller. The layout of the configuration registers in the header region is shown in the table below.
All registers required to identify the Am79C974 controller and its function are implemented. Additional registers are used to setup the configuration of the
Am79C974 controller in a system.
Am79C974
AMD
PRELIMINARY
31
24 23
16 15
8
Device ID
Status
Reserved
Header Type
Don’t Care
0 0
Latency Timer
Reserved
0Ch
14h
Reserved
18h
Reserved
1Ch
Reserved
20h
Reserved
24h
Reserved
28h
Reserved
2Ch
Reserved
30h
Reserved
34h
Reserved
38h
Interrupt Pin
2 1 0
DWORD Index
08h
10h
When the Am79C974 controller samples its IDSELA or
IDSELB input asserted during a configuration cycle, it
will acknowledge the cycle by asserting its DEVSEL output. The content of AD[31:00] during the address phase
of the configuration cycles must meet the format as
shown below:
Don’t
Care
Revision ID
Reserved
The configuration registers are accessible only by PCI
configuration cycles. They can be accessed right after
the Am79C974 controller is powered-on, even if the
read operation of the serial EEPROM is still on-going.
All multi-byte numeric fields follow little endian byte ordering. The Command register is the only register
cleared by H_RESET. S_RESET as well as asserting
SLEEP have no effect on the value of the PCI configuration registers. All write accesses to Reserved locations
have no effect, reads from these locations will return a
data value of ZERO.
8 7 6 5
04h
Programming IF
Base Address
Reserved
11 10
Offset
00h
Command
Sub-Class
31
0
Vendor ID
Base-Class
Reserved
7
0 0
AD[1:0] must both be ZEROs, since the Am79C974
controller is not a bridge device. It only recognizes configuration cycles of Type 0 (as defined by the PCI specification revision 2.0). AD[7:2] specify the selected
DWORD in the configuration space. AD[7:6] must both
be ZERO, since the Am79C974’s Ethernet controller
does not implement any of the device specific registers
in locations 64 – 255. Since AD[1:0] and AD[7:6] must all
be ZERO, the lower 8 bits of the address for a configuration cycle are equal to the offset of the DWORD counting
from the beginning of the PCI configuration space.
AD[10:8] specify one of eight possible functions of a PCI
Interrupt Line
3Ch
device. The Am79C974 controller functions as two single function devices, as indicated in the Header Type
registers of both PCI configuration spaces (bit 7,
FUNCT = 0). Therefore, the Am79C974 controller ignores AD[10:8] during the address phase of a configuration cycle. AD[31:11] are typically used to generate the
IDSELA or IDSELB signals. The Am79C974 controller
ignores all upper address bits.
PCI configuration registers can be accessed with 8-bit,
16-bit or 32-bit transfers. The active bytes within a
DWORD are determined by the byte enable signals.
E.G. a read of the Sub-Class register can be performed
by reading from offset 08h with only BE2 being active.
I/O Resources
The Am79C974 controller uses two separate blocks of
I/O space, one for the SCSI controller and one for the
Ethernet controller. This section discusses the I/O address block used by the Ethernet controller.
PCnet-SCSI’s Ethernet Controller I/O Resource
Mapping
The Am79C974’s Ethernet controller has several I/O resources. These resources use 32 bytes of I/O space
that begin at the Am79C974’s Ethernet controller I/O
base address.
The Ethernet controller allows two modes of slave access. Word I/O mode treats all Ethernet controller I/O
Resources as two-byte entities spaced at two-byte address intervals. Double Word I/O mode treats all Ethernet controller I/O Resources as four-byte entities
spaced at four-byte address intervals. The selection of
WIO or DWIO mode is accomplished in any of
several ways:
Am79C974
59
AMD
PRELIMINARY
H_RESET function.
EEPROM programming of the DWIO mode bit of
BCR18.
Automatic determination of DWIO mode due to
DWORD (double-word) I/O write access to offset
10h.
The Ethernet controller I/O mode setting will default to
WIO after H_RESET (i.e. DWIO = 0).
Following the H_RESET operation, a PREAD operation
of the EEPROM will be executed. If the EEPROM is programmed with a ONE in the DWIO bit position and the
EEPROM checksum is correct, then the EEPROM read
will result in the setting of the DWIO mode to a ONE.
The DWIO mode setting is unaffected by the S_RESET
or setting the STOP bit.
WIO I/O Resource Map
When the Ethernet controller I/O space is mapped as
Word I/O, then the resources that are allotted to the
Ethernet controller occur on word boundaries that are
offset from the Ethernet controller I/O base address as
shown in the table below:
Offset
No. of
Bytes
Register
0h
2
APROM
2h
2
APROM
4h
2
APROM
6h
2
APROM
If the EEPROM programming was absent, failed, or contained a ZERO in the DWIO bit position, then the software may invoke DWIO mode by performing a Double
Word write access to the I/O location at offset 10h
(RDP). Note that even though the I/O resource mapping
changes when the I/O mode setting changes, the RDP
location offset is the same for both modes.
8h
2
APROM
Ah
2
APROM
Ch
2
APROM
Eh
2
APROM
1-, 2- and 3-byte accesses to Ethernet controller I/O resources are not allowed during DWIO mode.
10h
2
RDP
12h
2
RAP (shared by RDP and BDP)
The mapping of the Ethernet controller resources into
the 32-byte I/O space varies depending upon the setting
of the DWIO bit of BCR10. Depending upon the setting
of this variable, the 32-byte I/O space will be either Word
I/O mapped (WIO) or Double Word I/O mapped (DWIO).
A DWIO setting of 0 produces Word I/O mode, while a
DWIO setting of 1 produces Double Word I/O mapping.
14h
2
Reset Register
16h
2
BDP
18h
2
Vendor Specific Word
DWIO is automatically programmed as active when the
system attempts a DWORD write access to offset 10h of
the Ethernet controller I/O space. As long as no
DWORD write access to offset 10h of the Ethernet controller I/O space is performed, the Ethernet controller
will use the value of DWIO that was programmed from
the EEPROM read operation. If no EEPROM is used in
the system, then the power up reset value of DWIO will
be ZERO, and this value will be maintained until a
DWORD access is performed to Ethernet controller I/O
space.
Therefore, if DWIO mode is desired, it is imperative that
the first access to the Ethernet controller be a DWORD
write access to offset 10h, unless the EEPROM will be
used to program the DWIO bit.
Alternatively, if DWIO mode is not desired, then it is imperative that the software never executes a DWORD
write access to offset 10h of the Ethernet controller I/O
space, and the EEPROM programming of the DWIO bit
must be ZERO.
Once the DWIO bit has been set to a ONE, only a hardware H_RESET or a new read of the EEPROM can reset it to a ZERO.
60
1Ah
2
Reserved
1Ch
2
Reserved
1Eh
2
Reserved
When Ethernet 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, APROM locations may also be accessed as individual bytes either on odd or even byte addresses.
Attempts to write to any Ethernet 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 Ethernet controller control
registers. Attempts to read from any Ethernet 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 Ethernet controller to exit WIO mode and immediately thereafter, to
enter DWIO mode.
Word accesses to non word address boundaries are not
allowed while in WIO mode. (A write access may cause
unexpected reprogramming of the Ethernet controller
control registers. A read access will yield undefined
values.)
Am79C974
PRELIMINARY
Accesses of non word quantities to any I/O resource are
not allowed while in WIO mode, with the exception of a
read to APROM locations. (A write access may cause
unexpected reprogramming of the Ethernet controller
control registers; a read access will yield undefined
values.)
The Vendor Specific Word (VSW) is not implemented by
the Ethernet controller. This particular I/O address is reserved for customer use and will not be used by future
AMD Ethernet controller products.
DWIO I/O Resource Map
When the Ethernet controller I/O space is mapped as
Double Word I/O, then all of the resources that are allotted to the Ethernet controller occur on DWORD boundaries that are offset from the Ethernet controller I/O base
address as shown in the table below:
AMD
reserved and written as ZEROS and read as undefined,
except for the APROM locations and CSR88.
DWIO mode is exited by asserting the RST pin or by
forcing a re-read of the EEPROM when the EEPROM
will program a ZERO into the DWIO bit location of
BCR10. 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.
The Ethernet controller does not respond to any addresses outside of the offset range 0h–17h when DWIO
= 0 or 0h–1Fh when DWIO = 1. I/O offsets 18h through
1Fh are not used by the Ethernet 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.
Offset
No. of
Bytes
Register
0h
4
APROM
4h
4
APROM
8h
4
APROM
Ch
4
APROM
10h
4
RDP
14h
4
RAP (shared by RDP and BDP)
18h
4
Reset Register
Note that APROM accesses do not directly access the
EEPROM, but are redirected to a set of shadow registers on board the Ethernet controller that contain a copy
of the EEPROM contents that was obtained during the
automatic EEPROM read operation that follows the
H_RESET operation.
1Ch
4
BDP
Am79C974’s Ethernet Controller I/O Base Address
When Ethernet I/O space is Double Word mapped, all
I/O resources fall on DWORD boundaries. APROM resources are DWORD 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. (Note that CSR88 is an exception to this rule.)
The reserved bits must be written as ZEROs, and when
read, are considered undefined.
Accesses to non-doubleword address boundaries are
not allowed while in DWIO mode. (A write access may
cause unexpected reprogramming of the Ethernet controller control registers; a read access will yield undefined values.)
Accesses of less than 4 bytes to any I/O resource are
not allowed while in DWIO mode. (A write access may
cause unexpected reprogramming of the Ethernet controller control registers; a read access will yield undefined values.)
If an EEPROM is not used to program the value of
DWIO, then a DWORD 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
The Ethernet PCI Configuration Space Base Address
register defines what I/O base address the Ethernet
controller uses. This register is typically programmed by
the PCI configuration utility after system power-up. The
PCI configuration utility must also set the IOEN bit in the
COMMAND register to enable I/O accesses to the
Ethernet controller.
The contents of the Ethernet I/O Base Address Registers (BCR16 and BCR17) are ignored.
I/O Register Access
All I/O resources are accessed with similar I/O bus
cycles.
I/O accesses to the Ethernet controller begin with a valid
FRAME signal, the C/BE[3:0] lines signaling an I/O read
or I/O write operation and an address on the AD[31:00]
lines that falls within the I/O space of the Ethernet controller. The Ethernet I/O space will be determined by the
Base Address Register in the PCI Configuration Space.
The Ethernet controller will respond to an access to its
I/O space by asserting the DEVSEL signal and eventually, by asserting the TRDY signal.
Typical I/O access times are 6 or 7 clock cycles.
Am79C974
61
AMD
PRELIMINARY
APROM Access
The APROM space is a convenient place to store the
value of the 48-bit IEEE station address. This space is
automatically loaded from the serial EEPROM, if an
EEPROM is present. It can be overwritten by the host
computer. 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-14 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 Am79C974 controller in response to accesses that fall within the APROM range of 0h to Fh.
When programmed for DWIO mode, only DWORD addresses from an offset of 0h to an offset of Fh may be
read. An appropriate DWORD of APROM contents will
be delivered in response to accesses that fall within the
APROM range of 0h to Fh.
Accesses of non-DWORD quantities are not allowed in
DWIO mode, even though such an access may be properly aligned to a DWORD address boundary.
Write access to any of the APROM locations is allowed,
but only 4 bytes on DWORD boundaries in DWIO mode
or 2 bytes on word boundaries in WIO mode (only read
accesses to the APROM locations can be in 8-bit quantities while in WIO mode). The IESRWE bit (see BCR2)
must be set in order to enable a write operation to the
APROM. Only the Am79C974 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 (57h). The
above requirements must be met in order to be compatible with AMD driver software.
RDP Access (CSR Register Space)
RDP = Register Data Port. The RDP is used with the
RAP to gain access to any of the Am79C974 controller
CSR locations.
Access to any of the CSR locations of the Am79C974
controller is performed through the Am79C974 controllers 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
62
of the RDP will yield the selected CSRs 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 upper 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
Am79C974 controller BCR locations.
Access to any of the BCR locations of the Am79C974
controller is performed through the Am79C974 controllers 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,
Am79C974
PRELIMINARY
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 Am79C974 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 RST pin (H_RESET) and from
the assertion of the software STOP bit. Specifically, the
reset registers S_RESET will be the equivalent of the
assertion of the RST pin (H_RESET) assertion for all
CSR locations, but S_RESET will have no effect at all on
the BCR or PCI configuration space locations, and
S_RESET will not cause a deassertion of the REQ 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 Am79C974
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 Am79C974 controller.
Note that a read access of the reset register will take
longer than the normal I/O access time of the
Am79C974 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
Am79C974 controller. The length of a read of the Reset
register can be as long as 64 clock cycles.
AMD
Note that a read of the reset register will not cause a
deassertion of the REQ signal, if it happens to be active
at the time of the read of the reset register. The REQ signal will remain active until the GNT signal is asserted.
Following the read of the reset register, on the next clock
cycle after the GNT signal is asserted, the Am79C974
controller will deassert the REQ 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
RST pin (H_RESET). A RST pin assertion will cause the
REQ signal to deassert within six clock cycles following
the assertion. In the RST pin case, the Am79C974 controller will not wait for the assertion of the GNT signal before deasserting the REQ signal.
Vendor Specific Word
This I/O offset is reserved for use by the system designer. The Am79C974 controller will not respond to accesses directed toward this offset. The Vendor Specific
Word is only available when the Am79C974 controller is
programmed to word I/O mode (DWIO = 0).
If more than 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 or word location 30h, depending upon DWIO state) and a VSW Data
Port (VSWDP) at the other location (e.g. VSWDP at byte
location 19h or word location 32h, depending upon
DWIO state). Alternatively, the system may capture
RAP data accesses in parallel with the Am79C974 controller and therefore share the Am79C974 controller
RAP to allow expanded VSW space. Am79C974 controller will not respond to access to the VSW I/O address.
Reserved I/O Space
These locations are reserved for future use by AMD.
The Am79C974 controller does not respond to accesses directed toward these locations, but future AMD
products that are intended to be upward compatible with
the Am79C974 controller device may decode accesses
to these locations. Therefore, the system designer may
not utilize these I/O locations.
Am79C974
63
AMD
PRELIMINARY
Hardware Access
data size and address information.
PCnet-SCSI Controller Master Accesses
The Am79C974 controller will support master accesses
only to 32-bit peripherals. The Am79C974 controller
does not support master accesses to 8-bit or 16-bit
memory. The Am79C974 controller is not compatible
with 8-bit systems, since there is no mode that supports
Am79C974 controller accesses to 8-bit peripherals.
The Am79C974 controller has a bus interface compatible with PCI specification revision 2.0.
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 Am79C974 controller with respect to
Table 3 describes all possible bus master accesses that
the Am79C974 controller will perform. The right most
column lists all operations that may execute the given
access:
Table 3. Bus Master Accesses
Access
Mode
BE[3:0]
4-byte read
Read
0000
descriptor read
or initialization block read
or transmit data buffer read
4-byte write
Write
0000
descriptor write
or receive data buffer write
3-byte write
Write
1000
receive data buffer write
3-byte write
Write
0001
receive data buffer write
2-byte write
Write
1100
receive data buffer write
2-byte write
Write
1001*
receive data buffer write
2-byte write
Write
0011
receive data buffer write
1-byte write
Write
1110
receive data buffer write
1-byte write
Write
1101*
receive data buffer write
1-byte write
Write
1011*
receive data buffer write
1-byte write
Write
0111
descriptor write
or receive data buffer write
Operation
* 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 Am79C974 controller master read operations will always activate all byte enables. Therefore, no
one-, two- or three-byte read operations are indicated in
the table.
In the instance where a transmit buffer pointer address
begins on a non-DWORD boundary, the pointer will be
truncated to the next DWORD 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 Am79C974 controller. Similarly, if
the end of a transmit buffer occurs on a non-DWORD
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 Am79C974
controller.
64
Slave Access to I/O Resources
The Am79C974 device is always a 32-bit peripheral on
the system bus. However, the width of individual software resources on board the Am79C974 controller may
be either 16-bits or 32-bits. The Am79C974 controller
I/O resource widths are determined by the setting of the
DWIO bit as indicated in the following table:
Am79C974
Controller I/O
DWIO Setting 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
Am79C974 controller
Am79C974
AMD
PRELIMINARY
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 and CSR88. The
APROM locations and CSR88 are the only I/O resources for which all 32 bits will have defined values.
However, this is true only when the Am79C974 controller is in DWIO mode.
Configuring the Am79C974 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 4 describes all possible bus slave accesses that
may be directed toward the Am79C974 controller. (i.e.,
the Am79C974 controller is the target device during the
transfer.) The first column indicates the type of slave access. RD stands for READ, WR for a WRITE operation.
The second column indicates the value of the C/BE[3:0]
lines during the data phase of the transfer. The four byte
columns (AD[31:24], AD[23:16], AD[15:8], AD[7:0]) indicate the value on the address/data bus during the data
phase of the access. “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.
Table 4. Bus Slave Accesses
TYPE
BE[3:0]
AD
[31:24]
AD
[23:16]
AD
[15:8]
AD
[7:0]
RD
0000
data
data
data
data
DWORD access to DWORD address, e.g. 300h,
30Ch, 310h (DWIO mode only)
RD
1100
undef
undef
data
data
word access to even word address, e.g. 300h,
30Ch, 310h (WIO mode only)
RD
0011
data
data
copy
copy
word access to odd word address, e.g. 302h, 30Eh,
312h (WIO mode only)
RD
1110
undef
undef
undef
data
byte access to lower byte of even word address, e.g.
300h, 304h (WIO mode only, APROM accesses
only)
RD
1101
undef
undef
data
undef
byte access to upper byte of even word address,
e.g. 301h, 305h (WIO mode only, APROM accesses
only)
RD
1011
undef
data
undef
copy
byte access to lower byte of odd word address, e.g.
302h, 306h (WIO mode only, APROM accesses
only)
RD
0111
data
undef
copy
undef
byte access to upper byte of odd word address, e.g.
303h, 307h (WIO mode only, APROM accesses
only)
WR
0000
data
data
data
data
DWORD access to DWORD address, e.g. 300h,
30Ch, 310h (DWIO mode only)
WR
1100
undef
undef
data
data
word access to even word address, e.g. 300h,
30Ch, 310h (WIO mode only)
WR
0011
data
data
undef
undef
word access to odd word address, e.g. 302h, 30Eh,
312h (WIO mode only)
Am79C974
Comments
65
AMD
PRELIMINARY
EEPROM Microwire Access
The Am79C974 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 user-programmable register that allows direct access to the Microwire
interface pins.
Automatic EEPROM Read Operation
Shortly after the deassertion of the RST pin, the
Am79C974 controller will read the contents of the
EEPROM that is attached to the Microwire interface.
Because of this automatic-read capability of the
Am79C974 controller, an EEPROM can be used to program many of the features of the Am79C974 controller
at power-up, allowing system-dependent configuration
information to be stored in the hardware, instead of inside of operating code.
If an EEPROM exists on the Microwire interface, the
Am79C974 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
Am79C974 controller. The host can access the PCI
Configuration Space during the EEPROM read operations. Access to the Am79C974 I/O resources, however,
is not possible during the EEPROM read operation. The
Am79C974 controller will terminate these I/O accesses
with the assertion of DEVSEL and STOP while TRDY is
not asserted, signaling to the initiator to retry the access
at a later time.
A checksum verification is performed on the data that is
read from the EEPROM. If the checksum verification of
the EEPROM data fails, then at the end of the EEPROM
read sequence, the Am79C974 controller will force all
EEPROM-programmable BCR registers back to their
H_RESET default values. The content of the APROM
locations (offsets 0h – Fh from the I/O base address),
however, will not be cleared. The 8-bit checksum for the
entire 36 bytes of the EEPROM should be FFh.
the EEPROM-programmable registers on board the
Am79C974 controller. (The EEPROM-programmable
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 Am79C974 controller to
terminate further accesses to internal I/O resources with
the PCI retry cycle. Accesses to the PCI configuration
space is still possible.
EEPROM Auto-Detection
The Am79C974 controller uses the EESK/LED1 pin to
determine if an EEPROM is present in the system. At all
rising CLK edges during the assertion of the RST pin,
the Am79C974 controller will sample the value of the
EESK/LED1 pin. If the sampled value is a ONE, then the
Am79C974 controller assumes that an EEPROM is present, and the EEPROM read operation begins shortly
after the RST pin is deasserted. If the sampled value of
EESK/LED1 is a ZERO, then the Am79C974 controller
assumes that an external pulldown device is holding the
EESK/LED1 pin low, and therefore, there is no
EEPROM in the system. Note that if the designer creates a system that contains an LED circuit on the
EESK/LED1 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 Am79C974
controller, since it will recognize the lack of an EEPROM
at the end of the read operation, when the checksum
verification fails.
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. There are several design choices:
If the LED1 is not needed in the system, then the system designer may connect the EESK/LED1 pin to a
resistive pulldown device. This will indicate to the
EEPROM auto-detection function that no EEPROM
is present.
If no EEPROM is present at the time of the automatic
read operation, then the Am79C974 controller will recognize this condition and will abort the automatic read
operation and reset both the PREAD and PVALID bits in
BCR19. All EEPROM-programmable BCR registers will
be assigned their default values after H_RESET. The
content of the Address PROM locations (offsets 0h – Fh
from the I/O base address) will be undefined.
If the user wishes to modify any of the configuration bits
that are contained in the EEPROM, then the seven 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 Am79C974 controller re-read of the EEPROM
so that the new EEPROM contents will be loaded into
66
If the LED1 function is needed in the system, then the
system designer will connect the EESK/LED1 pin to
a resistive pullup 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 Am79C974 controller,
since it will recognize the lack of an EEPROM at the
end of the read operation, when the checksum verification fails.
In either case, following the PCI configuration, additional information, including the ISO 8802-3 (IEEE/ANSI
802.3) station address, may be loaded into the
Am79C974 controller. Note that the IESRWE bit (bit 8 of
BCR2) must be set before the Am79C974 controller will
Am79C974
PRELIMINARY
accept writes to the APROM offsets within the
Am79C974 I/O resources map. Startup code in the system BIOS can perform the PCI configuration accesses,
the IESRWE bit write, and the APROM writes.
Direct Access to the Microwire Interface
4. BCR17
5. BCR18
The user may directly access the Microwire port 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.
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
2. BCR2
3. BCR16
APROM locations
Miscellaneous Configuration
6. BCR21
AMD
register
not used in the Am79C974
controller
not used in the Am79C974
controller
Burst Size and Bus Control
Register
Not Used
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 EEPROM programmable BCR register will
be set to default H_RESET values. The content of the
APROM locations, however, will not be cleared.
Note that accesses to the APROM 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 Am79C974 controller that are loaded with
a copy of the EEPROM contents during the automatic
read operation that immediately follows the H_RESET
operation.
Am79C974
67
AMD
PRELIMINARY
EEPROM MAP
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 5, beginning with
the byte that resides at the lowest EEPROM address:
Table 5. EEPROM Contents
EEPROM
WORD
Address
EEPROM Contents
Byte
Addr.
Byte
Addr.
Most Significant Byte
Least Significant Byte
00h
(lowest
EEPROM
address)
01h
2nd byte of the ISO 8802-3
(IEEE/ANSI 802.3) station physical
address for this node
00h
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
01h
03h
4th byte of the node address
02h
3rd byte of the node address
02h
05h
6th byte of the node address
04h
5th byte of the node address
03h
07h
reserved location: must be 00h
06h
reserved location must be 00h
04h
09h
Hardware ID: must be 11h if
compatibility to AMD drivers is
desired
08h
reserved location must be 00h
05h
0Bh
user programmable space
0Ah
user programmable space
06h
0Dh
MSByte of two-byte checksum,
which is the sum of bytes 00h–0Bh
and bytes 0Eh and 0Fh
0Ch
LSByte of two-byte checksum, which is the
sum of bytes 00h–0Bh and bytes 0Eh and 0Fh
07h
0Fh
must be ASCII “W” (57h) if compatibility
to AMD driver software is desired
0Eh
must be ASCII “W” (57h) if compatibility
to AMD driver software is desired
08h
11h
BCR16[15:8] (not used)
10h
BCR16[7:0] (not used)
09h
13h
BCR17[15:8] (not used)
12h
BCR17[7:0] (not used)
0Ah
15h
BCR18[15:8] (Burst Size and Bus Control)
14h
BCR18[7:0] (Burst Size and Bus Control)
0Bh
17h
BCR2[15:8] (Misc. configuration)
16h
BCR2[7:0] (Misc. configuration)
0Ch
19h
BCR21[15:8] (Not Used)
18h
BCR21[7:0] (Not Used)
0Dh
1Bh
reserved location must be 00h
1Ah
reserved location must be 00h
0Eh
1Dh
reserved location must be 00h
1Ch
reserved location must be 00h
0Fh
1Fh
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
1Eh
reserved location must be 00h
10h
21h
reserved location must be 00h
20h
reserved location must be 00h
11h
23h
user programmable byte locations
22h
user programmable byte locations
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.
There are two checksum locations within the 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
68
has not been corrupted. The value of bytes 0Ch and 0Dh
should match the sum of bytes 00h through 0Bh and
0Eh and 0Fh. The second checksum location – byte
1Fh – is not a checksum total, but is, instead, a checksum adjustment. The value of this byte should be such
that the total checksum for the entire 36 bytes of
EEPROM data equals the value FFh. The checksum adjust byte is needed by the Am79C974 controller in order
to verify that the EEPROM contents have not been
corrupted.
Am79C974
AMD
PRELIMINARY
Transmit Operation
The transmit operation and features of the Am79C974
controller are controlled by programmable options. The
Am79C974 controller offers a136-byte Transmit FIFO to
provide frame buffering for increased system latency,
automatic retransmission with no FIFO reload, and
automatic transmit padding.
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, automatic 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
value in XMTSP. The default value of XMTSP is 10b,
meaning there has to be 64 bytes in the Transmit FIFO
to start a transmission.
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.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.
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
18681A-26
Figure 22. ISO 8802-3 (IEEE/ANSI 802.3) Data Frame
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
Am79C974 controller to compute the actual number of
pad bytes to be inserted. The Am79C974 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 Am79C974 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.
Am79C974
69
AMD
PRELIMINARY
ownership (resets the OWN bit to ZERO) for this frame,
and processes the next frame in the transmit ring for
transmission.
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
Abnormal network conditions include:
Loss of carrier.
Late collision.
SQE Test Error. (does not apply to 10BASE-T port)
To be classed as a minimum size frame at the receiver,
the transmitted frame must contain:
Preamble + (Min Frame Size + FCS) bits
Preamble + (Min Frame Size – FCS) bits
When an error occurs in the middle of a multi-buffer
frame transmission, the error status will be written in the
current descriptor. The OWN bit(s) in the subsequent
descriptor(s) will be reset until the STP (the next frame)
is found.
64 + (512 – 32) bits
Loss of Carrier
At the point that FCS is to be appended, the transmitted
frame should contain:
A minimum length transmit frame from the Am79C974
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.
Transmit FCS Generation
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. If the
automatic padding feature is invoked (APAD_XMT is
set in CSR4), the FCS will be appended by the
Am79C974 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 Am79C974 controller include collisions within the slot time with automatic retry. The
Am79C974 controller will ensure that collisions which
occur within 512 bit times from the start of transmission
(including preamble) will be automatically retried with no
host intervention. The transmit FIFO ensures this by
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 network without encountering
a collision.
If 16 total attempts (initial attempt plus 15 retries) fail, the
Am79C974 controller sets the RTRY bit in the current
transmit TDTE in host memory (TMD2), gives up
70
These should not occur on a correctly configured 802.3
network, and will be reported if they do.
A loss of carrier condition will be reported if the
Am79C974 controller cannot observe receive activity
whilst it is transmitting on the AUI port. After the
Am79C974 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
re-tried on the basis of an LCAR error.
When the 10BASE-T port is selected, LCAR will be reported for every packet 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 Am79C974 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 re-tried. Recovery from this condition
must be performed by upper layer software.
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
Am79C974
PRELIMINARY
network bit time period following the completion of
transmission, then the Am79C974 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 INTA to be activated. It will, however,
set the ERR bit CSR0.
Receive Operation
AMD
promiscuous mode. In the promiscuous mode, all properly formed packets are received, regardless of the contents of their destination address fields. The
promiscuous mode overrides the Disable Receive
Broadcast bit (DRCVBC bit l4 in the MODE register) and
the Disable Receive Physical Address bit (DRCVPA, bit
13 MODE register).
The receive operation and features of the Am79C974
controller are controlled by programmable options.
The Am79C974 controller operates in promiscuous
mode when PROM (bit 15 in the MODE register) is set.
Address Matching
Receive Function Programming
The Am79C974 controller supports three types of address matching: unicast, multicast, and broadcast. The
normal address matching procedure can be modified by
programming three bits in the MODE register (PROM,
DRCVBC, and DRCVPA).
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.
If the first bit received after the start of frame delimiter
(the least significant bit of the first byte of the destination
address field) is 0, the frame is unicast, which indicates
that the frame is meant to be received by a single node.
If the first bit received is 1, the frame is multicast, which
indicates that the frame is meant to be received by a
group of nodes. If the destination address field contains
all ones, the frame is broadcast, which is a special type
of multicast. Frames with the broadcast address in the
destination address field are meant to be received by all
nodes on the local area network.
When a unicast frame arrives at the Am79C974 controller, the controller will accept the frame if the destination
address field of the incoming frame exactly matches the
6-byte station address stored in the PADR registers
(CSR12, CSR13, and CSR14). The byte ordering is
such that the first byte received from the network (after
the SFD) must match the least significant byte of CSR12
(PADR[7:0]), and the sixth byte received must match the
most significant byte of CSR14 (PADR[47:40]).
If DRCVPA (bit 13 in the MODE register) is set. the
Am79C974 controller will not accept unicast frames.
If the incoming frame is multicast the Am79C974 controller performs a calculation on the contents of the destination address field to determine whether or not to
accept the frame. This calculation is explained in the
section that describes the Logical Address Filter
(LADRF).
If all bits of the LADRF registers are 0 no multicast
frames are accepted, except for broadcast frames.
Although broadcast frames are classified as special
multicast frames, they are treated differently by the
Am79C974 controller hardware. Broadcast frames are
always accepted, except when DRCVBC (bit 14 in the
MODE register) is set.
None of the address filtering described above applies
when the Am79C974 controller is operating in the
All receive frames can be accepted by setting the PROM
bit in CSR15. When PROM is set, the Am79C974 controller will attempt to receive all messages, subject to
minimum frame enforcement. Promiscuous mode over
rides 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 0) = 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 also be stripped, since it is computed
at the 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 8802-3
(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). Receive
frames which have a length field of 46 bytes or greater
will be passed to the host unmodified.
Since any valid Ethernet Type field value will always be
greater than a normal 802.3 Length field (≥46), the
Am79C974 controller will not attempt to strip valid
Ethernet frames.
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.
Am79C974
71
AMD
PRELIMINARY
Figure 23 shows the byte/bit ordering of the received
length field for an 802.3 compatible frame format.
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
18681A-27
Figure 23. 802.3 Frame and Length Field Transmission Order
Receive FCS Checking
Reception and checking of the received FCS is performed automatically by the Am79C974 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.
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 Am79C974 controller are basically
collisions within the slot time and automatic runt packet
rejection. The Am79C974 controller will ensure that collisions which occur within 512 bit times from the start of
reception (excluding preamble) will be automatically deleted from the receive FIFO with no host 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
72
whether the receive frame was the first (or only) frame in
the FIFO or if the receive frame was queued behind a
previously received message.
Abnormal network conditions include:
FCS errors
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 diagnostics. 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 transmitted
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 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.
Am79C974
PRELIMINARY
There are restrictions on loopback operation. The
Am79C974 controller has only one FCS generator circuit. The FCS generator can be used by the transmitter
to generate the FCS to append 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
simultaneously.
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 fourbyte 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 for the FCS. 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 additional 4 bytes of FCS. In this loopback 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
loopback path.
The multicast address detection logic uses the FCS
generator circuit. Therefore, 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 performing an internal loopback, no frame will be
transmitted to the network. However, when the
Am79C974 controller is configured for internal loopback
the receiver will not be able to detect network traffic. External loopback tests will transmit frames onto the
AMD
network if the AUI port is selected, and the Am79C974
controller will receive network traffic while configured for
external loopback when the AUI port is selected. Runt
Packet Accept is automatically enabled when any loopback mode is invoked.
Loopback mode can be performed with any frame size.
Runt Packet Accept is internally enabled (RPA bit in
CSR124 is not affected) when any loopback mode is invoked. This is to be backwards compatible to the
LANCE (Am7990) software.
When the 10BASE-T MAU is selected in external loopback mode, the 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 occurs 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 Am79C974 controller can support up to 3 LEDs.
LED outputs LNKST and LED1 allow for direct connection of an LED and its supporting pullup device. LED output LED3 may require an additional buffer between the
Am79C974 controller output pin and the LED and its
supporting pullup device.
Because the LED3 output is multiplexed with other
Am79C974 controller functions, it may not always be
possible to connect an LED circuit directly to the LED3
pin. For example, when an LED circuit is directly connected to the EEDO/LED3 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
Am79C974 controller. Therefore, in applications that require both an EEPROM and a third LED, then it is necessary to buffer the LED3 circuit from the
EEPROM-PCnet-SCSI 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
LED3 pin may be directly connected to an LED circuit.
The Am79C974 LED3 pin driver will be able to sink
enough current to properly drive the LED circuit.
By default, after H_RESET, the 3 LED outputs are configured in the following manner:
Am79C974
73
AMD
LED
output
PRELIMINARY
Default
Default
Default
Interpretation Drive Enable Output Polarity
LNKST
Link Status
Enabled
Active LOW
LED1
Receive
Enabled
Active LOW
LED3
Transmit
Enabled
Active LOW
For each LED register, each of the status signals is
ANDed with its enable signal, and these signals are all
ORed together to form a combined status signal. Each
LED pins 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.
LNK
LNK E
RCVM
RCVM E
To
Pulse
Stretcher
XMT
XMT E
RXPOL
RXPOL E
RCV
RCV E
JAB
JAB E
COL
COL E
18681A-28
Figure 24. LED Control Logic
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 reset the Command register in the PCI
configuration space. H_RESET will cause the
microcode program to jump to its RESET state. Following the end of the H_RESET operation, the Am79C974
controller will attempt to read the EEPROM device
through the EEPROM Microwire interface. H_RESET
resets the T-MAU into the link fail state.
S_RESET
S_RESET = SOFTWARE_RESET is an Ethernet controller RESET operation that has been created by a read
access to the RESET REGISTER which is located at offset 14hex from the Am79C974 I/O base address.
S_RESET will RESET all of or some portions of CSR0,
3, 4, 15, 80, 100 and 124 to default values. S_RESET
will not affect any of the BCR and PCI configuration
space locations. S_RESET will cause the microcode
program to jump to its RESET state. Following the end
of the S_RESET operation, the Am79C974 controller
will NOT attempt to read the EEPROM device.
S_RESET sets the T-MAU into the link fail state.
Note that S_RESET will not cause a deassertion of the
REQ signal, if it happens to be active at the time of the
read to the reset register. The REQ signal will remain
active until the GNT signal is asserted. Following the
read of the RESET register, on the next clock cycle after
the GNT signal is asserted, the Am79C974 controller
will deassert the REQ signal. No bus master accesses
will have been performed during this brief bus ownership period.
STOP
The diagram above shows the LED signal circuit that exists for each LED pin within the Am79C974 controller.
H_RESET, S_RESET, and STOP
There are three different types of RESET operations
that may be performed on the Am79C974 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 Am79C974 RESET operation that has been created by the proper assertion of the RST PIN of the Am79C974 device. When
the minimum pulse width timing as specified in the RST
74
pin description has been satisfied, then an internal RESET operation will be performed.
STOP is an Ethernet controller 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.
STOP will RESET all or some portions of CSR0, 3, and 4
to default values. STOP will not affect any of the BCR
and PCI configuration space locations. STOP will cause
the microcode program to jump to its RESET state. Following the end of the STOP operation, the Am79C974
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.
Am79C974
AMD
PRELIMINARY
SCSI Controller
The primary function of the PCnet-SCSI controller is to
transfer data between the 4 byte-wide PCI bus and 1
byte-wide SCSI bus. The controller consists of two
blocks: SCSI and DMA. The SCSI block sits between
the SCSI bus and the DMA block. It controls data flow
to/from SCSI bus. The DMA block is located between
the SCSI block and the PCI bus Interface Unit. It handles
data flow to/from PCI bus.
The operation of each block is governed by a set of control registers:
1. Channel Context Block (CCB) registers control the
DMA block
2. SCSI registers control the SCSI block
In a normal operation, both sets of registers must be programmed with the specifics of the transfer, such as starting address, transfer count, etc. (For more information,
refer to Technical Manual PID #18738A).
vides bus-mastering capabilities to allow flexibility and
performance advantages over slave PCI-SCSI devices.
Built into the engine is a 96-byte (24 DWORD) FIFO and
additional logic to handle the transition between the
32-bit PCI bus and the 8-bit SCSI bus.
Figure 25 illustrates the DMA Engine in relation to the
PCI interface and the SCSI block. As its most basic function, the DMA engine acts as the DMA controller in a bus
master capacity on the PCI bus, transferring data between memory and the SCSI block. All Command, Data,
Status, and Message bytes pass through the DMA FIFO
on their way to or from the SCSI bus. However, for programmed I/O (PIO) accesses to the SCSI registers, the
DMA FIFO is bypassed as data moves directly from the
SCSI block to the PCI interface. Since PIO operations
do not pass through the funneling logic and DMA FIFO,
data is transferred one byte at a time from the SCSI
block to the PCI interface via the least significant byte
lane. (The three most significant byte lanes will contain
null data.)
SCSI Specific DMA Engine
The SCSI Specific DMA Engine in the Am79C974 pro-
DMA
FIFO
(24x32)
32
Data
PCI^REQ
PCI^GNT
16
Data
SCSI
FIFO
(16x9)
Data
Funnel/Alignment
Logic
Empty
Full
PCI
Bus
Interface
Unit
32
DMA
CNTL
SCSI Block
DREQ
DMA
REG
DACK
DMA Engine
8 Data
AD (4:0)
PCI
Config
Space
C/BE(3:0)
SCSI REG
WR, RD,
AD(4:0), CS
AD(3:0)
CS
RD
Data
Path
Unit
WR
18681A-29
Figure 25. PCI BIU – DMA Engine – SCSI Block
Since the PCI bus is 4 bytes wide and the SCSI bus is
only 1 byte wide, funneling logic is included in this en-
gine to handle byte alignment and to ensure that data is
properly transferred between the SCSI bus and the
Am79C974
75
AMD
PRELIMINARY
wider PCI bus. All boundary conditions are handled
through hardware by the DMA Engine.
The DMA engine is also designed for block type (4
KByte page) transfers to support scatter-gather operations. Implementation of this feature is described further
in the DMA Scatter-Gather Mechanism section.
DMA FIFO
Data transfers from the SCSI FIFO to the DMA FIFO
take place each time the threshold of two bytes is
reached on the SCSI side. The transfer is initiated by the
SCSI block when the internal DREQ is asserted, and
continues with the DACK handshaking which typically
takes place in DMA accesses. Data is accumulated in
the DMA FIFO until a threshold of 16 DWORD (64 bytes)
is reached. Data is then burst across the PCI bus to
memory. Residue data which is less than the threshold
in each FIFO is sent in non-contiguous bursts. For memory read operations, data is sent in burst mode to the
DMA FIFO and continues through to the SCSI FIFO and
onto the SCSI bus.
DMA BLAST Command
This command is used to retrieve the contents of the
DMA FIFO when the Target disconnects during a DMA
Write operation. This could happen for example if a
SCSI disk drive detected the end of a sector and decided to give up the bus while it was looking for the next
sector. The Target Disconnect can leave some bytes of
data in the DMA FIFO and some in the SCSI FIFO, while
some bytes have yet to be transferred from the peripheral device. When this happens, the controller will assert
INTA to interrupt the processor, the SCSI state machine
will continue to empty its contents into the DMA FIFO,
but the DMA FIFO will not necessarily dump its contents
into memory (unless the 64-byte DMA threshold happens to have been exceeded at this time).
The BLAST command causes the contents of the DMA
FIFO to be emptied into memory. There are some restrictions on when this command should be used.
First, the command should be used only to recover
from an interrupted DMA write operation—not a
read operation.
Second, the command must not be issued until the
SCSI FIFO has finished dumping its contents into
the DMA FIFO.
Third, the command should never be issued when
the DMA FIFO has already been emptied. This is
indicated by the state of the DONE bit in the DMA
STATUS register at ((B)+54h).
(This is a test for a special case that can occur when a
Target Disconnect leaves only 1 byte left to be transferred from the SCSI peripheral. In this case, if the original transfer count was even, an odd number of bytes will
be left in the SCSI FIFO. Since the SCSI engine transfers data to the DMA FIFO two bytes at a time, the last
76
transfer consists of one byte of valid data and one byte
of garbage. The DMA engine treats this final invalid byte
as valid data and writes it to memory. When it does this,
it decrements its Working Byte Counter to zero and sets
the DONE bit, even though 1 byte still needs to be retrieved from the peripheral device.)
The following procedure outlines the use of the BLAST
command after an interrupt has occurred. Note that the
order of steps 2–4 is not critical. The order can be
changed to tune the performance. Also note that each
register is read only once in this procedure even though
several tests may be made on data from one register.
1. Verify that INT (bit 7 of the SCSI status register at
((B)+10h) is set to indicate that a SCSI interrupt is
pending.
2. Read the SCSI current FIFO count (bits 4:0 of the
Current FIFO/Internal State register at ((B)+1Ch).
If this value is not zero, wait for the SCSI FIFO to
empty its contents into the DMA FIFO.
3. If bit 4 of the SCSI status register (CTZ) is set,
stop here. The transfer is complete, and it is not
necessary to execute the BLAST command.
4. Verify that DIR (bit 7 of DMA command register at
((B)+40h) is set to one to indicate that the direction
of transfer is from SCSI to memory.
5. Test the error bits in the DMA status register and
the SCSI status register (STATREG at (B)+10h) to
verify that the contents of the DMA and SCSI
FIFOs are not invalid.
6. Test the DMA DONE bit in the DMA STATUS
register. If DONE is not set, write ‘01’ to the DMA
command register to issue the BLAST command.
This will move the remaining data from the DMA
FIFO into memory.
7. Wait until the BLAST complete (BCMPLT) in the
DMA STATUS register is set to indicate the completion of the BLAST operation.
8. Write ‘00’ to the DMA command register to issue
the IDLE command to the DMA engine. (Note
that the IDLE command does not generate an
interrupt.)
The above procedure insures that the data that has
been transferred from the SCSI peripheral does not get
lost in the DMA FIFO when a Target Disconnect occurs.
However, it does not complete the original transfer. The
software must now read the SCSI Current Transfer
Count register (CTCREG) to find out how many bytes
have yet to be transferred from the SCSI peripheral device and must start a new transfer operation to get the
rest of the data. (CTCREG consists of three bytes located at ((B)+00h, (B)+04h, and (B)+38h.)
Funneling Logic
Figure 26 shows the internal DMA logic interface with
the SCSI block. The DMA FIFO interfaces to the Funnel
Am79C974
AMD
PRELIMINARY
Logic block via a 32-bit data bus, and the funnel logic
properly reduces this stream of data to a 16-bit stream to
32
96-Byte
DMA FIFO
properly interface with the SCSI FIFO.
Funnel
Logic
16
16-Byte
SCSI FIFO
18681A-30
Figure 26. DMA FIFO to SCSI FIFO Interface
SCSI DMA Programming Sequence
scatter-gather DMA operations:
The following section outlines the procedure for executing SCSI DMA operations:
1. Set up the MDL list
1. Issue IDLE command to the DMA Engine
2. Configure the SCSI block registers (e.g. synchronous operation, offset values, etc.)
3. Program the DMA registers to set up address and
transfer count
4. Issue a transfer command to the SCSI command
registers
5. Issue the START command to the DMA engine
6. At the end of the DMA transaction, issue the IDLE
command to the DMA engine
Memory Descriptor List (MDL) Based DMA
Programming
2. Use the programming sequence defined earlier for
initiating a SCSI DMA transfer
DMA Registers
The following is a summary of the DMA register set or
the DMA Channel Context Block (DMA CCB). These
registers control the specifics for DMA operations such
as transfer length and scatter-gather options. The three
read-only working counter registers allow the system
software and driver to monitor the DMA transaction.
Each register address is represented by the PCI Configuration Base Address (B) and its corresponding offset
value. The Base address for the SCSI controller is
stored at register address (10h) in the SCSI PCI configuration space.
The following section outlines the use of the MDL for
Table 6. The DMA Registers
Register Acronym
Register Description
Type
CMD
Addr (Hex)
(B)+40
Command (bits 31:8 reserved, bits 7:0 used)
R/W
STC
(B)+44
Starting Transfer Count (bits 31:24 reserved, bits 23:0 used)
R/W
SPA
(B)+48
Starting Physical Address (bits 31:0 used)
R/W
WBC
(B)+4C
Working Byte Counter
R
WAC
(B)+50
Working Address Counter (bits 31:0 used)
R
STATUS
(B)+54
Status Register (bits 31:8 reserved, bits 7:0 used)
SMDLA
(B)+58
Starting Memory Descriptor List (MDL) Address
WMAC
(B)+5C
Working MDL Counter
Am79C974
R
R/W
R
77
AMD
PRELIMINARY
Command Register (CMD)
The upper 3 bytes of Command register are reserved,
the remaining (LSB) byte is defined as follows:
Address (B)+40h, LSB
7
6
5
4
DIR
INTE_D
INTE_P
MDL
READ/WRITE
3
2
1
set, the ERROR or DONE condition will cause INTA to
be asserted.
INTE_P:
Page transfer active interrupt bit.
MDL:
0
Memory Descriptor List (MDL) SPA enable bit.
Reserved Reserved
CMD1
CMD0
RESERVED:
DIR:
Data transfer direction bit. When this bit is set, the direction of transfer is from SCSI to memory.
INTE_D:
DMA transfer active interrupt enable bit. When this bit is
Reserved for future expansion. The zero value must be
written in these bits.
CMD1-0:
These two bits are encoded to represent four commands: IDLE, BLAST, START, and ABORT.
CMD1
CMD0
Command
Description
0
0
IDLE
0
1
BLAST
Empties all data bytes in DMA FIFO to memory during a DMA
write operation. Upon completion, the ‘BCMPLT’ bit will be set
in the DMA Status register. This command should not be used
during a DMA read operation.
1
0
ABORT
Terminates the current DMA transfer. Restores the DMA engine to the IDLE
state. Sets the ABORT bit (bit 2) in the status register.
Resets the DMA block to the IDLE state. Stops any current transfer. Does not
affect status bits or cause an interrupt.
Note: This is only valid after a ‘START’ command is issued.
1
1
START
Initiates a new DMA transfer. These bits must remain set
throughout the DMA operation until the ‘DONE’ bit in the DMA
Status Register is set.
Note: This command should be issued only after all other
control bits have been initialized.
DMA Scatter-Gather Mechanism
The Am79C974 controller contains a scatter-gather
translation mechanism which facilitates faster data
transfers. This feature uses a Memory Descriptor List
which is stored in system memory. Use of the Memory
Descriptor List allows a single SCSI transfer to be read
from (or written to) non-contiguous physical memory locations. This mechanism avoids copying the transfer
data and MDL list, which was previously required for
conventional DMA operations.
assumes 4k page alignment and size for all MDL entries
except the first and last entry. This feature is enabled by
setting the MDL bit in the DMA Command register (Bit 4,
Address (B)+40h).
1. a) Prepare the Memory Descriptor List (MDL)
through software and store it in system
memory.
b) Load the address of the starting entry in the
Memory Descriptor List (MDL) into the Start
Memory Descriptor List Address (SMDLA)
register. This value is automatically copied into
the Working MDL Address Counter (WMAC).
Memory Descriptor List (MDL)
The MDL is a non-terminated (no End Of File marker)
list of 32-bit page frame addresses, which is always
aligned on a Double Word boundary. The format is
shown below:
31
12 11
Page Frame Address
0
Ignored
Note: The value in the SMDLA register must be double
word aligned. Therefore, read/write transactions will always begin on a double word boundary.
DMA Scatter-Gather Operation
(4k aligned elements)
The
78
scatter-gather
mechanism
described
c) Program the Starting Transfer Count (STC)
register with the total transfer length (i.e., # of
bytes). Also program the Starting Physical
Address (SPA) register (bits 11:0) with the
starting offset of the first entry.
below
Am79C974
AMD
PRELIMINARY
31
0
SMDLA
31
MDL
31
12
0
Page Frame Address #1
Ignored
Page Frame Address #2
Ignored
0
WMAC
Page Frame Address #3
Page Frame Address #4
Ignored
Ignored
Page Frame Address #n
Ignored
18681A/1-31
In this example, the contents of the WMAC register is
pointing to page frame address #1. When the first entry
in the MDL is read (page frame address #1), the WMAC
register is incremented to point to the next page entry
(page frame address #2).
the MDL entry and combines it with the first page
offset value in the Starting Physical Address (SPA)
register (bits 11:0). This 32-bit value is loaded into
the Working Address Counter (WAC) register and
becomes the physical address for page#1, as
shown below. The WMAC is then incremented to
point to the next entry in the MDL.
2. Issue the Start DMA Command. The SCSI controller reads the page frame address (bits 31:12) from
Programmed by
the software
31
SPA
12
XXXX
0
Starting Offset
From the MDL
31
WAC
4K Page #1
12
Page Frame Address #1
0
Starting Offset
Data
18681A/1-32
3. When the WAC register (bits 11:0) reaches the
first 4K byte boundary, the SCSI controller reads
the second MDL entry and combines the page
frame address (bits 31:12) from this entry of the
MDL with bits 11:00 of the WAC register. This becomes the physical address for page#2. Since the
WAC register (bits 11:0) has rolled over to ‘00h’,
the WAC now points to the beginning of the Page
Frame Address #2 as shown below. The WMAC
is then incremented to point to the next entry in
the MDL.
From the MDL
31
WAC
12
Page Frame Address #2
0
4K Page #2
0
Data
18681A/1-33
Am79C974
79
AMD
PRELIMINARY
When WAC (bits 11:0) again reaches the next 4K byte
boundary, the next MDL entry is read into the WAC. The
operation continues in this way until WMAC register
reaches the last MDL entry (Page Frame Address #n in
this example).
page and the DMA operation continues until the
byte count is exhausted in the Working Byte
Counter (WBC) register. When WBC=0, the chip
stops incrementing the WAC register. This is
shown below.
4. The WAC register points to the beginning of the last
From the MDL
31
WAC
12
0
4K Page #n
0
Page Frame Address #n
Data
WBC = 0
18681A/1-34
DMA Scatter-Gather Operation
(Non-4k aligned elements MDL not set)
There is another way to implement a scatter-gather operation which does not force the data elements to be
aligned on 4k boundaries. It assumes a “traditional”
scatter-gather list of the following format:
Element 0
Physical Address Byte Count
Element 1
Physical Address Byte Count
...
Element n
Physical Address Byte Count
This second implementation is described as follows:
1. Set the SCSI Start Transfer Count Register
((B)+00h, (B)+04h, (B)+38h) to the Byte count of
the first Scatter-Gather element.
8. Reprogram the DMA Starting Physical Address
Register ((B)+48h) to the Physical Address of the
next Scatter-Gather element.
9. Repeat steps 4–8 until the Scatter-Gather list is
completed.
Interrupts
Interrupts may come from two sources: the DMA engine
or the SCSI block. Upon receipt of an interrupt (INTA asserted), the DMA Status register should be serviced first
to identify the interrupt source(s). DMA engine related
interrupts are cleared when the related flags are read in
the DMA Status register. However, SCSI block interrupts will be cleared only when the SCSI Status, Internal
State, and Interrupt Status Registers are read.
Interrupts are caused by:
2. Program the DMA Starting Transfer Count Register ((B)+44h) to the Byte Count of the first ScatterGather element.
Successful completion of a DMA transfer request.
(Bit 6 in the DMA Command Register ((B+40h)
must be set to enable this interrupt)
3. Program the DMA Starting Physical Address Register ((B)+48h) to the Physical Address of the first
Scatter-Gather element.
An address error occurred on the PCI bus during a
DMA transfer (Bit 6 in the DMA Command Register ((B)+40h) must be set to enable this interrupt)
4. Start the SCSI operation by issuing a SCSI Information Transfer command.
The PWDN pin is first asserted
After completion of each page transfer during MDL
operations. (Bit 5 in the DMA Command Register
((B)+40h) must be set to enable this interrupt)
5. Start the DMA Engine with DMA Transfer Interrupt
Enable (Bit 6, (B)+40h).
6. When the Scatter-Gather element’s Byte Count
is exhausted, the DMA engine will generate an
interrupt.
7. Reprogram the next Scatter-Gather element’s Byte
Count into the SCSI Start Transfer Count Register
and the DMA Starting Transfer Count Register.
80
An interrupt from the SCSI block will automatically set
bit 4 (SCSIINT) in the DMA Status register (Address
(B)+54h). The SCSI block will generate an interrupt under the following conditions:
Am79C974
SCSI Reset occurred
AMD
PRELIMINARY
Illegal command code issued
The target must be able to sustain Fast SCSI
timings.
The target disconnects from the SCSI bus
Bits 3 (FASTCLK) and 4 (FASTSCSI) in Control
Register Three must be set to ‘1.’
SCSI bus service request
Successful completion of a command
The lower three bits of Register ((B)+24h), the
Clock Conversion Factor Register must be
programmed to ‘000.’
The Am79C974 has been reselected
The Fast SCSI Block
The lower 5 bits of the Synchronous Transfer
Period Register ((B)+18h) must be set to a value
of ‘04h.’
The functionality of the SCSI block is described in the
following section. Topics to be covered are:
SCSI Block ID
The FASTCLK and FASTSCSI bits in Control Register
Three modify the SCSI state machine to produce both
FAST and Normal SCSI timings. Synchronous data
transmission rates are dependent on the input clock frequency selected, as well as the transfer period.
SCSI FIFO Threshold
Data Transmission
REQ/ACK Control
Parity
Reset Levels
SCSI Block ID
The Am79C974 contains a SCSI Block ID code which is
stored in the MSB of the Current Transfer Count Register. The code reflects the chip’s revision level and family
code. This 8-bit code may be read when the following
conditions are true.
After power up or a chip reset has occurred
Before the Current Transfer Counter ((B)+38h) is
loaded
The part-unique ID code in Register ((B)+38h) will read
as follows:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
0
0
1
0
0
1
0
SCSI FIFO Threshold
The threshold value for the SCSI FIFO is two bytes (one
word). When this threshold is reached, the SCSI block
will indicate to the DMA engine that it is capable of receiving or sending data bytes.
Data Transmission
Data transmission rates will vary from system to system,
depending on the number of devices configured on the
SCSI bus, as well as the transfer rates that each individual device is capable of sustaining.
Transfer rates for the Am79C974 are controlled by the
FASTSCSI and FASTCLK bits in Control Register
Three, as well by the Extended Timing Feature in Control Register One.
Bits 4:0 in the Synchronous Transfer Period Register
((B)+18h) specify the period for synchronous data transfers. For programming information, refer to the Technical Manual.
REQ/ACK Control
The assertion and deassertion time for the REQ and
ACK signals may be controlled via the Synchronous Offset Register ((B)+1Ch). Bits 7:6 control REQ/ACK
deassertion delay with respect to the time that data is
valid, while bits 5:4 control REQ/ACK assertion delay.
The deassertion for REQ/ACK may be moved ahead .5
clock cycles, or it may be delayed for up to 1.5 clock cycles. Deassertion delay options depend on the status of
the FASTCLK bit in Control Register Three. Assertion
delay for REQ/ACK can vary from 0 to 1.5 clock cycles.
Parity
Parity on the SCSI bus is such that the total number of
logical ones on data bus including the parity bit must be
odd. Parity checking features are implemented via two
bits in the Status Register and Control Register One.
Parity checking can be implemented on data flowing in
from the SCSI bus. Parity is always generated internally
by the Am79C974 for data moving onto the SCSI bus.
Feature
Bit Name
Bit #
Register
Parity From
SCSI
Parity Error
Reporting
4
Control
Reg One
((B)+20h)
Parity Status
Parity Error
5
Status
Register
((B)+10h)
Parity Checking on the SCSI Bus
To achieve 10 Mbyte/s transmission rates, the following
conditions must be true:
A 40 MHz clock (50% duty cycle) must be supplied
to SCSICLK.
The Parity Error Reporting Bit (Bit 4, Control Register
One) enables parity checking on all incoming bytes from
the SCSI bus. This feature is cleared to ‘0’ by a hardware
reset.
Am79C974
81
AMD
PRELIMINARY
When this feature is enabled, the Am79C974 will check
parity on all data received from the SCSI bus. Any detected error will be flagged by setting bit 5 in the SCSI
Status Register, and ATN will be asserted on the SCSI
bus. However, no interrupt will be generated.
chines. It leaves the SCSI block in the disconnected
state. It leaves all SCSI registers in their default states.
In addition, if the Hard Reset is caused by the assertion
of the RST pin, the following actions occur:
The Command register in the PCI configuration
space is cleared to zero. (No other register in the
configuration space is affected.)
When this feature is disabled (bit 4 set to ‘0’), no parity
check is done on incoming bytes. Note that the parity on
the PCI bus is generated internally and is distinct from
the parity received from the SCSI bus.
The DMA CCB registers are set to their default
values.
Parity Generating on the SCSI Bus
For each byte transferred to the SCSI bus, parity generation is done automatically.
Reset Levels
The Am79C794 has two reset pins and two reset commands that affect the SCSI block. The RST pin resets
the whole chip including the SCSI controller, the Ethernet controller, and the PCI interface.
The Reset Device command causes almost the same
effect on the SCSI controller that the RST pin does.
However, the Reset Device command has no effect on
the Ethernet controller or the PCI interface. Also, after
the Reset Device command has been issued, the user
must issue a NOP command before another command
can be executed.
The action of the RST signal or the Reset Device command is called Hard Reset.
The SCSI^RST pin is a bidirectional signal on the SCSI
bus that resets a portion of the SCSI logic when it is asserted by a device on the SCSI bus. Similarly the
Am79C794 can assert the SCSI^RST signal to cause all
of the other devices on the SCSI bus to reset.
The Reset SCSI command causes the same effect on
the SCSI controller that the SCSI^RST pin does, except
that this command also causes the SCSI^RST pin to be
asserted so that all other (external) devices on the SCSI
bus are also reset. Once a SCSI Reset command has
been executed, the SCSI^RST signal will remain asserted until a Hard Reset has occurred.
The action of the SCSI^RST signal and the Reset SCSI
command is called Soft Reset.
In addition there is a third type of reset, called Disconnected Reset, that is caused by certain sequences on
the SCSI bus. These three types of reset are described
in the following sections.
Hard Resets: (H)
This reset occurs at power up, when the RST pin is asserted through external hardware, or when the Reset
Device command is issued by writing 02h to the SCSI
command register at ((B)+0Ch). Hard reset causes all
chip functions to halt and resets all internal state ma82
Soft Reset: (S)
This reset occurs either when the SCSI^RST pin on the
SCSI bus is asserted or when the Reset SCSI Bus command is issued (by writing 03h to the SCSI command
register at ((B) = 0ch)).
Soft reset causes the following actions to occur:
All SCSI bus signals except SCSI^RST are
released.
The chip is returned to the Disconnected state.
An interrupt is generated if bit 6 in Control Register
One is enabled.
Disconnected Reset: (D)
Disconnected reset occurs when either of the following
conditions occur:
The Am79C974 is the Initiator and the SCSI bus
moves to a Bus Free state
The Selection command terminates due to
selection time-out
Disconnected reset causes the following actions:
All SCSI signals except SCSI^RST are deasserted.
The SCSI Command Register is initialized to
empty.
The IS1 and IS0 bits in the Internal State Register,
((B)+18h), are cleared to 0.
Please refer to the Technical Manual (PID #18738A) for
the default values for all registers.
Device Commands
The device commands can be broadly divided into two
categories, DMA commands and non-DMA commands.
DMA commands are those which cause data movement
between the host memory and the SCSI bus while nonDMA commands are those that cause data movement
between the SCSI FIFO and the SCSI bus. The Most
Significant Bit of the command byte differentiates the
DMA from the non-DMA commands.
When a DMA command is issued, the contents of the
Start Transfer Count Register will be loaded into the
Current Transfer Count Register. Data transmission will
Am79C974
PRELIMINARY
continue until the Current Transfer Count Register decrements to zero.
Non-DMA commands do not modify the Current Transfer Count Register and are unaffected by the value in the
Current Transfer Count Register. For non-DMA commands, the number of bytes transmitted depends solely
on the operation in progress.
When non-DMA commands are used, the host computer must use programmed I/O to transfer the data between the SCSI FIFO and the host memory.
AMD
multiple interrupts can occur when commands are
stacked, it is recommended that the ENF bit in Control
Register Two (Bit 6) be set in order to latch the SCSI
phase bits in the SCSI Status Register ((B)+10h) at the
completion of a command. This allows the host to determine the phase of the interrupting command without
having to consider phase changes that occurred after
the stacked command began execution.
Note: Command stacking should only be used during
SCSI Data In or Data Out transfers.
Invalid Commands
Table 7. Summary of Commands
Code
(Hex.)
Command
NonDMA
Mode
DMA
Mode
Information Transfer
10
90
Initiator Command Complete Steps
11
91
Message Accepted
12
–
Transfer Pad Bytes
–
98
Set ATN*
1A
–
Reset ATN*
1B
–
Initiator Commands
When an illegal command is written to the Am79C974,
the Invalid Command Bit (Bit 6, Register (B)+14h) will be
set to ‘1’, and an interrupt will be generated to the host.
When this happens, the interrupt must be serviced before another command may be written to the Command
Register.
An Invalid command is defined as a command written to
the Am79C974 that is either not supported, not allowed
in the specified mode, or a command that has an unsupported command mode.
The following conditions will also cause an Invalid Command interrupt to occur:
An Initiator Information Transfer, Transfer Pad, or
Command Complete is issued when ACK is still
asserted.
Idle State Commands
Select without ATN Steps
41
C1
Select with ATN Steps
42
C2
Select with ATN and Stop Steps
43
C3
Enable Selection/Reselection*
44
C4
Disable Selection/Reselection
45
–
Select with ATN3 Steps
46
C6
No Operation*
00
80
Clear FIFO*
01
–
Reset Device*
02
–
Reset SCSI Bus**
03
–
A Selection command is issued with the DMA bit
enabled, if the Selection command was previously
issued with the DMA enabled.
Command Window
The window at the point where the Disable Selection/
Reselection command (45h/C5h) has been loaded into
the Command Register ((B)+0Ch), and before bus-initiated Selection begins, has been eliminated. This prevents a false Successful Operation Interrupt from being
generated when the Selection sequence continues to
completion after the Disable command has been
loaded.
General Commands
Notes:
* These commands do not generate interrupt.
Initiator Commands
** An interrupt is generated when SCSI bus reset interrupt
reporting is not disabled (see Control Register1/DISR
bit6).
Command Stacking
Initiator commands are executed by the device when it
is in the Initiator mode. If the device is not in the Initiator
mode and an Initiator command is received the device
will ignore the command, generate an Invalid Command
interrupt and clear the Command Register.
The microprocessor may stack commands in the Command Register ((B)+0Ch) since it functions as a twobyte deep FIFO. Non-DMA commands may not be
stacked, and commands which transfer data in opposing directions should not be stacked together; otherwise, the results are unpredictable.
Should the Target disconnect from the SCSI bus by
deasserting the BSY signal line while the Am79C974
(Initiator) is waiting for the Target to assert REQ, a Disconnected Interrupt will be issued 1.5 to 3.5 clock cycles
following BSY going false.
If DMA commands are queued together, the Start
Transfer Count must be written before the associated
command is loaded into the Command Register. Since
Upon receipt of the last byte during Message In phase,
ACK will remain asserted to prevent the Target from issuing any additional bytes, while the Initiator decides to
Am79C974
83
AMD
PRELIMINARY
is cleared and the DMA interface is disabled to
prevent any transfer of data (phase) bytes.
accept/reject the message. If non-DMA commands are
used, the last byte signals the SCSI FIFO is empty. If
DMA commands are used, the Current Transfer Count
signals the last byte.
If the phase change is to Synchronous Data-In and
bad parity is detected on the data bytes coming in,
it is not reported since the Status Register will report the status of the command just completed.
The parity error flag and the ATN signal will be
asserted when the next Information Transfer command begins execution.
A Reset SCSI Bus command (03h/83h) will force the
Am79C974 to abort the current operation and disconnect from the bus. If the DISR bit is reset (Bit 6, Control
Register One (B)+20h)), the host processor will be interrupted with a SCSI Reset Interrupt before the
Am79C974 proceeds to Disconnect.
Message Out/Command Phase – When a phase
change to Synchronous Data-In or Synchronous
Data-Out is detected by the device, the Command
Register is cleared and the DMA interface is disabled to prevent any transfer of data (phase)
bytes.
If parity checking is enabled in the Initiator mode during
the Data-in phase and an error is detected, ATN will be
asserted for the erroneous byte before deasserting
ACK.
Information Transfer Command
(Command Code 10h/90h)
If the phase change is to Synchronous Data-In and
bad parity is detected on the data bytes coming in,
it is not reported since the Status Register will report the status of the command just completed.
The parity error flag and the ATN signal will be asserted when the next Information Transfer command begins execution.
The Information Transfer command is used to transfer
information bytes over the SCSI bus. This command
may be issued during any SCSI Information Transfer
phase. Synchronous data transmission requires use of
the DMA mode.
The Target changes the SCSI bus phase before
the expected number of bytes are transferred. The
Am79C974 clears the Command Register
(CMDREG), and generates a Service Request
interrupt when the Target asserts REQ.
The SCSI FIFO Register will be latched and will
remain in that condition until the next command
begins execution. The value in the SCSI FIFO
Register indicates the number of non-data bytes in
the SCSI FIFO when the phase changed to Synchronous Data-In. These bytes are cleared from
the FIFO, and only incoming data bytes are retained.
Transfer has successfully completed. If the phase
is Message Out, the Am79C974 deasserts ATN
before asserting ACK for the last byte of the message. When the Target asserts REQ, a Service
Request interrupt is generated.
In the Synchronous Data-Out phase, the threshold
counter is incremented as REQ pulses are received. The transfer is completed when the FIFO is
empty and the Current Transfer Count Register is
‘0’. The threshold counter will not be ‘0’.
In the Message In phase when the device receives
the last byte. The Am79C974 keeps the ACK signal asserted and generates a Successful Operation interrupt.
In the Synchronous Data-In phase, the Current
Transfer Count Register is decremented as bytes
are read from the SCSI FIFO rather than when the
bytes are being written to the SCSI FIFO. The
transfer is completed when Current Transfer Count
Register is ‘0’. However, the SCSI FIFO may not
be empty.
The device will continue to transfer information until it is
terminated by any one of the following conditions:
During Synchronous Data transfers the Target may
send up to the maximum synchronous offset number of
REQ pulses to the Initiator. If it is the Synchronous DataIn phase then the Target sends the data and the REQ
pulses. These bytes are stored by the Initiator in the
FIFO as they are received.
The Information Transfer Command, when issued during the following SCSI phases and terminated in Synchronous Data phases, is handled as described below:
Message In/Status Phase – When a phase change
to Synchronous Data-In or Synchronous Data-Out
is detected by the device, the Command Register
84
Initiator Command Complete Steps
(Command Code 11h/91h)
The Initiator Command Complete Steps command is
normally issued when the SCSI bus is in the Status In
phase. One Status byte followed by one Message byte
is transferred if this command completes normally. After
receiving the message byte the device will keep the
ACK signal asserted to allow the Initiator to examine the
message and assert the ATN signal if it is unacceptable.
The command terminates early if the Target does not
Am79C974
PRELIMINARY
switch to the Message In phase or if the Target disconnects from the SCSI bus. This command does not utilize
the Internal State Register ((B)+18h).
Message Accepted Command
(Command Code 12h)
The Message Accepted Command is used to release
the ACK signal. This command is normally used to complete a Message In handshake. Upon execution of this
command the device generates a Service Request interrupt after REQ is asserted by the Target.
After the device has received the last byte of message, it
keeps the ACK signal asserted. This allows the device
to either accept or reject the message. To accept the
message, Message Accepted Command is issued. To
reject the message the ATN signal must be asserted
(with the help of the Set ATN Command) before issuing
the Message Accepted Command. In either case, the
Message Accepted Command has to be issued to release the ACK signal.
Transfer Pad Bytes Command
(Command Code 18h/98h)
The Transfer Pad Bytes Command is used to recover
from an error condition. This command is similar to the
Information Transfer Command, only the information
bytes consists of null data. It is used when the Target expects more data bytes than the Initiator has to send. It is
also used when the Initiator receives more information
than expected from the Target.
When sending data to the SCSI bus, the SCSI FIFO is
loaded with null bytes which are sent out to the SCSI
bus. Although an actual DMA request is not made, DMA
interface must be enabled when pad bytes are transmitted since the Am79C974 uses the Current Transfer
Count Register to terminate transmission.
This command terminates under the same conditions as
the Information Transfer Command, but the device does
not keep the ACK signal asserted during the last byte of
the Message In phase. Should this command terminate
prematurely due to a Disconnect or a phase change before the Current Transfer Count Register decrements to
zero, the SCSI FIFO may contain residual Pad bytes.
Set ATN Command
(Command Code 1Ah)
The Set ATN Command is used to drive the ATN signal
active on the SCSI bus. An interrupt is not generated at
the end of this command. The ATN signal is deasserted
before asserting the ACK signal during the last byte of
the Message Out phase.
Note: The ATN signal is asserted by the device without
this command in the following cases:
If any select with ATN command is issued and the
arbitration is won.
An Initiator needs the Target’s attention to send a
AMD
message. The ATN signal is asserted before
deasserting the ACK signal.
Reset ATN Command
(Command Code 1Bh)
The Reset ATN Command is used to deassert the ATN
signal on the SCSI bus. An interrupt is not generated at
the end of this command. This command is used only
when interfacing with devices that do not support the
Common Command Set (CCS). These older devices do
not deassert their ATN signal automatically on the last
byte of the Message Out phase. This device does deassert its ATN signal automatically on the last byte of the
Message Out phase.
Idle State Commands
The Idle State Commands can be issued to the device
only when the device is disconnected from the SCSI
bus. If these commands are issued to the device when it
is logically connected to the SCSI bus, the commands
are ignored, an Invalid Command interrupt is generated,
and the Command Register (CMDREG) is cleared.
Select Without ATN Steps Command
(Command Code 41h/C1h)
The Select without ATN Steps Command is used by the
Initiator to select a Target. When this command is issued, the device arbitrates for the control of the SCSI
bus. When the device wins arbitration, it selects the Target device and transfers the Command Descriptor Block
(CDB). Before issuing this command the SCSI Timeout
Register (STIMREG), Control Register One
(CNTLREG1), and the SCSI Destination ID Register
(SDIDREG) must be set to the proper values. If DMA is
enabled, the Start Transfer Count Register (STCREG)
must be set to the total length of the command. If DMA is
not enabled, the data must be loaded into the FIFO before issuing this command. This command will be terminated early if the SCSI Timeout Register times out, if the
Target does not go to the Command Phase following the
Selection Phase, or if the Target exits the Command
Phase prematurely. A Successful Operation interrupt
will be generated following normal command execution.
Select With ATN Steps Command
(Command Code 42h/C2h)
The Select with ATN Steps Command is used by the Initiator to select a Target. When this command is issued,
the device arbitrates for the control of the SCSI bus.
When the device wins arbitration, it selects the Target
device with the ATN signal asserted and transfers the
Command Descriptor Block (CDB) and a one byte message. Before issuing this command the SCSI Timeout
Register (STIMREG), Control Register One
(CNTLREG1) and the SCSI Destination ID Register
(SDIDREG) must be set to the proper values. If DMA is
enabled, the Start Transfer Count Register (STCREG)
must be set to the total length of the command and message. If DMA is not enabled, the data must be loaded
Am79C974
85
AMD
PRELIMINARY
into the FIFO before issuing this command. This command will be terminated early in the following situations:
The SCSI Timeout Register times out
The Target does not go to the Message Out Phase
following the Selection Phase
The Target exits the Message Phase early
The Target does not go to the Command Phase
following the Message Out Phase
The Target exits the Command Phase early
A Successful Operation/Service Request interrupt is
generated when this command is completed
successfully.
Select With ATN and Stop Steps Command
(Command Code 43h/C3h)
The Select with ATN and Stop Steps Command is used
by the Initiator to send messages with lengths other than
1 or 3 bytes. When this command is issued, the device
executes the Selection process, transfers the first message byte, then STOPS the sequence. ATN is not deasserted at this time, allowing the Initiator to send
additional message bytes after the ID message. To
send these additional bytes, the Initiator must write the
transfer counter with the number of bytes which will follow, then issue a Transfer Information Command.
(Note: the Target is still in the Message Out phase when
this command is issued). ATN will remain asserted until
the Current Transfer Count Register decrements
to zero.
Reselection. When this command is issued before a
bus-initiated Selection or Reselection is in progress, it
resets the internal state bits previously set by the Enable
Selection/Reselection Command. The device also generates a Successful Operation interrupt to the processor. If however, this command is issued after a
bus-initiated Selection/Reselection has begun, this
command and all incoming commands are ignored
since the Command Register (CMDREG) is held reset.
The Am79C974 also generates a Selected or
Reselected interrupt when the sequence is complete.
Select With ATN3 Steps Command
(Command Code 46h/C6h)
The Select with ATN3 Steps Command is used by the
Initiator to select a Target. This command is similar to
the Select with ATN Steps Command, except that it
sends exactly three message bytes. When this command is issued the Am79C974 arbitrates for control of
the SCSI bus. When the device wins arbitration, it selects the Target device with the ATN signal asserted and
transfers the Command Descriptor Block (CDB) and
three message bytes. Before issuing this command the
SCSI Timeout Register (STIMREG), Control Register
One (CNTLREG1), and the SCSI Destination ID Register (SDIDREG) must be set to the proper values. If DMA
is enabled, the Start Transfer Count Register
(STCREG) must be set to the total length of the command. If DMA is not enabled, the data must be loaded
into the FIFO before issuing this command. This command will be terminated early in the following situations:
The SCSI Timeout Register (STIMREG), Control Register One (CNTLREG1), and the SCSI Destination ID
Register (SDIDREG) must be set to the proper values
before the Initiator issues this command. This command
will be terminated early if the STIMREG times out or if
the Target does not go to the Message Out Phase following the Selection Phase.
Enable Selection/Reselection Command
(Command Code 44H/C4H)
The Target does not go to the Message Out Phase
following the Selection Phase
The Target removes Command Phase early
The Target does not go to the Command Phase
following the Message Out Phase
The Target exits the Command Out Phase early
The Enable Selection/Reselection Command is used to
respond to a bus-initiated Selection or Reselection.
Upon disconnecting from the bus the Selection/
Reselection circuit is automatically disabled by the device. This circuit must be enabled for the Am79C974 to
respond to subsequent reselection attempts and the Enable Selection/Reselection Command is issued to do
that. This command is normally issued within 250 ms
(select/reselect timeout) after the device disconnects
from the bus. If DMA is enabled, the device loads the
received data to the buffer memory. If the DMA is disabled, the received data stays in the FIFO.
Disable Selection/Reselection Command
(Command Code 45H)
The Disable Selection/Reselection Command is used
by the Target to disable response to a bus-initiated
86
The SCSI Timeout Register times out
A Successful Operation/Service Request interrupt is
generated when this command is executed
successfully.
General Commands
No Operation Command
(Command Code 00h/80h)
The No Operation Command administers no operation,
therefore an interrupt is not generated upon completion.
This command is issued following the Reset Device
Command to clear the Command Register (CMDREG).
A No Operation Command in the DMA mode may be
used to verify the contents of the Start Transfer Count
Register (STCREG). After the STCREG is loaded with
the transfer count and a DMA No Operation Command
is issued, reading the Current Transfer Count Register
(CTCREG) returns the transfer count value.
Am79C974
PRELIMINARY
Clear FIFO Command
(Command Code 01h)
The Clear FIFO Command is used to initialize the SCSI
FIFO to the empty condition. The Current FIFO Register
(CFISREG) reflects the empty FIFO status and the bottom of the FIFO is set to zero. No interrupt is generated
at the end of this command.
Reset Device Command
(Command Code 02h)
The Reset Device Command immediately stops any device operation and resets all the functions of the device.
Additionally, it returns the device to the disconnected
state and it generates a hard reset. The Reset Device
Command remains on the top of the Command Register
FIFO holding the device in the reset state until the No
Operation Command is loaded. Once loaded, the No
Operation command serves to re-enable the Command
Register.
Reset SCSI Bus Command
(Command Code 03h)
The Reset SCSI Bus Command forces the SCSI^RST
signal active for a period of 25 ms, and drives the chip to
the Disconnected state. An interrupt is not generated
upon command completion, however, if bit 6 is set to ‘0’
in Control Register One (CNTLREG1), a SCSI Reset interrupt will be issued.
SCSI Power Management Features
As a leader in low-voltage technology, AMD has incorporated power-saving features into the Am79C974.
Through hardware and software, the Am79C974 can be
powered down to reduce consumption during chip
inactivity.
AMD
ered down by turning off the input buffers on the SCSI
Bus lines (set bit 5 in Control Register Four (B)+34h).
For further power reduction, the internal registers may
be programmed to a predetermined state, and the input
clock disconnected via external logic.
Power Down Pin (PWDN Pin)
When PWDN is driven active, it sets the PWDN bit in the
Status Register (Bit 0, DMA Status Register (B)+54h),
signaling the Am79C974 that the host would like to
power down the SCSI interface. An interrupt is generated when this bit is first set.
Software Disk Spin-Down
Incorporated into the SCSI ROM BIOS and certain device driver’s of AMD’s software solution is a module
which physically spins down SCSI fixed disks when the
host system elects to enact power management on the
SCSI system. The software module is activated upon
the ROM BIOS and/or other device driver’s receipt of an
interrupt caused by the PWDN pin being driven active.
Upon receipt of this interrupt, the current software process is suspended and software control is given to the
power management module.
When the power management module is activated, it
checks the status of all SCSI fixed disks on the system
under its control. The SCSI fixed disks that are idle are
issued a command to spin down their media. All fixed
disks that are active at the time will be scheduled for spin
down upon completion of their pending commands.
Once the BIOS and/or drivers have detected the completion of each fixed disk’s final pending commands,
they are issued the command to spin down as well.
Reduced Power Mode
To spin down the disk drives, the power management
module issues a SCSI command (1B– Start/Stop unit).
When the command is received by the drive, it spins
down and waits in an idle state. For multiple drives on
the SCSI bus, the power management driver spins
down each drive individually. The drives remain in the
idle state until the BIOS and/or driver receives a command for the particular fixed disk. Once this occurs, the
drive is issued the command to spin up. When the drive
has completely spun up and is ready, the pending command is issued to the drive. Only the particular fixed disk
issued the command is instructed to spin up. All other
drives will remain in the spun down state until a command is issued to them.
When there is no activity on the SCSI Bus, and there are
no pending commands, the Am79C974 may be pow-
Note: This sequence does not turn off the input buffers
as described in the previous section.
SCSI Activity Pin
The SCSI Bus activity is reflected by the BUSY output
line. This signal, when active, indicates that the SCSI
Bus is in use, therefore the Am79C974 should not be
powered down. This signal is the logical equivalent to
the SCSI bus signal BSY, however, it is not physically
connected to the BSY signal on the bus. To correctly
identify the Bus Free State on the SCSI bus, this BUSY
output line must be inactive for at least 250 ms (Selection Timeout period).
Am79C974
87
AMD
PRELIMINARY
NAND Tree Testing
The Am79C974 controller provides a NAND tree test
mode to allow checking connectivity to the device on a
printed circuit board. The NAND tree is built on all PCI
bus signals (see Figure 27 and Table 8).
The NAND tree testing is enabled by asserting RST. All
PCI bus signals will become inputs when RST is asserted. The result of the NAND tree test can be observed on the BUSY pin.
+5 V
RST
(pin 120)
INTA
(pin 117)
INTB
(pin 118)
CLK
(pin 121)
PCnet-SCSI
Core
AD2
(pin 54)
AD1
(pin 56)
AD0
(pin 57)
BUSY
PWDN
(pin 58)
MUX
B
O
A S
BUSY
(pin 62)
18681A-35
Figure 27. Am79C974 NAND Tree Test Structure
88
Am79C974
AMD
PRELIMINARY
As shown in Figure 27, Pin 120 (RST) is the first input to
the NAND tree. Pin 117 (INTA) is the second input to the
NAND tree, followed by pin 118 (INTB). All other PCI
bus signals follow, counterclockwise, with pin 58
(PWDN) being the last. Ethernet and SCSI specific pins
and all power supply pins are not part of the NAND tree.
Table 8 shows the complete list of pins connected to the
NAND tree.
Table 8. NAND Tree Configuration
NAND
Tree
Input #
Pin #
Name
NAND
Tree
Input #
Pin #
Name
NAND
Tree
Input #
Pin #
Name
1
120
RST
20
12
AD23
39
36
AD15
2
117
INTA
21
13
AD22
40
38
AD14
3
118
INTB
22
15
AD21
41
39
AD13
4
121
CLK
23
16
AD20
42
40
AD12
5
123
GNTB
24
18
AD19
43
41
AD11
6
124
GNTA
25
19
AD18
44
42
AD10
AD9
7
126
REQB
26
21
AD17
45
44
8
127
REQA
27
22
AD16
46
45
AD8
9
128
AD31
28
23
C/BE2
47
47
C/BE0
10
129
AD30
29
24
FRAME
48
48
AD7
11
131
AD29
30
25
IRDY
49
49
AD6
12
132
AD28
31
26
TRDY
50
51
AD5
13
2
AD27
32
27
DEVSEL
51
52
AD4
14
3
AD26
33
28
STOP
52
53
AD3
15
5
AD25
34
29
LOCK
53
54
AD2
16
6
AD24
35
31
PERR
54
56
AD1
17
7
C/BE3
36
32
SERR
55
57
AD0
18
9
IDSELA
37
34
PAR
56
58
PWDN
19
10
IDSELB
38
35
C/BE1
Am79C974
89
AMD
PRELIMINARY
RST must be asserted low to start a NAND tree test sequence. Initially, all NAND tree inputs except RST
should be driven high. This will result in a high output at
the BUSY pin. If the NAND tree inputs are driven low in
the same order as they are connected to build the NAND
tree, BUSY will toggle every time an additional input is
driven low. BUSY will change to a ZERO, when INTA is
driven low and all other NAND tree inputs stay high.
BUSY will toggle back to high, when CLK is additionally
driven low. BUSY will continue toggling as long as the
NAND tree inputs are toggling in the sequence shown in
Figure 28. BUSY will be high, when all NAND tree inputs
are driven low.
When testing is complete, deassert RST to exit this test
mode.
Note that some of the pins connected to the NAND tree
are outputs in normal mode of operation. They must not
be driven from an external source until the PCnet-SCSI
controller is configured for NAND tree testing.
RST
INTA
INTB
CLK
GNTB
GNTA
REQB
REQA
AD[31:0]
C/BE[3:0]
0000FFFF
FFFFFFFF
F
3
7
1
IDSELA
IDSELB
FRAME
IRDY
TRDY
DEVSEL
STOP
LOCK
PERR
SERR
PAR
PWDN
BUSY
18681A-36
Figure 28. NAND Tree Waveform
90
Am79C974
AMD
PRELIMINARY
ABSOLUTE MAXIMUM RATINGS
OPERATING RANGES
Storage Temperature . . . . . . . . . . . –65°C to +150°C
Temperature (TA) . . . . . . . . . . . . . . . . . 0°C to +70°C
Supply Voltages
(AVDD, VDD, VDDB, VDDBS, DVDD) . . . . . . . . . +5 V ± 5%
All Inputs within the Range:
AVSS – 0.5 V ≤ VIN ≤ AVDD + 0.5 V,
or VSS – 0.5 V ≤ VIN ≤ VDD + 0.5 V,
or VSSB – 0.5 V ≤ VIN ≤ VDDB + 0.5 V
or VSSBS – 0.5 V ≤ VIN ≤ VDDBS + 0.5 V
or DVSS – 0.5 V ≤ VIN ≤ DVDD + 0.5 V
Ambient Temperature
Under Bias . . . . . . . . . . . . . . . . . . . –55°C to +125°C
Supply Voltage to AVSS or VSSB or VSSBS or DVSS
(AVDD, VDD, VDDB, VDDBS, DVDD) . . . –0.3 V to +6.0 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.
Operating ranges define those limits between which the functionality of the device is guaranteed.
DC CHARACTERISTICS over COMMERCIAL operating range unless otherwise specified
PCI and Board Interface
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 Output Voltage
VOL
Output LOW Voltage
IOL1 = 3 mA
0.55
V
0.4
V
IOL2 = 6 mA
IOL3 = 12 mA
(Note 1)
VOH
Output HIGH Voltage (Note 2)
IOH = –2 mA (Note 5)
2.4
V
Digital Input Leakage Current
IIL
Input Low Leakage Current (Note 3)
VIN = 0
–10
10
µA
IIH
Input High Leakage Current (Note 3)
VIN = VDD, VDDB
–10
+10
µA
Digital Output Leakage Current
IOZL
Output Low Leakage Current (Note 4)
VOUT = 0.4 V
–10
+10
µA
IOZH
Output High Leakage Current (Note 4)
VOUT = VDD, VDDB
–10
+10
µA
–0.5
0.8
V
Crystal Input Current
VILX
XTAL1 Input LOW Voltage Threshold
VIN = External Clock
VIHX
XTAL1 Input HIGH Voltage Threshold
VIN = External Clock
IILX
XTAL1 Input LOW Current
VIN = External Clock
IIHX
XTAL1 Input HIGH Current
VDD – 0.8 VDD + 0.5
V
Active
–120
0
µA
VIN = VSS
Sleep
–10
+10
µA
VIN = External Clock
Active
0
120
µA
VIN = VDD
Sleep
400
µA
Am79C974
91
AMD
PRELIMINARY
DC CHARACTERISTICS (continued)
Attachment Unit Interface
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
–1 V < VIN < AVDD+0.5V
–500
+500
µA
Attachment Unit Interface (AUI)
IIAXD
Input Current at DI+ and DI–
IIAXC
Input Current at CI+ and CI–
–1 V < VIN < AVDD+0.5V
–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
IAODOFF
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
DI± and CI± Differential Mode Input
Voltage Range
–1.5
1.5
V
VIRDVD
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)
AVDD–3.0 AVDD–1.0
–100
V
mV
Twisted Pair Interface (10BASE-T)
Input Current at RXD±
RXD± Differential Input Resistance
VTIVB
RXD±, RXD– Open Circuit Input
Voltage (Bias)
IIN = 0 mA
VTIDV
Differential Mode Input Voltage
Range (RXD±)
AVDD = 5.0 V
–3.1
3.1
V
VTSQ+
RXD Positive Squelch Threshold (peak)
Sinusoid, 5 MHz ≤ f ≤ 10 MHz
300
520
mV
VTSQ-
RXD Negative Squelch Threshold (peak)
Sinusoid, 5 MHz ≤ f ≤ 10 MHz
–520
–300
mV
VTHS+
RXD Post-Squelch Positive Threshold
(peak)
Sinusoid, 5 MHz ≤ f ≤ 10 MHz
150
293
mV
VTHS-
RXD Post-Squelch Negative Threshold
(peak)
Sinusoid, 5 MHz ≤ f ≤ 10 MHz
–293
–150
mV
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
VRXDTH
–500
500
10
KΩ
AVDD–3.0 AVDD–1.5
V
RXD Switching Threshold
(Note 4)
–35
35
mV
VTXH
TXD± and TXP± Output HIGH Voltage
VSS = 0 V
VDD–0.6
VDD
V
VTXL
TXD± and TXP± Output LOW Voltage
VDD = 5 V
VTXI
TXD± and TXP± Differential Output
Voltage Imbalance
VTXOFF
RTX
92
AVDD < VIN < AVDD
µA
IIRXD
RRXD
VSS
VSS+0.6
V
–40
40
mV
40
mV
40
80
Ω
TXD± and TXP± Idle Output Voltage
TXD± , TXP± Differential Driver Output
Impedance
(Note 4)
Am79C974
AMD
PRELIMINARY
DC CHARACTERISTICS (continued)
SCSI Interface
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
SCSI and PWDN
VIH
Input High Voltage
All SCSI Inputs, PWDN
2.0
VDD +
0.5
V
VIL
Input Low Voltage
All SCSI Inputs, PWDN
VSS –
0.5
0.8
V
VIHST
Input Hysteresis (Note 6)
All SCSI Inputs
4.75 V < VDD < 5.25 V
300
mV
VOH
Output High Voltage (Note 2)
IOH = –2 mA (Note 5)
2.4
VDD
V
VOL
SCSI Output Low Voltage
ATN, BSY, SEL,
SCSI^RST, ACK, SD [7:0], SDP
IOL = 48 mA
VSS
0.5
V
IIL
Input Low Leakage
All SCSI Inputs, PWDN
0.0 V < VIN < 2.7 V
–10
+10
µA
IIH
Input High Leakage
All SCSI Inputs, PWDN
2.7 V < VIN < VDD
–10
+10
µA
IOZ
High Impedance Leakage
All I/O Pins
0.4 V < VOUT < VDD
–10
+10
µA
Power Supply Current
IDD
IDDCOMA
IDDSNOOZE
Active Power Supply Current
XTAL1 = 20 MHz, CLK = 33 MHz
150
mA
Sleep Mode Power Supply Current
SLEEP Active
TBD
µA
Auto Wake Mode Power Supply Current
Awake Bit Set Active
TBD
µA
Notes:
1. IOL1 applies to AD[31:00], C/BE[3:0], PAR, and REQ
IOL2 applies to FRAME, IRDY, TRDY, DEVSEL, STOP, SERR, PERR, and LOCK
IOL3 applies to EESK/LED1, EEDO/LED3, and EEDI/LNKST
2. VOH does not apply to open-drain output pins.
3. IIL and IIH apply to all input pins except 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. These parameters are not 100% tested, but are evaluated at initial characterization and at any time the design is modified
where these parameters may be affected.
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.
Am79C974
93
AMD
PRELIMINARY
DC CHARACTERISTICS (continued)
Capacitance, ESD, and Latch Up
Parameter
Symbol
Parameter Description
Pin Names
Test Conditions
Min
Max
Unit
Pin Capacitance (Note 1) (VCC = 5.0 V, TA = 25∞ C, f = 1.0 MHz)
CIN
Input Pins
All SCSI Inputs
All Ethernet Inputs
PWDN
All PCI Inputs except
IDSEL
VIN = 0 V
10
pF
IDSEL
VIN = 0 V
8
pF
CI/O
I/O or Output Pins
All SCSI, Ethernet,
PCI Output and I/O
Pins, BUSY
VI/O = 0 V
12
pF
CCLK
Clock Pins
CLK (PCI)
SCSI CLK
VIN = 0 V
12
pF
Input Static Discharge
Pin-to-Pin
Human Body Model:
100 pF at 1.5 KΩ
All I/O
VLU ≤ 10 V
ESD (Note 1)
2K
V
Latchup (Note 1)
ILU
Latchup Current
–100
+100
mA
Note:
1. These parameters are not 100% tested, but are evaluated at initial characterization and at any time the design is modified
where these parameters may be affected.
94
Am79C974
AMD
PRELIMINARY
AC SWITCHING CHARACTERISTICS over operating range unless otherwise specified
PCI Bus Interface and Board Interface
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
0
33
MHz
∞
ns
Clock Timing
CLK Frequency
tCYC
CLK Period
@ 1.5 V
30
tHIGH
CLK High Time
@ 2.0 V
12
ns
tLOW
CLK Low Time
@ 0.8 V
12
ns
tFALL
CLK Fall Time
over 2 V p-p
1
4
V/ns
tRISE
CLK Rise Time
over 2 V p-p
1
4
V/ns
AD[31:00], C/BE[3:0], PAR,
FRAME, IRDY, TRDY, STOP,
LOCK, DEVSEL, PERR, SERR
Valid Delay
2
11
ns
tVAL (REQ)
REQ Valid Delay
1
12
ns
fEESK
EESK Frequency
(See note below)
EEDI Valid Output Delay from EESK
(See note below)
Output and Float Delay Timing
tVAL
tVAL (EEDI)
tVAL (EESK) EECS Valid Output Delay from EESK
tON
AD[31:00], C/BE[3:0], PAR, FRAME,
IRDY, TRDY, STOP, LOCK, DEVSEL
Active Delay
tOFF
AD[31:00], C/BE[3:0], PAR, FRAME,
IRDY, TRDY, STOP, LOCK, DEVSEL
Float Delay
(See note below)
650
KHz
100
400
ns
0
400
ns
2
11
ns
28
ns
Setup and Hold Timing
tSU
AD[31:00], C/BE[3:0], PAR, FRAME,
IRDY, TRDY, STOP, LOCK, DEVSEL,
IDSEL
Setup Time
7
ns
tH
AD[31:00], C/BE[3:0], PAR, FRAME,
IRDY, TRDY, STOP, LOCK, DEVSEL,
IDSEL
Hold Time
0
ns
tSU (GNT)
GNT Setup Time
10
ns
tH (GNT)
GNT Hold Time
0
ns
tSU (EEDO) EEDO Setup Time to EESK
(See note below)
50
ns
tH (EEDO)
(See note below)
0
ns
EEDO Hold Time from EESK
Note:
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.
Am79C974
95
AMD
PRELIMINARY
AC 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
(tTM = | tTR – tTF|)
1
ns
8
24
ms
(See note below)
75
120
ns
(See note below)
45
55
ns
Transmit jabber activation time
20
150
ms
Transmit jabber reset time
250
750
ms
Transmit jabber recovery time
(minimum time gap between
transmitted frames to prevent
jabber activation)
1.0
µs
136
ns
tPERLP
Idle Signal Period
tPWLP
Idle Link Pulse Width
tPWPLP
Predistortion Idle Link Pulse Width
tJA
tJR
tJREC
Receiving 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)
tRETD
Receive Start of Idle
Note:
Not tested; parameter guaranteed by characterization.
96
200
200
Am79C974
ns
ns
AMD
PRELIMINARY
AC SWITCHING CHARACTERISTICS
Attachment Unit Interface
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
5.0
ns
AUI Port
tDOTR
DO+, DO– Rise Time (10% to 90%)
2.5
2.5
tDOTF
DO+, DO– Fall Time (10% to 90%)
tDORM
DO+, DO– Rise and Fall Time Mismatch
5.0
ns
1.0
ns
tDOETD
DO± End of Transmission
tPWODI
DI Pulse Width Accept/Reject Threshold
|VIN| > |VASQ| (Note 1)
200
375
ns
15
45
ns
tPWKDI
DI Pulse Width Maintain/Turn-Off
Threshold
|VIN| > |VASQ| (Note 2)
136
200
ns
tPWOCI
CI Pulse Width Accepth/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.001
ns
Internal MENDEC Clock Timing
tx1
XTAL1 Period
VIN = External Clock
49.995
tx1H
XTAL1 HIGH Pulse Width
VIN = External Clock
20
20
ns
tx1L
XTAL1 LOW Pulse Width
VIN = External Clock
tx1R
XTAL1 Rise Time
VIN = External Clock
5
ns
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.
Am79C974
97
AMD
PRELIMINARY
AC SWITCHING CHARACTERISTICS
SCSI Interface
FastClk Disabled (Control Register Three (0CH) bit 3=0), See Figure 29
No.
Parameter
Symbol
Parameter Description
1
tPWL1
Clock Pulse Width Low
2
tCP
Clock Period (1 ÷ Clock Frequency)
3
tL
Synchronization Latency
14.58
1
4
tPWH
Clock Pulse Width High
5
tRISE*
Clock Rise Time
Test Conditions
6
tFALL*
Clock Fall Time
Notes:
1. For Synchronous data transmissions, the following conditions must be true:
2tCP + tPWL ≥ 97.92 ns
2tCP + tPWH ≥ 97.92 ns
Min
Max
Unit
14.58
0.65 • tCP
ns
40
100
ns
54.58
tPWL + tCP
ns
0.65 • tCP
ns
over 2 V p-p
1
4
V/ns
over 2 V p-p
1
4
V/ns
Clock Frequency Range for Fast Clk disabled.
= 10 MHz to 25 MHz for Asynchronous Transmission
= 12 MHz to 25 MHz for Synchronous Transmission
*
These parameters are not 100% tested, but are evaluated at initial characterization and at any time the design
is modified where these parameters may be affected.
FastClk Enabled (Control Register Three (0CH) bit 3=1), See Figure 29
No.
Parameter
Symbol
Parameter Description
Test Conditions
Max
Unit
0.4 • tCP
0.6 • tCP
ns
25
50
ns
54.58
2 • tCP
ns
1
tPWL
Clock Pulse Width Low
2
tCP
Clock Period (1 ÷ Clock Frequency)
3A
tL
Synchronization Latency
4
tPWH
Clock Pulse Width High
0.4 • tCP
0.6 • tCP
ns
5
tRISE*
Clock Rise Time
over 2 V p-p
1
4
V/ns
6
tFALL*
Clock Fall Time
over 2 V p-p
1
4
V/ns
Notes:
Clock Frequency Range for Fast Clk enabled.
= 20 MHz to 40 MHz for Asynchronous Transmission
= 20 MHz to 40 MHz for Synchronous Transmission
98
Min
*
These parameters are not 100% tested, but are evaluated at initial characterization and at any time the design
is modified where these parameters may be affected.
Am79C974
AMD
PRELIMINARY
AC SWITCHING CHARACTERISTICS (continued)
SCSI Interface
No.
Parameter
Symbol
Parameter Description
Test Conditions
Min
Max
Unit
Single Ended: Asynchronous Initiator Transmit, See Figure 30
7
tS
Data to ACK
8
tPD
REQ
to Data Delay
9
tPD
REQ
to ACK
10
tPD
REQ
to ACK
Set Up Time
60
ns
5
Delay
Delay
ns
50
ns
50
ns
Single Ended: Asynchronous Initiator Receive, See Figure 31
11
tPD
REQ
to ACK
Delay
50
ns
12
tPD
REQ
to ACK
Delay
50
ns
13
tS
Data to REQ
14
tH
REQ
Set Up Time
to Data Hold Time
10
ns
18
ns
55*
ns
Normal SCSI: (Single Ended) Synchronous Initiator Transmit, See Figure 32
15
tS
Data to REQ or ACK
Set Up Time
16
tPWL
REQ or ACK Pulse Width Low
90*
ns
17
tPWH
REQ or ACK Pulse Width High
90*
ns
18
tH
ACK or REQ
100*
ns
Data to REQ or ACK
Set Up Time
25*
ns
REQ or ACK Pulse Width Low
30*
ns
REQ or ACK Pulse Width High
30*
ns
ACK or REQ
35*
ns
to Data Hold Time
Fast SCSI: (Single Ended) Synchronous Initiator Transmit, See Figure 32
15
tS
16
tPWL
17
tPWH
18
tH
to Data Hold Time
Synchronous Initiator Receive, See Figure 33
19
tPWL
REQ Pulse Width Low
27
ns
19
tPWL
ACK Pulse Width Low
20
ns
20
tPWH
REQ Pulse Width High
20
ns
20
tPWH
ACK Pulse Width High
20
ns
21
tS
Data to REQ or ACK
Set Up Time
10
ns
22
tH
REQ or ACK
15
ns
to Data Hold Time
SCSI Bus Lines
tRISE**
Rise Time, 10% to 90%
SCSI Termination
+ 20 pF
8
20
ns
tFALL**
Fall Time, 10% to 90%
SCSI Termination
+ 20 pF
5
12
ns
dVH/dt**
Slew Rate, Low to High
SCSI Termination
+ 20 pF
0.15
0.50
V/ns
dVL/dt**
Slew Rate, High to Low
SCSI Termination
+ 20 pF
0.25
0.80
V/ns
* The minimum values have a wide range since they depend on the Synchronization latency. The synchronization latency, in
turn, depends on the operating frequency of the device.
**These parameters are not 100% tested, but are evaluated at initial characterization and at any time the design is modified
where these parameters may be affected.
Am79C974
99
AMD
PRELIMINARY
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 HighImpedance
“Off” State
AC SWITCHING TEST CIRCUITS
IOL
Sense Point
VTHRESHOLD
CL
IOH
18681A-37
Normal and Three-State Outputs
100
Am79C974
AMD
PRELIMINARY
AC SWITCHING TEST CIRCUITS
AVDD
52.3 Ω
DO+
DO–
Test Point
154 Ω
100 pF
AVSS
18681A-38
AUI DO Switching Test Circuit
DVDD
294 Ω
TXD+
TXD–
Test Point
294 Ω
100 pF
Includes test
jig capacitance
DVSS
18681A-39
TXD Switching Test Circuit
DVDD
715 Ω
TXP+
TXP–
Test Point
100 pF
Includes test
jig capacitance
715 Ω
DVSS
18681A-40
TXP Outputs Test Circuit
Am79C974
101
AMD
PRELIMINARY
AC SWITCHING WAVEFORMS
System Bus Interface
tHIGH
2.4V
2.0 V
1.5 V
0.8 V
CLK
tLOW
0.4 V
2.0 V
1.5 V
0.8 V
tFALL
tRISE
tCYC
18681A-41
CLK Waveform
Tx
Tx
CLK
AD[31:00], C/BE[3:0],
PAR, FRAME, IRDY,
TRDY, STOP, LOCK,
DEVSEL, IDSEL
tSU
tH
tSU(GNT)
tH(GNT)
GNT
18681A-42
Input Setup and Hold Timing
102
Am79C974
AMD
PRELIMINARY
AC SWITCHING WAVEFORMS
System Bus Interface
Tx
Tx
Tx
CLK
tVAL
AD[31:00] C/BE[3:0],
PAR, FRAME, IRDY,
TRDY, STOP, LOCK,
DEVSEL, PERR, SERR
MIN
MAX
Valid n+1
Valid n
tVAL(REQ)
MIN
Valid n
REQ
MAX
Valid n+1
18681A-43
Output Valid Delay Timing
Tx
Tx
Tx
CLK
tON
AD[31:00], C/BE[3:0],
PAR, FRAME, IRDY,
TRDY, STOP, LOCK,
DEVSEL
Valid n
tOFF
AD[31:00], C/BE[3:0],
PAR, FRAME, IRDY,
TRDY, STOP, LOCK,
DEVSEL
Valid n
18681A-44
Output Tri-State Delay Timing
Am79C974
103
AMD
PRELIMINARY
AC SWITCHING WAVEFORMS
10BASE-T Interface
tTR
tTF
TXD+
tTETD
TXP+
TXD–
TXP–
tXMTON
tXMTOFF
XMT
(Note 1)
18681A-45
Note:
1. Internal signal and is shown for clarification only.
Transmit Timing
tPWPLP
TXD+
TXP+
TXD–
TXP–
tPWLP
tPERLP
18681A-46
Idle Link Test Pulse
104
Am79C974
AMD
PRELIMINARY
SWITCHING WAVEFORMS
10BASE-T Interface
VTSQ+
VTHS+
RXD±
VTHS–
VTSQ–
tmau_RCV_LRT_HI
18681A-47
Receive Thresholds (LRT=0)
VLTSQ+
VLTHS+
RXD±
VLTHS–
VLTSQ–
tmau_RCV_LRT_HI
18681A-48
Receive Thresholds (LRT=1)
Am79C974
105
AMD
PRELIMINARY
AC SWITCHING WAVEFORMS
Attachment Unit Interface
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±
18681A-49
Note:
1. Internal signal and is shown for clarification only.
Transmit Timing – Start of Frame
XTAL1
ISTDCLK
(Note 1)
ITXEN
(Note 1)
1
1
ITXDAT+
(Note 1)
0
0
DO+
DO–
DO±
1
0
0
Bit (n–2)
Bit (n–1)
Note:
1. Internal signal and is shown for clarification only.
tDOETD
Typical > 200 ns
Bit (n)
Transmit Timing – End of Frame (Last Bit = 0)
106
Am79C974
18681A-50
AMD
PRELIMINARY
SWITCHING WAVEFORMS
Attachment Unit Interface
XTAL1
ISTDCLK
(Note 1)
ITXEN
(Note 1)
1
1
1
ITXDAT+
(Note 1)
0
DO+
DO–
tDOETD
Typical > 250 ns
DO±
1
0
Bit (n–2)
Bit (n–1) Bit (n)
Note:
1. Internal signal and is shown for clarification only.
18681A-51
Transmit Timing – End of Frame (Last Bit = 1)
tPWKDI
DI+/–
VASQ
tPWKDI
tPWODI
18681A-52
Receive Timing
Am79C974
107
AMD
PRELIMINARY
AC SWITCHING WAVEFORMS
Attachment Unit Interface
tPWKCI
CI+/–
VASQ
tPWOCI
18681A-53
tPWKCI
Collision Timing
tDOETD
DO+/–
40 mV
0V
100 mV max.
80 Bit Times
Port DO ETD Waveform
108
Am79C974
18681A-54
AMD
PRELIMINARY
AC SWITCHING TEST WAVEFORMS
SCSI Interface
3.0 V
All Inputs
1.5 V
0.0 V
2.3 V
0.8 V
VOH
2.0 V
VOL
True Data Outputs SD [7:0], SDP
VOH – 0.3 V
2.0 V
VOL + 0.3 V
Hi-Z Outputs SD [7:0], SDP
2.0 V
0.8 V
All Open Drain Outputs
VOL
18681A-55
5
6
SCSI CLK
1
4
2
3
3A
18681A-56
Figure 29. Clock Input
SD [7:0]
SDP
7
8
ACK
9
10
REQ
18681A-57
Figure 30. Asynchronous Initiator Transmit
Am79C974
109
AMD
PRELIMINARY
AC SWITCHING TEST WAVEFORMS
SCSI Interface
SD [7:0]
SDP
14
ACK
11
13
12
REQ
18681A-58
Figure 31. Asynchronous Initiator Receive
SD [7:0]
SDP
18
17
15
16
REQ
ACK
18681A-59
Figure 32. Synchronous Initiator Transmit
SD [7:0]
SDP
22
20
21
19
REQ
ACK
18681A-60
Figure 33. Synchronous Initiator Receive
110
Am79C974
AMD
PRELIMINARY
PHYSICAL DIMENSIONS*
PQB132
Plastic Quad Flat Pack Trimmed and Formed (measured in inches)
Pin 66
0.947
0.953
1.097
1.103
1.075
1.085
Pin 33
0.008
0.012
0.947
0.953
1.075
1.085
1.097
1.103
0.008
Pin 1 ID
0.016
Pin 2
Pin 99
Pin 132
Top View
0.130
0.025 Basic
0.150
0.160
0.180
0.80
REF
0.020
0.040
Side View
*For reference only. BSC is an ANSI standard for Basic Space Centering.
Trademarks
Copyright  1994 Advanced Micro Devices, Inc. All rights reserved.
20010A
CL85
08/27/93 MH
AMD and the AMD logo are registered trademarks of Advanced Micro Devices, Inc.
Product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Am79C974
111
APPENDIX A
Register Summary
Ethernet PCI Configuration Registers
Note: RO = read only, RW = read/write, U = undefined value
Offset
Width in Bit
Access Mode
Default Value
00h
Name
Vendor ID
16
RO
1022h
02h
Device ID
16
RO
2000h
04h
Command
16
RW
0uuu
06h
Status
16
RW
uu00
08h
Revision ID
8
RO
00h
09h
Programming IF
8
RO
00h
0Ah
Sub-Class
8
RO
00h
0Bh
Base-Class
8
RO
02h
0Dh
Latency Timer
8
RO
00h
0Eh
Header Type
8
RO
00h
10h
Base Address
32
RW
uuuu uuuu
3Ch
Interrupt Line
8
RW
uu
3Dh
Interrupt Pin
8
RO
02h
SCSI PCI Configuration Registers
Note: RO = read only, RW = read/write, U = undefined value
Offset
112
Width in Bit
Access Mode
Default Value
00h
Name
Vendor ID
16
RO
1022h
02h
Device ID
16
RO
2020h
04h
Command
16
RW
0080h
06h
Status
16
RW
uuuu
08h
Revision ID
8
RO
00h
09h
Programming IF
8
RO
00h
0Ah
Sub-Class
8
RO
00h
0Bh
Base-Class
8
RO
01h
0Dh
Latency Timer
8
RO
00h
0Eh
Header Type
8
RO
00h
10h
Base Address
32
RW
uuuu uuuu
3Ch
Interrupt Line
8
RW
uu
3Dh
Interrupt Pin
8
RO
01h
40h
Reserved for Software
32
RW
uuuu
44h
Reserved for Software
32
RW
uuuu
48h
Reserved for Software
32
RW
uuuu
4Ch
Reserved for Software
32
RW
uuuu
Am79C974
AMD
PRELIMINARY
Ethernet Controller
Control and Status Registers
Note: u = undefined value, R = Running register, S = Setup register, T = Test register
RAP Addr
Symbol
Default Value
After
H_RESET
00
CSR0
uuuu 0004
PCnet-SCSI Status Register
R
01
CSR1
uuuu uuuu
IADR[15:0]: Base Address of INIT Block Lower
S
02
CSR2
uuuu uuuu
IADR[31:16]: Base Address of INIT Block Upper
S
03
CSR3
uuuu 0000
Interrupt Masks and Deferral Control
S
04
CSR4
uuuu 0115
Test and Features Control
R
05
CSR5
uuuu 0000
Reserved
T
06
CSR6
uuuu uuuu
RXTX: RX/TX Descriptor Table Lengths
T
07
CSR7
uuuu 0000
Reserved
T
08
CSR8
uuuu uuuu
LADR0: Logical Address Filter — LADRF[15:0]
T
09
CSR9
uuuu uuuu
LADR1: Logical Address Filter — LADRF[31:16]
T
10
CSR10
uuuu uuuu
LADR2: Logical Address Filter — LADRF[47:32]
T
11
CSR11
uuuu uuuu
LADR3: Logical Address Filter — LADRF[63:48]
T
12
CSR12
uuuu uuuu
PADR0: Physical Address Register — PADR[15:0]
T
13
CSR13
uuuu uuuu
PADR1: Physical Address Register — PADR[31:16]
T
14
CSR14
uuuu uuuu
PADR2: Physical Address Register — PADR[47:32]
T
15
CSR15
see reg. desc.
MODE: Mode Register
S
16
CSR16
uuuu uuuu
IADR[15:0]: Alias of CSR1
T
17
CSR17
uuuu uuuu
IADR[31:16]: Alias of CSR2
T
18
CSR18
uuuu uuuu
CRBAL: Current RCV Buffer Address Lower
T
19
CSR22
uuuu uuuu
CRBAU: Current RCV Buffer Address Upper
T
20
CSR20
uuuu uuuu
CXBAL: Current XMT Buffer Address Lower
T
21
CSR21
uuuu uuuu
CXBAU: Current XMT Buffer Address Upper
T
Comments
Am79C974
Use
113
AMD
PRELIMINARY
Control and Status Registers (continued)
RAP Addr
Symbol
Default Value
After
H_RESET
22
CSR22
uuuu uuuu
NRBAL: Next RCV Buffer Address Lower
T
23
CSR23
uuuu uuuu
NRBAU: Next RCV Buffer Address Upper
T
24
CSR24
uuuu uuuu
BADRL: Base Address of RCV Ring Lower
S
25
CSR25
uuuu uuuu
BADRU: Base Address of RCV Ring Upper
S
26
CSR26
uuuu uuuu
NRDAL: Next RCV Descriptor Address Lower
T
27
CSR27
uuuu uuuu
NRDAU: Next RCV Descriptor Address Upper
T
28
CSR28
uuuu uuuu
CRDAL: Current RCV Descriptor Address Lower
T
29
CSR29
uuuu uuuu
CRDAU: Current RCV Descriptor Address Upper
T
30
CSR30
uuuu uuuu
BADXL: Base Address of XMT Ring Lower
S
31
CSR31
uuuu uuuu
BADXU: Base Address of XMT Ring Upper
S
32
CSR32
uuuu uuuu
NXDAL: Next XMT Descriptor Address Lower
T
33
CSR33
uuuu uuuu
NXDAU: Next XMT Descriptor Address Upper
T
34
CSR34
uuuu uuuu
CXDAL: Current XMT Descriptor Address Lower
T
35
CSR35
uuuu uuuu
CXDAU: Current XMT Descriptor Address Upper
T
36
CSR36
uuuu uuuu
NNRDAL: Next Next Receive Descriptor Address Lower
T
37
CSR37
uuuu uuuu
NNRDAU: Next Next Receive Descriptor Address Upper
T
38
CSR38
uuuu uuuu
NNXDAL: Next Next Transmit Descriptor Address Lower
T
39
CSR39
uuuu uuuu
NNXDAU: Next Next Transmit Descriptor Address Upper
T
40
CSR40
uuuu uuuu
CRBC: Current RCV Byte Count
T
41
CSR41
uuuu uuuu
CRST: Current RCV Status
T
42
CSR42
uuuu uuuu
CXBC: Current XMT Byte Count
T
43
CSR43
uuuu uuuu
CXST: Current XMT Status
T
44
CSR44
uuuu uuuu
NRBC: Next RCV Byte Count
T
45
CSR45
uuuu uuuu
NRST: Next RCV Status
T
46
CSR46
uuuu uuuu
POLL: Poll Time Counter
T
47
CSR47
uuuu uuuu
POLLINT: Polling Interval
S
48
CSR48
uuuu uuuu
Reserved
T
49
CSR49
uuuu uuuu
Reserved
T
50
CSR50
uuuu uuuu
Reserved
T
51
CSR51
uuuu uuuu
Reserved
T
52
CSR52
uuuu uuuu
Reserved
T
53
CSR53
uuuu uuuu
Reserved
T
54
CSR54
uuuu uuuu
Reserved
T
55
CSR55
uuuu uuuu
Reserved
T
56
CSR56
uuuu uuuu
Reserved
T
57
CSR57
uuuu uuuu
Reserved
T
58
CSR58
see reg. desc.
SWS: Software Style
S
59
CSR59
uuuu 0105
IR: IR Register
T
60
CSR60
uuuu uuuu
PXDAL: Previous XMT Descriptor Address Lower
T
61
CSR61
uuuu uuuu
PXDAU: Previous XMT Descriptor Address Upper
T
62
CSR62
uuuu uuuu
PXBC: Previous XMT Byte Count
T
63
CSR63
uuuu uuuu
PXST: Previous XMT Status
T
64
CSR64
uuuu uuuu
NXBA: Next XMT Buffer Address Lower
T
114
Comments
Am79C974
Use
AMD
PRELIMINARY
Control and Status Registers (continued)
RAP Addr
Symbol
Default Value
After
H_RESET
65
CSR65
uuuu uuuu
NXBAU: Next XMT Buffer Address Upper
T
66
CSR66
uuuu uuuu
NXBC: Next XMT Byte Count
T
67
CSR67
uuuu uuuu
NXST: Next XMT Status
T
68
CSR68
uuuu uuuu
Reserved
T
69
CSR69
uuuu uuuu
Reserved
T
70
CSR70
uuuu uuuu
Reserved
T
71
CSR71
uuuu uuuu
Reserved
T
72
CSR72
uuuu uuuu
RCVRC: RCV Ring Counter
T
73
CSR73
uuuu uuuu
Reserved
T
74
CSR74
uuuu uuuu
XMTRC: XMT Ring Counter
T
75
CSR75
uuuu uuuu
Reserved
T
76
CSR76
uuuu uuuu
RCVRL: RCV Ring Length
S
77
CSR77
uuuu uuuu
Reserved
T
78
CSR78
uuuu uuuu
XMTRL: XMT Ring Length
S
79
CSR79
uuuu uuuu
Reserved
T
80
CSR80
uuuu E810
DMATCFW: DMA Transfer Counter and FIFO Threshold
S
81
CSR81
uuuu uuuu
Reserved
T
82
CSR82
uuuu 0000
DMABAT: Bus Activity Timer
S
83
CSR83
uuuu uuuu
Reserved
T
84
CSR84
uuuu uuuu
DMABAL: DMA Address Register Lower
T
85
CSR85
uuuu uuuu
DMABAU: DMA Address Register Upper
T
86
CSR86
uuuu uuuu
DMABC: Buffer Byte Counter
T
87
CSR87
uuuu uuuu
Reserved
T
88
CSR88
0242 0003
Chip ID Register Lower
T
89
CSR89
uuuu 0242
Chip ID Register Upper
T
90
CSR90
uuuu uuuu
RAEO Register
S
91
CSR91
uuuu uuuu
Reserved
T
92
CSR92
uuuu uuuu
RCON: Ring Length Conversion
T
93
CSR93
uuuu uuuu
Reserved
T
94
CSR94
uuuu 0000
XMTTDR: Transmit Time Domain Reflectometry Count
T
95
CSR95
uuuu uuuu
Reserved
T
96
CSR96
uuuu uuuu
Reserved
T
97
CSR97
uuuu uuuu
Reserved
T
98
CSR98
uuuu uuuu
Reserved
T
Comments
Use
99
CSR99
uuuu uuuu
Reserved
T
100
CSR100
uuuu 0200
MERRTO: Bus Time-Out
S
101
CSR101
uuuu uuuu
Reserved
T
102
CSR102
uuuu uuuu
Reserved
T
103
CSR103
uuuu 0105
Reserved
T
104
CSR104
uuuu uuuu
Reserved
T
105
CSR105
uuuu uuuu
Reserved
T
106
CSR106
uuuu uuuu
Reserved
T
107
CSR107
uuuu uuuu
Reserved
T
Am79C974
115
AMD
PRELIMINARY
Control and Status Registers (continued)
RAP Addr
Symbol
Default Value
After
H_RESET
108
CSR108
uuuu uuuu
Reserved
T
109
CSR109
uuuu uuuu
Reserved
T
110
CSR110
uuuu uuuu
Reserved
T
111
CSR111
uuuu uuuu
Reserved
T
112
CSR112
uuuu 0000
MFC: Missed Frame Count
R
113
CSR113
uuuu uuuu
Reserved
T
114
CSR114
uuuu 0000
RCC: Receive Collision Count
R
115
CSR115
uuuu uuuu
Reserved
T
116
CSR116
uuuu uuuu
Reserved
T
117
CSR117
uuuu uuuu
Reserved
T
118
CSR118
uuuu uuuu
Reserved
T
119
CSR119
uuuu uuuu
Reserved
T
120
CSR120
uuuu uuuu
Reserved
T
121
CSR121
uuuu uuuu
Reserved
T
122
CSR122
see reg. desc.
Receive Frame Alignment Control
S
123
CSR123
uuuu uuuu
Reserved
T
124
CSR124
see reg. desc.
Test Register 1
T
125
CSR125
uuuu uuuu
Reserved
T
126
CSR126
uuuu uuuu
Reserved
T
127
CSR127
uuuu uuuu
Reserved
T
Comments
Use
BCR—Bus Configuration Registers
Writes to those registers marked as “Reserved” will have no effect. Reads from these locations will produce undefined
values.
Programmability
BCR
MNEMONIC
Default
Description
User
EEPROM
0
MSRDA
0005h
Reserved
No
No
1
MSWRA
0005h
Reserved
No
No
2
MC
N/A*
Miscellaneous Configuration
Yes
Yes
3
Reserved
N/A
Reserved
No
No
4
LNKST
00C0h
Link Status (Default)
Yes
No
5
LED1
0084h
Receive Status (Default)
Yes
No
6
LED2
0088h
Reserved
Yes
No
7
LED3
0090h
Transmit Status (Default)
Yes
No
8–15
Reserved
N/A
Reserved
No
No
16
IOBASEL
N/A*
Reserved
Yes
Yes
17
IOBASEU
N/A*
Reserved
Yes
Yes
18
BSBC
2101h
Burst Size and Bus Control
Yes
Yes
19
EECAS
0002h
EEPROM Control and Status
Yes
No
20
SWS
0000h
Software Style
Yes
No
21
INTCON
N/A*
Reserved
Yes
Yes
* Registers marked with an “*” have no default value, since they are not observable without first being programmed through the
EEPROM read operation. Therefore, the only observable values for these registers are those that have been programmed and
a default value is not applicable.
116
Am79C974
PRELIMINARY
AMD
SCSI Controller
SCSI Register Map
Register
Acronym
CTCREG
STCREG
CTCREG
STCREG
FFREG
CMDREG
STATREG
SDIDREG
INSTREG
STIMREG
ISREG
STPREG
CFISREG
SOFREG1
CNTLREG1
CLKFREG
RES
CNTLREG2
CNTLREG3
CNTLREG4
CTCREG
STCREG
RES
Address (Hex.)
(B)+00
(B)+00
(B)+04
(B)+04
(B)+08
(B)+0C
(B)+10
(B)+10
(B)+14
(B)+14
(B)+18
(B)+18
(B)+1C
(B)+1C
(B)+20
(B)+24
(B)+28
(B)+2C
(B)+30
(B)+34
(B)+38
(B)+38
(B)+3C
Register Description
Current Transfer Count Register Low
Start Transfer Count Register Low
Current Transfer Count Register Middle
Start Transfer Count Register Middle
SCSI FIFO Register
SCSI Command Register
SCSI Status Register
SCSI Destination ID Register
Interrupt Status Register
SCSI Timeout Register
Internal State Register
Synchronous Transfer Period Register
Current FIFO/Internal State Register
Synchronous Offset Register
Control Register One
Clock Factor Register
Reserved
Control Register Two
Control Register Three
Control Register Four
Current Transfer Count Register High/Part-Unique ID Code
Start Current Transfer Count Register High
Reserved
Type
Read
Write
Read
Write
Read/Write
Read/Write
Read
Write
Read
Write
Read
Write
Read
Write
Read/Write
Write
Write
Read/Write
Read/Write
Read/Write
Read
Write
Write
DMA Register Map
Register
Acronym
CMD
STC
SPA
WBC
WAC
STATUS
SMDLA
WMAC
Address (Hex.)
(B)+40
(B)+44
(B)+48
(B)+4C
(B)+50
(B)+54
(B)+58
(B)+5C
Register Description
Command
Starting Transfer Count
Starting Physical Address
Working Byte Counter
Working Address Counter
Status Register
Starting Memory Descriptor List (MDL) Address
Working MDL Counter
Am79C974
Type
R/W
R/W
R/W
R
R
R
R/W
R
117
APPENDIX B
PCnet-SCSI Compatible Media Interface Modules
PCnet-SCSI COMPATIBLE 10BASE-T
Filters and Transformers
Manufacturer
Bel Fuse
Part #
Package
A556-2006-DE
16 pin 0.3” DIL
Description
Transmit and receive filters and transformers.
Bel Fuse
0556-2006-00
14-pin SIP
Transmit and receive filters and transformers.
Bel Fuse
0556-2006-01
14-pin SIP
Transmit and receive filters, transformers and common mode
chokes.
Bel Fuse
0556-6392-00
16-pin 0.5” DIL
Transmit and receive filters, transformers and common mode
chokes.
Halo Electronics
FD02-101G
16-pin 0.3” DIL
Transmit and receive filters and transformers.
Halo Electronics
FD12-101G
16-pin 0.3” DIL
Transmit and receive filters and transformers, transmit common
mode choke.
Halo Electronics
FD22-101G
16-pin 0.3” DIL
Transmit and receive filters, transformers and common mode
chokes.
PCA Electronics
EPA1990A
16-Pin 0.3” DIL
Transmit and receive filters and transformers.
PCA Electronics
EPA2013D
16-Pin 0.3” DIL
Transmit and receive filters and transformers, transmit common
mode choke.
Pulse Engineering
PE-65434
10-pin SIP
Transmit and receive filters, transformers, and common
mode choke.
Pulse Engineering
PE-65445
16-pin 0.3” DIL
Transmit and receive filters and transformers
(for SMT use PE-65446)
Pulse Engineering
PE65467
16-Pin 0.3” DIL
Transmit and receive filters, transformers, common mode
chokes, and AMD specified resistors.
Pulse Engineering
PE-65424
16-Pin 0.3” DIL
Transmit and receive filters, transformers, and common
mode chokes.
TDK
TLA 470
14-pin SIP
Transmit and receive filters and transformers.
TDK
HIM3000
24-pin 0.6” DIL
Transmit and receive filters, transformers and common mode
chokes.
Valor Electronics
PT3877
16-pin 0.3” DIL
Transmit and receive filters and transformers.
Valor Electronics
PT3983
8-pin 0.3” DIL
Transmit and receive common mode chokes.
Valor Electronics
FL1012
16-pin 0.3” DIL
Transmit and receive filters and transformers, transmit common
mode choke.
118
Am79C974
AMD
PRELIMINARY
PCnet-SCSI COMPATIBLE AUI
Isolation Transformers
Manufacturer
Part #
Package
Description
Bel Fuse
A553-0506-AB
16-Pin 0.3” DIL
50 µH
Halo Electronics
TD01-0756K
16-Pin 0.3” DIL
75 µH
Halo Electronics
TG01-0756W
16-Pin 0.3” SMD
75 µH
PCA Electronics
EP9531-4
16-Pin 0.3” DIL
50 µH
Pulse Engineering
PE64106
16-Pin 0.3” DIL
50 µH
TDK
TLA 100-3E
16-Pin 0.3” DIL
100 µH
Valor Electronics
LT6031
16-Pin 0.3” DIL
50 µH
MANUFACTURER CONTACT INFORMATION
Contact the following companies for further
information on their products:
Bel Fuse
Phone: (317) 831-4226
FAX: (317) 831-4547
Halo Electronics
Phone: (415) 989-7313
FAX: (415) 367-7158
PCA Electronics
Phone: (408) 954-0400
FAX: (408) 954-1440
Pulse Engineering
Phone: (619) 674-8218
FAX: (619) 675-8262
TDK
Phone: (213) 530-9397
FAX: (213) 530-8127
Valor Electronics
Phone: (619) 458-1471
FAX: (619) 458-0875
Am79C974
119
APPENDIX C
Recommendation for Power and Ground
Decoupling
The PCnet-SCSI controller is an integrated, combination Ethernet and Fast SCSI controller, which contains
both digital and analog circuitry. The analog circuitry
contains a high speed Phase-Locked Loop (PLL) and
Voltage Controlled Oscillator (VCO). Because of the
mixed signal characteristics of this chip, some extra precautions must be taken into account when designing
with this device.
Digital Decoupling
The PCnet-SCSI controller separates the digital power
supply pins into two groups. The VSSB and VDDB pins supply power to the I/O buffers that connect to the PCI bus.
The VSS and VDD pins supply power to all internal circuitry. AMD recommends that at least one low frequency bulk decoupling capacitor be used for each
group of digital power pins. 22 µF capacitors have
worked well for this. In addition, a total of four or five
0.1 µF capacitors have proven sufficient around VSSB
and VDDB pins that supply the drives of the PCI bus output pins. An additional two to the three 0.1 µF capacitors
shoud be used around the VSS and VDD pins.
The CMOS technology used in fabricating the PCnetSCSI controller employs an n-type substrate. In this
technology, all VDD and VDDB pins are electrically connected to each other internally. Hence, in a multi-layer
board, when decoupling between VDD/VDDB and critical
VSS/VSSB pins, the specific VDD/VDDB pin that you connect
to is not critical. In fact, the VDD/VDDB connection of the
decoupling capacitor can be made directly to the power
plane, near the closest VDD/VDDB pin to the VSS/VSSB pin
of interest. However, we recommend that the VSS/VSSB
connection of the decoupling capacitor be made directly
to the VSS/VSSB pin of interest as shown.
AMD recommends that at least one low-frequency bulk
decoupling capacitor be used in the area of the PCnetSCSI controller. 22 µF capacitors have worked well for
this. In addition, a total of four or five 0.1 µF capacitors
have proven sufficient around the VSSB and VDDB pins
that supply the drivers of the PCI bus output pins.
Analog Decoupling
The most critical pins are the analog supply and ground
pins. All of the analog supply and ground pins are located in one corner of the device. Specific requirements
of the analog supply pins are listed below.
AVSS1 (Pin 100) and AVDD3 (Pin 96)
These pins provide the power and ground for the
Twisted Pair and AUI drivers. Hence, they are very
noisy. A dedicated 0.1 µF capacitor between these pins
is recommended.
AVSS2 (Pin 98) and AVDD2 (Pin 108)
These pins are the most critical pins on the PCnet-SCSI
controller because they provide the power and ground
for the PLL portion of the chip. The 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, AMD strongly recommends that the low-pass
filter shown below be implemented on these pins. Tests
using this filter have shown significantly increased noise
immunity and reduced Bit Error Rate (BER) statistics in
designs using the PCnet-SCSI controller.
via to VDD plane
VDD Plane
33 µF to 6.8 µF
AVDD
Pin 108
AVSS
Pin 98
R1
2.7 Ω to 20 Ω
VDD/VDDB Pin
PCnet-SCSI
18681A-62
VSS/VSSB Pin
via to VSS plane
PCnet-SCSI
18681A-61
120
Am79C974
PRELIMINARY
To determine the value for the resistor and capacitor,
the formula is:
R * C ≥ 88
AMD
AVDD1 (Pin 103) and AVDD4 (Pin 91)
These pins provide power for the AUI and twisted-pair
receive circuitry. No specific decoupling has been necessary on these pins.
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 20 Ω.
R
C
2.7 Ω
33 µF
4.3 Ω
22 µF
6.8 Ω
15 µF
10 Ω
10 µF
20 Ω
6.8 µF
Am79C974
121
APPENDIX D
Alternative Method for Initialization
of Ethernet Controller
The Ethernet portion of the PCnet-SCSI 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 register
writes 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.
122
Appendix D
APPENDIX E
SCSI System Considerations
INTRODUCTION
This appendix covers motherboard design considerations which use the Am79C974. It discusses SCSI component placement, signal routing, PCI interface
recommendations, noise considerations and termination schemes.
SIGNAL ROUTING AND SCSI
PLACEMENT
The main components for board design include the
Am79C974 (whose maximum trace length from the PCI
speedway is 1.5′′), SCSI connectors (either one or two
depending internal/external support), a 40 MHz crystal
oscillator and regulated terminators (on-board) which
can be up to .1 m (3.937 in) away from the Am79C974.
There are many ways to route SCSI bus traces on a host
adapter board or motherboard. Ideally, traces from the
internal SCSI bus connector, from the Am79C974 and
from the external SCSI bus connector should all connect
in series. Care should be taken not to have any stubs in
the SCSI bus. (Stubs are any extensions off of the main
bus. The maximum SCSI bus stub length allowed is .1
m). This routing scheme helps maintain signal integrity
by reducing the possibility of signal reflections and other
undesirable effects. Auto-routing programs used for
board layout may not follow this scheme, and may create “non-ideal” environments by routing internal and external on-board connectors first instead of routing both
sets of traces to the Am79C974. When peripherals are
added either internally or externally, a “three-pronged”
SCSI bus will be created instead of a linear one. If this or
any other stub problem occurs, changes should be
made manually to follow the ideal scheme. Refer to Figures E-1 and E-2.
Termination
connector for
internal peripheral
High-density
SCSI-2
Connectors
linear busno stubs
External
Peripheral
External
SCSI-2
bus cable
High-Density
SCSI-2
Termination
25
Am79C974
to PCI Bus
18681A-63
Figure E-1. Ideal Routing Scheme
Am79C974
123
AMD
PRELIMINARY
Termination
Connector for
Internal Peripheral
Bracketed card joining
ribbon cable with highdensity SCSI-2 cable
3-Pronged Bus
(not recommended)
High-Density
SCSI-2
Connectors
External
Peripheral
External SCSI-2
Bus Cable
25
High-Density
SCSI-2
Termination
stub
Am79C974
to PCI Bus
18681A-64
Figure E-2. A Poor Routing Scheme
The Motherboard
The following two layouts may be used as a guideline
for the design of motherboards which incorporate the
Am79C974. For both layouts, the SCSI connectors
should be placed as far away from the PCI Speedway as
possible. Each layout refers to termination considerations which are described in further detail in the Termination Considerations section.
linear routing scheme. The following lists the requirements for implementation, while Figure E-3 illustrates
this approach.
Layout #1
This approach avoids the cost of placing an external
connector on the motherboard. In this configuration, the
Am79C974 is always at one end of the SCSI bus, therefore, the regulated terminators remain active. This eliminates the problem of switching the regulated
terminators on or off to accommodate peripheral configurations. This approach also preserves the ideal
124
Am79C974
One connector on the motherboard connected to
one end of the internal bus ribbon cable and its
components.
The other end of the internal bus ribbon cable connected to one end of the external bus high density
cable and its peripherals via a bracketed add-on
card. The internal bus may also be crimped to a
SCSI connector mounted on a bracket.
On board regulated terminators a maximum of
0.1 m (3.937 in) from the Am79C974.
External terminators connected to the end of the
external bus.
AMD
PRELIMINARY
External SCSI-2 Bus Cable
Connector for
Internal Peripheral
High-Density
SCSI-2
Connector
Bracketed card
joining ribbon cable
with high-density
SCSI-2 cable
Internal SCSI bus cable
Keyboard
Connector
External
Peripheral
To DC Power
Ferrite Bead
To SCSI CLK1
and CLK2
Am79C974
Termination
High-Density
SCSI-2
Termination
25
CPU
to PCI Bus
MEMORY
always on
18681A-65
Figure E-3. Motherboard Layout — Approach #1
Layout #2
This approach uses a “pizza-box” type of motherboard,
which has been incorporated into PC systems and workstations. This design reduces the system’s height so
that its casing resembles a pizza box. This is partly the
result of a riser card that enables cards to rest on their
side instead of upright. This approach requires the following and is illustrated in Figure E-4:
bus consists of motherboard routings (not just ribbon cable).
An internal connector on the motherboard to accommodate internal drives.
On-board regulated terminators for SCSI drives
not mounted within the system. However, should
the user decide to connect a drive internally, terminators are not needed.
If on-board regulated terminators are used, they
should be placed within .1 m (3.937 in) from the
Am79C974.
An external connector mounted on the motherboard with routings that connect to the
Am79C974.
The Am79C974 must be as close as possible to
this external connector since this part of the SCSI
Am79C974
125
AMD
PRELIMINARY
Riser Card
High-Density
SCSI-2
Connectors
To DC Power
To SCSI CLK1 Ferrite Bead
and CLK2
Am79C974
External SCSI
Bus Cable
to PCI Bus
High-Density
SCSI-2
Termination
CPU
Termination
25
External
Peripheral
Internal
Drive
(Terminated)
Termination
Keyboard
Connector
Mounted
High-Density
SCSI-2
Connector
This is optional. Use
accordingly to terminate both
ends of the SCSI Bus.
Memory
18681A-66
Figure E-4. Motherboard Layout — Approach #2
Motherboard designs which place an internal and external connector on either side of the Am79C974 are discouraged since:
Electromagnetic Interference (EMI)
There are several ways to reduce the amount of noise
present in these areas:
Two SCSI connectors are required on the motherboard—one more than what the other two approaches call for.
When the number of internal and external bus
components increase, the on-board terminators
would have to be turned off either through software
or hardware, which may be undesirable to a board
designer.
The possibility for creating stubs exists if the connectors and Am79C974 are not routed correctly.
See Figure E-1 for the ideal routing scheme.
NOISE CONSIDERATIONS
Some areas of a PCI motherboard or host adapter design (which include the Am79C974) are more susceptible to noise. They are:
the 40 MHz crystal oscillator
the SCSI cables
the DC power planes
pins on the ICs, specifically the Am79C974.
126
Am79C974
A 40 MHz crystal oscillator must be used in order
to have a 10 MB/s SCSI data rate. Use of this
40 MHz crystal oscillator, which drives the
SCSI CLK pin on the Am79C974, introduces the
possibility of unwanted high frequency components, including harmonics, coupling with
Am79C974 signals. To help prevent this, a resistor
should be placed in series with the oscillator to
form a low pass filter with the input capacitance
(10 pF) of the SCSI CLK pin. This filter reduces the
edge rate of the clock waveform, increasing both
rise and fall times by 2 ns. This removes higher
frequencies, specifically harmonics from the crystal
oscillator waveform and thus reduces the amount
of noise introduced into the Am79C974.
A ferrite bead, which is essentially an inductor,
may be used with the oscillator to prevent coupling
of higher frequencies with DC power supply signals. The ferrite bead blocks high frequency noise
while acting like a short to the DC components.
PRELIMINARY
From an EMI standpoint, SCSI-2 high-density cables should be used instead of a SCSI-1 cables.
Unlike the SCSI-1 flat ribbon cable, the SCSI-2
cable is electrically more substantial. It is shielded
and signal wires are strategically placed for better
signal travel.
Decoupling Methods
As stated in Appendix C, decoupling capacitors should
be used across the VDD and VSS pins on the motherboard
There are pairs of VDD and VSS pins on the Am79C974
that should each have their own decoupling capacitor.
The following decoupling method should be used for the
VDD/VSS pairs:
Am79C974
AMD
Connect the capacitor directly between a VDD/VSS
pair of the Am79C974 so that it sits on the component side of the board. This configuration will allow
the capacitor to filter undesired high frequency
components directly at the Am79C974 and not
only at the power planes. This not only minimizes
the noise on the power planes that the chip sees,
but it also filters any noise generated by the chip
before it reaches the power planes. The leads to
each end of the capacitor should be wide and may
contain several feed-throughs to the VDD and VSS
planes to reduce the inductance present. Refer to
Figure E-5.
127
AMD
PRELIMINARY
Decoupling methods which are NOT recommended
include:
connecting a capacitor only between the VDD and
VSS planes so that it sits on the component side of
the board. This doesn’t allow the capacitor to reduce noise directly at the chip, but it does allow for
a reduction of power plane noise and of board
components. (capacitors).
connecting a capacitor only between the VDD and
VSS planes so that it sits on the solder side of the
board. This configuration also doesn’t allow direct
decoupling at the chip. It does save board space,
but it requires an extra manufacturing step.
TERMINATION CONSIDERATIONS
The use of active or regulated termination for terminators on the motherboard is recommended (see Figure
E-6), while external SCSI terminators can be used to
terminate other parts of the SCSI bus. Terminators must
match the impedance seen by a signal at the end of the
SCSI bus to the characteristic impedance of the SCSI
bus. This impedance is typically 84 +/– 12 Ω, but can
vary greatly with PC board characteristics and cabling.
R3-11
TERMPWR
DB (0-7,P)
R12
R3-20 are
110 Ω 1%
VIN
Low
Dropout
Voltage
Regulator
VOUT
2.85 V
BSY
R14
ACK
C3
.1 µf
Ceramic
25 V
R1
121 Ω
1%
1/4W
R15
RST
R16
MSG
R17
V adj
C1
10 µf
Alum. or
4.7 µf Tant.
15 V
ATN
R13
SEL
R2
154 Ω
1%
1/4W
C2
150 µf
Alum. or
22 µf Tant.
10 V
R18
C/D
R19
REQ
R20
I/O
18681A-68
Figure E-6. Regulated Termination
Am79C974
129
AMD
PRELIMINARY
Termination
Scheme #3
There are three general termination schemes that apply
to motherboard or host adapter setups when using regulated terminators. Each scheme recognizes that the
SCSI bus must be terminated on both ends. Therefore,
as more components and peripherals are added to the
bus, terminators must be relocated accordingly. Each
scheme is also based on an ideal routing situation, that
is one where the internal peripherals, external peripherals and the Am79C974 chip are connected by a linear
SCSI bus. See Figure E-1.
In this case, both internal and external SCSI peripherals
are used. The regulated terminators should be deactivated (since the Am79C974 will sit in the middle of the
SCSI bus). This may be accomplished through hardware or software. The hardware approach involves developing a mechanism to detect peripherals connected
to the SCSI bus. This mechanism must then activate a
signal to turn the regulated terminators on or off accordingly. The software approach involves having the user
tell the system interactively that the regulated terminators should be turned on or off. Care should be taken to
ensure that each end of the Bus is terminated.
Scheme #1
In this case, the system uses only SCSI internal peripherals. The regulated terminators on board should be activated. Peripherals can be added to the bus by
connecting them to a 50-pin ribbon cable. A SCSI terminator should be attached to the last peripheral to terminate the other end of the bus.
Scheme #2
In this case, the system uses only external SCSI peripherals. As in Scheme #1, the on-board regulated terminators should be activated. In this scheme, a 50-pin high
density SCSI-2 cable should connect the external port
on the motherboard or host adapter to the first external
peripheral. Peripherals may be added with more cables
and the last peripheral should be terminated.
130
OTHER CONSIDERATIONS
The following are motherboard considerations for routing and layout. They should be taken into account along
with SCSI considerations.
Motherboards
1. High speed signals should be referenced only to
the ground plane or exclusively to one of the power
planes. If not, the power planes should be
decoupled.
2. For a PCI CLK of 33 MHz, the maximum round trip
time of any shared mother board signal should be
10 ns.
Am79C974
APPENDIX F
Designing a Single Motherboard for AMD
PCI Family
Three devices in the AMD PCI family, the Am53C974,
the Am79C970, and the Am79C794, were designed
with very similar pin assignments so that a single motherboard design could be used for three different products: one with a built-in SCSI controller, one with a
built-in Ethernet controller, and one with both a SCSI
controller and an Ethernet controller. This discussion
describes some implementation details.
Pin Out Differences
bonded to the die inside the device package. These pins
can be driven by any signal without affecting the operation of the device. Those pins that are shown in the PCI
family data sheets as RESERVED are connected to test
logic on the die. These pins are active only during standalone chip testing, and therefore they may also be connected to signals on the board without affecting the
operation of the device. On the other hand, pin 116
which is shown as RESERVED-DNC (for Do Not Connect) must not be connected to anything on the board.
The table below shows the pins that are not the same on
the three devices. All pins that are shown as NC are not
Pin Numbers
Am79C970 (Ethernet)
Function
Am53C974 (SCSI)
Function
Am79C974 (Combination)
Function
9
RESERVED
IDSEL
IDSELA
10
IDSEL
NC
IDSELB
58
RESERVED
PWDN
PWDN
60
NC
SCSICLK1
SCSICLK
68, 69, 70, 71, 73,
74, 75, 77, 78
NC
SCSI data & parity bus
SCSI data & parity bus
64, 65, 66, 80, 81,
83, 85, 86, 87
NC
SCSI control lines
SCSI control lines
89, 90, 92, 93, 94, 95
10Base-T lines
NC
10Base-T lines
97
XTAL1
SCSICLK2
SCSICLK
99
XTAL2
NC
XTAL2
101, 102, 104, 105, 106, 107
AUI lines
NC
AUI lines
110, 111, 112, 114
EEPROM interface &
LED pins
NC
EEPROM interface &
LED pins
115
SLEEP
NC
SLEEP
116
RESERVED_DNC
RESERVED_DNC
RESERVED_DNC
117
INTA
INTA
INTA
118
NC
NC
INTB
126
REQ
NC
REQB
127
RESERVED
REQ
REQA
123
GNT
NC
GNTB
124
NC
GNT
GNTA
INTx (Pins 117 and 118)
The Am79C970 and Am53C974 devices have only one
interrupt output, which is connected to pin 117. The
Am79C974, on the other hand, has two interrupt outputs: INTA, which is used for SCSI interrupts, is
connected to pin 117; while INTB, which is used for
Ethernet interrupts, is connected to pin 118. The
motherboard can connect these pins directly to dedicated inputs to its interrupt controller, or it can connect
Am79C974
131
AMD
PRELIMINARY
them to multiplex logic that can map these outputs to interrupt controller inputs by means of software.
REQ and GNT (pins 123, 124, 126,
and 127)
The Am53C974 uses pins 127 and 124 (REQ and GNT)
for bus master arbitration, while the Am79C790 uses
pins 126 and 123. The Am79C974 uses pins 127 and
124 (REQA and GNTA) for bus arbitration from the SCSI
controller, and it uses pins 126 and 123 (REQB and
GNTB) for arbitration for the Ethernet controller. The
motherboard can connect both pairs of signals to its bus
arbitration logic through jumpers or zero Ohm series resistors. One pair of resistors or jumpers would be omitted for a SCSI only product, and the other pair would be
omitted for an Ethernet only product. Both pairs would
be inserted for a product with both SCSI and Ethernet.
If the motherboard uses a PCI controller that allows a
limited number of bus masters, you may have to omit
one PCI slot or define one slot to be slave only for a product with both SCSI and Ethernet on the motherboard.
IDSEL (Pins 9 and 10)
The Am53C974 uses pin 9 for IDSEL, which is a chip select for the PCI configuration space, while the
Am79C790 uses pin 10 for IDSEL. The Am79C974,
which has two separate configuration spaces, uses pin
9 (IDSELA) to access the configuration space for the
SCSI controller and pin 10 (IDSELB) for the Ethernet
controller. IDSEL is used only during configuration cycles, which are defined by the command on the C/BE
lines during the address phase.
each of the IDSEL pins of the various PCI devices and
expansion slots. Since a typical PCI motherboard will
not have more than 10 PCI devices and slots, two of the
high order address lines can be connected directly to
pins 9 and 10 of the AMD device. The Am79C970 will
respond only to configuration cycles when pin 10 is active and will ignore configuration cycles when pin 9 is active. The Am53C794 will respond only to configuration
cycles when pin 9 is active.
Clocks (Pins 60, 97, and 99)
The Am53C974 requires two clock inputs: SCSICLK1
(pin 60) and SCSICLK2 (pin 97). These clock inputs can
be driven by the same clock source. The Am79C790 requires either a crystal connected to the XTAL1 and
XTAL2 pins (97 and 99) or an external oscillator connected to XTAL1. The Am79C974 requires both a clock
input for SCSICLK (pin 60) and either a crystal connected to the XTAL1 and XTAL2 pins (97 and 99) or an
external oscillator connected to XTAL1.
To satisfy all of these requirements, the motherboard
can connect pin 60 to pin 97 through a jumper or zero
Ohm resistor. For the SCSI only product, the oscillator
or crystal should be omitted and the jumper inserted.
For the Ethernet-only product the oscillator or crystal
should be inserted and the jumper omitted. It does not
matter whether or not the SCSI oscillator is included.
For the combination SCSI plus Ethernet product, the
crystal and the SCSI oscillator should be included, and
the jumper must be omitted.
Figure F-1 illustrates these connections.
A typical way to generate the IDSEL signals on a
motherboard is to connect a separate address line to
132
Am79C974
AMD
PRELIMINARY
99 XTAL2
Crystal
97 XTAL1/SCSICLK2
SCSI
OSC.
60 SCSICLK1
127 REQA
124 GNTA
BUS
Arbiter
Am79C970,
Am53C974,
or
Am79C974
126 REQB
123 GNTB
ADx
9 IDSELA
ADy
10 IDSELB
IRQ1
IRQ2
117 INTA
.
.
.
MUX
118 INTB
IRQ15
MUX
Control
18681A-69
Figure F-1. PCI Family Connections
Am79C974
133
AMD
PRELIMINARY
For information on additional SCSI software products contact:
Sequoia Advanced Technologies, Inc.
(415) 459-7978
(415) 459-7988 FAX
71322, 1020 CompuServe ID
Trademarks
Copyright  1994 Advanced Micro Devices, Inc. All rights reserved.
AMD, the AMD logo, and Am386 are registered trademarks of Advanced Micro Devices, Inc.
GLITCH EATER, PCnet, PCSCSI, HIMIB, MACE, ILACC, IMR+, and Am486 are trademarks of Advanced Micro Devices, Inc.
Product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
134
Am79C974
AMENDMENT
Am79C974
PCnetTM-SCSI Combination Ethernet and SCSI Controller
for PCI Systems
Advanced
Micro
Devices
This amendment corrects a few minor inaccuracies and adds or clarifies a few sections. Minor corrections should be
made on the existing data sheets. However, for ease of use, pages with more than a word or two of corrections are
printed with this amendment.
Details:
Page 12
(Reprinted as page 5 of this amendment)
CONNECTION DIAGRAM
Change the names of the following power pins:
—
—
—
—
Change from VDD3B to VDDB.
Change from VSS3B to VSSB.
Change from VDDB to VDDBS.
Change from VSSB to VSSBS.
Pages 14–15
(Reprinted as pages 6, 7 of this amendment)
PIN DESIGNATIONS, Listed by Pin Number and Pin Name
Change the names of the following power pins:
—
—
—
—
Change from VDD3B to VDDB.
Change from VSS3B to VSSB.
Change from VDDB to VDDBS.
Change from VSSB to VSSBS.
Page 17
(Reprinted as page 8 of this amendment)
PIN DESIGNATIONS, Quick Reference Pin Description
The number of each type of power pin is incorrect. The numbers should be:
—
—
—
—
Change from VDD to VDD/DVDD, Digital Power, 5 pins
Change from VDDB/VDD3B to VDDB/VDDBS, I/O Buffer Power, 5 pins
Change from VSS to VSS/DVSS, Digital Ground, 9 pins
Change from VSSB/VSS3B to VSSB/VSSBS, I/O Buffer Ground, 11 pins
PIN DESIGNATIONS, Listed By Driver Type
Change the IOH value for both TS3 and TS6 from –0.4 mA to –2.0 mA.
Publication# 18681 Rev. A
Issue Date: April 1994
Amendment /1
AMD
AMENDMENT
Page 19
(Reprinted as page 9 of this amendment)
PIN DESCRIPTION, GNTA
Add after the second paragraph:
The Am79C974 supports bus parking. When the PCI bus is idle and the system arbiter asserts GNTA without an active
REQA from the Am79C974 controller, the Am79C794 will actively drive the AD[31:00], C/BE[3:0], and PAR lines.
Page 20
Note that INTA and INTB are both open drain pins.
Page 24
Note that ATN is open drain.
Page 25
The number of each type of power pin is incorrect. The numbers should be:
—
—
—
—
VDD/DVDD, Digital Power, 5 pins
VDDB/VDDBS, I/O Buffer Power, 5 pins
VSS/DVSS Digital Ground, 9 pins
VSSB/VSSBS, I/O Buffer Ground, 11 pins
Page 30
The second sentence should read, “It is a single cycle, non-burst 8-bit, 16-bit, or 32-bit transfer which is initiated by the
host CPU.” (The original omitted “8-bit”).
Page 32
(Reprinted as page 10 of this amendment)
In Figure 6, data on the AD lines should be driven during clock 6 and the second instance of PAR should be driven
during clock 7. In each case this is one cycle earlier than what is shown in the figure.
Page 35
Line 2, change “type 15” to “type 14”.
Page 39
(Reprinted as page 11 of this amendment)
Replace the last two sentences with the following:
“For SCSI, when target aborts, INTA will not be asserted, but the ABORT bit (bit 2 of the DMA status register at offset
54h) is set. For either Ethernet or SCSI a target abort causes RTABORT (bit 12) of the status register in the appropriate
PCI configuration space to be set.” (The original stated that INTA will be asserted.)
Page 42
(Reprinted as page 12 of this amendment)
Replace the last sentence with the following:
“For SCSI, when the master aborts, INTA will not be asserted, but the ABORT bit (bit 2 of the DMA status register at
offset 54h) is set. For either Ethernet or SCSI a master abort causes RMABORT (bit 13) of the status register in the
appropriate PCI configuration space to be set.” (The original stated that INTA will be asserted.)
2
Am79C974
AMENDMENT
AMD
Page 44
Change SPRINTEN to LAPPEN in lines 12 and 13.
Page 54
Line 17, change 100% to 10%.
Page 59
Line 12 should read, “When the Am79C974 controller samples its IDSELA or IDSELB input ...” (The original ommitted
“IDSELA”).
Page 62
Column 2, line 30, change “lower two bytes” to “upper two bytes”.
Page 71
Line 15, change “DRCBC” to “DRCVPA”.
Page 76
(Reprinted as pages 13 and 14 of the amendment)
“DMA BLAST command” section has been extensively revised.
Page 77
(Reprinted as page 15 of this amendment)
The description of the CMD1–0 bits at the end of column 2 should read, “These two bits are encoded to represent four
commands: IDLE, BLAST, START, and ABORT.” (The BLAST command was omitted in the original.)
In the table at the bottom, the description of the IDLE command should read, “Resets the DMA block to the IDLE state.
Stops any current transfer. Does not affect status bits or cause an interrupt.”
Pages 78–80
(Reprinted as pages 16–18 of this amendment)
“DMA Scatter-Gather Operation (4K aligned elements)” section has been extensively revised.
Page 81
Delete lines 19 and 20, which read, “The DMA transfer request was aborted (ABORT command, or the Master or
Target Abort).”
Page 92
ABSOLUTE MAXIMUM RATINGS
Line 4: Add “or VSSBS or DVSS” to read “Supply Voltage to AVSS or VSSB or VSSBS or DVSS”
Line 5: Add “VDDBS, DVDD” to read “(AVDD, VDD, VDDB, VDDBS, DVDD)”
Page 92
OPERATING RANGES
Line 3: Add “VDDBS, DVDD” to read “(AVDD, VDD, VDDB, VDDBS, DVDD)”
After Line 7: Add “or VSSBS –0.5 V ≤ VIN ≤ VDDBS +0.5 V” and “or DVSS –0.5 V ≤ VIN ≤ DVDD +0.5 V”
In the DC Characteristics table, VOL (max) for those pins to which IOL1 or IOL2 applies is 0.55 V (to comply with the PCI
specification) rather than 0.45 V. Also, VOL (max) for those pins to which IOL3 applies is 0.4 V rather than 0.45 V.
Am79C974
3
AMD
AMENDMENT
Page 94
In the DC Characteristics table, delete row 5, VSOL1. Change the parameter symbol for row 6 from VSOL2 to VOL. Add
SD[7:0] and SDP to the parameter description for row 6.
Page 95
In the DC Characteristics table, move “PWDN” from the list of pin names in row 1 as a separate item from PCI input
exceptions. The entry in row 1, column 3 should read, “All SCSI inputs. All Ethernet Inputs. PWDN. All PCI inputs
except IDSEL.”
Page 113
In the Ethernet PCI Configuration Registers table, the default value for the Interrupt pin (row 13, column 5) should be
02h, not 01h.
Page 129
(Reprinted as page 19 of this amendment)
Figure E-5 Decoupling Capacitor Placement
Change the names of the following power pins:
—
—
—
—
4
Change from VDD3B to VDDB.
Change from VSS3B to VSSB.
Change from VDDB to VDDBS.
Change from VSSB to VSSBS.
Am79C974
AMD
AMENDMENT
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
AD28
AD29
VSSB
AD30
AD31
REQA
REQB
VSS
GNTA
GNTB
VDD
CLK
RST
VSS
INTB
INTA
RESERVE
SLEEP
EECS
DVSS
EESK/LED1
EEDI/LNKST
EEDO/LED3
DVDD
AVDD2
CI+
CIDI+
DIAVDD1
DO+
DOAVSS1
CONNECTION DIAGRAM
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
Am79C974
PCnet-SCSI
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
XTAL2
AVSS2
XTAL1
AVDD3
TXD+
TXP+
TXDTXPAVDD4
RXD+
RXDDVSS
I/O
C/D
MSG
VDD
ACK
VSSBS
REQ
SEL
DVSS
SDP
SD7
VDDBS
SD6
SD5
SD4
VSSBS
SD3
SD2
SD1
SD0
VSSBS
PAR
C/BE1
AD15
VSSB
AD14
AD13
AD12
AD11
AD10
VSSB
AD9
AD8
VDDB
C/BE0
AD7
AD6
VSSB
AD5
AD4
AD3
AD2
VSSB
AD1
AD0
PWDN
VDD
SCSICLK
VSS
BUSY
VSS
BSY
ATN
SCSI^RST
34
35
36
37
38
39
40
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
VDDB
AD27
AD26
VSSB
AD25
AD24
C/BE3
VDD
IDSELA
IDSELB
VSS
AD23
AD22
VSSB
AD21
AD20
VDDB
AD19
AD18
VSSB
AD17
AD16
C/BE2
FRAME
IRDY
TRDY
DEVSEL
STOP
LOCK
VSS
PERR
SERR
VDDB
18681A/1-3
Pin 1 is marked for orientation.
RESERVE = Don’t Connect.
Am79C974
5
AMENDMENT
AMD
PIN DESIGNATIONS
Listed by Pin Number
6
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
1
VDDB
34
PAR
67
VSSBS
100
AVSS1
2
AD27
35
C/BE1
68
SD0
101
DO–
3
AD26
36
AD15
69
SD1
102
DO+
4
VSSB
37
VSSB
70
SD2
103
AVDD1
5
AD25
38
AD14
71
SD3
104
DI–
6
AD24
39
AD13
72
VSSBS
105
DI+
7
C/BE3
40
AD12
73
SD4
106
CI–
8
VDD
41
AD11
74
SD5
107
CI+
9
IDSELA
42
AD10
75
SD6
108
AVDD2
10
IDSELB
43
VSSB
76
VDDBS
109
DVDD
11
VSS
44
AD9
77
SD7
110
EEDO/LED3
12
AD23
45
AD8
78
SDP
111
EEDI/LNKST
13
AD22
46
VDDB
79
DVSS
112
EESK/LED1
14
VSSB
47
C/BE0
80
SEL
113
DVSS
15
AD21
48
AD7
81
REQ
114
EECS
16
AD20
49
AD6
82
VSSBS
115
SLEEP
17
VDDB
50
VSSB
83
ACK
116
RESERVE
18
AD19
51
AD5
84
DVDD
117
INTA
19
AD18
52
AD4
85
MSG
118
INTB
20
VSSB
53
AD3
86
C/D
119
VSS
21
AD17
54
AD2
87
I/O
120
RST
22
AD16
55
VSSB
88
DVSS
121
CLK
23
C/BE2
56
AD1
89
RXD–
122
VDD
24
FRAME
57
AD0
90
RXD+
123
GNTB
25
IRDY
58
PWDN
91
AVDD4
124
GNTA
26
TRDY
59
VDD
92
TXP–
125
VSS
27
DEVSEL
60
SCSICLK
93
TXD–
126
REQB
28
STOP
61
VSS
94
TXP+
127
REQA
29
LOCK
62
BUSY
95
TXD+
128
AD31
30
VSS
63
VSS
96
AVDD3
129
AD30
31
PERR
64
BSY
97
XTAL1
130
VSSB
32
SERR
65
ATN
98
AVSS2
131
AD29
33
VDDB
66
SCSI^RST
99
XTAL2
132
AD28
Am79C974
AMD
AMENDMENT
PIN DESIGNATIONS
Listed by Pin Name
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
Pin Name
Pin No.
ACK
83
ATN
65
GNTB
123
STOP
28
AD0
57
AVDD1
103
IDSELA
9
TRDY
26
AD1
56
AVDD2
108
IDSEL
10
XTAL1
97
AD2
54
AVDD3
96
INTA
117
XTAL2
99
AD3
53
AVDD4
91
INTB
118
TXD–
93
AD4
52
AVSS1
100
I/O
87
TXD+
95
AD5
51
AVSS2
98
IRDY
25
TXP–
92
AD6
49
BSY
64
LOCK
29
TXP+
94
AD7
48
BUSY
62
MSG
85
VDD
8
AD8
45
C/BE0
47
PAR
34
VDD
59
AD9
44
C/BE1
35
PERR
31
VDD
122
AD10
42
C/BE2
23
PWDN
58
VDDB
1
AD11
41
C/BE3
7
REQ
81
VDDB
17
AD12
40
C/D
86
REQA
127
VDDB
33
AD13
39
CLK
121
REQB
126
VDDB
46
AD14
38
CI–
106
RESERVE
116
VDDBS
76
AD15
36
CI+
107
RST
120
VSS
11
AD16
22
DEVSEL
27
RXD–
89
VSS
30
AD17
21
DI–
104
RXD+
90
VSS
61
AD18
19
DI+
105
SCSICLK
60
VSS
63
AD19
18
DO–
101
SCSI^RST
66
VSS
119
AD20
16
DO+
102
SD0
68
VSS
125
AD21
15
DVDD
84
SD1
69
VSSB
4
AD22
13
DVDD
109
SD2
70
VSSB
14
AD23
12
DVSS
79
SD3
71
VSSB
20
AD24
6
DVSS
88
SD4
73
VSSB
37
AD25
5
DVSS
113
SD5
74
VSSB
43
AD26
3
EECS
114
SD6
75
VSSB
50
AD27
2
EEDI/LNKST
111
SD7
77
VSSB
55
AD28
132
EEDO/LED3
110
SDP
78
VSSB
130
AD29
131
EESK/LED1
112
SEL
80
VSSBS
67
AD30
129
FRAME
24
SERR
32
VSSBS
72
AD31
128
GNTA
124
SLEEP
115
VSSBS
82
Am79C974
7
AMENDMENT
AMD
PIN DESIGNATIONS (continued)
Quick Reference Pin Description
Pin Name
Description
Type
Driver
# Pins
SCSI SPECIFIC
SCSI Interface
SD [7:0]
SCSI Data
IO
OD48
8
SDP
SCSI Data Parity
IO
OD48
1
MSG
Message
C/D
Command/Data
I
1
I/O
Input/Output
I
1
ATN
Attention
O
OD48
1
BSY
Busy
IO
OD48
1
SEL
Select
IO
OD48
1
SCSI^RST
SCSI Bus Reset
IO
OD48
1
REQ
Request
I
ACK
Acknowledge
O
SCSI CLK
SCSI Core Clock
I
1
RESERVE
Reserved, DO NOT CONNECT
I
1
Power Down Indicator
I
1
NAND Tree Test Output
O
O3
1
AVDD
Analog Power
P
NA
4
AVSS
Analog Ground
P
NA
2
VDD, DVDD
Digital Power
P
NA
5
VSS, DVSS
Digital Ground
P
NA
9
VDDB, VDDBS
I/O Buffer Power
P
NA
5
VSSB, VSSBS
I/O Buffer Ground
P
NA
11
I
1
1
OD48
1
Miscellaneous
Power Management
PWDN
Test Interface
BUSY
Power Supplies
Listed by Driver Type
The following table describes the various types of drivers that are implemented in the PCnet-SCSI controller. Current
is given as milliamperes:
Name
IOL (mA)
IOH (mA)
pF
Tri-State
3
–2.0
50
TS6
Tri-State
6
–2.0
50
O3
Totem Pole
3
–0.4
50
O6
Totem Pole
6
–0.4
50
TS3
TM
O8
Totem Pole
8
–0.4
50
OD6
Open Drain
6
NA
50
OD48
Open Drain
48
NA
—
LED
12
–0.4
50
LED
8
Type
Am79C974
AMENDMENT
PIN DESCRIPTION
PCI Bus Interface
AD[31:00]
AMD
CLK
Clock
Input
Address and Data
Input/Output, Active High
These signals are multiplexed on the same PCI pins.
During the first clock of a transaction AD[31:00] contain
the physical byte address (32 bits). During the subsequent clocks AD[31:00] contain data. Byte ordering is little endian by default. AD[07:00] are defined as least
significant byte and AD[31:24] are defined as the most
significant byte. For FIFO data transfers, the PCnetSCSI controller can be programmed for big endian byte
ordering. See CSR3, bit 2 (BSWP) for more details.
This signal provides timing for all the transactions on the
PCI bus and all PCI devices on the bus including the
PCnet-SCSI controller. All bus signals are sampled on
the rising edge of CLK and all parameters are defined
with respect to this edge. The PCnet-SCSI controller operates over a range of 0 to 33 MHz.
When RST is active, CLK is an input for NAND tree
testing.
DEVSEL
Device Select
Input/Output, Active Low
During the address phase of the transaction, when the
PCnet-SCSI controller is a bus master, AD[31:2] will address the active DWORD (double-word). The PCnetSCSI controller always drives AD[1:0] to ‘00’ during the
address phase indicating linear burst order. When the
PCnet-SCSI controller is not a bus master, the
AD[31:00] lines are continuously monitored to determine if an address match exists for I/O slave transfers.
This signal when actively driven by the PCnet-SCSI
controller as a slave device signals to the master device
that the PCnet-SCSI controller has decoded its address
as the target of the current access. As an input it indicates whether any device on the bus has been selected.
During the data phase of the transaction, AD[31:00] are
driven by the PCnet-SCSI controller when performing
bus master writes and slave read operations. Data on
AD[31:00] is latched by the PCnet-SCSI controller when
performing bus master reads and slave write
operations.
FRAME
When RST is active, AD[31:0] are inputs for NAND tree
testing.
C/BE [3:0]
When RST is active, DEVSEL is an input for NAND tree
testing.
Cycle Frame
Input/Output, Active Low
This signal is driven by the PCnet-SCSI controller when
it is the bus master to indicate the beginning and duration of the access. FRAME is asserted to indicate a bus
transaction is beginning. FRAME is asserted while data
transfers continue. FRAME is deasserted when the
transaction is in the final data phase.
When RST is active, FRAME is an input for NAND tree
testing.
Bus Command and Byte Enables
Input/Output, Active Low
These signals are multiplexed on the same PCI pins.
During the address phase of the transaction, C/BE[3:0]
define the bus command. During the data phase
C/BE[3:0] are used as Byte Enables. The Byte Enables
define which physical byte lanes carry meaningful data.
C/BE0 applies to byte 0 (AD[07:00]) and C/BE3 applies
to byte 3 (AD[31:24]). The function of the Byte Enables
is independent of the byte ordering mode (CSR3, bit 2).
When RST is active, C/BE[3:0] are inputs for NAND tree
testing.
GNTA
Bus Grant
Input, Active Low
This signal indicates that the access to the bus has been
granted to the Am79C974’s SCSI controller.
The Am79C974 supports bus parking. When the PCI
bus is idle and the system arbiter asserts GNTA without
an active REQA from the Am79C974 controller, the
Am79C974 will actively drive the AD[31:00], C/BE[3:0],
and PAR lines.
When RST is active, GNTA is an input for NAND tree
testing.
Am79C974
9
AMENDMENT
AMD
Bus Master DMA Transfers
There are four primary types of DMA transfers. The
Am79C974 controller uses non-burst as well as burst
cycles for read and write access to the main memory.
Basic Non-Burst Read Cycles
All Am79C974 controller non-burst read accesses are of
the PCI command type Memory Read (type 6). Note that
during all non-burst read operations, the Am79C974
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 Am79C974 controller will internally discard unneeded bytes.
Figure 6 shows a typical non-burst read access. The
Am79C974 controller asserts IRDY at clock 5 immediately after the address phase and starts sampling
DEVSEL. The target extends the cycle by asserting
DEVSEL not until clock 6. Additionally, the target inserts
one wait state by asserting its ready (TRDY) at clock 8.
CLK
1
2
3
4
5
6
7
8
9
FRAME
AD
C/BE
PAR
ADDR
0110
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A/1-10
Figure 6. Non-Burst Read Cycles With Wait States
10
Am79C974
AMD
AMENDMENT
Target Abort
Since data integrity is not guaranteed, the Am79C974
controller cannot recover from a target abort event. For
Ethernet, the Am79C974 controller will reset all CSR
and BCR locations to their H_RESET values. Any
on-going network activity will be stopped immediately.
The PCI configuration registers will not be cleared. For
SCSI, when target aborts, INTA will not be asserted, but
the ABORT bit (bit 2 of the DMA status register at offset
54h), is set. For either Ethernet or SCSI a target abort
causes RTABORT (bit 12) of the status register in the
appropriate PCI configuration space to be set.
Figure 13 shows a target abort sequence. The target asserts DEVSEL for one clock. It then deasserts DEVSEL
and asserts STOP on clock 4. A target can use the target
abort sequence to indicate that it cannot service the data
transfer and that it does not want the transaction to be
retried. Additionally, the Am79C974 controller cannot
make any assumption about the success of the previous
data transfers in the current transaction. The
Am79C974 controller terminates the current transfer
with the deassertion of FRAME on clock 5 and one clock
cycle later with the deassertion of IRDY. It finally releases the bus on clock 6.
CLK
1
2
3
4
5
6
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
STOP
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A/1-17
Figure 13. Target Abort
Am79C974
11
AMENDMENT
AMD
Master Abort
The PCI configuration registers will not be cleared. For
SCSI, when the master aborts, INTA will not be asserted, but the ABORT bit (bit 2 of the DMA status register at offset 54h), is set. For either Ethernet or SCSI a
master abort causes RMABORT (bit 13) of the status
register in the appropriate PCI configuration space to
be set.
The Am79C974 controller will terminate its cycle with a
Master Abort sequence if DEVSEL is not asserted within
4 clocks after FRAME is asserted. Master Abort is
treated as a fatal error by the Am79C974 controller. For
the Ethernet, the Am79C974 controller will reset all CSR
and BCR locations to their H_RESET values. Any
on-going network activity will be stopped immediately.
CLK
1
2
3
4
5
6
7
8
9
10
FRAME
AD
C/BE
PAR
ADDR
0111
DATA
0000
PAR
PAR
IRDY
TRDY
DEVSEL
REQ
GNT
DEVSEL is sampled by the Am79C974 controller.
18681A/1-20
Figure 16. Master Abort
12
Am79C974
AMENDMENT
Since the PCI bus is 4 bytes wide and the SCSI bus is
only 1 byte wide, funneling logic is included in this engine to handle byte alignment and to ensure that data is
properly transferred between the SCSI bus and the
wider PCI bus. All boundary conditions are handled
through hardware by the DMA Engine.
The DMA engine is also designed for block type (4
KByte page) transfers to support scatter-gather operations. Implementation of this feature is described further
in the DMA Scatter-Gather Mechanism section.
DMA FIFO
Data transfers from the SCSI FIFO to the DMA FIFO
take place each time the threshold of two bytes is
reached on the SCSI side. The transfer is initiated by the
SCSI block when the internal DREQ is asserted, and
continues with the DACK handshaking which typically
takes place in DMA accesses. Data is accumulated in
the DMA FIFO until a threshold of 16 DWORD (64 bytes)
is reached. Data is then burst across the PCI bus to
memory. Residue data which is less than the threshold
in each FIFO is sent in non-contiguous bursts. For memory read operations, data is sent in burst mode to the
DMA FIFO and continues through to the SCSI FIFO and
onto the SCSI bus.
DMA BLAST Command
This command is used to retrieve the contents of the
DMA FIFO when the Target disconnects during a DMA
Write operation. This could happen for example if a
SCSI disk drive detected the end of a sector and decided to give up the bus while it was looking for the next
sector. The Target Disconnect can leave some bytes of
data in the DMA FIFO and some in the SCSI FIFO, while
some bytes have yet to be transferred from the peripheral device. When this happens, the controller will assert
INTA to interrupt the processor, the SCSI state machine
will continue to empty its contents into the DMA FIFO,
but the DMA FIFO will not necessarily dump its contents
into memory (unless the 64-byte DMA threshold happens to have been exceeded at this time).
The BLAST command causes the contents of the DMA
FIFO to be emptied into memory. There are some restrictions on when this command should be used.
First, the command should be used only to recover
from an interrupted DMA write operation—not a
read operation.
Second, the command must not be issued until the
SCSI FIFO has finished dumping its contents into
the DMA FIFO.
Third, the command should never be issued when
the DMA FIFO has already been emptied. This is
indicated by the state of the DONE bit in the DMA
STATUS register at ((B)+54h).
AMD
(This is a test for a special case that can occur when a
Target Disconnect leaves only 1 byte left to be transferred from the SCSI peripheral. In this case, if the original transfer count was even, an odd number of bytes will
be left in the SCSI FIFO. Since the SCSI engine transfers data to the DMA FIFO two bytes at a time, the last
transfer consists of one byte of valid data and one byte
of garbage. The DMA engine treats this final invalid byte
as valid data and writes it to memory. When it does this,
it decrements its Working Byte Counter to zero and sets
the DONE bit, even though 1 byte still needs to be retrieved from the peripheral device.)
The following procedure outlines the use of the BLAST
command after an interrupt has occurred. Note that the
order of steps 2–4 is not critical. The order can be
changed to tune the performance. Also note that each
register is read only once in this procedure even though
several tests may be made on data from one register.
1. Verify that INT (bit 7 of the SCSI status register at
((B)+10h) is set to indicate that a SCSI interrupt is
pending.
2. Read the SCSI current FIFO count (bits 4:0 of the
Current FIFO/Internal State register at ((B)+1Ch).
If this value is not zero, wait for the SCSI FIFO to
empty its contents into the DMA FIFO.
3. If bit 4 of the SCSI status register (CTZ) is set,
stop here. The transfer is complete, and it is not
necessary to execute the BLAST command.
4. Verify that DIR (bit 7 of DMA command register at
((B)+40h) is set to one to indicate that the direction
of transfer is from SCSI to memory.
5. Test the error bits in the DMA status register and
the SCSI status register (STATREG at ((B)+10h)
to verify that the contents of the DMA and SCSI
FIFOs are not invalid.
6. Test the DMA DONE bit in the DMA STATUS
register. If DONE is not set, write ‘01’ to the DMA
command register to issue the BLAST command.
This will move the remaining data from the DMA
FIFO into memory.
7. Wait until the BLAST complete (BCMPLT) in the
DMA STATUS register is set to indicate the completion of the BLAST operation.
8. Write ‘00’ to the DMA command register to issue
the IDLE command to the DMA engine. (Note
that the IDLE command does not generate an
interrupt.)
The above procedure insures that the data that has
been transferred from the SCSI peripheral does not get
lost in the DMA FIFO when a Target Disconnect occurs.
However, it does not complete the original transfer. The
software must now read the SCSI Current Transfer
Count register (CTCREG) to find out how many bytes
Am79C974
13
AMENDMENT
AMD
have yet to be transferred from the SCSI peripheral device and must start a new transfer operation to get the
rest of the data. (CTCREG consists of three bytes located at ((B)+00h, (B)+04h, and (B)+38h.)
Logic block via a 32-bit data bus, and the funnel logic
properly reduces this stream of data to a 16-bit stream to
properly interface with the SCSI FIFO.
Funneling Logic
Figure 26 shows the internal DMA logic interface with
the SCSI block. The DMA FIFO interfaces to the Funnel
18681A/1-30
Figure 26. DMA FIFO to SCSI FIFO Interface
SCSI DMA Programming Sequence
5. Issue the START command to the DMA engine
The following section outlines the procedure for executing SCSI DMA operations:
6. At the end of the DMA transaction, issue the IDLE
command to the DMA engine
1. Issue IDLE command to the DMA Engine
MDL Based DMA Programming
2. Configure the SCSI block registers (e.g. synchronous operation, offset values, etc.)
The following section outlines the procedure for executing MDL based DMA operation:
3. Program the DMA registers to set up address and
transfer count
1. Set up the MDL list
4. Issue a transfer command to the SCSI command
registers
14
2. Use the programming sequence defined earlier for
initiating a SCSI DMA transfer
Am79C974
AMENDMENT
DMA Registers
The following is a summary of the DMA register set or
the DMA Channel Context Block (DMA CCB). These
registers control the specifics for DMA operations such
as transfer length and scatter-gather options. The three
read-only working counter registers allow the system
AMD
software and driver to monitor the DMA transaction.
Each register address is represented by the PCI Configuration Base Address (B) and its corresponding offset
value. The Base address for the Am79C974 is stored at
register address (10h) in the PCI configuration space.
Table 6. The DMA Registers
Register Acronym
Addr (Hex)
Register Description
Type
CMD
(B)+40
Command (bits 31:8 reserved, bits 7:0 used)
R/W
STC
(B)+44
Starting Transfer Count (bits 31:24 reserved, bits 23:0 used)
R/W
SPA
(B)+48
Starting Physical Address (bits 31:0 used)
R/W
WBC
(B)+4C
Working Byte Counter
R
WAC
(B)+50
Working Address Counter (bits 31:0 used)
R
STATUS
(B)+54
Status Register (bits 31:8 reserved, bits 7:0 used)
SMDLA
(B)+58
Starting Memory Descriptor List (MDL) Address
WMAC
(B)+5C
Working MDL Counter
R
Command Register (CMD)
INTE_P:
The upper 3 bytes of Command register are reserved,
the remaining (LSB) byte is defined as follows:
Page transfer active interrupt bit.
Address (B)+40h, LSB
7
6
5
4
DIR
INTE_D
INTE_P
MDL
READ/WRITE
3
2
Reserved Reserved
1
CMD1
0
CMD0
R
R/W
MDL:
Memory Descriptor List (MDL) SPA enable bit.
RESERVED:
Reserved for future expansion. The zero value must be
written in these bits.
DIR:
CMD1-0:
Data transfer direction bit.
These two bits are encoded to represent four commands: IDLE, BLAST, START, and ABORT.
INTE_D:
DMA transfer active interrupt bit.
CMD1
CMD0
Command
0
0
IDLE
Description
0
1
BLAST
Empties all data bytes in DMA FIFO to memory during a DMA
write operation. Upon completion, the ‘BCMPLT’ bit will be set
in the DMA Status register. This command should not be used
during a DMA read operation.
1
0
ABORT
Terminates the current DMA transfer. The DMA engine
should be restored to the ‘IDLE’ state following execution of
this command.
Resets the DMA block to the IDLE state. Stops any current transfer. Does not
affect status bits or cause an interrupt.
Note: This is only valid after a ‘START’ command is issued.
1
1
START
Initiates a new DMA transfer. These bits must remain set
throughout the DMA operation until the ‘DONE’ bit in the DMA
Status Register is set.
Note: This command should be issued only after all other
control bits have been initialized.
Am79C974
15
AMENDMENT
AMD
DMA Scatter-Gather Mechanism
The Am79C974 contains a scatter-gather translation
mechanism which facilitates faster data transfers. This
feature uses a Memory Descriptor List (a list of contiguous physical memory addresses) which is stored in system memory. Use of the Memory Descriptor List allows
a single SCSI transfer to be read from (or written to) noncontiguous physical memory locations. This mechanism avoids copying the transfer data and MDL list,
which was previously required for conventional DMA
operations.
DMA Scatter-Gather Operation
(4k aligned elements)
The scatter-gather mechanism described below
assumes 4k page alignment and size for all MDL entries
except the first and last entry. This feature is enabled by
setting the MDL bit in the DMA Command register (Bit 4,
Address (B)+40h).
1. a) Prepare the Memory Descriptor List (MDL)
through software and store it in system
memory.
b) Load the address of the starting entry in the
Memory Descriptor List (MDL) into the Start
Memory Descriptor List Address (SMDLA)
register. This value is automatically copied into
the Working MDL Address Counter (WMAC).
Memory Descriptor List (MDL)
The MDL is a non-terminated (no End Of File marker)
list of 32-bit page frame addresses, which is always
aligned on a Double Word boundary. The format is
shown below:
31
12 11
Page Frame Address
c) Program the Starting Transfer Count (STC)
register with the total transfer length (i.e., # of
bytes). Also program the Starting Physical
Address (SPA) register (bits 11:0) with the
starting offset of the first entry.
0
Ignored
Note: The value in the SMDLA register must be double
word aligned. Therefore, read/write transactions will always begin on a double word boundary.
31
0
SMDLA
31
MDL
31
12
0
Page Frame Address #1
Ignored
Page Frame Address #2
Ignored
0
WMAC
Page Frame Address #3
Page Frame Address #4
Ignored
Ignored
Page Frame Address #n
Ignored
18681A/1-31
16
Am79C974
AMD
AMENDMENT
In this example, the contents of the WMAC register is
pointing to page frame address #1. When the first entry
in the MDL in read (page frame address #1), the WMAC
register is incremented to point to the next page entry
(page frame address #2).
MDL entry and combines it with the first page offset value in the Starting Physical Address (SPA)
register (bits 11:0). This 32-bit value is loaded into
the Working Address Counter (WAC) register and
becomes the physical address for page#1, as
shown below. The WMAC is then incremented to
point to the next entry in the MDL.
2. Issue the Start DMA Command. The Am79C974
reads the page frame address (bits 31:12) from the
Programmed by
the software
31
SPA
12
XXXX
0
Starting Offset
From the MDL
31
WAC
4K Page #1
12
Page Frame Address #1
0
Starting Offset
Data
18681A/1-32
3. When the WAC register (bits 11:0) reaches the
first 4K byte boundary, the Am79C974 reads the
second MDL entry and combines the page frame
address (bits 31:12) from this entry of the MDL
with bits 11:00 of the WAC register. This becomes
the physical address for page#2. Since the WAC
register (bits 11:0) has rolled over to ‘00h’, the
WAC now points to the beginning of the Page
Frame Address #2 as shown below. The WMAC
is then incremented to point to the next entry in
the MDL.
From the MDL
31
WAC
12
Page Frame Address #2
0
4K Page #2
0
Data
18681A/1-33
Am79C974
17
AMENDMENT
AMD
When WAC (bits 11:0) again reaches the next 4K byte
boundary, the next MDL entry is read into the WAC. The
operation continues in this way until WMAC register
reaches the last MDL entry (Page Frame Address #n in
this example).
4. The WAC register points to the beginning of the last
page#n and the DMA operation continues until the
byte count is exhausted in the Working Byte
Counter (WBC) register. When WBC=0, the chip
stops incrementing the WAC register. This is
shown below.
From the MDL
31
WAC
12
Page Frame Address #n
0
4K Page #n
0
Data
WBC = 0
18681A/1-34
DMA Scatter-Gather Operation
(Non-4k aligned elements MDL not set)
There is another way to implement a scatter-gather operation which does not force the data elements to be
aligned on 4k boundaries. It assumes a “traditional”
scatter-gather list of the following format:
Element 0
Physical Address Byte Count
Element 1
Physical Address Byte Count
...
Element n
Physical Address Byte Count
This second implementation is described as follows:
1. Set the SCSI Start Transfer Count Register
((B)+00h, (B)+04h, (B)+38h) to the Byte count of
the first Scatter-Gather element.
2. Program the DMA Starting Transfer Count Register ((B)+44h) to the Byte Count of the first ScatterGather element.
18
3. Program the DMA Starting Physical Address Register ((B)+48h) to the Physical Address of the first
Scatter-Gather element.
4. Start the SCSI operation by issuing a SCSI Information Transfer command.
5. Start the DMA Engine with DMA Transfer Interrupt
Enable (Bit 6, (B)+40h).
6. When the Scatter-Gather element’s Byte Count
is exhausted, the DMA engine will generate an
interrupt.
7. Reprogram the next Scatter-Gather element’s Byte
Count into the SCSI Start Transfer Count Register
and the DMA Starting Transfer Count Register.
8. Reprogram the DMA Starting Physical Address
Register ((B)+48h) to the Physical Address of the
next Scatter-Gather element.
9. Repeat steps 4–8 until the Scatter-Gather list is
completed.
Am79C974
AMENDMENT
AMD
18681A/1-67
where C1 – C9 are decoupling capacitors.
Figure E-5. Decoupling Capacitor Placement
Am79C974
19