PRELIMINARY Am79C973/Am79C975 PCnetTM-FAST III Single-Chip 10/100 Mbps PCI Ethernet Controller with Integrated PHY Supports PC98/PC99 and Wired for Management baseline specifications DISTINCTIVE CHARACTERISTICS Single-chip PCI-to-Wire Fast Ethernet controller -- 32-bit glueless PCI host interface -- Full OnNow support including pattern matching and link status wake-up events -- Supports PCI clock frequency from DC to 33 MHz independent of network clock -- Implements AMD's patented Magic PacketTM technology for remote wake-up & power-on -- Supports network operation with PCI clock from 15 MHz to 33 MHz -- Magic Packet mode and the physical address loaded from EEPROM at power up without requiring PCI clock -- High performance bus mastering architecture with integrated Direct Memory Access (DMA) Buffer Management Unit for low CPU and bus utilization -- Supports PCI Bus Power Management Interface Specification Revision 1.1 -- Supports Advanced Configuration and Power Interface (ACPI) Specification Version 1.0 -- PCI specification revision 2.2 compliant -- Supports PCI Subsystem/Subvendor ID/ Vendor ID programming through the EEPROM interface -- Supports Network Device Class Power Management Specification Version 1.0a -- Supports both PCI 5.0 V and 3.3 V signaling environments Serial Management Interface enables remote alerting of system management events -- Plug and Play compatible -- Inter-IC (I2C) compliant electrical interface -- Big endian and little endian byte alignments supported -- System Management Bus (SMBus) compliant signaling interface and register access protocol Fully Integrated 10/100 Mbps Physical Layer Interface (PHY) -- Optional interrupt pin simplifies software interface -- Conforms to IEEE 802.3 standard for 10BASE-T, 100BASE-TX, and 100BASE-FX interfaces Large independent internal TX and RX FIFOs -- Programmable FIFO watermarks for both TX and RX operations -- Integrated 10BASE-T transceiver with onchip filtering -- RX frame queuing for high latency PCI bus host operation -- Fully integrated MLT-3 encoder/decoder for 100BASE-TX -- Programmable allocation of buffer space between RX and TX queues -- Provides a PECL interface for 100BASE-FX fiber implementations EEPROM interface supports jumperless design and provides through-chip programming -- Full-duplex capability for 10BASE-T and 100BASE-TX -- Supports extensive programmability of device operation through EEPROM mapping -- IEEE 802.3u Auto-Negotiation between 10 Mbps and 100 Mbps, half- and full-duplex operation Supports up to 1 megabyte (Mbyte) optional Boot PROM and Flash for diskless node application Dual-speed CSMA/CD (10 Mbps and 100 Mbps) Media Access Controller (MAC) compliant with IEEE/ANSI 802.3 and Blue Book Ethernet standards Extensive programmable internal/external loopback capabilities Extensive programmable LED status support This document contains information on a product under development at Advanced Micro Devices. The information is intended to help you evaluate this product. AMD reserves the right to change or discontinue work on this proposed product without notice. R f t AMD' W b it ( d )f th l t t i f Publication# 21510 Rev: E Amendment/0 Issue Date: August 2000 ti P R E L I M I N A R Y Look-Ahead Packet Processing (LAPP) data handling technique reduces system overhead by allowing protocol analysis to begin before the end of a receive frame Includes Programmable Inter Packet Gap (IPG) to address less network aggressive MAC controllers Offers the Modified Back-Off algorithm to address the Ethernet Capture Effect IEEE 1149.1-compliant JTAG Boundary Scan test access port interface and NAND tree test mode for board-level production connectivity test Compatible with the existing PCnet Family driver/diagnostic software Software compatible with AMD PCnet Family and LANCETM/C-LANCETM register and descriptor architecture Available in 160-pin PQFP and 176-pin TQFP packages Advanced +3.3 V CMOS process technology for low power operation GENERAL DESCRIPTION The Am79C973 and Am79C975 controllers are singlechip 32-bit full- duplex, 10/100-Megabit per second (Mbps) fully integrated PCI-to-Wire Fast Ethernet system solution, designed to address high-performance system application requirements. They are flexible bus mastering device that can be used in any application, including network-ready PCs and bridge/router designs. The bus master architecture provides high data throughput and low CPU and system bus utilization. The Am79C973 and Am79C975 controllers are fabricated with advanced low-power 3.3-V CMOS process to provide low operating current for power sensitive applications. The third generation Am79C973 and Am79C975 Fast Ethernet controllers also have several enhancements ove r th e i r pr e de c e s s o r s, t h e A m 7 9C 9 7 1 a n d Am79C972 devices. Besides integrating the complete 10/100 Physical Layer (PHY) interface, they further reduce system implementation cost by integrating the SRAM buffers on chip. The Am79C973 and Am79C975 controllers contain 12kilobyte (Kbyte) buffers, the largest of their class in 10/ 100 Mbps Ethernet controllers. The large internal buffers are fully programmable between the RX and TX queues for optimal performance. The Am79C973 and Am79C975 controllers are also compliant with PC98/PC99 and Wired for Management specifications. They fully support Microsoft's OnNow and ACPI specifications, which are backward compatible with Magic Packet technology and compliant with the PCI Bus Power Management Interface Specification by supporting the four power management states (D0, D1, D2, and D3), the optional PME pin, and the necessary configuration and data registers. The Am79C973 and Am79C975 controllers are complete Ethernet nodes integrated into a single VLSI device. It contains a bus interface unit, a Direct Memory Access (DMA) Buffer Management Unit, an ISO/IEC 8802-3 (IEEE 802.3)- compliant Media Access Control- 2 ler (MAC), a large Transmit FIFO and a large Receive FIFO, and an IEEE 802.3-compliant 10/100 Mbps PHY. The integrated 10/100 PHY unit of the Am79C973 and Am79C975 controllers implement the complete physical layer for 10BASE-T and the Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA), and Physical Medium Dependent (PMD) functionality for 100BASE-TX, including MLT-3 encoding/decoding. It also supports 100BASE-FX operation by providing a Pseudo-ECL (PECL) interface for direct connection to a fiber optic transceiver module. The internal 10/100 PHY implements Auto-Negotiation for twisted-pair (10T/100TX) operation by using a modified 10BASE-T link integrity test pulse sequence as defined in the IEEE 802.3u specification. The Auto-Negotiation function automatically configures the controller to operate at the maximum performance level supported across the network link. The Am79C975 controller also implements a Serial Management Interface in addition to the advanced management features offered with the Am79C973 controller. The Serial Management Interface is based on the industry standard Inter-IC (I2C) and System Management Bus (SMBus) specifications and enables a system to communicate with another network station for remote monitoring and alerting of local system management parameters and events. This simple yet powerful Serial Management Interface is capable of communicating within the system and over the network during normal operation or in low-power modes, even if the device is not initialized or set up for transmit or receive operation by the network software driver. The 32-bit multiplexed bus interface unit provides a direct interface to the PCI local bus, simplifying the design of an Ethernet node in a PC system. The Am79C973 and Am79C975 controllers provide the complete interface to an Expansion ROM or Flash device allowing add-on card designs with only a single load per PCI bus interface pin. With their built-in support for both little and big endian byte alignment, the Am79C973/Am79C975 P R E L I M I N A R Y controllers also address non-PC applications. The Am79C973 and Am79C975 controllers' advanced CMOS design allows the bus interface to be connected to either a +5-V or a +3.3-V signaling environment. A compliant IEEE 1149.1 JTAG test interface for boardlevel testing is also provided, as well as a NAND tree test structure for those systems that cannot support the JTAG interface. The Am79C973 and Am79C975 controllers support auto-configuration in the PCI configuration space. Additional Am79C973 and Am79C975 controller configuration parameters, including the unique IEEE physical address, can be read from an external non-volatile memory (EEPROM) immediately following system reset. In addition, the Am79C973 and Am79C975 controllers provide programmable on-chip LED drivers for transmit, receive, collision, link integrity, Magic Packet status, activity, link active, address match, full-duplex, 10 Mbps or 100 Mbps, or jabber status. The Am79C973 and Am79C975 controllers are register compatible with the LANCETM (Am7990) Ethernet controller, the C-LANCETM (Am79C90) Ethernet controller, and all Ethernet controllers in the PCnetTM Family, except ILACCTM (Am79C900), including the PCnetISATM (Am79C960), PCnet-ISA+TM (Am79C961), PCnet-ISA IITM (Am79C961A), PCnet-32TM (Am79C965), PCnet-PCITM (Am79C970), PCnet-PCI IITM (A m79C970A ), P Cnet- FASTTM (Am79C971), and PCnet-FAST+TM (Am79C972). The Buffer Management Unit supports the LANCE and PCnet descriptor software models. The Am79C973 and Am79C975 controllers are ideally suited for LAN on the motherboard, network adapter card, and embedded designs. It is available in a 160pin Plastic Quad Flat Pack (PQFP) package and also in a 176-pin Thin Quad Flat Pack (TQFP) package for form factor sensitive designs. Am79C973/Am79C975 3 P R E L I M I N A R Y BLOCK DIAGRAM MIIRXFRTGE MIIRXFRTGD SFBD EAR EBUA_EBA[7:0] EBDA[15:8] EBD[7:0] EROMCS AS_EBOE EBWE EBCLK CLK RST AD[31:0] C/BE[3:0] PAR FRAME TRDY IRDY STOP IDSEL DEVSEL REQ GNT PERR SERR INTA RXD[3:0],TXD[3:0] MDIO MDC XTAL1 Expansion Bus Interface EADI Clock Reference Bus Rcv FIFO MAC Rcv FIFO PCI Bus Interface Unit 10/100 PHY Core MII 12K SRAM 802.3 MAC Core Bus Xmt FIFO MAC Xmt FIFO FIFO Control Network Port Manager MII Interface TX PECL (100 BASE-FX) RX Receive Block MDC MDIO 10 BASE-T MII Management Link Monitor Auto Negotiation PHY Control Serial Management Interface Unit OnNow Power Management Unit JTAG Port Control VAUXDET MLT3 (100 BASE-TX) Transmit Block Buffer Management Unit TCK TMS TDI TDO XTAL2 PME RWU WUMI PG SDI LED Control LED0 LED1 LED2 LED3 93C46 EEPROM Interface EECS EESK EEDI EEDO MCLOCK MDATA MIRQ 21510D-1 4 Am79C973/Am79C975 P R E L I M I N A R Y TABLE OF CONTENTS DISTINCTIVE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 GENERAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 BLOCK DIAGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 TABLE OF CONTENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 LIST OF TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 RELATED AMD PRODUCTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 CONNECTION DIAGRAM (PQR160) - AM79C973 . . . . . . . . . . . . . . . . . . . . . . . . . . 18 CONNECTION DIAGRAM (PQL176) AM79C973 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 CONNECTION DIAGRAM (PQR160) - AM79C975 . . . . . . . . . . . . . . . . . . . . . . . . . . 20 CONNECTION DIAGRAM (PQL176) - AM79C975 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 PIN DESIGNATIONS (PQR160) (Am79C973/Am79C975) . . . . . . . . . . . . . . . . . . . . 22 Listed By Pin Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 PIN DESIGNATIONS (PQL176) (Am79C973/Am79C975) . . . . . . . . . . . . . . . . . . . . . 23 Listed By Pin Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 PIN DESIGNATIONS (PQR160, PQL176) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Listed By Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 PIN DESIGNATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Listed By Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 PIN DESIGNATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Listed By Driver Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ORDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 PIN DESCRIPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 PCI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Board Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 EEPROM Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Expansion Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Media Independent Interface (MII) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 External Address Detection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 IEEE 1149.1 (1990) Test Access Port Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Network Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Clock Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Serial Management Interface (SMI) (Am79C975 only) . . . . . . . . . . . . . . . . . . . . . . 37 Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 BASIC FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 System Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Software Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Network Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Serial Management Interface (Am79C975) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 MII Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 DETAILED FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Slave Bus Interface Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Slave Configuration Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Slave I/O Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Expansion ROM Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Slave Cycle Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Parity Error Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Master Bus Interface Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Am79C973/Am79C975 5 P R E L I M I N A R Y Bus Acquisition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus Master DMA Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Target Initiated Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Master Initiated Termination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Master Abort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parity Error Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialization Block DMA Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descriptor DMA Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FIFO DMA Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Management Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Re-Initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descriptor Rings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Polling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Descriptor Table Entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Descriptor Table Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Frame Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Interrupt Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10/100 Media Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit and Receive Message Data Encapsulation. . . . . . . . . . . . . . . . . . . . . Destination Address Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Media Access Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Function Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Pad Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit FCS Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Exception Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Function Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Address Matching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Pad Stripping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive FCS Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Exception Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loopback Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Miscellaneous Loopback Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Full-Duplex Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Full-Duplex Link Status LED Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10/100 PHY Unit Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100BASE-TX Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100BASE-FX (Fiber Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10BASE-T Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PHY/MAC Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internal PHY Loopback Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Am79C973/Am79C975 46 47 50 52 53 53 56 58 60 63 63 63 64 64 64 66 67 68 69 69 70 70 71 71 73 73 74 74 74 75 75 75 76 77 77 78 78 78 79 79 79 79 79 80 80 80 80 82 83 P R E L I M I N A R Y Scrambler/Descrambler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Link Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Far End Fault Generation and Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 MLT-3 and Adaptive Equalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Serializer/Deserializer and Clock Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Medium Dependent Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 10BASE-T Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Twisted Pair Transmit Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Twisted Pair Receive Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Twisted Pair Interface Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Collision Detect Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Jabber Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Reverse Polarity Detect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Auto-Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Soft Reset Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 External Address Detection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 External Address Detection Interface: MII Snoop Mode . . . . . . . . . . . . . . . . . . 89 External Address Detection Interface: Receive Frame Tagging . . . . . . . . . . . . 89 Expansion Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Expansion ROM - Boot Device Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Direct Flash Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 AMD Flash Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Direct SRAM Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 EEPROM Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Automatic EEPROM Read Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 LED Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Power Savings Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Power Management Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Magic Packet Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 IEEE 1149.1 (1990) Test Access Port Interface . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Boundary Scan Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 TAP Finite State Machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Supported Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Boundary Scan Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Other Data Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 H_RESET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 S_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Power on Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Software Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 PCI Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 I/O Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 USER ACCESSIBLE REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 PCI Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 PCI Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 PCI Device ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 PCI Command Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 PCI Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Am79C973/Am79C975 7 P R E L I M I N A R Y PCI Revision ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Programming Interface Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Sub-Class Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Base-Class Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Latency Timer Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Header Type Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI I/O Base Address Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Memory Mapped I/O Base Address Register . . . . . . . . . . . . . . . . . . . . . . PCI Subsystem Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Subsystem ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Expansion ROM Base Address Register . . . . . . . . . . . . . . . . . . . . . . . . . PCI Capabilities Pointer Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Interrupt Line Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Interrupt Pin Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI MIN_GNT Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI MAX_LAT Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Capability Identifier Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Next Item Pointer Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Power Management Capabilities Register (PMC). . . . . . . . . . . . . . . . . . . PCI Power Management Control/Status Register (PMCSR) . . . . . . . . . . . . . . PCI PMCSR Bridge Support Extensions Register . . . . . . . . . . . . . . . . . . . . . . PCI Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAP Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAP: Register Address Port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control and Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR0: Am79C973/Am79C975 Controller Status and Control Register . . . . . . CSR1: Initialization Block Address 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR2: Initialization Block Address 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR3: Interrupt Masks and Deferral Control . . . . . . . . . . . . . . . . . . . . . . . . . . CSR4: Test and Features Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR5: Extended Control and Interrupt 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR6: RX/TX Descriptor Table Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR7: Extended Control and Interrupt 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR8: Logical Address Filter 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR9: Logical Address Filter 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR10: Logical Address Filter 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR11: Logical Address Filter 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR12: Physical Address Register 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR13: Physical Address Register 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR14: Physical Address Register 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR15: Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR16: Initialization Block Address Lower . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR17: Initialization Block Address Upper . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR18: Current Receive Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . . CSR19: Current Receive Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . . CSR20: Current Transmit Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . . CSR21: Current Transmit Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . . CSR22: Next Receive Buffer Address Lower. . . . . . . . . . . . . . . . . . . . . . . . . . CSR23: Next Receive Buffer Address Upper. . . . . . . . . . . . . . . . . . . . . . . . . . 8 Am79C973/Am79C975 116 116 117 117 117 117 117 118 119 119 119 120 120 120 120 120 120 120 121 121 122 122 122 123 123 123 126 126 126 129 130 133 133 136 136 137 137 137 137 137 138 139 140 140 140 140 140 140 140 P R E L I M I N A R Y CSR24: Base Address of Receive Ring Lower . . . . . . . . . . . . . . . . . . . . . . . . CSR25: Base Address of Receive Ring Upper . . . . . . . . . . . . . . . . . . . . . . . . CSR26: Next Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . CSR27: Next Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . CSR28: Current Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . CSR29: Current Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . CSR30: Base Address of Transmit Ring Lower . . . . . . . . . . . . . . . . . . . . . . . . CSR31: Base Address of Transmit Ring Upper . . . . . . . . . . . . . . . . . . . . . . . . CSR32: Next Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . CSR33: Next Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . CSR34: Current Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . CSR35: Current Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . . CSR36: Next Next Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . CSR37: Next Next Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . CSR38: Next Next Transmit Descriptor Address Lower. . . . . . . . . . . . . . . . . . CSR39: Next Next Transmit Descriptor Address Uper. . . . . . . . . . . . . . . . . . . CSR40: Current Receive Byte Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR41: Current Receive Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR42: Current Transmit Byte Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR43: Current Transmit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR44: Next Receive Byte Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR45: Next Receive Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR46: Transmit Poll Time Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR47: Transmit Polling Interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR48: Receive Poll Time Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR49: Receive Polling Interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR58: Software Style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR60: Previous Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . CSR61: Previous Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . CSR62: Previous Transmit Byte Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR63: Previous Transmit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR64: Next Transmit Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . . . . CSR65: Next Transmit Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . . . . CSR66: Next Transmit Byte Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR67: Next Transmit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR72: Receive Ring Counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR74: Transmit Ring Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR76: Receive Ring Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR78: Transmit Ring Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR80: DMA Transfer Counter and FIFO Threshold Control . . . . . . . . . . . . . CSR82: Transmit Descriptor Address Pointer Lower . . . . . . . . . . . . . . . . . . . . CSR84: DMA Address Register Lower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR85: DMA Address Register Upper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR86: Buffer Byte Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR88: Chip ID Register Lower. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR89: Chip ID Register Upper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR92: Ring Length Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR100: Bus Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR112: Missed Frame Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C973/Am79C975 141 141 141 141 141 141 141 142 142 142 142 142 142 142 143 143 143 143 143 143 143 144 144 144 145 145 145 147 148 148 148 148 148 148 149 149 149 149 149 150 152 152 152 152 152 153 153 153 154 9 P R E L I M I N A R Y CSR114: Receive Collision Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR116: OnNow Power Mode Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR122: Advanced Feature Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR124: Test Register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSR125: MAC Enhanced Configuration Control . . . . . . . . . . . . . . . . . . . . . . . Bus Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR0: Master Mode Read Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR1: Master Mode Write Active. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR2: Miscellaneous Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR4: LED 0 Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR5: LED1 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR6: LED2 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR7: LED3 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR9: Full-Duplex Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR16: I/O Base Address Lower. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR17: I/O Base Address Upper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR18: Burst and Bus Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR19: EEPROM Control and Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR20: Software Style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR22: PCI Latency Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR23: PCI Subsystem Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . BCR24: PCI Subsystem ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR25: SRAM Size Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR26: SRAM Boundary Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR27: SRAM Interface Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR28: Expansion Bus Port Address Lower (Used for Flash/EPROM and SRAM Accesses) . . . . . . . . . . . . . . . . . . . . . BCR29: Expansion Port Address Upper (Used for Flash/EPROM Accesses) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR30: Expansion Bus Data Port Register . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR31: Software Timer Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR32: PHY Control and Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR33: PHY Address Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR34: PHY Management Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR35: PCI Vendor ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BCR36: PCI Power Management Capabilities (PMC) Alias Register . . . . . . . BCR37: PCI DATA Register Zero (DATA0) Alias Register . . . . . . . . . . . . . . . BCR38: PCI DATA Register One (DATA1) Alias Register. . . . . . . . . . . . . . . . BCR39: PCI DATA Register Two (DATA2) Alias Register . . . . . . . . . . . . . . . . BCR40: PCI DATA Register Three (DATA3) Alias Register . . . . . . . . . . . . . . BCR41: PCI DATA Register Four (DATA4) Alias Register . . . . . . . . . . . . . . . BCR42: PCI DATA Register Five (DATA5) Alias Register . . . . . . . . . . . . . . . . BCR43: PCI DATA Register Six (DATA6) Alias Register. . . . . . . . . . . . . . . . . BCR44: PCI DATA Register Seven (DATA7) Alias Register . . . . . . . . . . . . . . BCR45: OnNow Pattern Matching Register 1 . . . . . . . . . . . . . . . . . . . . . . . . . BCR46: OnNow Pattern Matching Register 2 . . . . . . . . . . . . . . . . . . . . . . . . . BCR47: OnNow Pattern Matching Register 3 . . . . . . . . . . . . . . . . . . . . . . . . . BCR48-BCR55: Reserved Locations for Am79C975 . . . . . . . . . . . . . . . . . . . . PHY Management Registers (ANRs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Am79C973/Am79C975 154 154 156 156 156 157 157 158 162 164 166 168 169 171 172 172 172 175 178 179 180 180 180 181 181 183 183 184 184 185 187 187 187 188 188 188 189 189 189 190 190 191 191 191 192 192 192 P R E L I M I N A R Y ANR1: Status Register (Register 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ANR2 and ANR3: PHY Identifier (Registers 2 and 3) . . . . . . . . . . . . . . . . . . . ANR4: Auto-Negotiation Advertisement Register (Register 4) . . . . . . . . . . . . . ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) . . . . . . . . . ANR6: Auto-Negotiation Expansion Register (Register 6) . . . . . . . . . . . . . . . . ANR7: Auto-Negotiation Next Page Register (Register 7) . . . . . . . . . . . . . . . . Reserved Registers (Registers 8-15, 20-23, and 25-31) . . . . . . . . . . . . . . . . . ANR16: INTERRUPT Status and Enable Register (Register 16). . . . . . . . . . . ANR17: PHY Control/Status Register (Register 17) . . . . . . . . . . . . . . . . . . . . ANR18: Descrambler Resynchronization Timer Register (Register 18) . . . . . ANR19: PHY Management Extension Register (Register 19) . . . . . . . . . . . . . ANR24: Summary Status Register (Register 24) . . . . . . . . . . . . . . . . . . . . . . . Initialization Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REGISTER SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control and Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PHY Management Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROGRAMMABLE REGISTER SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C973/Am79C975 Control and Status Registers . . . . . . . . . . . . . . . . . . . . . Am79C973/Am79C975 Bus Configuration Registers . . . . . . . . . . . . . . . . . . . . . . ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SWITCHING CHARACTERISTICS: BUS INTERFACE . . . . . . . . . . . . . . . . . . . . . . SWITCHING CHARACTERISTICS: EXTERNAL ADDRESS DETECTION INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EXTERNAL CLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SWITCHING WAVEFORMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SWITCHING TEST CIRCUITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE . . . . . . . . . . . . . . . . . . . . SWITCHING WAVEFORMS: EXPANSION BUS INTERFACE . . . . . . . . . . . . . . . . PHYSICAL DIMENSIONS* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PQR160 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PQL176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX A: PCnetTM-FAST III Recommended Magnetics . . . . . . . . . . . . . . . . APPENDIX B: SERIAL MANAGEMENT INTERFACE UNIT (AM79C975 ONLY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C975 PIN DESIGNATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Basic Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C975 Slave Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Register Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Detailed Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loopback Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Accessible Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Device ID Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C973/Am79C975 195 196 197 198 199 199 199 200 200 202 202 202 203 205 209 213 213 214 218 219 220 220 222 224 227 229 231 234 235 236 240 242 242 243 244 245 245 245 246 247 247 250 251 252 254 254 254 11 P R E L I M I N A R Y Node ID Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Device Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control and Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Register Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C975 EEPROM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Am79C975 EEPROM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operating Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switching Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switching Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX C: MEDIA INDEPENDENT INTERFACE (MII) . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auto-Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Network Port Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Address Detection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MII management registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control Register (Register 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Register (Register 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auto-Negotiation Advertisement Register (Register 4) . . . . . . . . . . . . . . . . . . . . . Auto-Negotiation Link Partner Ability Register (Register 5) . . . . . . . . . . . . . . . . . Switching Characteristics: Media Independent Interface . . . . . . . . . . . . . . . . . . . Switching Waveforms: Media Independent Interface . . . . . . . . . . . . . . . . . . . . . . Switching Waveforms: External Address Detection Interface . . . . . . . . . . . . . . . . Switching Waveforms: Receive Frame Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX D: ALTERNATIVE METHOD FOR INITIALIZATION . . . . . . . . . . . . . . . APPENDIX E: LOOK-AHEAD PACKET PROCESSING (LAPP) CONCEPT . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline of LAPP Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LAPP Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LAPP Rules for Parsing Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Some Examples of LAPP Descriptor Interaction . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Size Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . An Alternative LAPP Flow: Two-Interrupt Method . . . . . . . . . . . . . . . . . . . . . . . . INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Am79C973/Am79C975 256 258 259 264 264 265 266 266 266 266 267 268 268 271 271 272 274 274 275 276 277 278 279 281 282 283 284 284 285 288 288 289 290 291 294 P R E L I M I N A R Y LIST OF FIGURES Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Figure 30. Figure 31. Figure 32. Figure 33. Figure 34. Figure 35. Figure 36. Figure 37. Figure 38. Figure 39. Figure 40. Figure 41. Figure 42. Figure 43. Figure 44. Figure 45. Figure 46. Figure 47. Figure 48. Slave Configuration Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Slave Configuration Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Slave Read Using I/O Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Slave Write Using Memory Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Expansion ROM Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Disconnect Of Slave Cycle When Busy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Disconnect Of Slave Burst Transfer - No Host Wait States . . . . . . . . . . . . . 44 Disconnect Of Slave Burst Transfer - Host Inserts Wait States . . . . . . . . . . 45 Address Parity Error Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Slave Cycle Data Parity Error Response 46 Bus Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Non-Burst Read Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Burst Read Transfer (EXTREQ = 0, MEMCMD = 0) . . . . . . . . . . . . . . . . . . 48 Non-Burst Write Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Burst Write Transfer (EXTREQ = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Disconnect With Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Disconnect Without Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Target Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Preemption During Non-Burst Transaction . . . . . . . . . . . . . . . . . . . . . . . . . 54 Preemption During Burst Transaction 54 Master Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Master Cycle Data Parity Error Response . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Initialization Block Read In Non-Burst Mode 57 Initialization Block Read In Burst Mode 57 Descriptor Ring Read In Non-Burst Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Descriptor Ring Read In Burst Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Descriptor Ring Write In Non-Burst Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Descriptor Ring Write In Burst Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 FIFO Burst Write At Start Of Unaligned Buffer . . . . . . . . . . . . . . . . . . . . . . . 62 FIFO Burst Write At End Of Unaligned Buffer . . . . . . . . . . . . . . . . . . . . . . . 63 16-Bit Software Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 32-Bit Software Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ISO 8802-3 (IEEE/ANSI 802.3) Data Frame . . . . . . . . . . . . . . . . . . . . . . . . 74 IEEE 802.3 Frame And Length Field Transmission Order . . . . . . . . . . . . . . 77 100BASE-X Transmit and Receive Data Paths of the Internal PHY . . . . . . 81 MLT-3 Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 TX and RX Termination 86 10BASE-T Transmit and Receive Data Paths . . . . . . . . . . . . . . . . . . . . . . . 87 Receive Frame Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Flash Configuration for the Expansion Bus . . . . . . . . . . . . . . . . . . . . . . . . . 91 EPROM Only Configuration for the Expansion Bus (64K EPROM) . . . . . . . 92 EPROM Only Configuration for the Expansion Bus (64K EPROM) 93 Expansion ROM Bus Read Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Flash Read from Expansion Bus Data Port . . . . . . . . . . . . . . . . . . . . . . . . . 94 Flash Write from Expansion Bus Data Port . . . . . . . . . . . . . . . . . . . . . . . . . 95 Block Diagram No SRAM Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Block Diagram Low Latency Receive Configuration . . . . . . . . . . . . . . . . . . 97 LED Control Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Am79C973/Am79C975 13 P R E L I M I N A R Y Figure 49. Figure 50. Figure 51. Figure 52. Figure 53. Figure 54. Figure 55. Figure 56. Figure 57. Figure 58. Figure 59. Figure 60. Figure 61. Figure 62. Figure 63. Figure 64. Figure 65. Figure 66. Figure 67. Figure 68. Figure 69. Figure 70. Figure 71. Figure 72. Figure 73. Figure 74. Figure 75. Figure 76. Figure 77. Figure 78. Figure 79. Figure 80. Figure 81. Figure 82. Figure 83. Figure 84. Figure 85. Figure 86. Figure 87. Figure 88. Figure 89. Figure 90. Figure 91. 14 OnNow Functional Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Pattern Match RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Address Match Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 External Clock Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 PMD Interface Timing (PECL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 PMD Interface Timing (MLT-3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10 Mbps Transmit (TX) Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 233 10 Mbps Receive (RX) Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Normal and Tri-State Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 CLK Waveform for 5 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 CLK Waveform for 3.3 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Input Setup and Hold Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Output Valid Delay Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Output Tri-state Delay Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 EEPROM Read Functional Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Automatic PREAD EEPROM Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 JTAG (IEEE 1149.1) TCK Waveform for 5 V Signaling . . . . . . . . . . . . . . . 238 JTAG (IEEE 1149.1) Test Signal Timing . . . . . . . . . . . . . . . . . . . . . . . . . . 239 EBCLK Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Expansion Bus Read Timing 240 Expansion Bus Write Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Standard Data Transfer on the Serial Management Interface . . . . . . . . . . 247 Data Transfer with Change in Direction (with wait state) . . . . . . . . . . . . . . 247 Write Byte Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Read Byte Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Block Write Command 249 Block Read Command 250 System Management Interface Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Media Independent Interface 268 Frame Format at the MII Interface Connection . . . . . . . . . . . . . . . . . . . . . 270 MII Receive Frame Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Transmit Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Receive Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 MDC Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Management Data Setup and Hold Timing . . . . . . . . . . . . . . . . . . . . . . . . 280 Management Data Output Valid Delay Timing . . . . . . . . . . . . . . . . . . . . . . 280 Reject Timing - External PHY MII @ 25 MHz . . . . . . . . . . . . . . . . . . . . . . . 281 Reject Timing - External PHY MII @ 2.5 MHz 281 Receive Frame Tag Timing with Media Independent Interface . . . . . . . . . 282 LAPP Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 LAPP 3 Buffer Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 LAPP Timeline for Two-Interrupt Method . . . . . . . . . . . . . . . . . . . . . . . . . . 292 LAPP 3 Buffer Grouping for Two-interrupt Method . . . . . . . . . . . . . . . . . . 293 Am79C973/Am79C975 P R E L I M I N A R Y LIST OF TABLES Table 1. Interrupt Flags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Table 2. SDI Settings for Transceiver Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Table 3. Slave Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Table 4. Master Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Table 5. Descriptor Read Sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Table 6. Descriptor Write Sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Table 7. Receive Address Match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Table 8. Encoder Code-Group Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Table 9. Decoder Code-Group Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Table 10. Auto-Negotiation Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Table 11. EADI Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Table 12. Am29Fxxx Flash Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Table 13. Am79C973 EEPROM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Table 14. Am79C975 EEPROM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Table 15. LED Default Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Table 16. IEEE 1149.1 Supported Instruction Summary . . . . . . . . . . . . . . . . . . . . . . 106 Table 17. BSR Mode Of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Table 18. Device ID Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Table 19. PCI Configuration Space Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Table 20. I/O Map In Word I/O Mode (DWIO = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Table 21. Legal I/O Accesses in Word I/O Mode (DWIO = 0) . . . . . . . . . . . . . . . . . . . 111 Table 22. I/O Map In DWord I/O Mode (DWIO =1). . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Table 23. Legal I/O Accesses in Double Word I/O Mode (DWIO =1). . . . . . . . . . . . . 111 Table 24. Loopback Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Table 25. Software Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Table 26. Receive Watermark Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Table 27. Transmit Start Point Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Table 28. Transmit Watermark Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Table 29. BCR Registers (Am79C973) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Table 30. BCR Registers (Am79C975) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Table 31. ROMTNG Programming Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Table 32. Interface Pin Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Table 33. Software Styles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Table 34. SRAM_BND Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Table 35. EBCS Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Table 36. CLK_FAC Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Table 37. FMDC Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Table 38. APDW Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Table 39. Am79C973/Am79C975 Internal PHY Management Register Set . . . . . . . 193 Table 40. ANR0: PHY Control Register (Register 0) . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Table 41. ANR1: PHY Status Register (Register 1) . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Table 42. ANR2: PHY Identifier (Register 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Table 43. ANR3: PHY Identifier (Register 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Table 44. ANR4: Auto-Negotiation Advertisement Register (Register 4) . . . . . . . . . . 197 Table 45. ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) - Base Page Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Table 46. ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) - Next Page Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Am79C973/Am79C975 15 P R E L I M I N A R Y Table 47. ANR6: Auto-Negotiation Expansion Register (Register 6) . . . . . . . . . . . . . 199 Table 48. ANR7: Auto-Negotiation Next Page Register (Register 7) . . . . . . . . . . . . . 199 Table 49. ANR16: INTERRUPT Status and Enable Register (Register 16) . . . . . . . . 200 Table 50. ANR17: PHY Control/Status Register (Register 17) . . . . . . . . . . . . . . . . . . 201 Table 51. ANR18: Descrambler Resynchronization Timer (Register 18) . . . . . . . . . . 202 Table 52. ANR19: PHY Management Extension Register (Register 19) . . . . . . . . . . . 202 Table 53. ANR24: Summary Status Register (Register 24) . . . . . . . . . . . . . . . . . . . . 203 Table 54. Initialization Block (SSIZE32 = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Table 55. Initialization Block (SSIZE32 = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Table 56. R/TLEN Decoding (SSIZE32 = 0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Table 57. R/TLEN Decoding (SSIZE32 = 1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Table 58. Receive Descriptor (SWSTYLE = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Table 59. Receive Descriptor (SWSTYLE = 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Table 60. Receive Descriptor (SWSTYLE = 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Table 61. Transmit Descriptor (SWSTYLE = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Table 62. Transmit Descriptor (SWSTYLE = 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Table 63. Transmit Descriptor (SWSTYLE = 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Table 64. Clock (XTAL1, XCLK = 1) Switching Characteristics . . . . . . . . . . . . . . . . . 231 Table 65. Crystal (XTAL1, XTAL2, XCLK = 0) Requirements . . . . . . . . . . . . . . . . . . 231 Table 66. Crystal (XTAL1, XTAL2, XCLK = 0) Requirements . . . . . . . . . . . . . . . . . . 231 Table 67. Recommended Magnetics Vendors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Table 68. Auto-Negotiation Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Table 69. EADI Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Table 70. MII Management Register Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Table 71. MII Management Control Register (Register 0) . . . . . . . . . . . . . . . . . . . . . . 274 Table 72. MII Management Status Register (Register 1) . . . . . . . . . . . . . . . . . . . . . . 275 Table 73. Auto-Negotiation Advertisement Register (Register 4) . . . . . . . . . . . . . . . . 276 Table 74. Technology Ability Field Bit Assignments. . . . . . . . . . . . . . . . . . . . . . . . . . 276 Table 75. Auto-Negotiation Link Partner Ability Register (Register 5) - Base Page Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Table 76. Registers for Alternative Initialization Method (Note 1) . . . . . . . . . . . . . . . . 283 16 Am79C973/Am79C975 P R E L I M I N A R Y RELATED AMD PRODUCTS Part No. Description Controllers Am79C90 CMOS Local Area Network Controller for Ethernet (C-LANCETM) Integrated Controllers Am79C930 PCnetTM-Mobile Single Chip Wireless LAN Media Access Controller Am79C940 Media Access Controller for Ethernet (MACETM) Am79C961A PCnet-ISA II Full Duplex Single-Chip Ethernet Controller for ISA Bus Am79C965 PCnet-32 Single-Chip 32-Bit Ethernet Controller for 486 and VL Buses Am79C970A PCnet-PCI II Full Duplex Single-Chip Ethernet Controller for PCI Local Bus Am79C971 PCnet-FAST Single-Chip Full-Duplex 10/100 Mbps Ethernet Controller for PCI Local Bus Am79C972 PCnet-FAST+ Enhanced 10/100 Mbps PCI Ethernet Controller with OnNow Support Manchester Encoder/Decoder Am7992B Serial Interface Adapter (SIA) Physical Layer Devices (Single-Port) Am7996 IEEE 802.3/Ethernet/Cheapernet Transceiver Am79761 Physical Layer 10-Bit Transceiver for Gigabit Ethernet (GigaPHYTM-SD) Am79C98 Twisted Pair Ethernet Transceiver (TPEX) Am79C100 Twisted Pair Ethernet Transceiver Plus (TPEX+) Physical Layer Devices (Multi-Port) Am79C871 Quad Fast Ethernet Transceiver for 100BASE-X Repeaters (QFEXrTM) Am79C988A Quad Integrated Ethernet Transceiver (QuIETTM) Am79C989 Quad Ethernet Switching Transceiver (QuESTTM) Integrated Repeater/Hub Devices Am79C981 Integrated Multiport Repeater Plus (IMR+) Am79C982 Basic Integrated Multiport Repeater (bIMR) Am79C983 Integrated Multiport Repeater 2 (IMR2TM) Am79C984A Enhanced Integrated Multiport Repeater (eIMRTM) Am79C985 Enhanced Integrated Multiport Repeater Plus (eIMR+TM) Am79C987 Hardware Implemented Management Information Base (HIMIBTM) Am79C973/Am79C975 17 P R E L I M I N A R Y 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 C/BE3 AD24 AD25 VSSB AD26 VDD_PCI AD27 AD28 AD29 AD30 VSS VSSB AD31 VDD_PCI REQ GNT CLK RST INTA PG VDD TDI VSSB TDO VDDB TMS TCK RWU WUMI PME VSS EAR EECS VSSB EESK/LED1/SFBD LED2/MIIRXFRTGE VDDB XCLK/XTAL VSSB EED1/LED0 CONNECTION DIAGRAM (PQR160) - Am79C973 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Am79C973 PQR160 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 EEDO/LED3/MIIRXFRTGD DVSSP DVDDP RXDVDDRX RX+ SDIDVSSX SDI+ TXDVDDTX TX+ DVDDD IREF DVSSD DVDDA DVDDCO XTAL1 XTAL2 VDDB NC VSSB NC VDD NC VSSB VAUXDET EBD0/RXD0 EBD1/RXD1 EBD2/RXD2 VSS EBD3/RXD3 VDDB EBD4/RX_DV EBD5/RX_CLK EBD6/RX_ER VSSB EBD7/TX_CLK EBDA15/COL EBDA14/CRS AD8 C/BE0 VSSB AD7 VDD_PCI AD6 AD5 VDD AD4 AD3 VSSB AD2 VDD_PCI AD1 AD0 VSS EROMCS EBWE AS_EBOE EBCLK EBUA_EBA0 VSSB EBUA_EBA1 VDD VDDB EBUA_EBA2 EBUA_EBA3 EBUA_EBA4 EBUA_EBA5/MDC EBUA_EBA6/PHY_RST EBUA_EBA7/TX_ER VSS EBDA8/TXD0 VSSB EBDA9/TXD1 EBDA10/TXD2 VDDB EBDA11/TXD3 EBDA12/TX_EN EBDA13/MDIO 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 IDSEL AD23 VSSB AD22 VDD_PCI AD21 AD20 VDD AD19 AD18 VSSB AD17 VDD_PCI AD16 C/BE2 VSS FRAME IRDY VSSB TRDY VDD_PCI DEVSEL STOP VDD PERR SERR VSSB PAR VDD_PCI C/BE1 AD15 VSS AD14 AD13 VSSB AD12 AD11 VDD_PCI AD10 AD9 21510D-2 Pin 1 is marked for orientation. 18 Am79C973/Am79C975 P R E L I M I N A R Y Am79C973 PQL176 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 99 98 97 96 95 94 93 92 91 90 89 NC NC EEDO/LED3/MIIRXFRTGD DVSSP DVDDP RXDVDDRX RX+ SDIDVSSX SDI+ TXDVDDTX TX+ DVDDD IREF DVSSD DVDDA DVDDCO XTAL1 XTAL2 VDDB NC VSSB NC VDD NC VSSB VAUXDET EBD0/RXD0 EBD1/RXD1 EBD2/RXD2 VSS EBD3/RXD3 VDDB EBD4/RX_DV EBD5/RX_CLK EBD6/RX_ER VSSB EBD7/TX_CLK EBDA15/COL EBDA14/CRS NC NC 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 NC NC AD8 C/BE0 VSSB AD7 VDD_PCI AD6 AD5 VDD AD4 AD3 VSSB AD2 VDD_PCI AD1 AD0 VSS EROMCS EBWE AS_EBOE EBCLK EBUA_EBA0 VSSB EBUA_EBA1 VDD VDDB EBUA_EBA2 EBUA_EBA3 EBUA_EBA4 EBUA_EBA5/MDC EBUA_EBA6/PHY_RST EBUA_EBA7/TX_ER VSS EBDA8/TXD0 VSSB EBDA9/TXD1 EBDA10/TXD2 VDDB EBDA11/TXD3 EBDA12/TX_EN EBDA13/MDIO NC NC NC NC IDSEL AD23 VSSB AD22 VDD_PCI AD21 AD20 VDD AD19 AD18 VSSB AD17 VDD_PCI AD16 C/BE2 VSS FRAME IRDY VSSB TRDY VDD_PCI DEVSEL STOP VDD PERR SERR VSSB PAR VDD_PCI C/BE1 AD15 VSS AD14 AD13 VSSB AD12 AD11 VDD_PCI AD10 AD9 NC NC 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 NC NC C/BE3 AD24 AD25 VSSB AD26 VDD_PCI AD27 AD28 AD29 AD30 VSS VSSB AD31 VDD_PCI REQ GNT CLK RST INTA PG VDD TDI VSSB TDO VDDB TMS TCK RWU WUMI PME VSS EAR EECS VSSB EESK/LED1/SFBD LED2/MIIRXFRTGE VDDB XCLK/XTAL VSSB EED1/LED0 NC NC CONNECTION DIAGRAM (PQL176) Am79C973 21510D-3 Pin 1 is marked for orientation. Am79C973/Am79C975 19 P R E L I M I N A R Y 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 C/BE3 AD24 AD25 VSSB AD26 VDD_PCI AD27 AD28 AD29 AD30 VSS VSSB AD31 VDD_PCI REQ GNT CLK RST INTA PG VDD TDI VSSB TDO VDDB TMS TCK RWU WUMI PME VSS EAR EECS VSSB EESK/LED1/SFBD LED2/MIIRXFRTGE VDDB XCLK/XTAL VSSB EED1/LED0 CONNECTION DIAGRAM (PQR160) - Am79C975 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Am79C975 PQR160 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 EEDO/LED3/MIIRXFRTGD DVSSP DVDDP RXDVDDRX RX+ SDIDVSSX SDI+ TXDVDDTX TX+ DVDDD IREF DVSSD DVDDA DVDDCO XTAL1 XTAL2 VDDB MCLOCK VSSB MDATA VDD MIRQ VSSB VAUXDET EBD0/RXD0 EBD1/RXD1 EBD2/RXD2 VSS EBD3/RXD3 VDDB EBD4/RX_DV EBD5/RX_CLK EBD6/RX_ER VSSB EBD7/TX_CLK EBDA15/COL EBDA14/CRS AD8 C/BE0 VSSB AD7 VDD_PCI AD6 AD5 VDD AD4 AD3 VSSB AD2 VDD_PCI AD1 AD0 VSS EROMCS EBWE AS_EBOE EBCLK EBUA_EBA0 VSSB EBUA_EBA1 VDD VDDB EBUA_EBA2 EBUA_EBA3 EBUA_EBA4 EBUA_EBA5/MDC EBUA_EBA6/PHY_RST EBUA_EBA7/TX_ER VSS EBDA8/TXD0 VSSB EBDA9/TXD1 EBDA10/TXD2 VDDB EBDA11/TXD3 EBDA12/TX_EN EBDA13/MDIO 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 IDSEL AD23 VSSB AD22 VDD_PCI AD21 AD20 VDD AD19 AD18 VSSB AD17 VDD_PCI AD16 C/BE2 VSS FRAME IRDY VSSB TRDY VDD_PCI DEVSEL STOP VDD PERR SERR VSSB PAR VDD_PCI C/BE1 AD15 VSS AD14 AD13 VSSB AD12 AD11 VDD_PCI AD10 AD9 21510D-4 Pin 1 is marked for orientation. 20 Am79C973/Am79C975 P R E L I M I N A R Y Am79C975 PQL176 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 99 98 97 96 95 94 93 92 91 90 89 NC NC EEDO/LED3/MIIRXFRTGD DVSSP DVDDP RXDVDDRX RX+ SDIDVSSX SDI+ TXDVDDTX TX+ DVDDD IREF DVSSD DVDDA DVDDCO XTAL1 XTAL2 VDDB MCLOCK VSSB MDATA VDD MIRQ VSSB VAUXDET EBD0/RXD0 EBD1/RXD1 EBD2/RXD2 VSS EBD3/RXD3 VDDB EBD4/RX_DV EBD5/RX_CLK EBD6/RX_ER VSSB EBD7/TX_CLK EBDA15/COL EBDA14/CRS NC NC 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 NC NC AD8 C/BE0 VSSB AD7 VDD_PCI AD6 AD5 VDD AD4 AD3 VSSB AD2 VDD_PCI AD1 AD0 VSS EROMCS EBWE AS_EBOE EBCLK EBUA_EBA0 VSSB EBUA_EBA1 VDD VDDB EBUA_EBA2 EBUA_EBA3 EBUA_EBA4 EBUA_EBA5/MDC EBUA_EBA6/PHY_RST EBUA_EBA7/TX_ER VSS EBDA8/TXD0 VSSB EBDA9/TXD1 EBDA10/TXD2 VDDB EBDA11/TXD3 EBDA12/TX_EN EBDA13/MDIO NC NC NC NC IDSEL AD23 VSSB AD22 VDD_PCI AD21 AD20 VDD AD19 AD18 VSSB AD17 VDD_PCI AD16 C/BE2 VSS FRAME IRDY VSSB TRDY VDD_PCI DEVSEL STOP VDD PERR SERR VSSB PAR VDD_PCI C/BE1 AD15 VSS AD14 AD13 VSSB AD12 AD11 VDD_PCI AD10 AD9 NC NC 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 NC NC C/BE3 AD24 AD25 VSSB AD26 VDD_PCI AD27 AD28 AD29 AD30 VSS VSSB AD31 VDD_PCI REQ GNT CLK RST INTA PG VDD TDI VSSB TDO VDDB TMS TCK RWU WUMI PME VSS EAR EECS VSSB EESK/LED1/SFBD LED2/MIIRXFRTGE VDDB XCLK/XTAL VSSB EED1/LED0 NC NC CONNECTION DIAGRAM (PQL176) - Am79C975 21510D-5 Pin 1 is marked for orientation. Am79C973/Am79C975 21 P R E L I M I N A R Y PIN DESIGNATIONS (PQR160) (Am79C973/Am79C975) Listed By Pin Number Pin No. 1 Pin Name IDSEL Pin No. 41 Pin Name AD8 Pin No. 81 Pin Name EBDA14/CRS Pin No. 121 Pin Name EEDI/LED0 2 3 AD23 VSSB 42 43 C/BE0 VSSB 82 83 EBDA15/COL EBD7/TX_CLK 122 123 VSSB XCLK/XTAL 4 5 AD22 VDD_PCI 44 45 AD7 VDD_PCI 84 85 VSSB EBD6/RX_ER 124 125 VDDB LED2/MIIRXFRTGE 6 7 AD21 AD20 46 47 AD6 AD5 86 87 EBD5/RX_CLK EBD4/RX_DV 126 127 EESK/LED1/SFDB VSSB 8 9 VDD AD19 48 49 VDD AD4 88 89 VDDB EBD3/RXD3 128 129 EECS EAR 10 11 AD18 VSSB 50 51 AD3 VSSB 90 91 VSS EBD2/RXD2 130 131 VSS PME 12 13 AD17 VDD_PCI 52 53 AD2 VDD_PCI 92 93 EBD1/RXD1 EBD0/RXD0 132 133 WUMI RWU 14 15 AD16 C/BE2 54 55 AD1 AD0 94 95 VAUXDET VSSB 134 135 TCK TMS 16 17 VSS FRAME 56 57 VSS EROMCS 96 97 MIRQ (see Note) VDD 136 137 VDDB TDO 18 19 IRDY VSSB 58 59 EBWE AS_EBOE 98 99 MDATA (see Note) VSSB 138 139 VSSB TDI 20 21 TRDY VDD_PCI 60 61 EBCLK EBUA_EBA0 100 101 MCLOCK (see Note) VDDB 140 141 VDD PG 22 DEVSEL 62 VSSB 102 XTAL2 142 INTA 23 24 STOP VDD 63 64 EBUA_EBA1 VDD 103 104 XTAL1 DVDDCO 143 144 RST CLK 25 26 PERR SERR 65 66 VDDB EBUA_EBA2 105 106 DVDDA DVSSD 145 146 GNT REQ 27 28 VSSB PAR 67 68 EBUA_EBA3 EBUA_EBA4 107 108 IREF DVDDD 147 148 VDD_PCI AD31 29 VDD_PCI 69 109 TX+ 149 VSSB 30 C/BE1 70 110 DVDDTX 150 VSS 31 AD15 71 EBUA_EBA5/MDC EBUA_EBA6/ PHY_RST EBUA_EBA7/TX_ER 111 TX- 151 AD30 32 33 VSS AD14 72 73 VSS EBDA8/TXD0 112 113 SDI+ DVSSX 152 153 AD29 AD28 34 35 AD13 VSSB 74 75 VSSB EBDA9/TXD1 114 115 SDIRX+ 154 155 AD27 VDD_PCI 36 37 AD12 AD11 76 77 EBDA10/TXD2 VDDB 116 117 DVDDRX RX- 156 157 AD26 VSSB 38 39 VDD_PCI AD10 78 79 EBDA11/TXD3 EBDA12/TX_EN 118 119 DVDDP DVSSP 158 159 AD25 AD24 40 AD9 80 EBDA13/MDIO 120 EEDO/LED3/ MIIRXFRTGD 160 C/BE3 Note: For the Am79C973 controller, pins 96, 98, and 100 are no connects (NC). 22 Am79C973/Am79C975 P R E L I M I N A R Y PIN DESIGNATIONS (PQL176) (Am79C973/Am79C975) Listed By Pin Number Pin No. 1 Pin Name NC Pin No. 45 Pin Name NC Pin No. 89 Pin Name NC Pin No. 133 Pin Name NC 2 3 NC IDSEL 46 47 NC AD8 90 91 NC EBDA14/CRS 134 135 NC EEDI/LED0 4 5 AD23 VSSB 48 49 C/BE0 VSSB 92 93 EBDA15/COL EBD7/TX_CLK 136 137 VSSB XCLK/XTAL 6 7 AD22 VDD_PCI 50 51 AD7 VDD_PCI 94 95 VSSB EBD6/RX_ER 138 139 VDDB LED2/MIIRXFRTGE 8 9 AD21 AD20 52 53 AD6 AD5 96 97 EBD5/RX_CLK EBD4/RX_DV 140 141 EESK/LED1/SFDB VSSB 10 11 VDD AD19 54 55 VDD AD4 98 99 VDDB EBD3/RXD3 142 143 EECS EAR 12 13 AD18 VSSB 56 57 AD3 VSSB 100 101 VSS EBD2/RXD2 144 145 VSS PME 14 15 AD17 VDD_PCI 58 59 AD2 VDD_PCI 102 103 EBD1/RXD1 EBD0/RXD0 146 147 WUMI RWU 16 17 AD16 C/BE2 60 61 AD1 AD0 104 105 VAUXDET VSSB 148 149 TCK TMS 18 19 VSS FRAME 62 63 VSS EROMCS 106 107 MIRQ (see Note) VDD 150 151 VDDB TDO 20 21 IRDY VSSB 64 65 EBWE AS_EBOE 108 109 MDATA (see Note) VSSB 152 153 VSSB TDI 22 TRDY 66 EBCLK 110 MCLOCK (see Note) 154 VDD 23 24 VDD_PCI DEVSEL 67 68 EBUA_EBA0 VSSB 111 112 VDDB XTAL2 155 156 PG INTA 25 26 STOP VDD 69 70 EBUA_EBA1 VDD 113 114 XTAL1 DVDDCO 157 158 RST CLK 27 28 PERR SERR 71 72 VDDB EBUA_EBA2 115 116 DVDDA DVSSD 159 160 GNT REQ 29 30 VSSB PAR 73 74 EBUA_EBA3 EBUA_EBA4 117 118 IREF DVDDD 161 162 VDD_PCI AD31 31 VDD_PCI 75 119 TX+ 163 VSSB 32 C/BE1 76 120 DVDDTX 164 VSS 33 AD15 77 EBUA_EBA5/MDC EBUA_EBA6/ PHY_RST EBUA_EBA7/TX_ER 121 TX- 165 AD30 34 35 VSS AD14 78 79 VSS EBDA8/TXD0 122 123 SDI+ DVSSX 166 167 AD29 AD28 36 37 AD13 VSSB 80 81 VSSB EBDA9/TXD1 124 125 SDIRX+ 168 169 AD27 VDD_PCI 38 39 AD12 AD11 82 83 EBDA10/TXD2 VDDB 126 127 DVDDRX RX- 170 171 AD26 VSSB 40 41 VDD_PCI AD10 84 85 EBDA11/TXD3 EBDA12/TX_EN 128 129 DVDDP DVSSP 172 173 AD25 AD24 42 AD9 86 EBDA13/MDIO 130 EEDO/LED3/ MIIRXFRTGD 174 C/BE3 43 44 NC NC 87 88 NC NC 131 132 NC NC 175 176 NC NC Note: For the Am79C973 controller, pins 106, 108, and 110 are no connects (NC). Am79C973/Am79C975 23 P R E L I M I N A R Y PIN DESIGNATIONS (PQR160, PQL176) Listed By Group Pin Name Type1 Pin Function Driver No. of Pins PCI Bus Interface AD[31:0] 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 STS6 1 FRAME Cycle Frame IO STS6 1 GNT Bus Grant I NA 1 IDSEL Initialization Device Select I NA 1 INTA Interrupt O OD6 1 IRDY Initiator Ready IO STS6 1 PAR Parity IO TS3 1 PERR Parity Error IO STS6 1 REQ Bus Request O TS3 1 RST Reset I NA 1 SERR System Error O OD6 1 STOP Stop IO STS6 1 TRDY Target Ready IO STS6 1 LED0 LED0 O LED 1 LED1 LED1 O LED 1 LED2 LED2 O LED 1 LED3 LED3 O LED 1 XCLK External Clock Source Select I NA 1 XTAL Crystal Select I NA 1 XTAL1 Crystal Input -25 MHz Clock Reference I NA 1 XTAL2 Crystal Output O XTAL 1 EECS Serial EEPROM Chip Select O O6 1 EEDI Serial EEPROM Data In O LED 1 EEDO Serial EEPROM Data Out I NA 1 EESK Serial EEPROM Clock IO LED 1 Board Interface EEPROM Interface Expansion ROM Interface AS_EBOE Address Strobe/Expansion Bus Output Enable O O6 1 EBCLK Expansion Bus Clock I NA 1 EBD[7:0] Expansion Bus Data [7:0] IO TS6 8 EBDA[15:8] Expansion Bus Data/Address [15:8] IO TS6 8 EBUA_EBA[7:0] Expansion Bus Upper Address /Expansion Bus Address [7:0] O O6 8 EBWE Expansion Bus Write Enable O O6 1 EROMCS Expansion Bus ROM Chip Select O O6 1 1. Not including test features 24 Am79C973/Am79C975 P R E L I M I N A R Y PIN DESIGNATIONS Listed By Group Pin Name Type1 Pin Function Driver No. of Pins Physical Layer Interface (PHY) IREF Internal Current Reference I NA 1 RX TX I O NA NA 2 2 SDI Signal Detect Input Power Management Interface I NA 2 RWU PME Remote Wake Up Power Management Event O O O6 OD6 1 1 WUMI PG Wake-Up Mode Indication Power Good O I OD6 NA 1 1 VAUXDET Auxiliary Power Detect IEEE 1149.1 Test Access Port Interface (JTAG) I NA 1 TCK TDI Test Clock Test Data In I I NA NA 1 1 TDO TMS Test Data Out Test Mode Select O I TS6 NA 1 1 Serial Receive Data Serial Transmit Data External Address Detection Interface (EADI) EAR External Address Reject Low I NA 1 SFBD MIIRXFRTGD Start Frame Byte Delimiter MII Receive Frame Tag Data O I LED NA 1 1 MIIRXFRTGE MII Receive Frame Tag Enable I NA 1 Media Independent Interface (MII) COL Collision I NA 1 CRS MDC Carrier Sense Management Data Clock I O NA OMII2 1 1 MDIO RX_CLK Management Data I/O Receive Clock I/O I TSMII NA 1 1 RXD[3:0] RX_DV Receive Data Receive Data Valid I I NA NA 4 1 RX_ER TX_CLK Receive Error Transmit Clock I I NA NA 1 1 TXD[3:0] TX_EN Transmit Data Transmit Data Enable O O OMII1 OMII1 4 1 TX_ER Transmit Error Serial Management Interface (SMI) - Am79C975 only O OMII1 1 MCLOCK MDATA SMI Clock SMI Data I/O I/O OD6 OD6 1 1 MIRQ SMI Interrupt O OD6 1 Note: 1. Not including test features. Am79C973/Am79C975 25 P R E L I M I N A R Y PIN DESIGNATIONS Listed by Group (Concluded) Pin Name Type1 Pin Function Driver No. of Pins Power Supplies (MAC, PCI, Buffer, ROM) VDD Digital Power P NA 6 VSS VDDB Digital Ground I/O Buffer Power P P NA NA 7 6 VSSB VDD_PCI I/O Buffer Ground PCI I/O Buffer Power P P NA NA 17 9 Power Supplies (PHY)2 DVDDA Analog PLL Power P NA 1 DVDDD, DVDDP DVSSD, DVSSP Physical Data Transceiver (PDX) Power, IREF Physical Data Transceiver (PDX) Ground P P NA NA 2 2 DVDDTX, DVDDRX DVSSX PHY I/O Buffer Power PHY Ground P P NA NA 2 1 DVDDCO Crystal Oscillator Power P NA 1 Notes: 1. Not including test features. 2. PHY power and ground pins require careful decoupling to ensure proper device performance. 26 Am79C973/Am79C975 P R E L I M I N A R Y PIN DESIGNATIONS Listed By Driver Type A sustained tri-state signal is a low active signal that is driven high for one clock period before it is left floating. The following table describes the various types of output drivers used in the Am79C973/Am79C975 controller. All IOL and IOH values shown in the table apply to 3.3 V signaling. TX is a differential output driver. Its characteristics and those of XTAL2 output are described in the DC Characteristics section. Name Type IOL (mA) IOH (mA) LED LED 12 -0.4 50 OMII1 Totem Pole 4 -4 50 OMII2 Totem Pole 4 -4 390 O6 Totem Pole 6 -0.4 50 OD6 Open Drain 6 NA 50 STS6 Sustained Tri-State 6 -2 50 TS3 Tri-State 3 -2 50 TS6 Tri-State 6 -2 50 TSMII Tri-State 4 -4 470 Am79C973/Am79C975 Load (pF) 27 P R E L I M I N A R Y ORDERING INFORMATION Standard Products AMD standard products are available in several packages and operating ranges. The order number (Valid Combination) is formed by a combination of the elements below. AM79C973 AM79C975 K\V C \W ALTERNATE PACKAGING OPTION \W = Trimmed and formed in a tray TEMPERATURE RANGE C = Commercial (0 C to +70 C) PACKAGE TYPE K = Plastic Quad Flat Pack (PQR160) V = Thin Quad Flat Pack (PQL176) SPEED OPTION Not applicable DEVICE NUMBER/DESCRIPTION Am79C973/Am79C975 Single-Chip 10/100 Mbps PCI Ethernet Controller with Integrated PHY Valid Combinations AM79C973, AM79C975 28 KC\W, VC\W Valid Combinations 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. Am79C973/Am79C975 P R E L I M I N A R Y PIN DESCRIPTIONS PCI Interface AD[31:0] Address and Data Input/Output Address and data are multiplexed on the same bus interface pins. During the first clock of a transaction, AD[31:0] contain a physical address (32 bits). During the subsequent clocks, AD[31:0] contain data. Byte ordering is little endian by default. AD[7:0] are defined as the least significant byte (LSB) and AD[31:24] are defined as the most significant byte (MSB). For FIFO data transfers, the Am79C973/Am79C975 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 Am79C973/Am79C975 controller is a bus master, AD[31:2] will address the active Double Word (DWord). The Am79C973/Am79C975 controller always drives AD[1:0] to '00' during the address phase indicating linear burst order. When the Am79C973/Am79C975 controller is not a bus master, the AD[31:0] lines are continuously monitored to determine if an address match exists for slave transfers. During the data phase of the transaction, AD[31:0] are driven by the Am79C973/Am79C975 controller when performing bus master write and slave read operations. Data on AD[31:0] is latched by the Am79C973/Am79C975 controller when performing bus master read and slave write operations. When RST is active, AD[31:0] are inputs for NAND tree testing. C/BE[3:0] When RST is active, CLK is an input for NAND tree testing. DEVSEL Device Select Output Input/ The Am79C973/Am79C975 controller drives DEVSEL when it detects a transaction that selects the device as a target. The device samples DEVSEL to detect if a target claims a transaction that the Am79C973/Am79C975 controller has initiated. When RST is active, DEVSEL is an input for NAND tree testing. FRAME Cycle Frame Input/Output FRAME is driven by the Am79C973/Am79C975 controller when it is the bus master to indicate the beginning and duration of a transaction. FRAME is asserted to indicate a bus transaction is beginning. FRAME is asserted while data transfers continue. FRAME is deasserted before the final data phase of a transaction. When the Am79C973/ Am79C975 controller is in slave mode, it samples FRAME to determine the address phase of a transaction. When RST is active, FRAME is an input for NAND tree testing. GNT Bus Command and Byte Enables Input/Output Bus Grant Bus command and byte enables are multiplexed on the same bus interface 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[7:0]) and C/BE3 applies to byte 3 (AD[31:24]). The function of the byte enables is independent of the byte ordering mode (BSWP, CSR3, bit 2). When RST is active, C/BE[3:0] are inputs for NAND tree testing. Input This clock is used to drive the system bus interface and the internal buffer management unit. All bus signals are sampled on the rising edge of CLK and all parameters are defined with respect to this edge. The Am79C973/ Input This signal indicates that the access to the bus has been granted to the Am79C973/Am79C975 controller. The Am79C973/Am79C975 controller supports bus parking. When the PCI bus is idle and the system arbiter asserts GNT without an active REQ from the Am79C973/ Am79C975 controller, the device will drive the AD[31:0], C/BE[3:0] and PAR lines. When RST is active, GNT is an input for NAND tree testing. IDSEL Initialization Device Select CLK Clock Am79C975 controller normally operates over a frequency range of 10 to 33 MHz on the PCI bus due to networking demands. See the Frequency Demands for Network Operation section for details. The Am79C973/Am79C975 controller will support a clock frequency of 0 MHz after certain precautions are taken to ensure data integrity. This clock or a derivation is not used to drive any network functions. Input This signal is used as a chip select for the Am79C973/ Am79C975 controller during configuration read and write transactions. When RST is active, IDSEL is an input for NAND tree testing. Am79C973/Am79C975 29 P R E L I M I N A R Y INTA Interrupt Request . Table 1. Interrupt Flags Output An attention signal which indicates that one or more of the following status flags is set: EXDINT, IDON, MERR, MISS, MFCO, MPINT, RCVCCO, RINT, SINT, TINT, TXSTRT, UINT, MCCINT, MPDTINT, MAPINT, MREINT, and STINT. Each status flag has either a mask or an enable bit which allows for suppression of INTA assertion. Table 1 shows the flag descriptions. By default INTA is an open-drain output. For applications that need a high-active edge-sensitive interrupt signal, the INTA pin can be configured for this mode by setting INTLEVEL (BCR2, bit 7) to 1. Name Description Mask Bit Interrupt Bit EXDINT Excessive Deferral CSR5, bit 6 CSR5, bit 7 IDON Initialization Done CSR3, bit 8 CSR0, bit 8 MERR Memory Error CSR3, bit 11 CSR0, bit 11 MISS Missed Frame CSR3, bit 12 CSR0, bit 12 MFCO Missed Frame CSR4, bit 8 Count Overflow CSR4, bit 9 When RST is active, INTA is the output for NAND tree testing. MPINT Magic Packet Interrupt CSR5, bit 3 CSR5, bit 4 IRDY RCVCCO Receive Collision Count CSR4, bit 4 Overflow CSR4, bit 5 RINT Receive Interrupt CSR3, bit 10 CSR0, bit 10 SINT System Error CSR5, bit 10 CSR5, bit 11 TINT Transmit Interrupt CSR3, bit 9 CSR0, bit 9 TXSTRT Transmit Start CSR4, bit 2 CSR4, bit 3 UINT User Interrupt CSR4, bit 7 CSR4, bit 6 MCCINT MII Management Command Complete Interrupt CSR7, bit 4 CSR7, bit 5 MPDTINT MII PHY Detect CSR7, bit 0 Transition Interrupt CSR7, bit 1 MAPINT MII Auto-Poll Interrupt CSR7, bit 6 CSR7, bit 7 MREINT MII Management CSR7, bit 8 Frame Read Error Interrupt CSR7, bit 9 STINT Software Timer CSR7, bit 10 Interrupt CSR7, bit 11 Initiator Ready Input/Output IRDY indicates the ability of the initiator of the transaction to complete the current data phase. IRDY is used in conjunction with TRDY. Wait states are inserted until both IRDY and TRDY are asserted simultaneously. A data phase is completed on any clock when both IRDY and TRDY are asserted. When the Am79C973/Am79C975 controller is a bus master, it asserts IRDY during all write data phases to indicate that valid data is present on AD[31:0]. During all read data phases, the device asserts IRDY to indicate that it is ready to accept the data. When the Am79C973/Am79C975 controller is the target of a transaction, it checks IRDY during all write data phases to determine if valid data is present on AD[31:0]. During all read data phases, the device checks IRDY to determine if the initiator is ready to accept the data. When RST is active, IRDY is an input for NAND tree testing. PAR Parity Input/Output Parity is even parity across AD[31:0] and C/BE[3:0]. When the Am79C973/Am79C975 controller is a bus master, it generates parity during the address and write data phases. It checks parity during read data phases. When the Am79C973/Am79C975 controller operates in slave mode, it checks parity during every address phase. When it is the target of a cycle, it checks parity during write data phases and it generates parity during read data phases. When RST is active, PAR is an input for NAND tree testing. 30 PERR Parity Error Input/Output During any slave write transaction and any master read transaction, the Am79C973/Am79C975 controller asserts PERR when it detects a data parity error and reporting of the error is enabled by setting PERREN (PCI Command register, bit 6) to 1. During any master write transaction, the Am79C973/Am79C975 controller monitors PERR to see if the target reports a data parity error. When RST is active, PERR is an input for NAND tree testing. Am79C973/Am79C975 P R E L I M I N A R Y REQ Bus Request TRDY Input/Output Target Ready Input/Output The Am79C973/Am79C975 controller asserts REQ pin as a signal that it wishes to become a bus master. REQ is driven high when the Am79C973/Am79C975 controller does not request the bus. In Power Management mode, the REQ pin will not be driven. TRDY indicates the ability of the target of the transaction to complete the current data phase. Wait states are inserted until both IRDY and TRDY are asserted simultaneously. A data phase is completed on any clock when both IRDY and TRDY are asserted. When RST is active, REQ is an input for NAND tree testing. When the Am79C973/Am79C975 controller is a bus master, it checks TRDY during all read data phases to determine if valid data is present on AD[31:0]. During all write data phases, the device checks TRDY to determine if the target is ready to accept the data. RST Reset Input When RST is asserted LOW and the PG pin is HIGH, then the Am79C973/Am79C975 controller performs an inter nal system reset of the type H_RESET (HARDWARE_RESET, see section on RESET). RST must be held for a minimum of 30 clock periods. While in the H_RESET state, the Am79C973/Am79C975 controller will disable or deassert all outputs. RST may be asynchronous to clock when asserted or deasserted. When the Am79C973/Am79C975 controller is the target of a transaction, it asserts TRDY during all read data phases to indicate that valid data is present on AD[31:0]. During all write data phases, the device asserts TRDY to indicate that it is ready to accept the data. When the PG pin is LOW, RST disables all of the PCI pins except the PME pin. PME When RST is LOW and PG is HIGH, NAND tree testing is enabled. PME is an output that can be used to indicate that a power management event (a Magic Packet, an OnNow pattern match, or a change in link state) has been detected. The PME pin is asserted when either SERR System Error Output Dur ing any slave transaction, the Am79C973/ Am79C975 controller asserts SERR when it detects an address parity error, and reporting of the error is enabled by setting PERREN (PCI Command register, bit 6) and SERREN (PCI Command register, bit 8) to 1. When RST is active, TRDY is an input for NAND tree testing. Power Management Event Output, Open Drain 1. PME_STATUS and PME_EN are both 1, or 2. PME_EN_OVR and MPMAT are both 1, or 3. PME_EN_OVR and LCDET are both 1. The PME signal is asynchronous with respect to the PCI clock. By default SERR is an open-drain output. For component test, it can be programmed to be an active-high totem-pole output. VAUXDET When RST is active, SERR is an input for NAND tree testing. VAUXDET is used to sense the presence of the auxiliary power and correctly report the capability of asserting PME signal in D3 cold. The VAUXDET pin should be connected to the auxiliary power supply or to ground through a resistor. If PCI power is used to power the device, a pull-down resistor is required. For systems that provide auxiliary power, the VAUXDET pin should be tied to auxiliary power through a pull-up resistor. STOP Stop Input/Output In slave mode, the Am79C973/Am79C975 controller drives the STOP signal to inform the bus master to stop the current transaction. In bus master mode, the Am79C973/Am79C975 controller checks STOP to determine if the target wants to disconnect the current transaction. When RST is active, STOP is an input for NAND tree testing. Auxiliary Power Detect Input Board Interface Note: Before programming the LED pins, see the description of LEDPE in BCR2, bit 12. LED0 LED0 Output This output is designed to directly drive an LED. By default, LED0 indicates an active link connection. This pin can also be programmed to indicate other network sta- Am79C973/Am79C975 31 P R E L I M I N A R Y tus (see BCR4). The LED0 pin polarity is programmable, but by default it is active LOW. When the LED0 pin polarity is programmed to active LOW, the output is an open drain driver. When the LED0 pin polarity is programmed to active HIGH, the output is a totem pole driver. Note: The LED0 pin is multiplexed with the EEDI pin. LED1 LED1 Output This output is designed to directly drive an LED. By default, LED1 indicates receive activity on the network. This pin can also be programmed to indicate other network status (see BCR5). The LED1 pin polarity is programmable, but by default, it is active LOW. When the LED1 pin polarity is programmed to active LOW, the output is an open drain driver. When the LED1 pin polarity is programmed to active HIGH, the output is a totem pole driver. Note: The LED1 pin is multiplexed with the EESK and SFBD pins. The LED1 pin is also used during EEPROM AutoDetection to determine whether or not an EEPROM is present at the Am79C973/Am79C975 controller interface. At the last rising edge of CLK while RST is active LOW, LED1 is sampled to determine the value of the EEDET bit in BCR19. It is important to maintain adequate hold time around the rising edge of the CLK at this time to ensure a correctly sampled value. A sampled HIGH value means that an EEPROM is present, and EEDET will be set to 1. A sampled LOW value means that an EEPROM is not present, and EEDET will be set to 0. 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. WARNING: The input signal level of LED1 must be insured for correct EEPROM detection before the deassertion of RST. LED2 LED2 Output This output is designed to directly drive an LED. This pin can be programmed to indicate various network status (see BCR6). The LED2 pin polarity is programmable, but by default it is active LOW. When the LED2 pin polarity is programmed to active LOW, the output is an open drain driver. When the LED2 pin polarity is programmed to active HIGH, the output is a totem pole driver. Note: The LED2 MIIRXFRTGE pin. 32 pin is multiplexed with the LED3 LED3 Output This output is designed to directly drive an LED. By default, LED3 indicates transmit activity on the network. This pin can also be programmed to indicate other network status (see BCR7). The LED3 pin polarity is programmable, but by default it is active LOW. When the LED3 pin polarity is programmed to active LOW, the output is an open drain driver. When the LED3 pin polarity is programmed to active HIGH, the output is a totem pole driver. Special attention must be given to the external circuitry attached to this pin. When this pin is used to drive an LED while an EEPROM is used in the system, then buffering maybe required between the LED3 pin and the LED circuit. If an LED circuit were directly attached to this pin, it may create an IOL requirement that could not be met by the serial EEPROM attached to this pin. If no EEPROM is included in the system design or low current LEDs are used, then the LED3 signal may be directly connected to an LED without buffering. For more details regarding LED connection, see the section on LED Support. Note: The LED3 pin is multiplexed with the EEDO and MIIRXFRTGD pins. PG Power Good Input The PG pin has two functions: (1) it puts the device into Magic PacketTM mode, and (2) it blocks any resets when the PCI bus power is off. When PG is LOW and either MPPEN or MPMODE is set to 1, the device enters the Magic Packet mode. When PG is LOW, a LOW assertion of the PCI RST pin will only cause the PCI interface pins (except for PME) to be put in the high impedance state. The internal logic will ignore the assertion of RST. When PG is HIGH, assertion of the PCI RST pin causes the controller logic to be reset and the configuration information to be loaded from the EEPROM. PG input should be kept high during the NAND tree testing. RWU Remote Wake Up Output RWU is an output that is asserted either when the controller is in the Magic Packet mode and a Magic Packet frame has been detected, or the controller is in the Link Change Detect mode and a Link Change has been detected. This pin can drive the external system management logic that causes the CPU to get out of a low power Am79C973/Am79C975 P R E L I M I N A R Y mode of operation. This pin is implemented for designs that do not support the PME function. read of the entire EEPROM, or indirectly by the host system by reading from BCR19, bit 0. Three bits that are loaded from the EEPROM into CSR116 can program the characteristics of this pin: Note: The EEDO pin is multiplexed with the LED3 and MIIRXFRTGD pins. 1. RWU_POL determines the polarity of the RWU signal. EESK 2. If RWU_GATE bit is set, RWU is forced to the high impedance state when PG input is LOW. This pin is designed to directly interface to a serial EEPROM that uses the 93C46 EEPROM interface protocol. EESK is connected to the EEPROM's clock pin. It is controlled by either the Am79C973/Am79C975 controller directly during a read of the entire EEPROM, or indirectly by the host system by writing to BCR19, bit 1. 3. RWU_DRIVER determines whether the output is open drain or totem pole. The internal power-on-reset signal forces this output into the high impedance state until after the polarity and drive type have been determined. Output This output, which is capable of driving an LED, is asserted when the device is in Magic Packet mode. It can be used to drive external logic that switches the device power source from the main power supply to an auxiliary power supply. EEPROM Interface EECS EEPROM Chip Select Output This pin is designed to directly interface to a serial EEPROM that uses the 93C46 EEPROM interface protocol. EECS is connected to the EEPROM's chip select pin. It is controlled by either the Am79C973/Am79C975 controller during command portions of a read of the entire EEPROM, or indirectly by the host system by writing to BCR19, bit 2. EEDI EEPROM Data In Output This pin is designed to directly interface to a serial EEPROM that uses the 93C46 EEPROM interface protocol. EEDI is connected to the EEPROM's data input pin. It is controlled by either the Am79C973/Am79C975 controller during command portions of a read of the entire EEPROM, or indirectly by the host system by writing to BCR19, bit 0. Note: The EEDI pin is multiplexed with the LED0 pin. EEDO EEPROM Data Out Output Note: The EESK pin is multiplexed with the LED1 and SFBD pins. WUMI Wake-Up Mode Indicator EEPROM Serial Clock Input This pin is designed to directly interface to a serial EEPROM that uses the 93C46 EEPROM interface protocol. EEDO is connected to the EEPROM's data output pin. It is controlled by either the Am79C973/ A m 7 9 C 9 7 5 A m 7 9 C9 7 3 / A m 7 9 C 9 7 5 A m 7 9 C 9 7 3 / Am79C975 controller during command portions of a The EESK pin is also used during EEPROM AutoDetection to determine whether or not an EEPROM is present at the Am79C973/Am79C975 controller interface. At the rising edge of the last CLK edge while RST is asserted, 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 1. A sampled LOW value means that an EEPROM is not present, and EEDET will be set to 0. 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 to resolve the EEDET setting. WARNING: The input signal level of EESK must be valid for correct EEPROM detection before the deassertion of RST. Expansion Bus Interface EBUA_EBA[7:0] Expansion Bus Upper Address/ Expansion Bus Address [7:0] Output The EBUA_EBA[7:0] pins provide the least and most significant bytes of address on the Expansion Bus. The most significant address byte (address bits [19:16] during boot device accesses) is valid on these pins at the beginning of a boot device access, at the rising edge of AS_EBOE. This upper address byte must be stored externally in a D flip-flop. During subsequent cycles of a boot device access, address bits [7:0] are present on these pins. All EBUA_EBA[7:0] outputs are forced to a constant level to conserve power while no access on the Expansion Bus is being performed. Note: EBUA_EBA[7:5] pins are multiplexed with the TX_ER, PHY_RST, and MDC pins. Am79C973/Am79C975 33 P R E L I M I N A R Y EBDA[15:8] Expansion Bus Data/Address [15:8] Output Input/ When EROMCS is asserted low, EBDA[15:8] contain address bits [15:8] for boot device accesses. The EBDA[15:8] signals are driven to a constant level to conserve power while no access on the Expansion Bus is being performed. CLK_FAC settings in BCR27. Refer to the SRAM Interface Bandwidth Requirements section for details on determining the required EBCLK frequency. If a clock source other than the EBCLK pin is programmed (BCR27, bits 5:3) to be used to run the Expansion Bus interface, this input should be tied to VDD through a 4.7 kW resistor. EBCLK is not used to drive the bus interface, internal buffer management unit, or the network functions. Note: EBDA[15:8] pins are multiplexed with the TXD[3:0], TX_EN, MDIO, CRS, and COL pins. Media Independent Interface (MII) EBD[7:0] TX_CLK Expansion Bus Data [7:0] Input/Output The EBD[7:0] pins provide data bits [7:0] for EPROM/ FLASH accesses. The EBD[7:0] signals are internally forced to a constant level to conserve power while no access on the Expansion Bus is being performed. Note: EBD[7:0] pins are multiplexed with the RXD[3:0], RX_DV, RX_CLK, RX_ER, and TX_CLK pins. EROMCS Expansion ROM Chip Select Output EROMCS serves as the chip select for the boot device. It is asserted low during the data phases of boot device accesses. AS_EBOE Address Strobe/Expansion Bus Output Enable Output AS_EBOE functions as the address strobe for the upper address bits on the EBUA_EBA[7:0] pins and as the output enable for the Expansion Bus. As an address strobe, a rising edge on AS_EBOE is supplied at the beginning of boot device accesses. This rising edge provides a clock edge for a `374 D-type edge-triggered flip-flop which must store the upper address byte during Expansion Bus accesses for EPROM/Flash. AS_EBOE is asserted active LOW during boot device read operations on the expansion bus and is deasserted during boot device write operations. EBWE Expansion Bus Write Enable Output EBWE provides the write enable for write accesses to the Flash device. EBCLK Expansion Bus Clock Input TX_CLK is a continuous clock input that provides the timing reference for the transfer of the TX_EN, TXD[3:0], and TX_ER signals out of the Am79C973/ Am79C975 device. TX_CLK must provide a nibble rate clock (25% of the network data rate). Hence, an MII transceiver operating at 10 Mbps must provide a TX_CLK frequency of 2.5 MHz and an MII transceiver operating at 100 Mbps must provide a TX_CLK frequency of 25 MHz. Note: The TX_CLK pin is multiplexed with the EBD7 pin. TXD[3:0] Transmit Data Output TXD[3:0] is the nibble-wide MII transmit data bus. Valid data is generated on TXD[3:0] on every TX_CLK rising edge while TX_EN is asserted. While TX_EN is deasserted, TXD[3:0] values are driven to a 0. TXD[3:0] transitions synchronous to TX_CLK rising edges. Note: The TXD[3:0] pins are multiplexed with the EBDA[11:8] pins. TX_EN Transmit Enable Output TX_EN indicates when the Am79C973/Am79C975 device is presenting valid transmit nibbles on the MII. While TX_EN is asserted, the Am79C973/Am79C975 device generates TXD[3:0] and TX_ER on TX_CLK rising edges. TX_EN is asserted with the first nibble of preamble and remains asserted throughout the duration of a packet until it is deasserted prior to the first TX_CLK following the final nibble of the frame. TX_EN transitions synchronous to TX_CLK rising edges. Note: The TX_EN pin is multiplexed with the EBDA12 pin. TX_ER Input EBCLK may be used as the fundamental clock to drive the Expansion Bus and internal SRAM access cycles. The actual internal clock used to drive the Expansion Bus cycles depends on the values of the EBCS and 34 Transmit Clock Transmit Error Output TX_ER is an output that, if asserted while TX_EN is asserted, instructs the MII PHY device connected to the Am79C973/Am79C975 device to transmit a code Am79C973/Am79C975 P R E L I M I N A R Y group error. TX_ER is unused and is reserved for future use and will always be driven to a logical zero. Note: The TX_ER pin is multiplexed with the EBUA_EBA7 pin. COL Collision Input COL is an input that indicates that a collision has been detected on the network medium. Note: The COL pin is multiplexed with the EBDA15 pin. CRS Carrier Sense Input CRS is an input that indicates that a non-idle medium, due either to transmit or receive activity, has been detected. Note: The CRS pin is multiplexed with the EBDA14 pin. RX_ER Receive Error Input RX_ER is an input that indicates that the MII transceiver device has detected a coding error in the receive frame currently being transferred on the RXD[3:0] pins. When RX_ER is asserted while RX_DV is asserted, a CRC error will be indicated in the receive descriptor for the incoming receive frame. RX_ER is ignored while RX_DV is deasserted. Special code groups generated on RXD while RX_DV is deasserted are ignored (e.g., Bad SSD in TX and IDLE in T4). RX_ER transitions are synchronous to RX_CLK rising edges. Note: The RX_ER pin is multiplexed with the EBD6 pin. MDC Management Data Clock Output MDC is a non-continuous clock output that provides a timing reference for bits on the MDIO pin. During MII management port operations, MDC runs at a nominal frequency of 2.5 MHz. When no management operations are in progress, MDC is driven LOW. The MDC is derived from the Time Base Clock. If the MII port is not selected, the MDC pin can be left floating. Note: The MDC EBUA_EBD5 pin. pin is multiplexed with the data portions of read data transfers. When an operation is not in progress on the management port, MDIO is not dr iven. MDIO transitions from the Am79C973/ Am79C975 controller are synchronous to MDC falling edges. If the PHY is attached through an MII physical connector, then the MDIO pin should be externally pulled down to V SS with a 10-k 5% resistor. If the PHY is on board, then the MDIO pin should be externally pulled up to VCC with a 10-k 5% resistor. Note: The MDIO pin is multiplexed with the EBDA13 pin. PHY_RST Physical Layer Reset Output PHY_RST is an output pin that is used to reset an external PHY. This output eliminates the need for a fan out buffer for the PCI RST signal, provides polarity for the specific external PHY used, and prevents the resetting of the external PHY when the PG input is LOW. The output polarity is determined by RST_POL bit (CSR 116, bit 0). Note: The PHY_RST pin is multiplexed with the EBUA_EBA6 pin. RX_CLK Receive Clock Input RX_CLK is a clock input that provides the timing reference for the transfer of the RX_DV, RXD[3:0], and RX_ER signals into the Am79C973/Am79C975 device. RX_CLK must provide a nibble rate clock (25% of the network data rate). Hence, when the Am79C973/ Am79C975 device is operating at 10 Mbps, it provides an RX_CLK frequency of 2.5 MHz, and at 100 Mbps it provides an RX_CLK frequency of 25 MHz. Note: The RX_CLK pin is multiplexed with the EBD5 pin. RXD[3:0] Receive Data Input RXD[3:0] is the nibble-wide MII-compatible receive data bus. Data on RXD[3:0] is sampled on every rising edge of RX_CLK while RX_DV is asserted. RXD[3:0] is ignored while RX_DV is de-asserted. Note: The RXD[3:0] pin is multiplexed with the EBD[3:0] pins. RX_DV MDIO Receive Data Valid Management Data I/O RX_DV is an input used to indicate that valid received data is being presented on the RXD[3:0] pins and RX_CLK is synchronous to the receive data. In order for a frame to be fully received by the Am79C973/ Am79C975 device, RX_DV must be asserted prior to the RX_CLK rising edge, when the first nibble of the Input/Output MDIO is the bidirectional MII management port data pin. MDIO is an output during the header portion of the management frame transfers and during the data portions of write transfers. MDIO is an input during the Am79C973/Am79C975 Input 35 P R E L I M I N A R Y Start of Frame Delimiter is driven on RXD[3:0], and must remain asserted until after the rising edge of RX_CLK, when the last nibble of the CRC is driven on RXD[3:0]. RX_DV must then be deasserted prior to the RX_CLK rising edge which follows this final nibble. RX_DV transitions are synchronous to RX_CLK rising edges. Note: The RX_DV pin is multiplexed with the EBD4 pin. External Address Detection Interface EAR External Address Reject Low Input The incoming frame will be checked against the internally active address detection mechanisms and the result of this check will be OR'd with the value on the EAR pin. The EAR pin is defined as REJECT. The pin value is OR'd with the internal address detection result to determine if the current frame should be accepted or rejected. The EAR pin must not be left unconnected, it should be tied to VDD through a 10-k 5% resistor. When RST is active, EAR is an input for NAND tree testing. SFBD Start Frame-Byte Delimiter Output An initial rising edge on the SFBD signal indicates that a start of valid data is present on the RXD[3:0] pins. SFBD will go high for one nibble time (400 ns when operating at 10 Mbps and 40 ns when operating at 100 Mbps) one RX_CLK period after RX_DV has been asserted and RX_ER is deasserted and the detection of the SFD (Start of Frame Delimiter) of a received frame. Data on the RXD[3:0] will be the start of the destination address field. SFBD will subsequently toggle every nibble time (1.25 MHz frequency when operating at 10 Mbps and 12.5 MHz frequency when operating at 100 Mbps) indicating the first nibble of each subsequent byte of the received nibble stream. The RX_CLK should be used in conjunction with the SFBD to latch the correct data for external address matching. SFBD will be active only during frame reception. Note: The SFBD pin is multiplexed with the EESK and LED1 pins. MIIRXFRTGD MII Receive Frame Tag Enable Input When the EADI is enabled (EADISEL, BCR2, bit 3), the Receive Frame Tagging is enabled (RXFRTG, CSR7, bit 14), and the MII Snoop mode is selected, the MIIRXFRTGD pin becomes a data input pin for the Receive Frame Tag. See the Receive Frame Tagging section for details. 36 Note: The MIIRXFRTGD pin is multiplexed with the EEDO and LED3 pins. MIIRXFRTGE MII Receive Frame Tag Enable Input When the EADI is enabled (EADISEL, BCR2, bit 3), the Receive Frame Tagging is enabled (RXFRTG, CSR7, bit 14), and the MII Snoop mode is selected, the MIIRXFRTGE pin becomes a data input enable pin for the Receive Frame Tag. See the Receive Frame Tagging section for details. Note: The MIIRXFRTGE pin is multiplexed with the LED2 pin. IEEE 1149.1 (1990) Test Access Port Interface TCK Test Clock Input TCK is the clock input for the boundary scan test mode operation. It can operate at a frequency of up to 10 MHz. TCK has an internal pull up resistor. TDI Test Data In Input TDI is the test data input path to the Am79C973/ Am79C975 controller. The pin has an internal pull up resistor. TDO Test Data Out Output TDO is the test data output path from the Am79C973/ Am79C975 controller. The pin is tri-stated when the JTAG port is inactive. TMS Test Mode Select Input A serial input bit stream on the TMS pin is used to define the specific boundary scan test to be executed. The pin has an internal pull up resistor. Network Interfaces TX+, TXSerial Transmit Data MLT-3/PECL Output These pins are the 10BASE-T/100BASE-X differential drivers. For 100BASE-FX, these transmit outputs carry differential PECL-level NRZI data for direct connection to an external fiber optic transceiver. They can be forced to logical 0 (TX+ low, TX- high) by programming the TX_DISABLE bit (bit 3 of the internal PHY Control/ Status Register, Register 17). For 100BASE-TX, these pins carry MLT-3 data and are connected to the primary side of the magnetics module. For 10BASE-T, these Am79C973/Am79C975 P R E L I M I N A R Y pins carry the transmit output data and are connected to the transmit side of the magnetics module. XTAL2 RX+, RXSerial Receive Data MLT-3/PECL The internal clock generator uses a 25 MHz (50 ppm 100 ppm) crystal that is attached to the pins XTAL1 and XTAL2. XTAL1 may alternatively be driven using an external 25 MHz (50 ppm - 100 ppm) CMOS-level clock signal when XTAL2 is left floating. Input These pins are the 10BASE-T/100BASE-X port differential receiver pairs. They receive MLT-3 data and are connected to the receive side of the magnetics module in 100BASE-TX operation. They receive PECL NRZI data from an exter nal fiber optic transceiver in 100BASE-FX application. For 10BASE-T, these pins accept the receive input data from the magnetics module. SDI+, SDISignal Detect Input These pins control the selection between PECL and MLT-3 data for the TX and RX pins. For 100BASETX or 10BASE-T, both of these pins may be tied to ground or left floating. This enables transmission and reception of MLT-3 or 10BASE-T signals at the TX and RX pins. For 100BASE-FX, these pins are biased at PECL levels. They are connected to the SDI pin from the optical transceiver module to indicate whether the received signal is above the required threshold. If signal detect is not available, these pins should be tied to a PECL logical 1 (SDI+ = PECL 1, SDI- = PECL 0). See Table 2. Table 2. SDI Settings for Transceiver Operation SDI+ SDI- Port Mode TTL LOW (<0.8 V) TTL LOW (<0.8 V) MLT-3/10BASE-T Mode TTL HIGH (>2.0 V) TTL HIGH (>2.0 V) PECL Mode IREF Internal Current Reference Input This pin serves as a current reference for the integrated 10/100 PHY. It must be connected to ground via a 12 k resistor (1%). Clock Interface XTAL1 Crystal Input Input The internal clock generator uses a 25-MHz (50 ppm100 ppm) crystal that is attached to the XTAL1 and XTAL2 pins. XTAL1 may alternatively be driven using an external 25 MHz (50 ppm - 100 ppm) CMOS-level clock signal when XTAL2 is left floating. The XTAL1 pin is not 5 V tolerant and must only be driven by a 3.3 V clock source. Crystal Output Output XCLK/XTAL External Clock/Crystal Select Input When HIGH, an External Clock Source is selected bypassing the Crystal circuit. When LOW, a Crystal is used instead. The following table illustrates how this pin works. Input Pin Output Pin XCLK/XTAL Clock Source XATL1 XTAL2 0 Crystal XTAL1 Don't Care 1 Oscillator/ External CLK Source Serial Management Interface (SMI) (Am79C975 only) MCLOCK SMI Clock Input/Output MCLOCK is the clock pin of the serial management interface. MCLOCK is typically driven by an external I2C/ SMBus master. The Am79C975 controller will drive the clock line low in order to insert wait states before it starts sending out data in response to a read. The frequency of the clock signal can vary between 10 kHz and 100 kHz, and it can change from cycle to cycle. Note: MCLOCK is also capable of running at a frequency as high as 2.5 MHz to allow for shorter production test time. MDATA SMI Data Input/Output MDATA is the data pin of the serial management interface. MDATA can be driven by an external I2C/SMBus master or by the Am79C975 controller. The interface protocol defines exactly at what time the Am79C975 controller has to listen to the MDATA pin and at what time the controller must drive the pin. MIRQ SMI Interrupt Output MIRQ is an asynchronous attention signal that the Am79C975 controller provides to indicate that a management frame has been transmitted or received. The assertion of the MIRQ signal can be controlled by a global mask bit (MIRQEN) or individual mask bits Am79C973/Am79C975 37 P R E L I M I N A R Y (MRX_DONEM, MTX_DONEM) located in the Command register. DVDDD, DVDDP Note: The SMI interrupt acknowledge does not follow the SMBus alert protocol, but simply requires clearing the interrupt bit. These pins supply power to the 100 Mbps Physical Data Transceiver (PDX) block. They must be connected to a +3.3 V 5% source. These pins require careful decoupling to ensure proper device performance. Power Supply VDDB I/O Buffer Power (6 Pins) VDD_PCI +3.3 V Power There are nine power supply pins that are used by the PCI input/output buffer drivers (except PME driver). All VDD_PCI pins must be connected to a +3.3 V supply. VSSB I/O Buffer Ground (17 Pins) Ground There are 17 ground pins that are used by the input/ output buffer drivers. VDD Digital Power (6 Pins) +3.3 V Power There are six power supply pins that are used by the internal digital circuitry. All VDD pins must be connected to a +3.3 V supply. VSS Digital Ground (8 Pins) +3.3 V Power DVDDRX, DVDDTX +3.3 V Power There are seven power supply pins that are used by the input/output buffer drivers. All VDDB pins must be connected to a +3.3 V supply. PCI I/O Buffer Power (9 Pins) PDX Block Power Ground There are eight ground pins that are used by the internal digital circuitry. I/O Buffer Power +3.3 V Power These pins supply power to the MLT-3/PECL/10BASET input/output buffers. They also supply the MLT-3 circuits (equalizer, etc.) of the network port. They must be connected to a +3.3 V 5% source. These pins require careful decoupling to ensure proper device performance. DVDDA Analog PLL Power +3.3 V Power This pin supplies power to the IREF current reference circuit and the 10BASE-T analog PLL. They must be connected to a +3.3 V 5% source. These pins require careful decoupling to ensure proper device performance. DVSSX All Blocks Ground These pins are the ground connection for all blocks of the device except the PDX block. They must be directly connected to the common external ground plane. DVSSD, DVSSP PDX Ground Ground These pins are the ground connection for the Physical Data Transceiver (PDX) block. They must be directly connected to the common external ground plane. DVDDCO Crystal +3.3 V Power This pin supplies the power to the Crystal circuit. 38 Am79C973/Am79C975 P R E L I M I N A R Y BASIC FUNCTIONS System Bus Interface The Am79C973/Am79C975 controllers are designed to operate as a bus master during normal operations. S o m e s l ave I/ O a c c e s s e s t o t he A m 7 9C 9 7 3 / Am79C975 controllers are required in normal operations as well. Initialization of the Am79C973/ Am79C975 controllers are achieved through a combination of PCI Configuration Space accesses, bus slave accesses, bus master accesses, and an optional read of a ser ial EEPROM that is perfor med by the Am79C973/Am79C975 controllers. The EEPROM read operation is performed through the 93C46 EEPROM interface. The ISO 8802-3 (IEEE/ANSI 802.3) Ethernet Address may reside within the serial EEPROM. Some Am79C973/Am79C975 controller configuration registers may also be programmed by the EEPROM read operation. The Address PROM, on-chip board-configuration registers, and the Ethernet controller registers occupy 32 bytes of address space. I/O and memory mapped I/O accesses are supported. Base Address registers in the PCI configuration space allow locating the address space on a wide variety of starting addresses. For diskless stations, the Am79C973/Am79C975 controllers support a ROM or Flash-based (both referred to as the Expansion ROM throughout this specification) boot device of up to 1 Mbyte in size. The host can map the boot device to any memory address that aligns to a 1-Mbyte boundary by modifying the Expansion ROM Base Address register in the PCI configuration space. Software Interface The software interface to the Am79C973/Am79C975 controllers are divided into three parts. One part is the PCI configuration registers used to identify the Am79C973/Am79C975 controllers and to setup the configuration of the device. The setup information includes the I/O or memory mapped I/O base address, mapping of the Expansion ROM, and the routing of the Am79C973/Am79C975 controller interrupt channel. This allows for a jumperless implementation. The second portion of the software interface is the direct access to the I/O resources of the Am79C973/ Am79C975 controllers. The Am79C973/Am79C975 controllers occupy 32 bytes of address space that must begin on a 32-byte block boundary. The address space can be mapped into I/O or memory space (memory mapped I/O). The I/O Base Address Register in the PCI Configuration Space controls the start address of the address space if it is mapped to I/O space. The Memory Mapped I/O Base Address Register controls the start address of the address space if it is mapped to memory space. The 32-byte address space is used by the software to program the Am79C973/Am79C975 controller operating mode, to enable and disable various features, to monitor operating status, and to request particular functions to be executed by the Am79C973/Am79C975 controllers. The third portion of the software interface is the descriptor and buffer areas that are shared between the software and the Am79C973/Am79C975 controllers during normal network operations. The descriptor area boundaries are set by the software and do not change during normal network operations. There is one descriptor area for receive activity and there is a separate area for transmit activity. The descriptor space contains relocatable pointers to the network frame data, and it is used to transfer frame status from the Am79C973/ Am79C975 controllers to the software. The buffer areas are locations that hold frame data for transmission or that accept frame data that has been received. Network Interfaces The Am79C973/Am79C975 controllers provide all of the PHY layer functions for 10 Mbps (10BASE-T) or 100 Mbps (100BASE-TX). It also provides a Pseudo ECL (PECL) interface for 100BASE-FX fiber networks. The Am79C973/Am79C975 controllers support both half-duplex and full-duplex operation on network interfaces. Serial Management Interface (Am79C975) The Am79C975 controller provides a 3-pin interface based on the I2C and SMBus standards that enables a system to monitor the status of the system hardware and report the results to the management station or system administrator. Monitored information may include critical system parameters, such as voltage, temp e r a t u r e, a n d fa n s p e e d , a s w e l l a s s y s t e m management events, such as chassis intrusion, operating system errors and power-on failures. MII Interface The Am79C973/Am79C975 supports an MII interface m o d e t h a t m a ke s t h e d ev i c e o p e r a t e l i k e a PCnet-FAST+ device. The MII pins are multiplexed with the expansion bus pins, which means the device will only support either an EPROM/Flash or an external PHY but not both. To enter this mode, set PHYSELEN (BCR2, bit 13) = 1 and PHYSEL (BCR18, bit 4 and bit 3) = 10. This mode isolates the internal PHY to allow interface with an external PHY. For a more detailed description of the MII interface including timing diagrams see Appendix C. Refer to the connection diagram to see how the pins are multiplexed. Am79C973/Am79C975 39 P R E L I M I N A R Y DETAILED FUNCTIONS configuration cycle. AD[7:2] select the DWord location in the configuration space. The Am79C973/Am79C975 controllers ignore AD[10:8], because it is a single function device. AD[31:11] are don't care. Slave Bus Interface Unit The slave bus interface unit (BIU) controls all accesses to the PCI configuration space, the Control and Status Registers (CSR), the Bus Configuration Registers (BCR), the Address PROM (APROM) locations, and the Expansion ROM. Table 3 shows the response of the Am79C973/Am79C975 controllers to each of the PCI commands in slave mode. Table 3. Slave Commands C[3:0] Command Use 0000 Interrupt Acknowledge Not used 0001 Special Cycle Not used 0010 I/O Read Read of CSR, BCR, APROM, and Reset registers 0011 I/O Write Write to CSR, BCR, and APROM 0100 Reserved 0101 Reserved AD31 AD11 AD10 AD8 AD7 AD2 AD1 AD0 Don't care Don't care DWord index 0 0 The active bytes within a DWord are determined by the byte enable signals. Eight-bit, 16-bit, and 32-bit transfers are supported. DEVSEL is asserted two clock cyc le s af ter t he ho s t h as as s e r te d F R AM E . A ll c on fi gu rat io n c y c l es a re o f fi xe d le ng th . T h e Am79C973/Am79C975 controllers will assert TRDY on the third clock of the data phase. The Am79C973/Am79C975 controllers do not support burst transfers for access to configuration space. When the host keeps FRAME asserted for a second data phase, the Am79C973/Am79C975 controllers will disconnect the transfer. When the host tries to access the PCI configuration space while the automatic read of the EEPROM after H_RESET (see section on RESET) is on-going, the Am79C973/Am79C975 controllers will terminate the access on the PCI bus with a disconnect/retry response. 0110 Memory Read Memory mapped I/O read of CSR, BCR, APROM, and Reset registers Read of the Expansion Bus 0111 Memory Write Memory mapped I/O write of CSR, BCR, and APROM 1000 Reserved 1001 Reserved 1010 Configuration Read Read of the Configuration Space 1011 Configuration Write Write to the Configuration Space The Am79C973/Am79C975 controllers support fast back-to-back transactions to different targets. This is indicated by the Fast Back-To-Back Capable bit (PCI Status register, bit 7), which is hardwired to 1. The Am79C973/Am79C975 controllers are capable of detecting a configuration cycle even when its address phase immediately follows the data phase of a transaction to a different target without any idle state in-between. There will be no contention on the DEVSEL, TRDY, and STOP signals, since the Am79C973/ Am79C975 controllers assert DEVSEL on the second clock after FRAME is asserted (medium timing). 1100 Memory Read Multiple Aliased to Memory Read Slave I/O Transfers 1101 Dual Address Cycle Not used 1110 Memory Read Line Aliased to Memory Read 1111 Memory Write Invalidate Aliased to Memory Write Slave Configuration Transfers The host can access the Am79C973/Am79C975 PCI configuration space with a configuration read or write command. The Am79C973/Am79C975 controllers will assert DEVSEL during the address phase when IDSEL is asserted, AD[1:0] are both 0, and the access is a 40 After the Am79C973/Am79C975 controllers are configured as an I/O device by setting IOEN (for regular I/O mode) or MEMEN (for memory mapped I/O mode) in the PCI Command register, it starts monitoring the PCI bus for access to its CSR, BCR, or APROM locations. If configured for regular I/O mode, the Am79C973/ Am79C975 controllers will look for an address that falls within its 32 bytes of I/O address space (starting from the I/O base address). The Am79C973/Am79C975 controllers assert DEVSEL if it detects an address match and the access is an I/O cycle. If configured for memor y mapped I/O mode, the Am79C973/ Am79C975 controllers will look for an address that falls within its 32 bytes of memory address space (starting from the memory mapped I/O base address). The Am79C973/Am79C975 P R E L I M I N A R Y Am79C973/Am79C975 controllers assert DEVSEL if it detects an address match and the access is a memory cycle. DEVSEL is asserted two clock cycles after the host has asserted FRAME. See Figure 1 and Figure 2. CLK 1 2 3 4 5 7 6 the internal Buffer Management Unit clock and the CLK signal, since the internal Buffer Management Unit clock is a divide-by-two version of the CLK signal. The Am79C973/Am79C975 controllers do not support burst transfers for access to its I/O resources. When the host keeps FRAME asserted for a second data phase, the Am79C973/Am79C975 controllers will disconnect the transfer. FRAME AD DATA ADDR CLK 1 C/BE PAR 1010 BE PAR 2 3 4 5 6 FRAME PAR IRDY TRDY AD ADDR C/BE 1011 PAR DEVSEL DATA BE PAR PAR IRDY STOP TRDY IDSEL DEVSEL DEVSEL is sampled 21510D-6 Figure 1. Slave Configuration Read STOP IDSEL 21510D-7 The Am79C973/Am79C975 controllers will not assert DEVSEL if it detects an address match and the PCI command is not of the correct type. In memory mapped I/O mode, the Am79C973/Am79C975 controller aliases all accesses to the I/O resources of the command types Memory Read Multiple and Memory Read Line to the basic Memory Read command. All accesses of the type Memory Write and Invalidate are aliased to the basic Memory Write command. Eight-bit, 16-bit, and 32-bit non-burst transactions are supported. The Am79C973/ Am79C975 controllers decode all 32 address lines to determine which I/O resource is accessed. The typical number of wait states added to a slave I/O or memory mapped I/O read or write access on the part of the Am79C973/Am79C975 controllers are six to seven clock cycles, depending upon the relative phases of Figure 2. Slave Configuration Write The Am79C973/Am79C975 controllers support fast back-to-back transactions to different targets. This is indicated by the Fast Back-To-Back Capable bit (PCI Status register, bit 7), which is hardwired to 1. The Am79C973/Am79C975 controllers are capable of detecting an I/O or a memory-mapped I/O cycle even when its address phase immediately follows the data phase of a transaction to a different target, without any idle state in-between. There will be no contention on the DEVSEL, TRDY, and STOP signals, since the Am79C973/Am79C975 controllers assert DEVSEL on the second clock after FRAME is asserted (medium timing) See Figure 3 and Figure 4. Am79C973/Am79C975 41 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 11 FRAME AD ADDR C/BE 0010 DATA BE PAR PAR PAR IRDY TRDY DEVSEL STOP 21510D21510D-8 Figure 3. Slave Read Using I/O Command CLK 1 2 3 4 5 6 7 8 9 10 11 FRAME AD ADDR DATA C/BE 0111 BE PAR PAR PAR IRDY TRDY DEVSEL STOP 21510D-9 Figure 4. Slave Write Using Memory Command 42 Am79C973/Am79C975 P R E L I M I N A R Y Expansion ROM Transfers Address r egister to a value that prevents the Am79C973/Am79C975 controllers from claiming any memory cycles not intended for it. The host must initialize the Expansion ROM Base Address register at offset 30H in the PCI configuration space with a valid address before enabling the access to the device. The Am79C973/Am79C975 controllers will not react to any access to the Expansion ROM until both MEMEN (PCI Command register, bit 1) and ROMEN (PCI Expansion ROM Base Address register, bit 0) are set to 1. After the Expansion ROM is enabled, the Am79C973/Am79C975 controllers will assert DEVSEL on all memory read accesses with an address between ROMBASE and ROMBASE + 1M - 4. The Am79C973/Am79C975 controller aliases all accesses to the Expansion ROM of the command types Memory Read Multiple and Memory Read Line to the basic Memory Read command. Eight-bit, 16-bit, and 32-bit read transfers are supported. The Am79C973/Am79C975 controllers will always read four bytes for every host Expansion ROM read access. TRDY will not be asserted until all four bytes are loaded into an internal scratch register. The cycle TRDY is asserted depends on the programming of the Expansion ROM interface timing. The following figure (Figure 5) assumes that ROMTMG (BCR18, bits 1512) is at its default value. Note: The Expansion ROM should be read only during PCI configuration time for the PCI system. When the host tries to write to the Expansion ROM, the Am79C973/Am79C975 controllers will claim the cycle by asserting DEVSEL. TRDY will be asserted one clock cycle later. The write operation will have no effect. Writes to the Expansion ROM are done through the BCR30 Expansion Bus Data Port. See the section on the Expansion Bus Interface for more details. See Figure 5. Since setting MEMEN also enables memory mapped access to the I/O resources, attention must be given the PCI Memory Mapped I/O Base Address register before enabling access to the Expansion ROM. The host must set the PCI Memory Mapped I/O Base CLK 1 2 3 4 5 48 49 50 51 FRAME AD ADDR C/BE CMD PAR DATA BE PAR PAR IRDY TRDY DEVSEL STOP DEVSEL is sampled 21510D-10 Figure 5. Expansion ROM Read Am79C973/Am79C975 43 P R E L I M I N A R Y During the boot procedure, the system will try to find an Expansion ROM. A PCI system assumes that an Expansion ROM is present when it reads the ROM signature 55H (byte 0) and AAH (byte 1). CLK 1 2 3 4 5 FRAME Slave Cycle Termination There are three scenarios besides normal completion of a transaction where the Am79C973/Am79C975 controllers are the target of a slave cycle and it will terminate the access. AD ADDR DATA C/BE CMD BE Disconnect When Busy PAR The Am79C973/Am79C975 controllers cannot service any slave access while it is reading the contents of the EEPROM. Simultaneous access is not allowed in order to avoid conflicts, since the EEPROM is used to initialize some of the PCI configuration space locations and most of the BCRs and CSR116. The EEPROM read operation will always happen automatically after the deassertion of the RST pin. In addition, the host can start the read operation by setting the PREAD bit (BCR19, bit 14). While the EEPROM read is on-going, the Am79C973/Am79C975 controllers will disconnect any slave access where it is the target by asserting STOP together with DEVSEL, while driving TRDY high. STOP will stay asserted until the end of the cycle. Note that I/O and memory slave accesses will only be disconnected if they are enabled by setting the IOEN or MEMEN bit in the PCI Command register. Without the enable bit set, the cycles will not be claimed at all. Since H_RESET clears the IOEN and MEMEN bits for the automatic EEPROM read after H_RESET, the disconnect only applies to configuration cycles. PAR PAR IRDY TRDY DEVSEL STOP 21510D-11 Figure 6. Disconnect Of Slave Cycle When Busy CLK 1 2 3 4 5 FRAME A second situation where the Am79C973/Am79C975 controllers will generate a PCI disconnect/retry cycle is when the host tries to access any of the I/O resources right after having read the Reset register. Since the access generates an internal reset pulse of about 1 ms in length, all further slave accesses will be deferred until the internal reset operation is completed. See Figure 6. AD C/BE PAR 1st DATA BE DATA BE PAR PAR Disconnect Of Burst Transfer The Am79C973/Am79C975 controllers do not support burst access to the configuration space, the I/O resources, or to the Expansion Bus. The host indicates a burst transaction by keeping FRAME asserted during the data phase. When the Am79C973/Am79C975 controllers see FRAME and IRDY asserted in the clock cycle before it wants to assert TRDY, it also asserts STOP at the same time. The transfer of the first data phase is still successful, since IRDY and TRDY are both asserted. See Figure 7. IRDY TRDY DEVSEL STOP 21510D-12 Figure 7. Disconnect Of Slave Burst Transfer - No Host Wait States 44 Am79C973/Am79C975 P R E L I M I N A R Y If the host is not yet ready when the Am79C973/ Am79C975 controller asserts TRDY, the device will wait for the host to assert IRDY. When the host asserts IRDY and FRAME is still asserted, the Am79C973/ Am79C975 controller will finish the first data phase by deasserting TRDY one clock later. At the same time, it will assert STOP to signal a disconnect to the host. STOP will stay asser ted until the host removes FRAME. See Figure 8. ity error when PERREN and SERREN are set to 1. See Figure 9. CLK 1 2 3 4 5 FRAME AD ADDR 1st DATA C/BE CMD BE CLK 1 2 3 4 5 6 FRAME PAR AD C/BE PAR 1st DATA DATA BE BE PAR PAR PAR SERR PAR DEVSEL 21510D-14 IRDY Figure 9. Address Parity Error Response TRDY DEVSEL STOP 21510D-13 Figure 8. Disconnect Of Slave Burst Transfer Host Inserts Wait States Parity Error Response When the Am79C973/Am79C975 controller is not the current bus master, it samples the AD[31:0], C/BE[3:0], and the PAR lines during the address phase of any PCI command for a parity error. When it detects an address parity error, the controller sets PERR (PCI Status register, bit 15) to 1. When reporting of that error is enabled by setting SERREN (PCI Command register, bit 8) and PERREN (PCI Command register, bit 6) to 1, the Am79C973/Am79C975 controller also drives the SERR signal low for one clock cycle and sets SERR (PCI Status register, bit 14) to 1. The assertion of SERR follows the address phase by two clock cycles. The Am79C973/Am79C975 controller will not assert DEVSEL for a PCI transaction that has an address par- During the data phase of an I/O write, memory-mapped I/O write, or configuration write command that selects the Am79C973/Am79C975 controller as target, the device samples the AD[31:0] and C/BE[3:0] lines for parity on the clock edge, and data is transferred as indicated by the assertion of IRDY and TRDY. PAR is sampled in the following clock cycle. If a parity error is detected and reporting of that error is enabled by setting PERREN (PCI Command register, bit 6) to 1, PERR is asserted one clock later. The parity error will always set PERR (PCI Status register, bit 15) to 1 even when PERREN is cleared to 0. The Am79C973/ Am79C975 controller will finish a transaction that has a data parity error in the normal way by asserting TRDY. The corrupted data will be written to the addressed location. Figure 10 shows a transaction that suffered a parity error at the time data was transferred (clock 7, IRDY and TRDY are both asserted). PERR is driven high at the beginning of the data phase and then drops low due to the parity error on clock 9, two clock cycles after the data was transferred. After PERR is driven low, the Am79C973/Am79C975 controller drives PERR high for one clock cycle, since PERR is a sustained tri-state signal. Am79C973/Am79C975 45 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 FRAME AD ADDR DATA C/BE CMD BE PAR PAR PAR PERR IRDY TRDY DEVSEL 21510D-15 Figure 10. Slave Cycle Data Parity Error Response Master Bus Interface Unit Table 4. Master Commands (Continued) The master Bus Interface Unit (BIU) controls the acquisition of the PCI bus and all accesses to the initialization block, descriptor rings, and the receive and transmit buffer memory. Table 4 shows the usage of PCI commands by the Am79C973/Am79C975 controller in master mode. Table 4. Master Commands C[3:0] Command Use 1001 Reserved 1010 Configuration Read Not used 1011 Configuration Write Not used 1100 Memory Read Multiple Read of the transmit buffer in burst mode 1101 Dual Address Cycle Not used 1110 Memory Read Line Read of the transmit buffer in burst mode 1111 Memory Write Invalidate Not used Command Use 0000 Interrupt Acknowledge Not used 0001 Special Cycle Not used 0010 I/O Read Not used Bus Acquisition 0011 I/O Write Not used 0100 Reserved 0101 Reserved The Am79C973/Am79C975 microcode will determine when a DMA transfer should be initiated. The first step in any Am79C973/Am79C975 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. Memory Read Read of the initialization block and descriptor rings Read of the transmit buffer in non-burst mode 0111 Memory Write Write to the descriptor rings and to the receive buffer 1000 Reserved 0110 46 C[3:0] Figure 11 shows the Am79C973/Am79C975 controller bus acquisition. REQ is asserted and the arbiter returns GNT while another bus master is transferring data. The Am79C973/Am79C975 controller waits until the bus is idle (FRAME and IRDY deasserted) before it Am79C973/Am79C975 P R E L I M I N A R Y starts driving AD[31:0] and C/BE[3:0] on clock 5. FRAME is asserted at clock 5 indicating a valid address and command on AD[31:0] and C/BE[3:0]. CLK 1 2 3 4 5 FRAME AD ADDR C/BE CMD IRDY REQ GNT 21510D-16 Figure 11. Bus Acquisition In burst mode, the deassertion of REQ depends on the setting of EXTREQ (BCR18, bit 8). If EXTREQ is cleared to 0, REQ is deasserted at the same time as FRAME is asserted. (The Am79C973/Am79C975 controller never performs more than one burst transaction within a single bus mastership period.) If EXTREQ is set to 1, the Am79C973/Am79C975 controller does not deassert REQ until it starts the last data phase of the transaction. Once asserted, REQ remains active until GNT has become active and independent of subsequent setting of STOP (CSR0, bit 2) or SPND (CSR5, bit 0). The assertion of H_RESET or S_RESET, however, will cause REQ to go inactive immediately. Bus Master DMA Transfers There are four primary types of DMA transfers. The Am79C973/Am79C975 controller uses non-burst as well as burst cycles for read and write access to the main memory. Basic Non-Burst Read Transfer By default, the Am79C973/Am79C975 controller uses non-burst cycles in all bus master read operations. All Am79C973/Am79C975 controller non-burst read accesses are of the PCI command type Memory Read (type 6). Note that during a non-burst read operation, all byte lanes will always be active. The Am79C973/ Am79C975 controller will internally discard unneeded bytes. The Am79C973/Am79C975 controller typically performs more than one non-burst read transaction within a single bus mastership period. FRAME is dropped between consecutive non-burst read cycles. REQ however stays asserted until FRAME is asserted for the last transaction. The Am79C973/Am79C975 controller supports zero wait state read cycles. It asserts IRDY immediately after the address phase and at the same time starts sampling DEVSEL. Figure 12 shows two non-burst read transactions. The first transaction has zero wait states. In the second transaction, the target extends the cycle by asserting TRDY one clock later. Basic Burst Read Transfer The Am79C973/Am79C975 controller supports burst mode for all bus master read operations. The burst mode must be enabled by setting BREADE (BCR18, bit 6). To allow burst transfers in descriptor read operations, the Am79C973/Am79C975 controller must also be programmed to use SWSTYLE 3 (BCR20, bits 7-0). All burst read accesses to the initialization block and descriptor ring are of the PCI command type Memory Read (type 6). Burst read accesses to the transmit buffer typically are longer than two data phases. When MEMCMD (BCR18, bit 9) is cleared to 0, all burst read accesses to the transmit buffer are of the PCI command type Memory Read Line (type 14). When MEMCMD (BCR18, bit 9) is set to1, all burst read accesses to the transmit buffer are of the PCI command type Memory Read Multiple (type 12). AD[1:0] will both be 0 during the address phase indicating a linear burst order. Note that during a burst read operation, all byte l a ne s w i l l a l way s b e a c ti ve. T h e A m 79 C 97 3 / Am79C975 controller will internally discard unneeded bytes. The Am79C973/Am79C975 controller will always perform only a single burst read transaction per bus mastership period, where transaction is defined as one address phase and one or multiple data phases. The Am79C973/Am79C975 controller supports zero wait state read cycles. It asserts IRDY immediately after the address phase and at the same time starts sampling DEVSEL. FRAME is deasserted when the next to last data phase is completed. Figure 13 shows a typical burst read access. The Am79C973/Am79C975 controller arbitrates for the bus, is granted access, reads three 32-bit words (DWord) from the system memory, and then releases the bus. In the example, the memory system extends the data phase of each access by one wait state. The example assumes that EXTREQ (BCR18, bit 8) is cleared to 0, therefore, REQ is deasserted in the same cycle as FRAME is asserted. Am79C973/Am79C975 47 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 11 10 FRAME DATA ADDR AD PAR PAR PAR 0000 0110 0000 0110 C/BE DATA ADDR PAR PAR IRDY TRDY DEVSEL REQ GNT 21510D-17 DEVSEL is sampled Figure 12. Non-Burst Read Transfer CLK 1 2 3 4 5 6 7 8 9 11 10 FRAME AD C/BE DATA ADDR 1110 PAR DATA DATA 0000 PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT 21510D-18 DEVSEL is sampled Figure 13. Burst Read Transfer (EXTREQ = 0, MEMCMD = 0) 48 Am79C973/Am79C975 P R E L I M I N A R Y Basic Non-Burst Write Transfer Basic Burst Write Transfer By default, the Am79C973/Am79C975 controller uses non-burst cycles in all bus master write operations. All Am79C973/Am79C975 controller non-burst write accesses are of the PCI command type Memory Write (type 7). The byte enable signals indicate the byte lanes that have valid data. The Am79C973/Am79C975 controller typically performs more than one non-burst write transaction within a single bus mastership period. FRAME is dropped between consecutive non-burst write cycles. REQ, however, stays asserted until FRAME is asser ted for the last transaction. The Am79C973/Am79C975 supports zero wait state write cycles except with descriptor write transfers. (See the section Descriptor DMA Transfers for the only exception.) It asserts IRDY immediately after the address phase. The Am79C973/Am79C975 controller supports burst mode for all bus master write operations. The burst mode must be enabled by setting BWRITE (BCR18, bit 5). To allow burst transfers in descriptor write operations, the Am79C973/Am79C975 controller must also be programmed to use SWSTYLE 3 (BCR20, bits 7-0). All Am79C973/Am79C975 controller burst write transfers are of the PCI command type Memory Write (type 7). AD[1:0] will both be 0 during the address phase indicating a linear burst order. The byte enable signals indicate the byte lanes that have valid data. The Am79C973/Am79C975 controller will always perform a single burst write transaction per bus mastership period, where transaction is defined as one address ph as e an d o ne or mul ti pl e da ta p ha s es. Th e Am79C973/Am79C975 controller supports zero wait state write cycles except with the case of descriptor write transfers. (See the section Descriptor DMA Transfers for the only exception.) The device asserts IRDY immediately after the address phase and at the same time starts sampling DEVSEL. FRAME is deasserted when the next to last data phase is completed. Figure 14 shows two non-burst write transactions. The first transaction has two wait states. The target inserts one wait state by asserting DEVSEL one clock late and another wait state by also asserting TRDY one clock late. The second transaction shows a zero wait state write cycle. The target asserts DEVSEL and TRDY in the same cycle as the Am79C973/Am79C975 controller asserts IRDY. CLK 1 2 3 4 5 6 7 8 9 10 FRAME AD C/BE ADDR DATA ADDR DATA 0111 BE 0111 BE PAR PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled Figure 14. Non-Burst Write Transfer Am79C973/Am79C975 49 P R E L I M I N A R Y Figure 15 shows a typical burst write access. The Am79C973/Am79C975 controller arbitrates for the bus, is granted access, and writes four 32-bit words (DWords) to the 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. The example assumes that EXTREQ (BCR18, bit 8) is set to 1, therefore, REQ is not deasserted until the next to last data phase is finished. disconnect with data transfer, disconnect without data transfer, and target abort. Disconnect With Data Transfer Figure 16 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 cycle, since both IRDY and TRDY are asserted. The Am79C973/ Am79C975 controller terminates the current transfer with the deassertion of FRAME on clock 5 and of IRDY one clock later. It finally releases the bus on clock 7. The Am79C973/Am79C975 controller will again request the bus after two clock cycles, if it wants to transfer more data. The starting address of the new transfer will be the address of the next non-transferred data. Target Initiated Termination When the Am79C973/Am79C975 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: CLK 1 2 3 4 5 6 7 8 DATA DATA DATA PAR PAR 9 FRAME AD C/BE ADDR DATA 0111 BE PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-20 Figure 15. Burst Write Transfer (EXTREQ = 1) 50 Am79C973/Am79C975 P R E L I M I N A R Y CLK 1 2 3 4 5 DATA DATA 6 7 8 9 10 11 FRAME ADDRi AD 0111 C/BE 0000 PAR PAR ADDRi+8 0111 PAR IRDY TRDY DEVSEL STOP REQ GNT 21510D-21 DEVSEL is sampled Figure 16. Disconnect With Data Transfer Disconnect Without Data Transfer Figure 17 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 Am79C973/Am79C975 controller terminates the access with the deassertion of FRAME on clock 5 and of IRDY one clock cycle later. It finally releases the bus on clock 7. The Am79C973/Am79C975 controller will again request the bus after two clock cycles to retry the last transfer. The starting address of the new transfer will be the address of the last non-transferred data. Target Abort Figure 18 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 retr ied. Additionally, the Am79C973/Am79C975 controller cannot make any assumption about the success of the previous data transfers in the current transaction. The Am79C973/ Am79C975 controller terminates the current transfer with the deassertion of FRAME on clock 5 and of IRDY one clock cycle later. It finally releases the bus on clock 6. Since data integrity is not guaranteed, the Am79C973/ Am79C975 controller cannot recover from a target abort event. The Am79C973/Am79C975 controller will reset all CSR locations to their STOP_RESET values. The BCR and PCI configuration registers will not be cleared. Any on-going network transmission is terminated in an orderly sequence. If less than 512 bits have been transmitted onto the network, the transmission will be terminated immediately, generating a runt packet. If 512 bits or more have been transmitted, the message will have the current FCS inverted and appended at the next byte boundary to guarantee an FCS error is detected at the receiving station. Am79C973/Am79C975 51 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 11 FRAME AD C/BE ADDRi DATA ADDRi 0111 0000 0111 PAR PAR PAR IRDY TRDY DEVSEL STOP REQ GNT DEVSEL is sampled 21510D-22 Figure 17. Disconnect Without Data Transfer RTABORT (PCI Status register, bit 12) will be set to indicate that the Am79C973/Am79C975 controller has received a target abort. In addition, SINT (CSR5, bit 11) will be set to 1. When SINT is set, INTA is asserted if the enable bit SINTE (CSR5, bit 10) is set to 1. This mechanism can be used to inform the driver of the system error. The host can read the PCI Status register to determine the exact cause of the interrupt. Master Initiated Termination There are three scenarios besides normal completion of a transaction where the Am79C973/Am79C975 controller will terminate the cycles it produces on the PCI bus. Preemption During Non-Burst Transaction When the Am79C973/Am79C975 controller performs multiple non-burst transactions, it keeps REQ asserted until the assertion of FRAME for the last transaction. When GNT is removed, the Am79C973/Am79C975 controller will finish the current transaction and then release the bus. If it is not the last transaction, REQ will 52 remain asserted to regain bus ownership as soon as possible. See Figure 19. Preemption During Burst Transaction When the Am79C973/Am79C975 controller operates in burst mode, it only performs a single transaction per bus mastership period, where transaction is defined as one address phase and one or multiple data phases. The central arbiter can remove GNT at any time during the transaction. The Am79C973/Am79C975 controller will ignore the deassertion of GNT and continue with data transfers, as long as the PCI Latency Timer is not expired. When the Latency Timer is 0 and GNT is deasserted, the Am79C973/Am79C975 controller will finish the current data phase, deassert FRAME, finish the last data phase, and release the bus. If EXTREQ (BCR18, bit 8) is cleared to 0, it will immediately assert REQ to regain bus ownership as soon as possible. If EXTREQ is set to 1, REQ will stay asserted. Am79C973/Am79C975 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 FRAME AD C/BE ADDR DATA 0111 0000 PAR PAR PAR Am79C975 controller will reset all CSR locations to their STOP_RESET values. The BCR and PCI configuration registers will not be cleared. Any on-going networ k transmission is ter minated in an order ly sequence. If less than 512 bits have been transmitted onto the network, the transmission will be terminated immediately, generating a runt packet. If 512 bits or more have been transmitted, the message will have the current FCS inverted and appended at the next byte boundary to guarantee an FCS error is detected at the receiving station. RMABORT (in the PCI Status register, bit 13) will be set to indicate that the Am79C973/Am79C975 controller has terminated its transaction with a master abort. In addition, SINT (CSR5, bit 11) will be set to 1. When SINT is set, INTA is asserted if the enable bit SINTE (CSR5, bit 10) is set to 1. This mechanism can be used to inform the driver of the system error. The host can read the PCI Status register to determine the exact cause of the interrupt. See Figure 21. IRDY TRDY DEVSEL STOP Parity Error Response REQ GNT DEVSEL is sampled 21510D-23 Figure 18. Target Abort When the preemption occurs after the counter has counted down to 0, the Am79C973/Am79C975 controller will finish the current data phase, deassert FRAME, finish the last data phase, and release the bus. Note that it is important for the host to program the PCI Latency Timer according to the bus bandwidth requirement of the Am79C973/Am79C975 controller. The host can determine this bus bandwidth requirement by reading the PCI MAX_LAT and MIN_GNT registers. Figure 20 assumes that the PCI Latency Timer has counted down to 0 on clock 7. Master Abort The Am79C973/Am79C975 controller will terminate its cycle with a Master Abort sequence if DEVSEL is not asserted within 4 clocks after FRAME is asserted. Master Abor t is treated as a fatal error by the Am79C973/Am79C975 controller. The Am79C973/ During every data phase of a DMA read operation, when the target indicates that the data is valid by asserting TRDY, the Am79C973/Am79C975 controller samples the AD[31:0], C/BE[3:0] and the PAR lines for a data parity error. When it detects a data parity error, the controller set PERR (PCI Status register, bit 15) to 1. When reporting of that error is enabled by setting PERREN (PCI Command register, bit 6) to 1, the Am79C973/Am79C975 controller also drives the PERR signal low and sets DATAPERR (PCI Status register, bit 8) to 1. The assertion of PERR follows the corrupted data/byte enables by two clock cycles and PAR by one clock cycle. Figure 22 shows a transaction that has a parity error in the data phase. The Am79C973/Am79C975 controller asserts PERR on clock 8, two clock cycles after data is valid. The data on clock 5 is not checked for parity, since on a read access PAR is only required to be valid one clock after the target has asserted TRDY. The Am79C973/Am79C975 controller then drives PERR high for one clock cycle, since PERR is a sustained tristate signal. During every data phase of a DMA write operation, the Am79C973/Am79C975 controller checks the PERR input to see if the target reports a parity error. When it sees the PERR input asserted, the controller sets PERR (PCI Status register, bit 15) to 1. When PERREN (PCI Command register, bit 6) is set to 1, the Am79C973/Am79C975 controller also sets DATAPERR (PCI Status register, bit 8) to 1. Am79C973/Am79C975 53 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 FRAME AD C/BE ADDR DATA 0111 BE PAR PAR PAR IRDY TRDY DEVSEL REQ GNT 21510D-24 DEVSEL is sampled Figure 19. Preemption During Non-Burst Transaction CLK 1 2 3 4 5 6 7 8 ADDR DATA DATA DATA DATA DATA PAR PAR 9 FRAME AD C/BE 0111 BE PAR PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled Figure 20. Preemption During Burst Transaction 54 Am79C973/Am79C975 21510D-25 P R E L I M I N A R Y CLK 1 2 3 4 5 7 6 8 9 FRAME AD C/BE ADDR DATA 0111 0000 PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-26 Figure 21. Master Abort CLK 1 2 3 4 5 6 7 8 9 FRAME AD C/BE DATA ADDR 0111 BE PAR PAR PAR PERR IRDY TRDY DEVSEL DEVSEL is sampled 21510D-27 Figure 22. Master Cycle Data Parity Error Response Am79C973/Am79C975 55 P R E L I M I N A R Y Whenever the Am79C973/Am79C975 controller is the current bus master and a data parity error occurs, SINT (CSR5, bit 11) will be set to 1. When SINT is set, INTA is asserted if the enable bit SINTE (CSR5, bit 10) is set to 1. This mechanism can be used to inform the driver of the system error. The host can read the PCI Status register to determine the exact cause of the interrupt. The setting of SINT due to a data parity error is not dependent on the setting of PERREN (PCI Command register, bit 6). By default, a data parity error does not affect the state of the MAC engine. The Am79C973/Am79C975 controller treats the data in all bus master transfers that have a parity error as if nothing has happened. All network activity continues. Advanced Parity Error Handling For all DMA cycles, the Am79C973/Am79C975 controller provides a second, more advanced level of parity error handling. This mode is enabled by setting APERREN (BCR20, bit 10) to 1. When APERREN is set to 1, the BPE bits (RMD1 and TMD1, bit 23) are used to indicate parity error in data transfers to the receive and transmit buffers. Note that since the advanced parity error handling uses an additional bit in the descriptor, SWSTYLE (BCR20, bits 7-0) must be set to 2 or 3 to program the Am79C973/Am79C975 controller to use 32-bit software structures. The Am79C973/Am79C975 controller will react in the following way when a data parity error occurs: Initialization block read: STOP (CSR0, bit 2) is set to 1 and causes a STOP_RESET of the device. Descriptor ring read: Any on-going network activity is terminated in an orderly sequence and then STOP (CSR0, bit 2) is set to 1 to cause a STOP_RESET of the device. Descriptor ring write: Any on-going network activity is terminated in an orderly sequence and then STOP (CSR0, bit 2) is set to 1 to cause a STOP_RESET of the device. Transmit buffer read: BPE (TMD1, bit 23) is set in the current transmit descriptor. Any on-going network transmission is terminated in an orderly sequence. Receive buffer write: BPE (RMD1, bit 23) is set in the last receive descriptor associated with the frame. Terminating on-going network transmission in an orderly sequence means that if less than 512 bits have been transmitted onto the network, the transmission 56 will be terminated immediately, generating a runt packet. If 512 bits or more have been transmitted, the message will have the current FCS inverted and appended at the next byte boundary to guarantee an FCS error is detected at the receiving station. APERREN does not affect the reporting of address parity errors or data parity errors that occur when the Am79C973/Am79C975 controller is the target of the transfer. Initialization Block DMA Transfers During execution of the Am79C973/Am79C975 controller bus master initialization procedure, the Am79C973/Am79C975 microcode will repeatedly request DMA transfers from the BIU. During each of these initialization block DMA transfers, the BIU will perform two data transfer cycles reading one DWord per transfer and then it will relinquish the bus. When SSIZE32 (BCR20, bit 8) is set to 1 (i.e., the initialization block is organized as 32-bit software structures), there are seven DWords to transfer during the bus master initialization procedure, so four bus master-ship periods are needed in order to complete the initialization sequence. Note that the last DWord transfer of the last bus mastership period of the initialization sequence accesses an unneeded location. Data from this transfer is discarded internally. When SSIZE32 is cleared to 0 (i.e., the initialization block is organized as 16-bit software structures), then three bus mastership periods are needed to complete the initialization sequence. The Am79C973/Am79C975 supports two transfer modes for reading the initialization block: non-burst and burst mode, with burst mode being the preferred mode when the Am79C973/Am79C975 controller is used in a PCI bus application. See Figure 23 and Figure 24. When BREADE is cleared to 0 (BCR18, bit 6), all initialization block read transfers will be executed in nonburst mode. There is a new address phase for every data phase. FRAME will be dropped between the two transfers. The two phases within a bus mastership period will have addresses of ascending contiguous order. When BREADE is set to 1 (BCR18, bit 6), all initialization block read transfers will be executed in burst mode. AD[1:0] will be 0 during the address phase indicating a linear burst order. Am79C973/Am79C975 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 FRAME AD 0110 C/BE 0000 PAR DATA IADDi+4 DATA IADDi 0110 0000 PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT 21510D-28 DEVSEL is sampled Figure 23. Initialization Block Read In Non-Burst Mode CLK 1 2 3 4 5 6 7 FRAME AD IADDi DATA C/BE 0110 0000 PAR PAR DATA PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-29 Figure 24. Initialization Block Read In Burst Mode Am79C973/Am79C975 57 P R E L I M I N A R Y Descriptor DMA Transfers Am79C973/Am79C975 microcode will determine when a descriptor access is required. A descriptor DMA read will consist of two data transfers. A descriptor DMA write will consist of one or two data transfers. The descriptor DMA transfers within a single bus mastership period will always be of the same type (either all read or all write). During descriptor read accesses, the byte enable signals will indicate that all byte lanes are active. Should some of the bytes not be needed, then the Am79C973/ Am79C975 controller will internally discard the extraneous information that was gathered during such a read. The settings of SWSTYLE (BCR20, bits 7-0) and BREADE (BCR18, bit 6) affect the way the Am79C973/ Am79C975 controller performs descriptor read operations. When SWSTYLE is set to 0 or 2, all descriptor read operations are performed in non-burst mode. The setting of BREADE has no effect in this configuration. See Figure 25. When SWSTYLE is set to 3, the descriptor entries are ordered to allow burst transfers. The Am79C973/ Am79C975 controller will perform all descriptor read operations in burst mode, if BREADE is set to 1. See Figure 26. When SWSTYLE is set to 0 or 2, all descriptor write operations are performed in non-burst mode. The setting of BWRITE has no effect in this configuration. When SWSTYLE is set to 3, the descriptor entries are ordered to allow burst transfers. The Am79C973/ Am79C975 controller will perform all descriptor write operations in burst mode, if BWRITE is set to 1. See Table 6 for the descriptor write sequence. A write transaction to the descriptor ring entries is the only case where the Am79C973/Am79C975 controller inserts a wait state when being the bus master. Every data phase in non-burst and burst mode is extended by one clock cycle, during which IRDY is deasserted. Note that Figure 26 assumes that the Am79C973/ Am79C975 controller is programmed to use 32-bit software structures (SWSTYLE = 2 or 3). The byte enable signals for the second data transfer would be 0111b, if the device was programmed to use 16-bit software structures (SWSTYLE = 0). Table 5. Descriptor Read Sequence SWSTYLE BREADE BCR20[7:0] BCR18[6] AD Bus Sequence Address = XXXX XX00h Turn around cycle Data = MD1[31:24], MD0[23:0] 0 X Table 5 shows the descriptor read sequence. Idle Address = XXXX XX04h During descriptor write accesses, only the byte lanes which need to be written are enabled. Turn around cycle If buffer chaining is used, accesses to the descriptors of all intermediate buffers consist of only one data transfer to return ownership of the buffer to the system. When SWSTYLE (BCR20, bits 7-0) is cleared to 0 (i.e., the descriptor entries are organized as 16-bit software structures), the descriptor access will write a single byte. When SWSTYLE (BCR20, bits 7-0) is set to 2 or 3 (i.e., the descriptor entries are organized as 32-bit software structures), the descriptor access will write a single word. On all single buffer transmit or receive descriptors, as well as on the last buffer in chain, writes to the descriptor consist of two data transfers. Address = XXXX XX04h Data = MD2[15:0], MD1[15:0] Turn around cycle Data = MD1[31:0] 2 X Address = XXXX XX00h Turn around cycle Data = MD0[31:0] Address = XXXX XX04h Turn around cycle Data = MD1[31:0] 3 0 The first data transfer writes a DWord containing status information. The second data transfer writes a byte (SWSTYLE cleared to 0), or otherwise a word containing additional status and the ownership bit (i.e., MD1[31]). The settings of SWSTYLE (BCR20, bits 7-0) and BWRITE (BCR18, bit 5) affect the way the Am79C973/ Am79C975 controller performs descriptor write operations. 58 Idle Idle Address = XXXX XX08h Turn around cycle Data = MD0[31:0] Address = XXXX XX04h 3 Am79C973/Am79C975 1 Turn around cycle Data = MD1[31:0] Data = MD0[31:0] P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 FRAME AD MD1 C/BE 0110 DATA 0000 0110 0000 PAR PAR PAR PAR DATA MD0 PAR IRDY TRDY DEVSEL REQ GNT 21510D-30 DEVSEL is sampled Figure 25. Descriptor Ring Read In Non-Burst Mode CLK 1 2 3 4 5 6 DATA 7 FRAME AD MD1 DATA C/BE 0110 0000 PAR PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled B21510D-31 Figure 26. Descriptor Ring Read In Burst Mode Am79C973/Am79C975 59 P R E L I M I N A R Y Table 6. Descriptor Write Sequence SWSTYLE BCR20[7:0] BWRITE BCR18[5] AD Bus Sequence Address = XXXX XX04h Data = MD2[15:0], MD1[15:0] 0 X Idle Address = XXXX XX00h Data = MD1[31:24] Address = XXXX XX08h Data = MD2[31:0] 2 X Idle Address = XXXX XX04h Data = MD1[31:16] Address = XXXX XX00h Data = MD2[31:0] 3 0 Idle Address = XXXX XX04h Data = MD1[31:16] Address = XXXX XX00h 3 1 Data = MD2[31:0] Data = MD1[31:16] FIFO DMA Transfers Am79C973/Am79C975 microcode will determine when a FIFO DMA transfer is required. This transfer mode will be used for transfers of data to and from the Am79C973/Am79C975 FIFOs. Once the Am79C973/ Am79C975 BIU has been granted bus mastership, it will perform a series of consecutive transfer cycles before relinquishing the bus. All transfers within the master cycle will be either read or write cycles, and all transfers will be to contiguous, ascending addresses. Both non-burst and burst cycles are used, with burst mode being the preferred mode when the device is used in a PCI bus application. 60 Non-Burst FIFO DMA Transfers In the default mode, the Am79C973/Am79C975 controller uses non-burst transfers to read and write data when accessing the FIFOs. Each non-burst transfer will be performed sequentially with the issue of an address and the transfer of the corresponding data with appropriate output signals to indicate selection of the active data bytes during the transfer. FRAME will be deasserted after every address phase. Several factors will affect the length of the bus mastership period. The possibilities are as follows: Bus cycles will continue until the transmit FIFO is filled to its high threshold (read transfers) or the receive FIFO is emptied to its low threshold (write transfers). The exact number of total transfer cycles in the bus mastership period is dependent on all of the following variables: the settings of the FIFO watermarks, the conditions of the FIFOs, the latency of the system bus to the Am79C973/Am79C975 controller's bus request, the speed of bus operation and bus preemption events. The TRDY response time of the memory device will also affect the number of transfers, since the speed of the accesses will affect the state of the FIFO. During accesses, the FIFO may be filling or emptying on the network end. For example, on a receive operation, a slower TRDY response will allow additional data to accumulate inside of the FIFO. If the accesses are slow enough, a complete DWord may become available before the end of the bus mastership period and, thereby, increase the number of transfers in that period. The general rule is that the longer the Bus Grant latency, the slower the bus transfer operations; the slower the clock speed, the higher the transmit watermark; or the higher the receive watermark, the longer the bus mastership period will be. Note: The PCI Latency Timer is not significant during non-burst transfers. Am79C973/Am79C975 P R E L I M I N A R Y CLK 1 2 3 4 5 6 7 8 9 10 FRAME AD MD2 C/BE 0111 PAR DATA MD1 DATA 0000 0111 PAR 0011 PAR PAR PAR IRDY TRDY DEVSEL REQ GNT 21510D-32 DEVSEL is sampled Figure 27. Descriptor Ring Write In Non-Burst Mode CLK 1 2 3 5 4 6 7 8 FRAME AD MD2 C/BE 0110 0000 PAR PAR DATA DATA 0011 PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-33 Figure 28. Descriptor Ring Write In Burst Mode Am79C973/Am79C975 61 P R E L I M I N A R Y Burst FIFO DMA Transfers Bursting is only perfor med by the Am79C973/ Am79C975 controller if the BREADE and/or BWRITE bits of BCR18 are set. These bits individually enable/ disable the ability of the Am79C973/Am79C975 controller to perform burst accesses during master read operations and master write operations, respectively. A burst transaction will start with an address phase, followed by one or more data phases. AD[1:0] will always be 0 during the address phase indicating a linear burst order. During FIFO DMA read operations, all byte lanes will always be active. The Am79C973/Am79C975 controller will internally discard unused bytes. During the first and the last data phases of a FIFO DMA burst write operation, one or more of the byte enable signals may be inactive. All other data phases will always write a complete DWord. Figure 29 shows the beginning of a FIFO DMA write with the beginning of the buffer not aligned to a DWord boundary. The Am79C973/Am79C975 controller starts off by writing only three bytes during the first data phase. This operation aligns the address for all other data transfers to a 32-bit boundar y so that the Am79C973/Am79C975 controller can continue bursting full DWords. If a receive buffer does not end on a DWord boundary, the Am79C973/Am79C975 controller will perform a non-DWord write on the last transfer to the buffer. Figure 30 shows the final three FIFO DMA transfers to a receive buffer. Since there were only nine bytes of space left in the receive buffer, the Am79C973/ Am79C975 controller bursts three data phases. The first two data phases write a full DWord, the last one only writes a single byte. Note that the Am79C973/Am79C975 controller will always perform a DWord transfer as long as it owns the buffer space, even when there are less than four bytes to write. For example, if there is only one byte left for the current receive frame, the Am79C973/Am79C975 controller will write a full DWord, containing the last byte of the receive frame in the least significant byte position (BSWP is cleared to 0, CSR3, bit 2). The content of the other three bytes is undefined. The message byte 62 count in the receive descriptor always reflects the exact length of the received frame. CLK 1 2 3 4 5 6 FRAME AD ADD DATA C/BE 0111 0001 PAR PAR DATA DATA 0000 PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-34 Figure 29. FIFO Burst Write At Start Of Unaligned Buffer The Am79C973/Am79C975 controller will continue transferring FIFO data until the transmit FIFO is filled to its high threshold (read transfers) or the receive FIFO is emptied to its low threshold (write transfers), or the Am79C973/Am79C975 controller is preempted, and the PCI Latency Timer is expired. The host should use the values in the PCI MIN_GNT and MAX_LAT registers to determine the value for the PCI Latency Timer. Am79C973/Am79C975 P R E L I M I N A R Y Buffer Management Unit CLK 1 2 3 4 5 6 7 FRAME AD ADD DATA DATA The Buffer Management Unit (BMU) is a microcoded 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. DATA Initialization C/BE 0111 PAR PAR 0000 1110 PAR PAR PAR IRDY TRDY DEVSEL REQ GNT DEVSEL is sampled 21510D-35 Figure 30. FIFO Burst Write At End Of Unaligned Buffer The exact number of total transfer cycles in the bus mastership period is dependent on all of the following variables: the settings of the FIFO watermarks, the conditions of the FIFOs, the latency of the system bus to the Am79C973/Am79C975 controller's bus request, and the speed of bus operation. The TRDY response time of the memory device will also affect the number of transfers, since the speed of the accesses will affect the state of the FIFO. During accesses, the FIFO may be filling or emptying on the network end. For example, on a receive operation, a slower TRDY response will allow additional data to accumulate inside of the FIFO. If the accesses are slow enough, a complete DWord may become available before the end of the bus mastership period and, thereby, increase the number of transfers in that period. The general rule is that the longer the Bus Grant latency, the slower the bus transfer operations; the slower the clock speed, the higher the transmit watermark; or the lower the receive watermark, the longer the total burst length will be. When a FIFO DMA burst operation is preempted, the Am79C973/Am79C975 controller will not relinquish bus ownership until the PCI Latency Timer expires. Am79C973/Am79C975 initialization includes the reading of the initialization block in memory to obtain the operating parameters. The initialization block can be organized in two ways. When SSIZE32 (BCR20, bit 8) is at its default value of 0, all initialization block entries are logically 16-bits wide to be backwards compatible with the Am79C90 C-LANCE and Am79C96x PCnetISA family. When SSIZE32 (BCR20, bit 8) is set to 1, all initialization block entries are logically 32-bits wide. Note that the Am79C973/Am79C975 controller always performs 32-bit bus transfers to read the initialization block entries. 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. Once the initialization block has been completely read in and internal registers have been updated, IDON will be set in CSR0, generating an interrupt (if IENA is set). The Am79C973/Am79C975 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 initialization block contains the user defined conditions for Am79C973/Am79C975 operation, together with the base addresses and length information of the transmit and receive descriptor rings. There is an alter nate method to initial ize the Am79C973/Am79C975 controller. Instead of initialization via the initialization block in memory, data can be written directly into the appropriate registers. Either method or a combination of the two may be used at the discretion of the programmer. Please refer to Appendix A, Alternative Method for Initialization for details on this alternate method. Re-Initialization Th e t ra n s m i tt e r a n d r e c e i ve r s e c ti o n s o f t h e Am79C973/Am79C975 controller can be turned on via the initialization block (DTX, DRX, CSR15, bits 1-0). The states of the transmitter and receiver are monitored by the host through CSR0 (RXON, TXON bits). The Am79C973/Am79C975 controller should be re-initialized if the transmitter and/or the receiver were not turned on during the original initialization, and it was subsequently required to activate them or if either section was shut off due to the detection of an error condition (MERR, UFLO, TX BUFF error). Am79C973/Am79C975 63 P R E L I M I N A R Y Re-initialization may be done via the initialization block or by setting the STOP bit in CSR0, followed by writing to CSR15, and then setting the START bit in CSR0. Note that this form of restart will not perform the same in the Am79C973/Am79C975 controller as in the CLANCE device. In par ticular, upon restar t, the Am79C973/Am79C975 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 restar ting the Am79C973/ Am79C975 controller. The reload of descriptor base addresses is performed in the C-LANCE device only after initialization, so that a restart of the C-LANCE without initialization leaves the C-LANCE pointing at the same descriptor locations as before the restart. Suspend The Am79C973/Am79C975 controller offers two suspend modes that allow easy updating of the CSR registers without going through a full re-initialization of the device. The suspend modes also allow stopping the device with orderly termination of all network activity. The host requests the Am79C973/Am79C975 controller to enter the suspend mode by setting SPND (CSR5, bit 0) to 1. The host must poll SPND until it reads back 1 to determine that the Am79C973/Am79C975 controller has entered the suspend mode. When the host sets SPND to 1, the procedure taken by the Am79C973/ Am79C975 controller to enter the suspend mode depends on the setting of the fast suspend enable bit (FASTSPND, CSR7, bit 15). When a fast suspend is requested (FASTSPND is set to 1), the Am79C973/Am79C975 controller performs a quick entry into the suspend mode. At the time the SPND bit is set, the Am79C973/Am79C975 controller will continue the DMA process of any transmit and/or receive packets that have already begun DMA activity until the network activity has been completed. In addition, any transmit packet that had started transmission will be fully transmitted and any receive packet that had begun reception will be fully received. However, no additional packets will be transmitted or received and no additional transmit or receive DMA activity will begin after networ k activity has ceased. Hence, the Am79C973/Am79C975 controller may enter the suspend mode with transmit and/or receive packets still in the FIFOs or the SRAM. This offers a worst case suspend time of a maximum length packet over the possibility of completely emptying the SRAM. Care must be exercised in this mode, because the entire memory subsystem of the Am79C973/Am79C975 controller is suspended. Any changes to either the descriptor rings or the SRAM can cause the Am79C973/Am79C975 controller to start up in an unknown condition and could cause data corruption. 64 When FASTSPNDE is 0 and the SPND bit is set, the Am79C973/Am79C975 controller may take longer before entering the suspend mode. At the time the SPND bit is set, the Am79C973/Am79C975 controller will complete the DMA process of a transmit packet if it had already begun and the Am79C973/Am79C975 controller will completely receive a receive packet if it had already begun. The Am79C973/Am79C975 controller will not receive any new packets after the completion of the current reception. Additionally, all transmit packets stored in the transmit FIFOs and the transmit buffer area in the SRAM (if one is present) will be transmitted, and all receive packets stored in the receive FIFOs and the receive buffer area in the SRAM (if selected) will be transferred into system memory. Since the FIFO and the SRAM contents are flushed, it may take much longer before the Am79C973/Am79C975 controller enters the suspend mode. The amount of time that it takes depends on many factors including the size of the SRAM, bus latency, and network traffic level. Upon completion of the described operations, the Am79C973/Am79C975 controller sets the read-version of SPND to 1 and enters the suspend mode. In suspend mode, all of the CSR and BCR registers are accessible. As long as the Am79C973/Am79C975 controller is not reset while in suspend mode (by H_RESET, S_RESET, or by setting the STOP bit), no re-initialization of the device is required after the device comes out of suspend mode. When SPND is set to 0, the Am79C973/Am79C975 controller will leave the suspend mode and will continue at the transmit and receive descriptor ring locations where it was when it entered the suspend mode. See the section on Magic PacketTM technology for details on how that affects suspension of the Am79C973/ Am79C975 controller. Buffer Management Buffer management is accomplished through message descriptor entries organized as ring structures in memory. There are two descriptor rings, one for transmit and one for receive. Each descriptor describes a single buffer. A frame may occupy one or more buffers. If multiple buffers are used, this is referred to as buffer chaining. Descriptor Rings Each descriptor ring must occupy a contiguous area of memory. During initialization, the user-defined base address for the transmit and receive descriptor rings, as well as the number of entries contained in the descriptor rings are set up. The programming of the software style (SWSTYLE, BCR20, bits 7-0) affects the way the descriptor rings and their entries are arranged. When SWSTYLE is at its default value of 0, the descriptor rings are backwards compatible with the Am79C90 C-LANCE and the Am79C96x PCnet-ISA Am79C973/Am79C975 P R E L I M I N A R Y family. The descriptor ring base addresses must be aligned to an 8-byte boundary and a maximum of 128 ring entries is allowed when the ring length is set through the TLEN and RLEN fields of the initialization block. Each ring entry contains a subset of the three 32-bit transmit or receive message descriptors (TMD, RMD) that are organized as four 16-bit structures (SSIZE32 (BCR20, bit 8) is set to 0). Note that even though the Am79C973/Am79C975 controller treats the descriptor entries as 16-bit structures, it will always perform 32-bit bus transfers to access the descriptor entries. The value of CSR2, bits 15-8, is used as the upper 8-bits for all memory addresses during bus master transfers. When SWSTYLE is set to 2 or 3, the descriptor ring base addresses must be aligned to a 16-byte boundary, and a maximum of 512 ring entries is allowed when the ring length is set through the TLEN and RLEN fields of the initialization block. Each ring entry is organized as three 32-bit message descriptors (SSIZE32 (BCR20, bit 8) is set to 1). The fourth DWord is reserved. When SWSTYLE is set to 3, the order of the message descriptors is optimized to allow read and write access in burst mode. For any software style, 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: The address of the actual message data buffer in user or host memory To permit the queuing and de-queuing of message buffers, ownership of each buffer is allocated to either the Am79C973/Am79C975 controller or the host. The OWN bit within the descriptor status information, either TMD or RMD, is used for this purpose. When OWN is set to 1, it signifies that the Am79C973/ Am79C975 controller currently has ownership of this ring descriptor and its associated buffer. Only the owner is permitted to relinquish ownership or to write to any field in the 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 Am79C973/ Am79C975 controller, then the software must not read ahead to the next descriptor. The software should wait at a descriptor it does not own until the Am79C973/ Am79C975 controller sets OWN to 0 to release ownership to the software. (When LAPPEN (CSR3, bit 5) is set to 1, this rule is modified. See the LAPPEN description. At initialization, the Am79C973/Am79C975 controller reads the base address of both the transmit and receive descriptor rings into CSRs for use by the Am79C973/Am79C975 controller during subsequent operations. Figure 31 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, when SSIZE32 is cleared to 0. The length of the message buffer Status information indicating the condition of the buffer Am79C973/Am79C975 65 P R E L I M I N A R Y N N N N * * * Rcv Descriptor Ring CSR2 IADR[31:16] 1st desc. start CSR1 2nd desc. IADR[15:0] RMD RMD RMD RMD0 RMD Initialization Block RLE TLE MOD PADR[15:0] PADR[31:16] PADR[47:32] LADRF[15:0] LADRF[31:16] LADRF[47:32] LADRF[63:48] RDRA[15:0] RES RDRA[23:16] TDRA[15:0] RES TDRA[23:16] Rcv Buffers Data Buffer 1 Data Buffer 2 M M Data Buffer N M M * * Xmt Descriptor Ring 2nd desc. 1st desc. start TMD Xmt Buffers * TMD TMD Data Buffer 1 TMD Data Buffer 2 TMD Data Buffer M 21510B21510D-36 Figure 31. 16-Bit Software Model Note: The value of CSR2, bits 15-8, is used as the upper 8-bits for all memory addresses during bus master transfers. Figure 32 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, when SSIZE32 is set to 1. Polling If there is no network channel activity and there is no pre- or post-receive or pre- or post-transmit activity being performed by the Am79C973/Am79C975 controller, then the Am79C973/Am79C975 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 sequence. The Am79C973/Am79C975 controller will use the current receive descriptor address stored internally 66 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, if the OWN bit is set (i.e., CSR18, CSR19, CSR20, CSR21, CSR40, CSR42, CSR50, CSR52). A typical receive poll is the product of the following conditions: 1. Am79C973/Am79C975 controller does not own the current RDTE and the poll time has elapsed and RXON = 1 (CSR0, bit 5), or 2. Am79C973/Am79C975 controller does not own the next RDTE and there is more than one receive descriptor in the ring and the poll time has elapsed and RXON = 1. Am79C973/Am79C975 P R E L I M I N A R Y . N N N N * * * CSR2 CSR1 IADR[31:16] IADR[15:0] Rcv Descriptor Ring 1st desc. start RMD 2nd desc. start RMD RMD RMD RMD Initialization Block TLE RES RLE RES MODE PADR[31:0] PADR[47:32] RES LADRF[31:0] LADRF[63:32] RDRA[31:0] TDRA[31:0] Rcv Buffers Data Buffer 1 Data Buffer 2 M M Data Buffer N M M * * * 1st desc. start TMD0 Xmt Buffers Xmt Descriptor Ring 2nd desc. start TMD0 TMD1 TMD2 TMD3 Data Buffer 1 Data Buffer 2 Data Buffer M 21510D-37 Figure 32. 32-Bit Software Model If RXON is cleared to 0, the Am79C973/Am79C975 controller will never poll RDTE locations. In order to avoid missing frames, the system should have at least one RDTE available. To minimize poll activity, two RDTEs should be available. In this case, the poll operation will only consist of the check of the status of the current TDTE. A typical transmit poll is the product of the following conditions: 1. Am79C973/Am79C975 controller does not own the current TDTE and TXDPOLL = 0 (CSR4, bit 12) and TXON = 1 (CSR0, bit 4) and the poll time has elapsed, or 2. Am79C973/Am79C975 controller does not own the current TDTE and TXDPOLL = 0 and TXON = 1 and a frame has just been received, or 3. Am79C973/Am79C975 controller does not own the current TDTE and TXDPOLL = 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). Transmit Descriptor Table Entry If, after a Transmit Descriptor Table Entry (TDTE) access, the Am79C973/Am79C975 controller finds that the OWN bit of that TDTE is not set, the Am79C973/ Am79C975 controller resumes the poll time count and re-examines the same TDTE at the next expiration of the poll time count. If the OWN bit of the TDTE is set, but the Start of Packet (STP) bit is not set, the Am79C973/Am79C975 controller will immediately request the bus in order to clear the OWN bit of this descriptor. (This condition would normally be found following a late collision (LCOL) or retry (RTRY) error that occurred in the middle of a transmit frame chain of buffers.) After resetting Am79C973/Am79C975 67 P R E L I M I N A R Y the OWN bit of this descriptor, the Am79C973/ Am79C975 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 cleared. In the C-LANCE device, the buffer length of 0 is interpreted as a 4096-byte buffer. A zero length buffer is acceptable as long as it is not the last buffer in a chain (STP = 0 and ENP = 1). If the OWN bit and STP are set, then microcode control proceeds to a routine that will enable transmit data transfers to the FIFO. The Am79C973/Am79C975 controller will look ahead to the next transmit descriptor after it has performed at least one transmit data transfer from the first buffer. If the Am79C973/Am79C975 controller does not own the next TDTE (i.e., the second TDTE for this frame), it will complete transmission of the current buffer and update the status of the current (first) TDTE with the BUFF and UFLO bits being set. If DXSUFLO (CSR3, bit 6) is cleared to 0, the underflow error will cause the transmitter to be disabled (CSR0, TXON = 0). The Am79C973/Am79C975 controller will have to be re-initialized to restore the transmit function. Setting DXSUFLO to 1 enables the Am79C973/Am79C975 controller to gracefully recover from an underflow error. The device will scan the transmit descriptor ring until it finds either the start of a new frame or a TDTE it does not own. To avoid an underflow situation in a chained buffer transmission, the system should always set the transmit chain descriptor own bits in reverse order. If the Am79C973/Am79C975 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 (clear 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.) It is imperative that the host system never reads the TDTE OWN bits out of order. The Am79C973/ Am79C975 controller normally clears OWN bits in strict FIFO order. However, the Am79C973/Am79C975 controller can queue up to two frames in the transmit FIFO. When the second frame uses buffer chaining, the Am79C973/Am79C975 controller might return ownership out of normal FIFO order. The OWN bit for last (and maybe only) buffer of the first frame is not cleared until transmission is completed. During the transmission the Am79C973/Am79C975 controller will read in buffers for the next frame and clear their OWN bits for all but the last one. The first and all intermediate buffers of the second frame can have their OWN bits cleared 68 before the Am79C973/Am79C975 controller returns ownership for the last buffer of the first frame. If an error occurs in the transmission before all of the bytes of the current buffer have been transferred, transmit status of the current buffer will be immediately updated. If the buffer does not contain the end of packet, the Am79C973/Am79C975 controller will skip over the rest of the frame which experienced the error. This is done by returning to the polling microcode where the Am79C973/Am79C975 controller will clear the OWN bit for all descriptors with OWN = 1 and STP = 0 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 Am79C973/Am79C975 controller will always perform another polling operation. As described earlier, this polling operation will begin with a check of the current RDTE, unless the Am79C973/Am79C975 controller already owns that descriptor. Then the Am79C973/Am79C975 controller will poll the next TDTE. If the transmit descriptor OWN bit has a 0 value, the Am79C973/Am79C975 controller will resume incrementing the poll time counter. If the transmit descriptor OWN bit has a value of 1, the Am79C973/Am79C975 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 Am79C973/Am79C975 controller to avoid inserting poll time counts between successive transmit frames. By default, whenever the Am79C973/Am79C975 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 cleared. The Am79C973/ Am79C975 controller provides two modes to reduce the number of transmit interrupts. The interrupt of a successfully transmitted frame can be suppressed by setting TINTOKD (CSR5, bit 15) to 1. Another mode, which is enabled by setting LTINTEN (CSR5, bit 14) to 1, allows suppression of interrupts for successful transmissions for all but the last frame in a sequence. Receive Descriptor Table Entry If the Am79C973/Am79C975 controller does not own both the current and the next Receive Descriptor Table Entry (RDTE), then the Am79C973/Am79C975 controller will continue to poll according to the polling sequence described above. If the receive descriptor ring length is one, then there is no next descriptor to be polled. Am79C973/Am79C975 P R E L I M I N A R Y If a poll operation has revealed that the current and the next RDTE belong to the Am79C973/Am79C975 controller, then additional poll accesses are not necessary. Future poll operations will not include RDTE accesses as long as the Am79C973/Am79C975 controller retains ownership of the current and the next RDTE. When receive activity is present on the channel, the Am79C973/Am79C975 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 Am79C973/Am79C975 controller checks the current receive buffer status register CRST (CSR41) to determine the ownership of the current buffer. If ownership is lacking, the Am79C973/Am79C975 controller will immediately perform a final poll of the current RDTE. If ownership is still denied, the Am79C973/Am79C975 controller has no buffer in which to store the incoming message. The MISS bit will be set in CSR0 and the Missed Frame Counter (CSR112) will be incremented. Another poll of the current RDTE will not occur until the frame has finished. If the Am79C973/Am79C975 controller sees that the last poll (either a normal poll, or the final effort described in the above paragraph) of the current RDTE shows valid ownership, 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 Am79C973/Am79C975 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 Am79C973/Am79C975 controller does not own the second buffer, ownership of the current descriptor will be passed back to the system by writing a 0 to the OWN bit of RMD1. 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 Am79C973/Am79C975 controller does own the second (next) buffer, ownership will be passed back to the system by writing a 0 to the OWN bit of RMD1 when the first buffer is full. The OWN bit is the only bit modified in the descriptor. Receive data transfers to the second buffer may occur before the Am79C973/Am79C975 controller proceeds to look ahead to the ownership of the third buffer. Such action will depend upon the state of the FIFO when the OWN bit has been updated in the first descriptor. 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. This activity continues until the Am79C973/Am79C975 controller recognizes the completion of the frame (the last byte of this receive message has been removed from the FIFO). The Am79C973/Am79C975 controller will subsequently update the current RDTE status with the end of frame (ENP) indication set, write the message byte count (MCNT) for the entire frame into RMD2, and overwrite the "current" entries in the CSRs with the "next" entries. Receive Frame Queuing The Am79C973/Am79C975 controller supports the lack of RDTEs when SRAM (SRAM SIZE in BCR 25, bits 7-0) is enabled through the Receive Frame Queuing mechanism. When the SRAM SIZE = 0, then the Am79C973/Am79C975 controller reverts back to the PCnet PCI II mode of operation. This operation is automatic and does not require any programming by the host. When SRAM is enabled, the Receive Frame Queuing mechanism allows a slow protocol to manage more frames without the high frame loss rate normally attributed to FIFO based network controllers. The Am79C973/Am79C975 controller will store the incoming frames in the extended FIFOs until polling takes place; if enabled, it discovers it owns an RDTE. The stored frames are not altered in any way until written out into system buffers. When the receive FIFO overflows, further incoming receive frames will be missed during that time. As soon as the network receive FIFO is empty, incoming frames are processed as normal. Status on a per frame basis is not kept during the overflow process. Statistic counters are maintained and accurate during that time. During the time that the Receive Frame Queuing mechanism is in operation, the Am79C973/Am79C975 controller relies on the Receive Poll Time Counter (CSR 48) to control the worst case access to the RDTE. The Receive Poll Time Counter is programmed through the Receive Polling Interval (CSR49) register. The Received Polling Interval defaults to approximately 2 ms. The Am79C973/Am79C975 controller will also try to access the RDTE during normal descriptor accesses whether they are transmit or receive accesses. The host can force the Am79C973/Am79C975 controller to immediately access the RDTE by setting the RDMD (CSR 7, bit 13) to 1. Its operation is similar to the transmit one. The polling process can be disabled by setting the RXDPOLL (CSR7, bit 12) bit. This will stop the automatic polling process and the host must set the RDMD bit to initiate the receive process into host memory. Receive frames are still stored even when the receive polling process is disabled. Software Interrupt Timer The Am79C973/Am79C975 controller is equipped with a software programmable free-running interrupt timer. The timer is constantly running and will generate an interrupt STINT (CSR 7, bit 11) when STINITE (CSR 7, bit 10) is set to 1. After generating the interrupt, the Am79C973/Am79C975 69 P R E L I M I N A R Y software timer will load the value stored in STVAL and restart. The timer value STVAL (BCR31, bits 15-0) is interpreted as an unsigned number with a resolution of 256 Time Base Clock periods. For instance, a value of 122 ms would be programmed with a value of 9531 (253Bh), if the Time Base Clock is running at 20 MHz. The default value of STVAL is FFFFh which yields the approximate maximum 838 ms timer duration. A write to STVAL restarts the timer with the new contents of STVAL. 10/100 Media Access Control The Media Access Control (MAC) engine incorporates the essential protocol requirements for operation of an Ethernet/IEEE 802.3-compliant node and provides the interface between the FIFO subsystem and the internal PHY. This section describes operation of the MAC engine when operating in half-duplex mode. When operating in half-duplex mode, 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). When operating in full-duplex mode, the MAC engine behavior changes as described in the section FullDuplex Operation. The MAC engine provides programmable enhanced features designed to minimize host supervision, bus utilization, and pre- or post-message processing. These features include the ability to disable retries after a collision, dynamic FCS generation on a frame-byframe basis, automatic pad field insertion and deletion to enforce minimum frame size attributes, automatic retransmission without reloading the FIFO, and automatic deletion of collision fragments. 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, except in full-duplex operation) -- Contention resolution (collision handling, except in full-duplex operation) Transmit and Receive Message Data Encapsulation The MAC engine provides minimum frame size enforcement for transmit and receive frames. When APAD_XMT (CSR, bit 11) is set to 1, transmit messages will be padded with sufficient bytes (containing 70 00h) to ensure that the receiving station will observe an information field (destination address, source address, length/type, data, and FCS) of 64 bytes. When ASTRP_RCV (CSR4, bit 10) is set to 1, the receiver will automatically strip pad bytes from the received message by observing the value in the length field and by 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 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 access to the channel is currently permitted, the MAC engine will commence the 7byte preamble sequence (10101010b, where first bit transmitted is a 1). The MAC engine will subsequently append the Star t 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. The user is responsible for the correct ordering and content in each of these fields in the frame. The MAC does not use the content in the length/type field unless APAD_XMT (CSR4, bit 11) is set and the data portion of the frame is shorter than 60 bytes. The MAC engine will detect the incoming preamble sequence when the RX_DV signal is activated by the internal PHY. The MAC will discard the preamble and begin searching for the SFD. Once the SFD is detected, all subsequent nibbles 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 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, all frame bytes including FCS will be passed unmodified to the receive buffer, regardless of the actual frame length. 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 Am79C973/Am79C975 controller has the ability to accept runt packets for diagnostic purposes and proprietary networks. Am79C973/Am79C975 P R E L I M I N A R Y 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 (unicast), logical (multicast), and broadcast address reception. Error Detection The MAC engine provides several facilities which report and recover from errors on the medium. In addition, it protects the network 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 Transmit Message Descriptor (TMD) and Control and Status Register (CSR) areas: The number of transmission retry attempts (ONE, MORE, RTRY, and TRC). regardless of any error. The FRAM error will only be reported if an FCS error is detected and there is a nonintegral number of bytes in the message. During the reception, the FCS is generated on every nibble (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 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 framing error is reported to the user as follows: If the number of dribbling bits are 1 to 7 and there is no FCS error, then there is no Framing error (FRAM = 0). If the number of dribbling bits are 1 to 7 and there is a FCS error, then there is also a Framing error (FRAM = 1). Whether the MAC engine had to Defer (DEF) due to channel activity. If the number of dribbling bits is 0, then there is no Framing error. There may or may not be a FCS error. Excessive deferral (EXDEF), indicating that the transmitter experienced Excessive Deferral on this transmit frame, where Excessive Deferral is defined in the ISO 8802-3 (IEEE/ANSI 802.3) standard. If the number of dribbling bits is EIGHT, then there is no Framing error. FCS error will be reported and the receive message count will indicate one extra byte. 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. 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 first 4 ms after a transmission was completed. This may be due to a failed transceiver, disconnected or faulty transceiver drop cable, or because the transceiver does not support this feature (or it is disabled). SQE Test is only valid for 10Mbps networks. 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 as an invalid FCS (which will also cause the receiver to reject the message). The status of each receive message is available in the appropriate Receive Message Descriptor (RMD) and CSR areas. All received frames are passed to the host Counters are provided to report the Receive Collision Count and Runt Packet Count, for network statistics and utilization calculations. Media Access Management The basic requirement for all stations on the network is to provide fairness of channel allocation. The IEEE 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) after the last activity, before transmitting on the media. The channel is a multidrop communications media (with various topological configurations permitted), which allows a single station to transmit and all other stations to receive. If two nodes simultaneously contend for the channel, their signals will interact causing loss of data, defined as a collision. It is the responsibility of the MAC to attempt to avoid and recover from a collision, to guarantee data integrity for the end-to-end transmission to the receiving station. Medium Allocation The IEEE/ANSI 802.3 standard (ISO/IEC 8802-3 1990) requires that the CSMA/CD MAC monitor the medium for traffic by watching for carrier activity. When carrier is detected, the media is considered busy, and the MAC should defer to the existing message. The ISO 8802-3 (IEEE/ANSI 802.3) standard also allows optionally a two-part deferral after a receive message. Am79C973/Am79C975 71 P R E L I M I N A R Y See ANSI/IEEE Std 802.3-1993 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 inter-Frame 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 InterFrame-SpacingPart1 is other than 0: 1. Upon completing a transmission, start timing the interrupted gap, as soon as transmitting and carrier sense are both false. 2. When timing an inter-frame gap following reception, reset the inter-frame gap timing if carrier sense becomes true during the first 2/3 of the inter-frame 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 0. The MAC engine implements the optional receive two part deferral algorithm, with an InterFrameSpacingPart1 time of 6.0 ms. The InterFrameSpacingPart 2 interval is, therefore, 3.4 ms. The Am79C973/Am79C975 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 ms InterFrameSpacing after the receive carrier is deasserted. During the first part defe r r a l ( I n t e r Fr a m e S p a c i n g Pa r t 1 - I F S 1 ) , t h e Am79C973/Am79C975 controller will defer any pending transmit frame and respond to the receive message. The IPG counter will be cleared to 0 continuously until the carrier deasserts, at which point the IPG counter will resume the 9.6 ms count once again. Once the IFS1 period of 6.0 ms has elapsed, the Am79C973/ Am79C975 controller will begin timing the second part deferral (InterFrameSpacingPart2 - IFS2) of 3.4 ms. Once IFS1 has completed and IFS2 has commenced, the Am79C973/Am79C975 controller will not defer to a receive frame if a transmit frame is pending. This means that the Am79C973/Am79C975 controller will not attempt to receive the receive frame, since it will start to transmit and generate a collision at 9.6 ms. The Am79C973/Am79C975 controller will complete the preamble (64-bit) and jam (32-bit) sequence before ceasing transmission and invoking the random backoff algorithm. The Am79C973/Am79C975 controller allows the user to program the IPG and the first part deferral (InterFrame-SpacingPart1 - IFS1) through CSR125. By changing the IPG default value of 96 bit times (60h), the user can adjust the fairness or aggressiveness of the Am79C973/Am79C975 MAC on the network. By programming a lower number of bit times than the ISO/IEC 72 8802-3 standard requires, the Am79C973/Am79C975 MAC engine will become more aggressive on the network. This aggressive nature will give rise to the Am79C973/Am79C975 controller possibly capturing the network at times by forcing other less aggressive compliant nodes to defer. By programming a larger number of bit times, the Am79C973/Am79C975 MAC will become less aggressive on the network and may defer more often than normal. The performance of the Am79C973/Am79C975 controller may decrease as the IPG value is increased from the default value, but the resulting behavior may improve network performance by reducing collisions. The Am79C973/Am79C975 controller uses the same IPG for back-to-back transmits and receive-to-transmit accesses. Changing IFS1 will alter the per iod for which the Am79C973/ Am79C975 MAC engine will defer to incoming receive frames. CAUTION: Care must be exercised when altering these parameters. Adverse network activity could result! This transmit two-part deferral algorithm is implemented as an option which can be disabled using the DXMT2PD bit in CSR3. The IFS1 programming will have no effect when DXMT2PD is set to 1, but the IPG programming value is still valid. 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 should generate the SQE Test message within 0.6 to 1.6 ms after the transmission ceases. During the time period in which the SQE Test message is expected, the Am79C973/Am79C975 controller will not respond to receive carrier sense. See ANSI/IEEE Std 802.3-1993 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 ms but no more than 8.0 ms. During the time window the Carrier Sense Function is inhibited." The Am79C973/Am79C975 controller implements a carrier sense "blinding" period of 4.0 ms length starting from the deassertion 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 ms to 6 ms after a transmission. How- Am79C973/Am79C975 P R E L I M I N A R Y ever, since IPG shrinkage below 4 ms will rarely be encountered on a correctly configured network, and since the fragment size will be larger than the 4 ms blinding window, the IPG counter will be reset by a worst case IPG shrinkage/fragment scenario and the Am79C973/ Am79C975 controller will defer its transmission. If carrier is detected within the 4.0 to 6.0 ms IFS1 period, the Am79C973/Am79C975 controller will not restart the "blinding" period, but only restart IFS1. Collision Handling Collision detection is performed and reported to the MAC engine via the COL input pin. 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 rescheduled to a time determined by the random backoff algorithm. If a single retry was required, the 1 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 (1 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 retransmission 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 retransmission attempt is chosen as a uniformly distributed random integer r in the range: 0 r < 2k where k = min (n,10)." The Am79C973/Am79C975 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, while 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. This modified backoff algorithm is enabled when EMBA (CSR3, bit 3) is set to 1. Transmit Operation The transmit operation and features of the Am79C973/ Am79C975 controller are controlled by programmable options. The Am79C973/Am79C975 controller offers a large 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. The disable FCS generation/transmission feature can be programmed as a static feature or dynamically on a frame-by-frame basis. 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 frame 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 frame data has been placed into the transmit FIFO.) The default value of XMTSP is 01b, meaning there has Am79C973/Am79C975 73 P R E L I M I N A R Y 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 IEEE 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 IEEE 802.3 frame. FCS is always added if the frame is padded, regardless of the state of DXMTFCS (CSR15, bit 3) or ADD_FCS (TMD1, bit 29). The transmit frame will be padded by bytes with the value of 00H. The default value of APAD_XMT is 0, which will disable automatic pad generation after H_RESET. It is the responsibility of upper layer software to correctly define the actual length field contained in the message to correspond to the total number of LLC Data bytes encapsulated in the frame (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 Am79C973/Am79C975 controller to compute the actual number of pad bytes to be inserted. The Am79C973/Am79C975 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 Am79C973/Am79C975 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. See Figure 33. . Preamble 1010....1010 SFD 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 21510D-38 Figure 33. ISO 8802-3 (IEEE/ANSI 802.3) Data Frame The 544 bit count is derived from the following: Minimum frame size (excluding preamble/SFD, including FCS) 64 bytes 512 bits Preamble/SFD size 8 bytes 64 bits FCS size 32 bits 4 bytes At the point that FCS is to be appended, the transmitted frame should contain: Preamble/SFD + (Min Frame Size - FCS) 64 + (512-32) = 544 bits A minimum length transmit frame from the Am79C973/ Am79C975 controller, therefore, will be 576 bits, after the FCS is appended. Transmit FCS Generation Automatic generation and transmission of FCS for a transmit frame depends on the value of DXMTFCS (CSR15, bit 3). If DXMTFCS is cleared to 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 to frames shorter than 64 bytes by the 74 Am79C973/Am79C975 controller regardless of the state of DXMTFCS or ADD_FCS (TMD1, bit 29). Note that the calculated FCS is transmitted most significant bit first. The default value of DXMTFCS is 0 after H_RESET. ADD_FCS (TMD1, bit 29) allows the automatic generation and transmission of FCS on a frame-by-frame basis. DXMTFCS should be set to 1 in this mode. To generate FCS for a frame, ADD_FCS must be set in all descriptors of a frame (STP is set to 1). Note that bit 29 of TMD1 has the function of ADD_FCS if SWSTYLE (BCR20, bits 7-0) is programmed to 0, 2, or 3. Transmit Exception Conditions Exception conditions for frame transmission fall into two distinct categories: those conditions 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 Am79C973/Am79C975 controller include collisions within the slot time with automatic retry. The Am79C973/Am79C975 controller will ensure that collisions which occur within 512 bit times from the Am79C973/Am79C975 P R E L I M I N A R Y 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. Note that if DRTY (CSR15, bit 5) is set to 1 or if the network interface is operating in full-duplex mode, no collision handling is required, and any byte of frame data in the FIFO can be overwritten as soon as it is transmitted. If 16 total attempts (initial attempt plus 15 retries) fail, the Am79C973/Am79C975 controller sets the RTRY bit in the current transmit TDTE in host memory (TMD2), gives up ownership (resets the OWN bit to 0) for this frame, and processes the next frame in the transmit ring for transmission. Abnormal network conditions include: Loss of carrier Late collision SQE Test Error (Does not apply to 100-Mbps networks.) These conditions should not occur on a correctly configured IEEE 802.3 network operating in half-duplex mode. If they do, they will be reported. None of these conditions will occur on a network operating in fullduplex mode. (See the section Full-Duplex Operation for more detail.) 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 cleared until the STP (the next frame) is found. Loss of Carrier LCAR will be reported for every frame transmitted if the controller detects a loss of carrier. 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 Am79C973/Am79C975 controller will abandon the transmit process for that frame, set Late Collision (LCOL) in the associated TMD2, and process the next transmit frame in the ring. Frames experiencing a late collision will not be retried. Recovery from this condition must be performed by upper layer software. SQE Test Error CERR will be asserted in the 10BASE-T mode after transmit, if the network port is in Link Fail state. CERR will never cause INTA to be activated. It will, however, set the ERR bit CSR0. Receive Operation The receive operation and features of the Am79C973/ Am79C975 controller are controlled by programmable options. The Am79C973/Am79C975 controller offers a large receive FIFO to provide frame buffering for increased system latency, automatic flushing of collision fragments (runt packets), automatic receive pad stripping, and a variety of address match options. Receive Function Programming 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 IEEE 802.3 frame format. All receive frames can be accepted by setting the PROM bit in CSR15. Acceptance of unicast and broadcast frames can be individually turned off by setting the DRCVPA or DRCVBC bits in CSR15. The Physical Address register (CSR12 to CSR14) stores the address that the Am79C973/Am79C975 controller compares to the destination address of the incoming frame for a unicast address match. The Logical Address Filter register (CSR8 to CSR11) serves as a hash filter for multicast address match. 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 01b, which sets the watermark flag at 64 bytes filled. For test purposes, the Am79C973/Am79C975 controller can be programmed to accept runt packets by setting RPA in CSR124. Address Matching The Am79C973/Am79C975 controller supports three types of address matching: unicast, multicast, and broadcast. The normal address matching procedure can be modified by programming three bits in CSR15, the mode register (PROM, DRCVPA, and DRCVBC). If the first bit received after the SFD (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 1s, 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 Am79C973/ Am79C975 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 Physical Address registers (PADR, Am79C973/Am79C975 75 P R E L I M I N A R Y CSR12 to 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]). When DRCVPA (CSR15, bit 13) is set to 1, the Am79C973/Am79C975 controller will not accept unicast frames. If the incoming frame is multicast, the Am79C973/ Am79C975 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). When 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 Am79C973/Am79C975 controller hardware. Broadcast frames are always accepted, except when DRCVBC (CSR15, bit 14) is set and there is no Logical Address match. None of the address filtering described above applies when the Am79C973/Am79C975 controller is operating in the 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, CSR15, bit 13). BAM (RMD1, bit 20) is set by the Am79C973/ Am79C975 controller when it accepted the received frame because the frame's destination address is of the type 'Broadcast'. If DRCVBC (CSR15, bit 14) is cleared to 0, only BAM, but not LAFM will be set when a Broadcast frame is received, even if the Logical Address Filter is programmed in such a way that a Broadcast frame would pass the hash filter. If DRCVBC is set to 1 and the Logical Address Filter is programmed in such a way that a Broadcast frame would pass the hash filter, LAFM will be set on the reception of a Broadcast frame. When the Am79C973/Am79C975 controller operates in promiscuous mode and none of the three match bits is set, it is an indication that the Am79C973/Am79C975 controller only accepted the frame because it was in promiscuous mode. When the Am79C973/Am79C975 controller is not programmed to be in promiscuous mode, but the EADI interface is enabled, then when none of the three match bits is set, it is an indication that the Am79C973/ Am79C975 controller only accepted the frame because it was not rejected by driving the EAR pin LOW within 64 bytes after SFD. See Table 7 for receive address matches. Table 7. Receive Address Match PAM LAF M BAM DRC VBC Comment 0 0 0 X Frame accepted due to PROM = 1 or no EADI reject The Am79C973/Am79C975 controller operates in promiscuous mode when PROM (CSR15, bit 15) is set. 1 0 0 X Physical address match In addition, the Am79C973/Am79C975 controller provides the External Address Detection Interface (EADI) to allow external address filtering. See the section External Address Detection Interface for further detail. 0 0 Logical address filter match; frame is not of type broadcast The receive descriptor entry RMD1 contains three bits that indicate which method of address matching caused the Am79C973/Am79C975 controller to accept the frame. Note that these indicator bits are only available when the Am79C973/Am79C975 controller is programmed to use 32-bit structures for the descriptor entries (BCR20, bit 7-0, SWSTYLE is set to 2 or 3). 0 1 0 1 Logical address filter match; frame can be of type broadcast 0 0 1 0 Broadcast frame PAM (RMD1, bit 22) is set by the Am79C973/ Am79C975 controller when it accepted the received frame due to a match of the frame's destination address with the content of the physical address register. LAFM (RMD1, bit 21) is set by the Am79C973/ Am79C975 controller when it accepted the received frame based on the value in the logical address filter register. 76 1 0 Automatic Pad Stripping During reception of an IEEE 802.3 frame, the pad field can be stripped automatically. Setting ASTRP_RCV (CSR4, bit 0) to 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. Am79C973/Am79C975 P R E L I M I N A R Y The number of bytes to be stripped is calculated from the embedded length field (as defined in the ISO 88023 (IEEE/ANSI 802.3) definition) contained in the frame. The length indicates the actual number of LLC data bytes contained in the message. Any received frame which contains a length field less than 46 bytes will have the pad field stripped (if ASTRP_RCV is set). Receive frames which have a length field of 46 bytes or greater will be passed to the host unmodified. Figure 34 shows the byte/bit ordering of the received length field for an IEEE 802.3-compatible frame format. 46 - 1500 Bytes 56 Bits 8 Bits 6 Bytes 6 Bytes 2 Bytes Preamble 1010....1010 SFD 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 21510D-39 Figure 34. IEEE 802.3 Frame And Length Field Transmission Order Since any valid Ethernet Type field value will always be greater than a normal IEEE 802.3 Length field (S46), the Am79C973/Am79C975 controller will not attempt to strip valid Ethernet frames. Note that for some network protocols, the value passed in the Ethernet Type and/ or IEEE 802.3 Length field is not compliant with either standard and may cause problems if pad stripping is enabled. Receive FCS Checking Reception and checking of the received FCS is performed automatically by the Am79C973/Am79C975 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, i.e., those conditions 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 Am79C973/Am79C975 controller are basically collisions within the slot time and autom at i c r u nt p a cke t r ej e c t i o n. T he A m7 9 C 97 3 / Am79C975 controller will ensure that collisions that 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 that is composed of fewer than 64 bytes provided that the Runt Packet Accept (RPA bit in CSR124) feature has not been enabled and the network interface is operating in half-duplex mode, or the full-duplex Runt Packet Accept Disable bit (FDRPAD, BCR9, bit 2) is set. This criterion will be met regardless of 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: Am79C973/Am79C975 77 P R E L I M I N A R Y FCS errors Full-Duplex Operation Late collision The Am79C973/Am79C975 controller supports full-duplex operation on both network interfaces. Full-duplex operation allows simultaneous transmit and receive activity. Full-duplex operation is enabled by the FDEN bit located in BCR9. Full-duplex operation is also enabled through Auto-Negotiation when DANAS (BCR 32, bit 7) is not enabled and the ASEL bit is set, and its link partner is capable of Auto-Negotiation and full-duplex operation. Host related receive exception conditions include MISS, BUFF, and OFLO. These are described in the section, Buffer Management Unit. 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 basic types of loopback. In internal loopback mode, the transmitted data is looped back to the receiver 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. Refer to Table 21 for various bit settings required for Loopback modes. The external loopback requires a two-step operation. The internal PHY must be placed into a loopback mode by writing to the PHY Control Register (BCR33, BCR34). Then, the Am79C973/Am79C975 controller must be placed into an external loopback mode by setting the Loop bits. Miscellaneous Loopback Features All transmit and receive function programming, such as automatic transmit padding and receive pad stripping, operates identically in loopback as in normal operation. 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 CLANCE (Am79C90) software. Since the Am79C973/Am79C975 controller has two FCS generators, there are no more restrictions on FCS generation or checking, or on testing multicast address detection as they exist in the half-duplex PCnet family devices and in the C-LANCE. On receive, the Am79C973/Am79C975 controller now provides true FCS status. The descriptor for a frame with an FCS error will have the FCS bit (RMD1, bit 27) set to 1. The FCS generator on the transmit side can still be disabled by setting DXMTFCS (CSR15, bit 3) to 1. In internal loopback operation, the Am79C973/ Am79C975 controller provides a special mode to test the collision logic. When FCOLL (CSR15, bit 4) is set to 1, a collision is forced during every transmission attempt. This will result in a Retry error. When operating in full-duplex mode, the following changes to the device operation are made: Bus Interface/Buffer Management Unit changes: The first 64 bytes of every transmit frame are not preserved in the Transmit FIFO during transmission of the first 512 bits as described in the Transmit Exception Conditions section. Instead, when full-duplex mode is active and a frame is being transmitted, the XMTFW bits (CSR80, bits 9-8) always govern when transmit DMA is requested. Successful reception of the first 64 bytes of every receive frame is not a requirement for Receive DMA to begin as described in the Receive Exception Conditions section. Instead, receive DMA will be requested as soon as either the RCVFW threshold (CSR80, bits 12-13) is reached or a complete valid receive frame is detected, regardless of length. This Receive FIFO operation is identical to when the RPA bit (CSR124, bit 3) is set during half-duplex mode operation. The MAC engine changes for full-duplex operation are as follows: Changes to the Transmit Deferral mechanism: -- Transmission is not deferred while receive is active. -- The IPG counter which governs transmit deferral during the IPG between back-to-back transmits is started when transmit activity for the first packet ends, instead of when transmit and carrier activity ends. The 4.0 s carrier sense blinding period after a transmission during which the SQE test normally occurs is disabled. The collision indication input to the MAC engine is ignored. The internal PHY changes for full-duplex operation are as follows: The collision detect (COL) pin is disabled. The SQE test function is disabled (10 Mbps). Loss of Carrier (LCAR) reporting is disabled. 78 Am79C973/Am79C975 P R E L I M I N A R Y PHY Control Register (ANR0) bit 8 is set to 1 if AutoNegotiation is disabled. pher scrambling and descrambling capability for 100BASE-TX applications. Full-Duplex Link Status LED Support In the transmit data path for 100 Mbps, the 10/100 PHY receives 4-bit (nibble) wide data across the internal MII at 25 million nibbles per second. For 100BASE-TX applications, it encodes and scrambles the data, serializes it, and transmits an MLT-3 data stream to the media via an isolation transformer. The Am79C973/Am79C975 controller provides bits in each of the LED Status registers (BCR4, BCR5, BCR6, BCR7) to display the Full-Duplex Link Status. If the FDLSE bit (bit 8) is set, a value of 1 will be sent to the associated LEDOUT bit when in Full-Duplex. 10/100 PHY Unit Overview The 10/100 PHY unit implements the complete physical layer for 10BASE-T and the Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA), and Physical Medium Dependent (PMD) functionality for 100BASE-TX. The 10/100 PHY implements AutoNegotiation allowing two devices connected across a link segment to take maximum advantage of their capabilities. Auto-Negotiation is performed using a modified 10BASE-T link integrity test pulse sequence as defined in the IEEE 802.3u specification. The internal 10/100 PHY consists of the following functional blocks: 100BASE-X Block including: -- Transmit and Receive State Machines -- 4B/5B Encoder and Decoder -- Stream Cipher Scrambler and Descrambler -- Link Monitor State Machine -- Far End Fault Indication (FEFI) State Machine -- MLT-3 Encoder -- MLT-3 Decoder with adaptive equalization The 10/100 PHY receives an MLT-3 data stream from the network for 100BASE-TX. It then recovers the clock from the data stream, de-serializes the data stream, and descrambles/decodes the data stream (5B/4B) before presenting it to the internal MII interface. 100BASE-FX (Fiber Interface) The Am79C973/Am79C975 device suppor ts a Pseudo-ECL (PECL) interface for Fiber applications. The mode is enabled when BCR2 bit 14 (DISSCR_SFEX) is set to 1 and the Signal Detect pins SDI are connected to the optical transceiver. For 100BASE-FX receive operation, the PHY unit receives a PECL data stream from the optical transceiver and decodes the data stream. For transmit operation, the PHY unit encodes and serializes the data and transmits a pseudo-ECL data stream to the fiber optic transceiver. See Figure 35. The Fiber Interface (100BASE-FX) does not support Auto-Negotiation, 10 BASE-FL, and data scrambling. When the device is set to operate in PECL mode, the 100BASE-TX operation will be disabled. 10BASE-T Physical Layer The 10/100 PHY incorporates 10BASE-T physical layer functions, including both clock recovery (ENDEC) and transceiver functions. Data transmission over the 10BASE-T medium requires an integrated 10BASE-T MAU. The transceiver will meet the electrical requirements for 10BASE-T as specified in IEEE 802.3i. The transmit signal is filtered on the transceiver to reduce harmonic content per IEEE 802.3i. Since filtering is performed in silicon, external filtering modules are not needed. The 10/100 PHY receives 10-Mbps data from the MAC across the internal MII at 2.5 million nibbles per second for 10BASE-T. It then Manchester encodes the data before transmission to the network. 10BASE-T Block including: -- Manchester Encoder/Decoder -- Collision Detection -- Jabber -- Receive Polarity Detect -- Waveshaping and Filtering Auto-Negotiation Physical Data Transceiver (PDX) PHY Control and Management 100BASE-TX Physical Layer The functions performed by the device include encoding of 4-bit data (4B/5B), decoding of received code groups (5B/4B), generating carrier sense and collision detect indications, serialization of code groups for transmission, de-serialization of serial data from reception, mapping of transmit, receive, carrier sense, and collision at the PHY/MAC interface, and recovery of clock from the incoming data stream. It offers stream ci- The RX+ pins are differential twisted-pair receivers. When properly terminated, each receiver will meet the electrical requirements for 10BASE-T as specified in IEEE 802.3i. Each receiver has internal filtering and does not require external filter modules. The 10/100 PHY receives a Manchester coded 10BASE-T data stream from the medium. It then recovers the clock and decodes the data. Am79C973/Am79C975 79 P R E L I M I N A R Y PHY/MAC Interface The internal MII-compatible interface provides the data path connection between the 10/100 PHY and 10/100 Media Access Control (MAC). The interface is compatible with Clause 22 of the IEEE 802.3 standard specification. Transmit Process The transmit process generates code-groups based on TXD[3:0], TX_EN, TX_ER signals on the internal MII. These code-groups are transmitted by the PDX block. This process is also responsible for frame encapsulation into a Physical Layer Stream, generating the collision signal based on whether a carrier is received simultaneously with transmission and generating the Carrier Sense (CRS) and Collision (COL) signals at the internal MII. The transmit process is implemented in compliance with the transmit state diagram as defined in Clause 24 of the IEEE 802.3u specification. Figure 38 shows the transmit process. Receive Process code-groups. Each code-group is comprised of five code-bits. This process detects channel activity and then aligns the incoming code bits in code-group boundaries for subsequent data decoding. The receive process is responsible for code-group alignment and also generates the Carrier Sense (CRS) signal at the internal MII. The receive process is implemented in compliance with the receive state diagram as defined in Clause 24 of the IEEE 802.3u specification. The False Carrier Indication as specified in the standard is also generated by this block, and communicated to the Reconciliation layer. Figure 38 shows the receive process. Internal PHY Loopback Path As shown in Figure 35, the 10/100 PHY provides an internal loopback path for system testing purposes. The loopback option utilizes the serial loopback path from the PDX serial output to the PDX serial input and can be programmed via the LBK[1:0] bits in the PHY Control/Status Register (ANR17). For the corresponding LBK setting, refer to the description for the PHY Control/Status Register. The receive process passes to the internal MII a sequence of data nibbles derived from the incoming 80 Am79C973/Am79C975 P R E L I M I N A R Y Internal MII-Compatible Interface RXD[3:0] & RX_ER RX_DV 1 DISALIGN 0 5 Internal MII-Compatible Interface TXD[3:0] & TX_ER 5B/4B Decoder 5 4B/5B Encoder Code Align 5 /J/K/ Insertion /T/R/ Insertion TX_EN DISSCR 5 1 0 Descrambler DISALIGN 1 0 5 5 5 Scrambler 5 PDX DISSCR 1 LBK[1:0]=10 0 Loopback Paths 5 PDX Symbol O/P 5 1 5 0 5 Deserializer Clock Recovery Serializer RSCLK LBK[1:0]=11 1 SDI 0 Serial O/P PECL Conversion SDI MLT-3 Conversion PECL Conversion MLT-3 Conversion with Adaptive Equalization and Baseline Restoration SDI TX RX Note: The 5-bit mode bypasses Encoder/Decoder and Scrambler/Descrambler logic. 21510D-40 Figure 35. 100BASE-X Transmit and Receive Data Paths of the Internal PHY Am79C973/Am79C975 81 P R E L I M I N A R Y Encoder The encoder converts the 4-bit nibble from the MII into five-bit code-groups, using a 4B/5B block coding scheme. The encoder operates on the 4-bit data nibble independent of the code-group boundar y. The 100BASE-X physical protocol data unit is called a stream. The encoding method used provides the following: Adequate codes (32) to provide for all data codegroups (16) plus necessary control code-groups. Appropriate coding efficiency (4 data bits per 5 code-bits; 80%) to implement a 100-Mbps physical layer interface on a 125-Mbps physical channel. Sufficient transition density to facilitate clock recovery (when not scrambled). The code-group mapping is defined in Table 8. Table 8. Encoder Code-Group Mapping TXD[3:0] 82 Name PCS Code-Group Interpretation 0000 0 11110 Data 0 0001 1 01001 Data 1 0010 2 10100 Data 2 0011 3 10101 Data 3 0100 4 01010 Data 4 0101 5 01011 Data 5 0 1 10 6 01110 Data 6 0111 7 01111 Data 7 1000 8 10010 Data 8 1001 9 10011 Data 9 1010 A 10110 Data A 1011 B 10111 Data B 1100 C 11010 Data C 1101 D 11011 Data D 1110 E 11100 Data E 1111 F 11101 Data F Undefined I 11111 IDLE; used as inter-Stream fill code 0101 J 11000 Start-of-Stream Delimiter, Part 1 of 2; always used in pairs with K 0101 K 10001 Start-of-Stream Delimiter, Part 2 of 2; always used in pairs with J Undefined T 01101 End-of-Stream Delimiter, Part 1 of 2; always used in pairs with R Undefined R 00111 End-of-Stream Delimiter, Part 2 of 2; always used in pairs with T Undefined H 00100 Transmit Error; used to force signaling errors Undefined V 00000 Invalid Code Undefined V 00001 Invalid Code Undefined V 00010 Invalid Code Undefined V 00011 Invalid Code Undefined V 00101 Invalid Code Undefined V 00110 Invalid Code Undefined V 01000 Invalid Code Undefined V 01100 Invalid Code Undefined V 10000 Invalid Code Undefined V 11001 Invalid Code Am79C973/Am79C975 P R E L I M I N A R Y Decoder The decoder performs the 5B/4B decoding of the received code-groups. The five bits of data are decoded into four bits of nibble data. The decoded nibble is then forwarded to the PCS Control block to be sent across the internal MII to the MAC unit. The code-group decoding is shown in Table 9. Table 9. Decoder Code-Group Mapping PCS Code-Group Name RXD[3:0] Interpretation 11110 0 0000 Data 0 01001 1 0001 Data 1 10100 2 0010 Data 2 10101 3 0011 Data 3 01010 4 0100 Data 4 01011 5 0101 Data 5 01110 6 0 1 10 Data 6 01111 7 0111 Data 7 10010 8 1000 Data 8 10011 9 1001 Data 9 10110 A 1010 Data A 10111 B 1011 Data B 11010 C 1100 Data C 11011 D 1101 Data D 11100 E 1110 Data E 11101 F 1111 Data F 11111 I Undefined IDLE; used as Inter-Stream fill code 11000 J 0101 Start-of-Stream Delimiter, Part 1 of 2; always used in pairs with K 10001 K 0101 Start-of-Stream Delimiter, Part 2 of 2; always used in pairs with J 01101 T Undefined End-of-Stream Delimiter, Part 1 of 2; always used in pairs with R 00111 R Undefined End-of-Stream Delimiter, Part 2 of 2; always used in pairs with T 00100 H Undefined Transmit Error; used to force signaling errors 00000 V Undefined Invalid Code 00001 V Undefined Invalid Code 00010 V Undefined Invalid Code 00011 V Undefined Invalid Code 00101 V Undefined Invalid Code 00110 V Undefined Invalid Code 01000 V Undefined Invalid Code 01100 V Undefined Invalid Code 10000 V Undefined Invalid Code 11001 V Undefined Invalid Code Am79C973/Am79C975 83 P R E L I M I N A R Y Scrambler/Descrambler The 4B/5B encoded data has repetitive patterns which result in peaks in the RF spectrum large enough to keep the system from meeting the standards set by regulatory agencies such as the FCC. The peaks in the radiated signal are reduced significantly by scrambling the transmitted signal. Scramblers add the output of a random generator to the data signal. The resulting signal has fewer repetitive data patterns. After reset, the scrambler seed will be set to the PHY address value to help improve the EMI performance of the device. The scrambled data stream is descrambled, at the receiver, by adding it to the output of another random generator. The receiver's random generator has the same function as the transmitter's random generator. Link Monitor The Link Monitor process is responsible for determining whether the underlying receive channel is providing reliable data. This process takes advantage of the continuous indication of signal detect by the PMD (PDX & MLT-3). The process sets the link_status to FAIL whenever signal_status is OFF. The link is reliable whenever the signal_status has been continuously ON for 330 1000 ms. The implementation is in compliance with Clause 24 of the IEEE 802.3u specification. The 10BASE-T Link Monitor monitors the line for link pulses, while the 100BASE-T Link Monitor expects 100 Mbps idle signals. When the Link Monitor detects both 10 Mbps and 100 Mbps signals, a state called Parallel Fault is entered, where the Link Monitor simply halts and fails to report a link. This condition can be caused by spurious noise on the network line. Consult the IEEE 802.3u specification for more information. The Parallel Fault Detect condition is displayed in Register 6, bit 4. The current link status of this port is displayed In the PHY Management Status Register (Register 1, bit 2). Far End Fault Generation and Detection implementation is in compliance with the Clause 24 of IEEE 802.3u specification. Far End Fault Indication can be initialized using the PHY Control/Status Register (ANR17, bit 10). MLT-3 and Adaptive Equalization This block is responsible for converting the NRZI data stream from the PDX block to a currently sourced MLT-3 encoded data stream. The effect of MLT-3 is the reduction of energy on the media (TX cable) in the critical frequency range of 20 MHz to 100 MHz. The receive section of this block is responsible for equalizing and amplifying the received data stream and link detection. The adaptive equalizer compensates for the amplitude and phase distortion due to the cable. MLT-3 is a tri-level signal. All transitions are between 0 V and +1 V or 0 V and -1 V. A transition has a logical value of 1 and a lack of a transition has a logical value of 0. The benefit of MLT-3 is that it reduces the maximum frequency over the data line. The bit rate of TX data is 125 Mbps. The maximum frequency (using NRZI) is half of 62.5 MHz. MLT-3 reduces the maximum frequency to 31.25 MHz. The implementation of this block is in compliance with ANSI X3712 TP-PMD/312, Revision 2.1 that defines a 125-Mbps, full-duplex signalling for twisted pair wiring. A data signal stream following MLT-3 rules is illustrated in Figure 36. The data stream is 1010101. The TX drivers convert the NRZI serial output to MLT-3 format. The RX receivers convert the received MLT-3 signals to NRZI. When the TX port of the 10/100 PHY is connected as in Figure 37, the transmit and receive signals will be compliant with IEEE 802.3u Section 25. The required signals (MLT-3) are described in detail in ANSI X3.263:1995 TP-PMD Revision 2.2 (1995). The 10/100 PHY provides on-chip filtering. External filters are not required for either the transmit or receive signals. Far End Fault Generation and Detection is implemented in the 10/100 PHY for 100BASE-TX over STP and 100BASE-FX. This block generates a special Far End Fault indication to its far end peer. This indication is generated only when an error condition is detected on the receive channel. When Far End Fault Indication is detected from the far end peer, this block will cause the link monitor to transition the link_status to FAIL. This action in-turn will cause IDLE code-group bits to be automatically transmitted. This is necessary to reestablish communication when the link is repaired. The 84 Am79C973/Am79C975 P R E L I M I N A R Y 1 0 1 0 1 0 1 8 ns In order to generate the serial output wave forms conforming to the specifications, the external reference clock must meet 100BASE-X frequency and stability requirements. Under normal conditions, the frequency of the 25-MHz clock multiplied by 5 must be within the 100BASE-X specified 100 ppm of the received data for the PDX to operate optimally. Note: The 100 ppm is the tolerance of the crystal-controlled source. MLT-3 The TX serial output typically contains less than 0.4 ns peak-to-peak jitter at 125 Mbaud. 21510D-41 Figure 36. MLT-3 Waveform Serializer/Deserializer and Clock Recovery The Physical Data Transceiver (PDX) is a CMOS all digital core that is used in the 10/100 PHY. It employs new circuit techniques to achieve clock and data recovery. Traditionally, Phase-Locked-Loops (PLLs) are used for the purpose of clock recovery in data communication areas. There are both analog and digital versions of the PLL components such as phase detector, filter, and charge pump. A traditional PLL always contains a voltage-controlled oscillator (VCO) to regenerate a clock which is synchronized in frequency to and aligned in phase with the received data. The PDX employs techniques that are significantly different from traditional PLLs. Not only are the control functions completely digital, the VCO function is also replaced by a proprietary delay time ruler technique. The result is a highly integratible core which can be manufactured in a standard digital CMOS process. To transmit, the PDX accepts 4B/5B encoded data symbols from the scrambler. The 5-bit symbol is clocked into the PDX by the rising edge of the 25-MHz clock, serialized and converted to NRZI format. The NRZI data is delivered to the PECL transceiver or MLT3 transceiver. The output of either of the two transceivers goes to the TX pair. The PDX uses a 25-MHz clock as the frequency and phase reference to generate the serial link data rate. The external clock source must be continuous. All of the internal logic of the PDX runs on an internal clock that is derived from the external reference source. The PDX's clock multiplier is referenced to the rising edges of the 25-MHz clock only. Receiving from the physical medium through the PMD device, the PDX accepts encoded PECL NRZI signal levels at the RX inputs. The receiver circuit recovers data from the input stream by regenerating clocking information embedded in the serial stream. The recovered clock is called RSCLK (an internal signal). The PDX then clocks the unframed symbol (5 bits) to the descrambler interface on the falling edge of RSCLK. The PDX receiver uses advanced circuit techniques to extract encoded clock information from the serial input stream and recovers the data. Its operating frequency is established by the reference clock at 25 MHz. The PDX is capable of recovering data correctly within 1000 ppm of the 25-MHz clock signal (which exceeds the frequency range defined by the 100BASE-X specification). The 100BASE-X 4B/5B encoding scheme ensures run-length limitation and adequate transition density of the encoded data stream, while TP-PMD achieves this on a statistical basis through data scrambling. The PDX clock recovery circuit is designed to tolerate a worst-case run-length of 60-bits in order to function correctly with both fiber-optic and twisted-pair PMDs. The PDX receiver has input jitter tolerance characteristics that meet or exceed the recommendations of Physical Layer Medium Dependent (PMD) 100BASE-X document. Typically, at 125 Mbaud (8 ns/bit), the peakto-peak Duty-Cycle Distortion (DCD) tolerance is 1.4 ns, the peak-to-peak Data Dependent Jitter (DDJ) tolerance is 2.2 ns, and the peak-to-peak Random Jitter (RJ) tolerance is 2.27 ns. The total combined peakto-peak jitter tolerance is typically 5 ns with a bit error rate (BER) better than 2.5 x 10-10. Medium Dependent Interface The Am79C973/Am79C975 device connects directly to low cost magnetics modules for interface to twisted pair media (UTP and/or STP). The TX and RX pins provide the interface for both 10BASE-T and 100BASE-TX allowing the use of a 1:1.41 (transmit) and 1:1 (receive) transformer with single primary and secondary windings. No filtering is required in the magnetics module. Refer to Figure 37 for recommended termination. Am79C973/Am79C975 85 P R E L I M I N A R Y Isolation Transformer with common-mode chokes * RX+ RJ45 Connector (8) (7) RX+ (3) 1:1 * 5049.9 , 1% (5) 49.9 50 , 1% (4) RX- RX- (6) .01 F SDI+ 75 75 75 SDI- * 1:1.414 * TX+ TX+ (1) 49.9 , 1% 50 TX- TX- (2) 3.3 V . 2K .01 F 75 1K 0.001 F 2KV 0.1 F .01 F (chassis ground) Notes: 1. The isolation transformers include common-mode chokes. 2. Consult magnetics vendors for appropriate termination schemes. 21510D-42 Figure 37. TX and RX Termination 10BASE-T Block IEEE 802.3, Section 14.3.1.2. The load is a twisted pair cable that meets IEEE 802.3, Section 14.4. The 10BASE-T block consists of the following subblocks: -- Transmit Process -- Receive Process -- Interface Status -- Collision Detect Function Twisted Pair Receive Function -- Jabber Function The RX+ port is a differential twisted-pair receiver. When properly terminated, the RX+ port will meet the electrical requirements for 10BASE-T receivers as specified in IEEE 802.3, Section 14.3.1.3. The receiver has internal filtering and does not require external filter modules or common mode chokes. -- Reverse Polarity Detect Refer to Figure 38 for the 10BASE-T block diagram. Twisted Pair Transmit Function Data transmission over the 10BASE-T medium requires use of the integrated 10BASE-T MAU and uses the differential driver circuitry on the TX pins. TX is a differential twisted-pair driver. When properly terminated, TX will meet the transmitter electrical requirements for 10BASE-T transmitters as specified in 86 The TX signal is filtered on the chip to reduce harmonic content per Section 14.3.2.1 (10BASE-T). Since filtering is performed in silicon, TX can be connected directly to a standard transformer. External filtering modules are not needed. Signals appearing at the RX differential input pair are routed to the internal decoder. The receiver function meets the propagation delays and jitter requirements specified by the 10BASE-T Standard. The receiver squelch level drops to half its threshold value after unsquelch to allow reception of minimum amplitude sig- Am79C973/Am79C975 P R E L I M I N A R Y nals and to mitigate carrier fade in the event of worst case signal attenuation and crosstalk noise conditions. Clock Data Clock Data Collision Detect Function Simultaneous activity (presence of valid data signals) from both the internal encoder transmit function and the twisted pair RX pins constitutes a collision, thereby causing the PCS Control block to assert the COL pin at the internal MII. Jabber Function Manchester Encoder The Jabber function inhibits the 10BASE-T twisted pair transmit function of the Am79C973/Am79C975 device if the TX circuits are active for an excessive period (20-150 ms). This prevents one port from disrupting the network due to a stuck-on or faulty transmitter condition. If the maximum transmit time is exceeded, the data path through the 10BASE-T transmitter circuitry is disabled (although Link Test pulses will continue to be sent). The PCS Control block also asserts the COL pin at the internal MII and sets the Jabber Detect bit in Register 1. Once the internal transmit data stream from the MENDEC stops, an unjab time of 250-750 ms will elapse before this block causes the PCS Control block to de-assert the COL indication and re-enable the transmit circuitry. Manchester Decoder Squelch Circuit TX Driver RX Driver TX RX 21510D-43 Figure 38. 10BASE-T Transmit and Receive Data Paths When jabber is detected, this block will cause the PCS control block to assert the COL pin and allow the PCS Control block to assert or de-assert the CRS pin to indicate the current state of the RX pair. If there is no receive activity on RX, this block causes the PCS Control block to assert only the COL pin at the internal MII. If there is RX activity, this block will cause the PCS Control block to assert both COL and CRS at the internal MII. Reverse Polarity Detect Twisted Pair Interface Status The Am79C973/Am79C975 device will power up in the Link Fail state. The Auto-Negotiation algorithm will apply to allow it to enter the Link Pass state. In the Link Pass state, receive activity which passes the pulse width/amplitude requirements of the RX inputs, will cause the PCS Control block to assert Carrier Sense (CRS) signal at the internal MII interface. Collision would cause the PCS Control block to assert Carrier Sense (CRS) and Collision (COL) signal at the internal MII. In the Link Fail state, this block would cause the PCS Control block to de-assert Carrier Sense (CRS) and Collision (COL). In jabber detect mode, this block would cause the PCS Control block to assert the COL pin at the MII, and allow the PCS Control block to assert or de-assert the CRS pin to indicate the current state of the RX pair. If there is no receive activity on RX, this block would cause the PCS Control block to assert only the COL pin at the internal MII. If there is RX activity, this block would cause the PCS Control block to assert both COL and CRS at the internal MII. The polarity for 10BASE-T signals is set by reception of Normal Link Pulses (NLP) or packets. Polarity is locked, however, by incoming packets only. The first NLP received when trying to bring the link up will be ignored, but it will set the polarity to the correct state. The reception of two consecutive packets will cause the polarity to be locked, based on the polarity of the ETD. In order to change the polarity once it has been locked, the link must be brought down and back up again. Auto-Negotiation The object of the Auto-Negotiation function is to determine the abilities of the devices sharing a link. After exchanging abilities, the Am79C973/Am79C975 device and remote link partner device acknowledge each other and make a choice of which advertised abilities to support. The Auto-Negotiation function facilitates an ordered resolution between exchanged abilities. This exchange allows both devices at either end of the link to take maximum advantage of their respective shared abilities. Am79C973/Am79C975 87 P R E L I M I N A R Y The Am79C973/Am79C975 device implements the transmit and receive Auto-Negotiation algorithm as defined in IEEE 802.3u, Section 28. The Auto-Negotiation algorithm uses a burst of link pulses called Fast Link Pulses (FLPs). The burst of link pulses are spaced between 55 and 140 s so as to be ignored by the standard 10BASE-T algorithm. The FLP burst conveys information about the abilities of the sending device. The receiver can accept and decode an FLP burst to learn the abilities of the sending device. The link pulses transmitted conform to the standard 10BASE-T template. The device can perform auto-negotiation with reverse polarity link pulses. The Am79C973/Am79C975 device uses the Auto-Negotiation algorithm to select the type connection to be established according to the following priority: 100BASE-TX full duplex, 100BASE-T4, 100BASE-TX half-duplex, 10BASE-T full duplex, 10BASE-T half-duplex. The Am79C973/Am79C975 device does not support 100BASE-T4 connections. The Auto-Negotiation algorithm is initiated when one or the following events occurs: Auto-Negotiation enable bit is set, or reset, or soft reset, or transition to link fail state (when Auto-Negotiation enable bit is set), or AutoNegotiation restart bit is set. The result of the Auto-Negotiation process can be read from the status register (Summary Status Register, ANR24). The Am79C973/Am79C975 device supports Parallel Detection for remote legacy devices which do not support the Auto-Negotiation algorithm. In the case that a 100BASE-TX only device is connected to the remote end, the Am79C973/Am79C975 device will see scrambled idle symbols and establish a 100BASE-TX only connection. If NLPs are seen, the Am79C973/ Am79C975 device will establish a 10BASE-T connection. By default, the link partner must be at least 10BASE-T half-duplex capable. The Am79C973/Am79C975 controller can automatically negotiate with the network and yield the highest performance possible without software support. See the section on Network Port Manager for more details. Table 10. Auto-Negotiation Capabilities Network Speed Physical Network Type 200 Mbps 100BASE-X, Full Duplex 100 Mbps 100BASE-T4, Half Duplex 100 Mbps 100BASE-X, Half Duplex 20 Mbps 10BASE-T, Full Duplex 10 Mbps 10BASE-T, Half Duplex 88 Auto-Negotiation goes further by providing a messagebased communication scheme called, Next Pages, before connecting to the Link Partner. This feature is not supported in the Am79C973/Am79C975 device unless the DANAS (BCR32, bit 10) is selected. Soft Reset Function The PHY Control Register (ANR0) incorporates the soft reset function (bit 15). It is a read/write register and is self-clearing. Writing a 1 to this bit causes a soft reset. When read, the register returns a 1 if the soft reset is still being performed; otherwise, it is cleared to 0. Note that the register can be polled to verify that the soft reset has terminated. Under normal operating conditions, soft reset will be finished in 150 clock cycles. Soft reset only resets the 10/100 PHY unit registers to default values (some register bits retain their previous values). Refer to the individual registers for values after a soft reset. Soft reset does not reset the PDX block nor the management interface. Soft reset is required when changing the value of the SDISSCR (scrambling/descrambling) bit. After soft reset, the register will retain the previous value written. External Address Detection Interface The EADI is provided to allow external address filtering and to provide a Receive Frame Tag word for proprietary routing information. It is selected by setting the EADISEL bit in BCR2 to 1. This feature is typically utilized by terminal servers, bridges and/or router products. The EADI interface can be used in conjunction with external logic to capture the packet destination address as it arrives at the Am79C973/Am79C975 controller, to compare the captured address with a table of stored addresses or identifiers, and then to determine whether or not the Am79C973/Am79C975 controller should accept the packet. If an address match is detected by comparison with either the Physical Address or Logical Address Filter registers contained within the Am79C973/Am79C975 controller or the frame is of the type 'Broadcast', then the frame will be accepted regardless of the condition of EAR. When the EADISEL bit of BCR2 is set to 1 and the Am79C973/Am79C975 controller is programmed to promiscuous mode (PROM bit of the Mode Register is set to 1), then all incoming frames will be accepted, regardless of any activity on the EAR pin. Internal address match is disabled when PROM (CSR15, bit 15) is cleared to 0, DRCVBC (CSR15, bit 14) and DRCVPA (CSR15, bit 13) are set to 1, and the Logical Address Filter registers (CSR8 to CSR11) are programmed to all zeros. When the EADISEL bit of BCR2 is set to 1 and internal address match is disabled, then all incoming frames will be accepted by the Am79C973/Am79C975 control- Am79C973/Am79C975 P R E L I M I N A R Y ler, unless the EAR pin becomes active during the first 64 bytes of the frame (excluding preamble and SFD). This allows external address lookup logic approximately 58 byte times after the last destination address bit is available to generate the EAR signal, assuming that the Am79C973/Am79C975 controller is not configured to accept runt packets. The EADI logic only samples EAR from 2 bit times after SFD until 512 bit times (64 bytes) after SFD. The frame will be accepted if EAR has not been asserted during this window. In order for the EAR pin to be functional in full-duplex mode, FDRPAD bit (BCR9, bit 2) needs to be set. If Runt Packet Accept (CSR124, bit 3) is enabled, then the EAR signal must be generated prior to the 8 bytes received, if frame rejection is to be guaranteed. Runt packet sizes could be as short as 12 byte times (assuming 6 bytes for source address, 2 bytes for length, no data, 4 bytes for FCS) after the last bit of the destination address is available. EAR must have a pulse width of at least 110 ns. The EADI outputs continue to provide data throughout the reception of a frame. This allows the external logic to capture frame header information to determine protocol type, internetworking information, and other useful data. The EADI interface will operate as long as the STRT bit in CSR0 is set, even if the receiver and/or transmitter are disabled by software (DTX and DRX bits in CSR15 are set). This configuration is useful as a semi-powerdown mode in that the Am79C973/Am79C975 controller will not perform any power-consuming DMA operations. However, external circuitry can still respond to control frames on the network to facilitate remote node control. Table 11 summarizes the operation of the EADI interface. Table 11. EADI Operations PROM EAR 1 X 0 1 0 0 Required Timing No timing requirements No timing requirements Received Frames All received frames Low for two bit times plus 10 ns Frame rejected if in address match mode All received frames External Address Detection Interface: MII Snoop Mode The MII Snoop mode provides all necessary data and clock signals needed for the EADI interface. Data for the EADI is the RXD[3:0] receive data provided to the internal MII. The user will receive the data as 4 bit nibbles. RX_CLK is provided to allow clocking of the RXD[3:0] receive nibble stream into the external address detection logic. The RXD[3:0] data is synchronous to the rising edge of the RX_CLK. The data arrives in nibbles and can be at a rate of 25 MHz or 2.5 MHz. The assertion of SFBD is a signal to the external address detection logic that the SFD has been detected and that the first valid data nibble is on the RXD[3:0] data bus. The SFBD signal is delayed one RX_CLK cycle from the above definition and actually signals the start of valid data. In order to reduce the amount of logic external to the Am79C973/Am79C975 controller for multiple address decoding systems, the SFBD signal will go HIGH at each new byte boundary within the packet, subsequent to the SFD. This eliminates the need for externally supplying byte framing logic. The EAR pin should be driven LOW by the external address comparison logic to reject a frame. External Address Detection Interface: Receive Frame Tagging The Am79C973/Am79C975 controller supports receive frame tagging in MII Snoop mode. The receive frame tagging implementation is a two-wire chip interface in addition to the existing EADI. The Am79C973/Am79C975 controller supports up to 15 bits of receive frame tagging per frame in the receive frame status (RFRTAG). The RFRTAG bits are in the receive frame status field in RMD2 (bits 30-16) in 32-bit software mode. The receive frame tagging is not supported in the 16-bit software mode. The RFRTAG field are all zeros when either the EADISEL (BCR2, bit3) or the RXFRTAG (CSR7, bit 14) are set to 0. When EADISEL (BCR2, bit 3) and RXFRTAG (CSR7, bit 14) are set to 1, then the RFRTAG reflects the tag word shifted in during that receive frame. In the MII Snoop mode, the two-wire interface will use the MIIRXFRTGD and MIIRXFRTGE pins from the EADI interface. These pins will provide the data input and data input enable for the receive frame tagging, respectively. These pins are normally not used during the MII operation. The receive frame tag register is a shift register that shifts data in MSB first, so that less than the 15 bits allocated may be utilized by the user. The upper bits not utilized will return zeros. The receive frame tag register is set to 0 in between reception of frames. After receiving SFBD indication on the EADI, the user can start shifting data into the receive tag register until one network clock period before the Am79C973/Am79C975 controller receives the end of the current receive frame. In the MII Snoop mode, the user must see the RX_CLK to drive the synchronous receive frame tag data interface. After receiving the SFBD indication, sampled by the rising edge of the RX_CLK, the user will drive the data input and the data input enable synchronous with the rising edge of the RX_CLK. The user has until one network clock period before the deassertion of the Am79C973/Am79C975 89 P R E L I M I N A R Y RX_DV to input the data into the receive frame tag register. At the deassertion of the RX_DV, the receive frame tag register will no longer accept data from the two-wire interface. If the user is still driving the data input enable pin, erroneous or corrupted data may reside in the receive frame tag register. See Figure 39. RX_CLK RX_DV SF/BD MIIRXFRTGE MIIRXFRTGD 21510D-44 Figure 39. Receive Frame Tagging Expansion Bus Interface The Am79C973/Am79C975 controller contains an Expansion Bus Interface that supports Flash and EPROM devices as boot devices, as well as provides read/write access to Flash or EPROM. The signal AS_EBOE is provided to strobe the upper 8 bits of the address into an external `374 (D flip-flop) address latch. AS_EBOE is asser ted LOW during EPROM/Flash read operations to control the OE input of the EPROM/Flash. The Expansion Bus Address is split into two different bus es, EBUA _EB A[7:0] and EB DA [15:8]. Th e EBUA_EBA[7:0] provides the least and the most significant address byte. When accessing EPROM/Flash, the EBUA_EBA[7:0] is strobed into an external `374 (D flip-flop) address latch. This constitutes the most significant portion of the Expansion Bus Address. For EPROM/Flash accesses, EBUA_EBA[7:0] constitutes the remaining least significant address byte. For byte oriented EPROM/Flash accesses, EBDA[15:8] constitutes the upper or middle address byte. EBADDRU (BCR29, bits 3-0) should be set to 0 when not used, since EBADDRU constitutes the EBUA portion of the EBUA_EBA address byte and is strobed into the external '374 address latch. The signal EROMCS is connected to the CS/CE input of the EPROM/Flash. The signal EBWE is connected to the WE of the Flash device. The Expansion Data Bus is configured for 8-bit byte access during EPROM/Flash accesses. During EPROM/ Flash accesses, EBD[7:0] provides the data byte. See Figure 40, Figure 41, and Figure 42. Expansion ROM - Boot Device Access The Am79C973/Am79C975 controller suppor ts EPROM or Flash as an Expansion ROM boot device. 90 Both are configured using the same methods and operate the same. See the previous section on Expansion ROM transfers to get the PCI timing and functional description of the transfer method. The Am79C973/ Am79C975 controller is functionally equivalent to the PCnet-PCI II controller with Expansion ROM. See Figure 41 and Figure 42. The Am79C973/Am79C975 controller will always read four bytes for every host Expansion ROM read access. The interface to the Expansion Bus runs synchronous to the PCI bus interface clock. The Am79C973/ Am79C975 controller will start the read operation to the Expansion ROM by driving the upper 8 bits of the Expansion ROM address on EBUA_EBA[7:0]. One-half clock later, AS_EBOE goes high to allow registering of the upper address bits externally. The upper portion of the Expansion ROM address will be the same for all four byte read cycles. AS_EBOE is driven high for one-half clock, EBUA_EBA[7:0] are driven with the upper 8 bits of the Expansion ROM address for one more clock cycle after AS_EBOE goes low. Next, the Am79C973/ Am79C975 controller starts driving the lower 8 bits of the Expansion ROM address on EBUA_EBA[7:0]. The time that the Am79C973/Am79C975 controller waits for data to be valid is programmable. ROMTMG (BCR18, bits 15-12) defines the time from when the Am79C973/Am79C975 controller drives EBUA_EBA[7:0] with the lower 8 bits of the Expansion ROM address to when the Am79C973/Am79C975 controller latches in the data on the EBD[7:0] inputs. The register value specifies the time in number of clock cycles. When ROMTMG is set to nine (the default value), EBD[7:0] is sampled with the next rising edge of CLK ten clock cycles after EBUA_EBA[7:0] was driven with a new address value. The clock edge that is used to sample the data is also the clock edge that generates the next Expansion ROM address. All four bytes of Ex- Am79C973/Am79C975 P R E L I M I N A R Y pansion ROM data are stored in holding registers. One clock cycle after the last data byte is available, the Am79C973/Am79C975 controller asserts TRDY. The access time for the Expansion ROM or the EBDATA (BCR30) device (tACC) during read operations can be calculated by subtracting the clock to output delay for the EBUA_EBA[7:0] outputs (tv_A_D) and by subtracting the input to clock setup time for the EBD[7:0] inputs (t s_D ) from the time defined by ROMTMG: tACC = ROMTMG * CLK period *CLK_FAC - (tv_A_D) (ts_D) EBD[7:0] EBWE EBUA_EBA[7:0] '374 D-FF AS_/EBOE A[23:16] A[15:8] A[7:0] EBDA[15:8] FLASH Am79C973 WE DQ[7:0] CS OE EROMCS 21510D-45 Figure 40. Flash Configuration for the Expansion Bus The access time for the Expansion ROM or for the EBDATA (BCR30) device (tACC) during write operations can be calculated by subtracting the clock to output delay for the EBUA EBA[7:0] outputs (tv_A_D) and by adding the input to clock setup time for Flash/EPRO inputs (ts_D) from the time defined by ROMTMG: tACC = ROMTMG * CLK period * CLK_FAC - (tv_A_D) (ts_D) The timing diagram in Figure 43 assumes the default programming of ROMTMG (1001b = 9 CLK). After reading the first byte, the Am79C973/Am79C975 controller reads in three more bytes by incrementing the lower portion of the ROM address. After the last byte is strobed in, TRDY will be asserted on clock 50. When the host tries to perform a burst read of the Expansion ROM, the Am79C973/Am79C975 controller will disconnect the access at the second data phase. The host must program the Expansion ROM Base Address register in the PCI configuration space before the first access to the Expansion ROM. The Am79C973/ Am79C973/Am79C975 91 P R E L I M I N A R Y Am79C975 controller will not react to any access to the Expansion ROM until both MEMEN (PCI Command register, bit 1) and ROMEN (PCI Expansion ROM Base Address register, bit 0) are set to 1. After the Expansion ROM is enabled, the Am79C973/Am79C975 controller will claim all memory read accesses with an address between ROMBASE and ROMBASE + 1M - 4 (ROM- BASE, PCI Expansion ROM Base Address register, bits 31-20). The address output to the Expansion ROM is the offset from the address on the PCI bus to ROMBASE. The Am79C973/Am79C975 controller aliases all accesses to the Expansion ROM of the command types Memory Read Multiple and Memory Read Line to the basic Memory Read command. EBD[7:0] EBWE A[15:8] A[7:0] EBUA_EBA[7:0] EPROM DQ[7:0] CS OE EROMCS EBDA[15:8] Am79C973 AS_EBOE 21510D-46 Figure 41. EPROM Only Configuration for the Expansion Bus (64K EPROM) 92 Am79C973/Am79C975 P R E L I M I N A R Y EBD[7:0] Am79C973 EBWE '374 D-FF A[23:16] A[15:8] A[7:0] EBUA_EBA[7:0] EPROM DQ[7:0] CS OE EROMCS EBDA[15:8] 21510D-47 AS_EBOE Figure 42. EPROM Only Configuration for the Expansion Bus (>64K EPROM) Since setting MEMEN also enables memory mapped access to the I/O resources, attention must be given to the PCI Memory Mapped I/O Base Address register, before enabling access to the Expansion ROM. The host must set the PCI Memory Mapped I/O Base Address register to a value that prevents the Am79C973/ Am79C975 controller from claiming any memory cycles not intended for it. (BCR30). The user must load the upper address EPADDRU (BCR 29, bits 3-0) and then set the FLASH (BCR29, bit 15) bit to a 1. The Flash read/write utilizes the PCI clock instead of the EBCLK during all accesses. EPADDRU is not needed if the Flash size is 64K or less, but still must be programmed. The user will then load the lower 16 bits of address, EPADDRL (BCR 28, bits 15-0). During the boot procedure, the system will try to find an Expansion ROM. A PCI system assumes that an Expansion ROM is present when it reads the ROM signature 55h (byte 0) and AAh (byte 1). Flash/EPROM Read Direct Flash Access Am79C973/Am79C975 controller supports Flash as an Expansion ROM device, as well as providing a read/ wr ite data path to the Flash. The Am79C973/ Am79C975 controller will support up to 1 Mbyte of Flash on the Expansion Bus. The Flash is accessed by a read or write to the Expansion Bus Data por t A read to the Expansion Bus Data Port (BCR30) will start a read cycle on the Expansion Bus Interface. The Am79C 973/Am79C975 controller will dr ive EBUA_EBA[7:0] with the most significant address byte at the same time the Am79C973/Am79C975 controller will drive AS_EBOE high to strobe the address in the external `374 (D flip-flop). On the next clock, the Am79C973/Am79C975 controller will drive EBDA[15:8] and EBUA_EBA[7:0] with the middle and least significant address bytes. Am79C973/Am79C975 93 P R E L I M I N A R Y A[19:16] 5 10 15 20 25 30 35 40 45 50 55 60 66 CLK EBUA_EBA [7:0] A[7:2], 0, 0 A[7:2], 0, 1 A[7:2], 1, 0 A[7:2], 1, 1 Latched Address EBDA [15:8] EBD AS_EBO EROMCS FRAME IRDY TRDY DEVSEL 21510D-48 Figure 43. Expansion ROM Bus Read Sequence EBUA[19:16] CLK 1 2 3 4 5 6 7 EBUA_EBA[7:0] 8 9 10 11 12 13 EBA[7:0] EBDA[15:8] EBDA[15:8] EBD[7:0] EROMCS AS_EBOE 21510D-49 Figure 44. Flash Read from Expansion Bus Data Port The EROMCS is driven low for the value ROMTMG + 1. Figure 44 assumes that ROMTMG is set to nine. EBD[7:0] is sampled with the next rising edge of CLK ten clock cycles after EBUA_EBA[7:0] was driven with a new address value. This PCI slave access to the Flash/EPROM will result in a retry for the very first access. Subsequent accesses may give a retry or not, depending on whether or not the data is present and valid. The access time is dependent on the ROMTMG bits (BCR18, bits 15-12) and the Flash/EPROM. This access mechanism differs from the Expansion ROM access mechanism since only one byte is read in this manner, instead of the 4 bytes in an Expansion ROM access. The PCI bus will not be held during accesses through the Expansion Bus Data Port. If the LAAINC (BCR29, bit 15) is set, the EBADDRL address will be 94 incremented and a continuous series of reads from the Expansion Data Port (EBDATA, BCR30) is possible. The address incrementor will roll over without warning and without incrementing the upper address EBADDRU. The Flash write is almost the same procedure as the read access, except that the Am79C973/Am79C975 controller will not drive AS_EBOE low. The EROMCS and EBWE are driven low for the value ROMTMG again. The write to the FLASH port is a posted write and will not result in a retry to the PCI unless the host tries to write a new value before the previous write is complete, then the host will experience a retry. See Figure 45. Am79C973/Am79C975 P R E L I M I N A R Y EBUA[19:16] CLK 1 2 3 4 5 6 EBUA_EBA[7:0] 7 8 9 10 11 12 13 EBA[7:0] EBDA[15:8] EBDA[15:8] EBD[7:0] EROMCS AS_EBOE EBWE 21510D-50 Figure 45. Flash Write from Expansion Bus Data Port AMD Flash Programming AMD's Flash products are programmed on a byte-bybyte basis. Programming is a four bus cycle operation. There are two "unlock" write cycles. These are followed by the program set-up command and data write cycles. Addresses are latched on the falling edge of EBWE and the data is latched on the rising edge of EBWE. The rising edge of EBWE begins programming. Upon executing the AMD Flash Embedded Program Algorithm command sequence, the Am79C973/ Am79C975 controller is not required to provide further controls or timing. The AMD Flash product will compliment EBD[7] during a read of the programmed location until the programming is complete. The host software should poll the programmed address until EBD[7] matches the programmed value. AMD Flash byte programming is allowed in any sequence and across sector boundaries. Note that a data 0 cannot be programmed back to a 1. Only erase operations can convert zeros to ones. AMD Flash chip erase is a six-bus cycle operation. There are two unlock write cycles, followed by writing the set-up command. Two more unlock cycles are then followed by the chip erase command. Chip erase does not require the user to program the device prior to erasure. Upon executing the AMD Flash Embedded Erase Algorithm command sequence, the Flash device will program and verify the entire memory for an all zero data pattern prior to electrical erase. The Am79C973/Am79C975 controller is not required to provide any controls or timings during these operations. The automatic erase begins on the rising edge of the last EBWE pulse in the command sequence and terminates when the data on EBD[7] is 1, at which time the Flash device returns to the read mode. Polling by the Am79C973/Am79C975 controller is not required during the erase sequence. The following FLASH programming-table excerpt (Table 12) shows the command sequence for byte programming and sector/chip erasure on an AMD Flash device. In the following table, PA and PD stand for programmed address and programmed data, and SA stands for sector address. The Am79C973/Am79C975 controller will support only a single sector erase per command and not concurrent sector erasures. The Am79C973/Am79C975 controller will support most FLASH devices as long as there is no timing requirement between the completion of commands. The FLASH access time cannot be guaranteed with the Am79C973/Am79C975 controller access mechanism. The Am79C973/Am79C975 controller will also support only Flash devices that do not require data hold times after write operations. See Table 12. Table 12. Am29Fxxx Flash Command Command Sequence Bus Write Cycles Req'd Addr Data Addr Byte Program 4 5555h AAh 2AAAh Chip Erase 6 5555h AAh Sector Erase 6 5555h AAh First Bus Write Cycle Second Bus Write Cycle Third Bus Write Cycle Fourth Bus Write Cycle Fifth Bus Write Cycle Sixth Bus Write Cycle Data Addr Data Addr Data Addr Data Addr Data 55H 5555h A0h PA PD 2AAAh 55H 5555h 80h 5555h AAh 2AAAh 55h 5555h 10h 2AAAh 55H 5555h 80h 5555h AAh 2AAAh 55h SA 3h Am79C973/Am79C975 95 P R E L I M I N A R Y SRAM Configuration No SRAM Configuration The Am79C973/Am79C975 controller supports internal SRAM as a FIFO extension as well as providing a read/write data path to the SRAM. The Am79C973/ Am79C975 controller contains 12 Kbytes of SRAM. If the SRAM_SIZE (BCR25, bits 7-0) value is 0 in the SRAM size register, the Am79C973/Am79C975 controller will assume that there is no SRAM present and will reconfigure the four internal FIFOs into two FIFOs, one for transmit and one for receive. The FIFOs will operate the same as in the PCnet-PCI II controller. When the SRAM SIZE (BCR25, bits 7-0) value is 0, the SRAM BND (BCR26, bits 7-0) are ignored by the Am79C973/ Am79C975 controller. See Figure 46. Internal SRAM Configuration The SRAM_SIZE (BCR25, bits 7-0) programs the size of the SRAM. SRAM_SIZE can be programmed to a smaller value than 12 Kbytes. The SRAM should be programmed on a 512-byte boundary. However, there should be no accesses to the RAM space while the Am79C973/Am79C975 controller is running. The Am79C973/Am79C975 controller assumes that it completely owns the SRAM while it is in operation. To specify how much of the SRAM is allocated to transmit and how much is allocated to receive, the user should program SRAM_BND (BCR26, bits 70) with the page boundary where the receive buffer begins. The SRAM_BND also should be programmed on a 512-byte boundary. The transmit buffer space starts at 0000h. It is up to the user or the software driver to split up the memory for transmit or receive; there is no defaulted value. The minimum SRAM size required is four 512-byte pages for each transmit and receive queue, which limits the SRAM size to be at least 4 Kbytes. The SRAM_BND upon H_RESET will be reset to 0000h. The Am79C973/Am79C975 controller will not have any transmit buffer space unless SRAM_BND is programmed. The last configuration parameter necessary is the clock source used to control the Expansion Bus interface. This is programmed through the SRAM Interface Control register. The externally driven Expansion Bus Clock (EBCLK) can be used by specifying a value of 010h in EBCS (BCR27, bits 5-3). This allows the user to utilize any clock that may be available. There are two standard clocks that can be chosen as well, the PCI clock or the externally provided time base clock. When the PCI or time base clock is used, the EBCLK does not have to be driven, but it must be tied to VDD through a resistor. The user must specify an SRAM clock (BCR27, bits 5-3) that will not stop unless the Am79C973/Am79C975 controller is stopped. Otherwise, the Am79C973/Am79C975 controller will report buffer overflows, underflows, corrupt data, and will hang eventually. The user can decide to use a fast clock and then divide down the frequency to get a better duty-cycle if required. The choices are a divide by 2 or 4 and is programmed by the CLK_FAC bits (BCR27, bits 2-0). Note that the Am79C973/Am79C975 controller does not support an SRAM frequency above 33 MHz regardless of the clock and clock factor used. 96 Low Latency Receive Configuration If the LOLATRX (BCR27, bit 4) bit is set to 1, then the Am79C973/Am79C975 controller will configure itself for a low latency receive configuration. In this mode, SRAM is required at all times. If the SRAM_SIZE (BCR25, bits 7- 0) value is 0, the Am79C973/ Am79C975 controller will not configure for low latency receive mode. The Am79C973/Am79C975 controller will provide a fast path on the receive side bypassing the SRAM. All transmit traffic will go to the SRAM, so SRAM_BND (BCR26, bits 7-0) has no meaning in low l ate nc y r e c ei ve m od e. Wh en th e Am 79 C9 73 / Am79C975 controller has received 16 bytes from the network, it will start a DMA request to the PCI Bus Interface Unit. The Am79C973/Am79C975 controller will not wait for the first 64 bytes to pass to check for collisions in Low Latency Receive mode. The Am79C973/ Am79C975 controller must be in STOP before switching to this mode. See Figure 47. CAUTION: To provide data integrity when switching into and out of the low latency mode, DO NOT SET the FASTSPNDE bit when setting the SPND bit. Rece iv e f ra me s WI LL b e ove rw ri t t en a n d t h e Am79C973/Am79C975 controller may give erratic behavior when it is enabled again. Direct SRAM Access The SRAM can be accessed through the Expansion Bus Data port (BCR30). To access this data port, the user must load the upper address EPADDRU (BCR29, bits 3-0) and set FLASH (BCR29, bit 15) to 0. Then the user will load the lower 16 bits of address EPADDRL (BCR28, bits 15-0). To initiate a read, the user reads the Expansion Bus Data Port (BCR30). This slave access from the PCI will result in a retry for the very first access. Subsequent accesses may give a retry or not, depending on whether or not the data is present and valid. The direct SRAM access uses the same FLASH/ EPROM access except for accessing the SRAM in word format instead of byte format. This access is meant to be a diagnostic access only. The SRAM can only be accessed while the Am79C973/Am79C975 controller is in STOP or SPND (FASTSPNDE is set to 0) mode. Am79C973/Am79C975 P R E L I M I N A R Y . Bus Rcv FIFO MAC Rcv FIFO 802.3 MAC Core PCI Bus Interface Unit MAC Xmt FIFO Bus Xmt FIFO Buffer Management Unit FIFO Control 21510D-51 Figure 46. Block Diagram No SRAM Configuration Bus Rcv FIFO PCI Bus Interface Unit MAC Rcv FIFO Bus Xmt FIFO Buffer Management Unit 802.3 MAC Core SRAM MAC Xmt FIFO FIFO Control 21510D-52 Figure 47. Block Diagram Low Latency Receive Configuration Am79C973/Am79C975 97 P R E L I M I N A R Y EEPROM Interface EEPROM Auto-Detection The Am79C973/Am79C975 controller contains a builtin capability for reading and writing to an external serial 93C46 EEPROM. This built-in capability consists of an interface for direct connection to a 93C46 compatible EEPROM, an automatic EEPROM read feature, and a user-programmable register that allows direct access to the interface pins. Automatic EEPROM Read Operation Shortly after the deassertion of the RST pin, the Am79C973/Am79C975 controller will read the contents of the EEPROM that is attached to the interface. Because of this automatic-read capability of the Am79C973/Am79C975 controller, an EEPROM can be us ed t o pr ogram m any of th e feat ur es of th e Am79C973/Am79C975 controller at power-up, allowing system-dependent configuration information to be stored in the hardware, instead of inside the device driver. If an EEPROM exists on the interface, the Am79C973/ Am79C975 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 Am79C973/Am79C975 controller. Access to the Am79C973/Am79C975 configuration space, the Expansion ROM or any I/O resource is not possible during the EEPROM read operation. The Am79C973/ Am79C975 controller will terminate any access attempt with the assertion of DEVSEL and STOP while TRDY is not asserted, signaling to the initiator to disconnect and 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 passes, PVALID (BCR19, bit 15) will be set to 1. If the checksum verification of the EEPROM data fails, PVALID will be cleared to 0, and the Am79C973/ Am79C975 controller will force all EEPROM-programmable BCR registers back to their H_RESET default values. However, the content of the Address PROM locations (offsets 0h - Fh from the I/O or memory mapped I/O base address) will not be cleared. The 8bit checksum for the entire 68 bytes of the EEPROM should be FFh. If no EEPROM is present at the time of the automatic read operation, the Am79C973/Am79C975 controller will recognize this condition and will abort the automatic read operation and clear 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 or memory mapped I/O base address) will be undefined. 98 The Am79C973/Am79C975 controller uses the EESK/ LED1/SFBD pin to determine if an EEPROM is present in the system. At the rising edge of CLK during the last clock during which RST is asserted, the Am79C973/ Am79C975 controller will sample the value of the EESK/LED1/SFBD pin. If the sampled value is a 1, then the Am79C973/Am79C975 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/SFBD is a 0, the Am79C973/Am79C975 controller assumes that an external pulldown device is holding the EESK/LED1/ SFBD pin low, indicating that there is no EEPROM in the system. Note that if the designer creates a system that contains an LED circuit on the EESK/LED1/SFBD pin, but has no EEPROM present, then the EEPROM auto-detection function will incorrectly conclude that an EEPROM is present in the system. However, this will not pose a problem for the Am79C973/Am79C975 controller, since the checksum verification will fail. Direct Access to the Interface The user may directly access the port through the EEPROM register, BCR19. This register contains bits that can be used to control the interface pins. By performing an appropriate sequence of 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: I/O offsets 0h-Fh Address PROM locations BCR2 Miscellaneous Configuration BCR4 LED0 Status BCR5 LED1 Status BCR6 LED2 Status BCR7 LED3 Status BCR9 Full-Duplex Control BCR18 Burst and Bus Control BCR22 PCI Latency BCR23 PCI Subsystem Vendor ID BCR24 PCI Subsystem ID BCR25 SRAM Size BCR26 SRAM Boundary BCR27 SRAM Interface Control BCR32 PHY Control and Status BCR33 PHY Address Am79C973/Am79C975 P R E L I M I N A R Y BCR35 PCI Vendor ID BCR36 PCI Power Management Capabilities (PMC) Alias Register BCR37 PCI DATA Register Zero (DATA0) Alias Register BCR38 PCI DATA Register One (DATA1) Alias Register BCR39 PCI DATA Register Two (DATA2) Alias Register BCR40 PCI DATA Register (DATA3) Alias Register BCR41 PCI DATA Register Four (DATA4) Alias Register BCR42 PCI DATA Register Five (DATA5) Alias Register BCR43 PCI DATA Register Six (DATA6) Alias Register BCR44 PCI DATA Register (DATA7) Alias Register BCR45 OnNow Pattern Register 1 Matching BCR46 OnNow Pattern Register 2 Matching BCR47 OnNow Pattern Register 3 Matching CSR12 Physical Address Register 0 CSR13 Physical Address Register 1 CSR14 Physical Address Register 2 CSR116 OnNow Miscellaneous Three Seven If PREAD (BCR19, bit 14) and PVALID (BCR19, bit 15) are cleared to 0, 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 Address PROM locations, however, will not be cleared. EEPROM MAP The automatic EEPROM read operation will access 41 words (i.e., 82 bytes) of the EEPROM. The format of the EEPROM contents is shown in Table 13 (next page), beginning with the byte that resides at the lowest EEPROM address. Note: The first bit out of any word location in the EEPROM is treated as the MSB of the register being programmed. For example, the first bit out of EEPROM word location 09h will be written into BCR4, bit 15; the second bit out of EEPROM word location 09h will be written into BCR4, bit 14, etc. There are two checksum locations within the EEPROM. The first checksum will be used by AMD driver software to verify that the ISO 8802-3 (IEEE/ANSI 802.3) station address has not been corrupted. The value of bytes 0Ch and 0Dh should match the sum of bytes 00h through 0Bh and 0Eh and 0Fh. The second checksum location (byte 51h) 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 82 bytes of EEPROM data equals the value FFh. T h e c h e ck s u m a d j u s t by t e i s n e e d e d by t h e Am79C973/Am79C975 controller in order to verify that the EEPROM content has not been corrupted. LED Support The Am79C973/Am79C975 controller can support up to four LEDs. LED outputs LED0, LED1, and LED2 allow for direct connection of an LED and its supporting pullup device. In applications that want to use the pin to drive an LED and also have an EEPROM, it might be necessary to buffer the LED3 circuit from the EEPROM connection. When an LED circuit is directly connected to the EEDO/LED3/SRD pin, then it is not possible for most EEPROM devices to sink enough IOL to maintain a valid low level on the EEDO input to the Am79C973/ Am79C975 controller. Use of buffering can be avoided if a low power LED is used. Each LED can be programmed through a BCR register to indicate one or more of the following network status or activities: Collision Status, Full-Duplex Link Status, Half-Duplex Link Status, Receive Match, Receive Status, Magic Packet, Disable Transceiver, and Transmit Status. Am79C973/Am79C975 99 P R E L I M I N A R Y Table 13. Am79C973 EEPROM Map Word Address Byte Addr. 00h* 01h 01h 02h 03h 03h 05h 07h 04h 09h 05h 0Bh 06h 0Dh 07h 0Fh 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 21h 22h 23h 24h 25h 26h 27h 11h 13h 15h 17h 19h 1Bh 1Dh 1Fh 21h 23h 25h 27h 29h 2Bh 2Dh 2Fh 31h 33h 35h 37h 39h 3Bh 3Dh 3Fh 41h 43h 45h 47h 49h 4Bh 4Dh 4Fh 28h 51h 3Eh 3Fh 7Dh 7Fh Most Significant Byte 2nd byte of the ISO 8802-3 (IEEE/ANSI 802.3) station physical address for this node Byte Addr. 00h 4th byte of the node address 02h 6th byte of the node address 04h CSR116[15:8] (OnNow Misc. Config). 06h Hardware ID: must be 11h if compatibility to 08h Reserved location: must be 00h AMD drivers is desired User programmable space 0Ah User programmable space MSB of two-byte checksum, which is the sum LSB of two-byte checksum, which is the sum 0Ch of bytes 00h-0Bh and bytes 0Eh and 0Fh of bytes 00h-0Bh and bytes 0Eh and 0Fh Must be ASCII "W" (57h) if compatibility to Must be ASCII "W" (57h) if compatibility to 0Eh AMD driver software is desired AMD driver software is desired BCR2[15:8] (Miscellaneous Configuration) 10h BCR2[7:0] (Miscellaneous Configuration) BCR4[15:8] (Link Status LED) 12h BCR4[7:0] (Link Status LED) BCR5[15:8] (LED1 Status) 14h BCR5[7:0] (LED1 Status) BCR6[15:8] (LED2 Status) 16h BCR6[7:0] (LED2 Status) BCR7[15:8] (LED3 Status) 18h BCR7[7:0] (LED3 Status) BCR9[15:8] (Full-Duplex control) 1Ah BCR9[7:0] (Full-Duplex Control) BCR18[15:8] (Burst and Bus Control) 1Ch BCR18[7:0] (Burst and Bus Control) BCR22[15:8] (PCI Latency) 1Eh BCR22[7:0] (PCI Latency) BCR23[15:8] (PCI Subsystem Vendor ID) 20h BCR23[7:0] (PCI Subsystem Vendor ID) BCR24[15:8] (PCI Subsystem ID) 22h BCR24[7:0] (PCI Subsystem ID) BCR25[15:8] (SRAM Size) 24h BCR25[7:0] (SRAM Size) BCR26[15:8] (SRAM Boundary) 26h BCR26[7:0] (SRAM Boundary) BCR27[15:8] (SRAM Interface Control) 28h BCR27[7:0] (SRAM Interface Control) BCR32[15:8] (MII Control and Status) 2Ah BCR32[7:0] (MII Control and Status) BCR33[15:8] (MII Address) 2Ch BCR33[7:0] (MII Address) BCR35[15:8] (PCI Vendor ID) 2Eh BCR35[7:0] (PCI Vendor ID) BCR36[15:8] (Conf. Space. byte 43h alias) 30h BCR36[7:0] (Conf. Space byte 42h alias) BCR37[15:8] (DATA_SCALE alias 0) 32h BCR37[7:0] (Conf. Space byte 47h0alias) BCR38[15:8] (DATA_SCALE alias 1) 34h BCR38[7:0] (Conf. Space byte 47h1alias) BCR39[15:8] (DATA_SCALE alias 2) 36h BCR39[7:0] (Conf. Space byte 47h2alias) BCR40[15:8] (DATA_SCALE alias 3) 38h BCR40[7:0] (Conf. Space byte 47h3alias) BCR41[15:8] (DATA_SCALE alias 4) 3Ah BCR41[7:0] (Conf. Space byte 47h4alias) BCR42[15:8] (DATA_SCALE alias 0) 3Ch BCR42[7:0] (Conf. Space byte 47h5alias) BCR43[15:8] (DATA_SCALE alias 0) 3Eh BCR43[7:0] (Conf. Space byte 47h6alias) BCR44[15:8] (DATA_SCALE alias 0) 40h BCR44[7:0] (Conf. Space byte 47h7alias) BCR48[15:8]Reserved location:must be 00h 42h BCR48[7:0]Reserved location: must be 00h BCR49[15:8]Reserved location:must be 00h 44h BCR49[7:0]Reserved location: must be 00h BCR50[15:8]Reserved location:must be 00h 46h BCR50[7:0]Reserved location: must be 00h BCR51[15:8]Reserved location:must be 00h 48h BCR51[7:0]Reserved location: must be 00h BCR52[15:8]Reserved location:must be 00h 4Ah BCR52[7:0]Reserved location: must be 00h BCR53[15:8]Reserved location:must be 00h 4Ch BCR53[7:0]Reserved location: must be 00h BCR54[15:8]Reserved location:must be 00h 4Eh BCR54[7:0]Reserved location: must be 00h Checksum adjust byte for the 82 bytes of the EEPROM contents, checksum of the 82 bytes 50h BCR55[7:0]Reserved location: must be 00h of the EEPROM should total to FFh Empty locations - Ignored by device Reserved for Boot ROM usage Reserved for Boot ROM usage 7Ch 7Eh Note: *Lowest EEPROM address. 100 Least Significant Byte First byte of the IS0 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 3rd byte of the node address 5th byte of the node address CSR116[7:0] (OnNow Misc. Config.) Am79C973/Am79C975 Reserved for Boot ROM usage Reserved for Boot ROM usage P R E L I M I N A R Y Table 14. Am79C975 EEPROM Map Word Addr. Byte Addr. 00h* 01h 01h 02h 03h 03h 05h 07h 04h 09h 05h 0Bh 06h 0Dh 07h 0Fh 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 21h 22h 23h 24h 25h 26h 27h 11h 13h 15h 17h 19h 1Bh 1Dh 1Fh 21h 23h 25h 27h 29h 2Bh 2Dh 2Fh 31h 33h 35h 37h 39h 3Bh 3Dh 3Fh 41h 43h 45h 47h 49h 4Bh 4Dh 4Fh 28h 51h 3Eh 3Fh 7Dh 7Fh Most Significant Byte 2nd byte of the ISO 8802-3 (IEEE/ANSI 802.3) station physical address for this node 4th byte of the node address 6th byte of the node address CSR116[15:8] (OnNow Misc. Config). Hardware ID: must be 11h if compatibility to AMD drivers is desired User programmable space MSB of two-byte checksum, which is the sum of bytes 00h-0Bh and bytes 0Eh and 0Fh Must be ASCII "W" (57h) if compatibility to AMD driver software is desired BCR2[15:8] (Miscellaneous Configuration) BCR4[15:8] (Link Status LED) BCR5[15:8] (LED1 Status) BCR6[15:8] (LED2 Status) BCR7[15:8] (LED3 Status) BCR9[15:8] (Full-Duplex Control) BCR18[15:8] (Burst and Bus Control) BCR22[15:8] (PCI Latency) BCR23[15:8] (PCI Subsystem Vendor ID) BCR24[15:8] (PCI Subsystem ID) BCR25[15:8] (SRAM Size) BCR26[15:8] (SRAM Boundary) BCR27[15:8] (SRAM Interface Control) BCR32[15:8] (MII Control and Status) BCR33[15:8] (MII Address) BCR35[15:8] (PCI Vendor ID) BCR36[15:8] (Conf. Sp. byte 43h alias) BCR37[15:8] (DATA_SCALE alias0) BCR38[15:8] (DATA_SCALE alias 1) BCR39[15:8] (DATA_SCALE alias 2) BCR40[15:8] (DATA_SCALE alias 3) BCR41[15:8] (DATA_SCALE alias 4) BCR42[15:8] (DATA_SCALE alias 5) BCR43[15:8] (DATA_SCALE alias 6) BCR44[15:8] (DATA_SCALE alias 7) BCR48[15:8] N_IP_ADR[15:8] BCR49[15:8] N_IP_ADR[31:24] BCR50[15:8] M_IEEE_ADR[15:8] BCR51[15:8] M_IEEE_ADR[31:24] BCR52[15:8] M_IEEE_ADR[47:40] BCR53[15:8] M_IP_ADR[15:8] BCR54[15:8] M_IP_ADR[31:24] Checksum adjust byte for the 82 bytes of the EEPROM contents, checksum of the 82 bytes of the EEPROM should total to FFh Reserved for Boot ROM usage Reserved for Boot ROM usage Byte Addr. Least Significant Byte 02h 04h 06h 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 3rd byte of the node address 5th byte of the node address CSR116[7:0] (OnNow Misc. Config.) 08h Reserved location: must be 00h 0Ah 10h 12h 14h 16h 18h 1Ah 1Ch 1Eh 20h 22h 24h 26h 28h 2Ah 2Ch 2Eh 30h 32h 34h 36h 38h 3Ah 3Ch 3Eh 40h 42h 44h 46h 48h 4Ah 4Ch 4Eh User programmable space LSB of two-byte checksum, which is the sum of bytes 00h-0Bh and bytes 0Eh and 0Fh Must be ASCII "W" (57h) if compatibility to AMD driver software is desired BCR2[7:0] (Miscellaneous Configuration) BCR4[7:0] (Link Status LED) BCR5[7:0] (LED1 Status) BCR6[7:0] (LED2 Status) BCR7[7:0] (LED3 Status) BCR9[7:0] (Full-Duplex Control) BCR18[7:0] (Burst and Bus Control) BCR22[7:0] (PCI Latency) BCR23[7:0] (PCI Subsystem Vendor ID) BCR22[7:0] (PCI Subsystem ID) BCR25[7:0] (SRAM Size) BCR26[7:0] (SRAM Boundary) BCR27[7:0] (SRAM Interface Control) BCR32[7:0] (MII Control and Status) BCR33[7:0] (MII Address) BCR35[7:0] (PCI Vendor ID) BCR36[7:0] (Conf. Sp. byte 42h alias) BCR37[7:0] (Conf. Sp. byte 47h0 alias) BCR38[7:0] (Conf. Sp. byte 47h1 alias) BCR39[7:0] (Conf. Sp. byte 47h2 alias) BCR40[7:0] (Conf. Sp. byte 47h3 alias) BCR41[7:0] (Conf. Sp. byte 47h4 alias) BCR42[7:0] (Conf. Sp. byte 47h5 alias) BCR43[7:0] (Conf. Sp. byte 47h6 alias) BCR44[7:0] (Conf. Sp. byte 47h7 alias) BCR48[7:0] N_IP_ADR[7:0] BCR49[7:0] N_IP_ADR[23:16] BCR50[7:0] M_IEEE_ADR[7:0] BCR51[7:0] M_IEEE_ADR[23:16] BCR52[7:0] M_IEEE_ADR[39:32] BCR53[7:0] M_IP_ADR[7:0] BCR54[7:0] M_IP_ADR[23:16] 50h BCR55[7:0] SMIU Slave Address 7Ch 7Eh Reserved for Boot ROM usage Reserved for Boot ROM usage 00h 0Ch 0Eh Note: * Lowest EEPROM address. Am79C973/Am79C975 101 P R E L I M I N A R Y The LED pins can be configured to operate in either open-drain mode (active low) or in totem-pole mode (active high). The output can be stretched to allow the human eye to recognize even short events that last only several microseconds. After H_RESET, the four LED outputs are configured as shown in Table 15. Table 15. LED Default Configuration LED Output Indication Driver Mode Pulse Stretch LED0 Link Status Open Drain Active Low Enabled LED1 Receive Status Open Drain Active Low Enabled LED2 -- Open Drain Active Low Enabled LED3 Transmit Status Open Drain Active Low Enabled For each LED register, each of the status signals is AND'd with its enable signal, and these signals are all OR'd together to form a combined status signal. Each LED pin combined status signal can be programmed to run 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 to 3 clocks of stretched LED output, or 52 ms to 78 ms. See Figure 48. To fully satisfy the requirements of the PCI power management specification in an adapter card configuration, the AUXDET pin should be connected directly to the auxiliary power supply and also to ground through a resistor. This will sense the presence of the auxiliary power and correctly report the capability of asserting PME in D3cold. For hardwired configurations where auxiliary power is know to be always available or never available, the AUXDET input may be disabled by connecting it directly or through a resistor to VDD. This will allow BCR36 bit 15 to directly control PMC bit 15. COL COLE FDLS FDLSE LNKS LNKSE RCV RCVE To Pulse Stretcher RCVM RCVME XMT XMTE MR_SPEED_SEL 100E Power Savings Mode MPS MPSE Power Management Support The Am79C973/Am79C975 controller supports power management as defined in the PCI Bus Power Management Interface Specification V1.1 and Network Dev i c e C l a s s Po w e r M a n a g e m e n t R e fe r e n c e Specification V1.0.These specifications define the network device power states, PCI power management interface including the Capabilities Data Structure and power management registers block definitions, power management events, and OnNow network Wake-up events. In addition, the Am79C973/Am79C975 controller supports legacy power management schemes, such as Remote Wake-Up (RWU) mode. When the system is in RWU mode, PCI bus power is on, the PCI clock may be slowed down or stopped, and the wakeup output pin may drive the CPU's System Management Interrupt (SMI) line. Auxiliary Power The Am79C973/Am79C975 uses the AUXDET pin to detect whether it is powered by an auxiliary power supply that is always on or by the PCI power supply that goes down during power saving modes. 102 If bit 15 of PMC is zero, indicating that PME assertion in D3cold is not supported, the PME_Status and PME_En bits of the PMCSR register will be reset by a PCI bus reset (assertion of RST pin). This reset will actually occur after the EEPROM read following the reset is complete to allow the controller to be configured. 21510D-53 Figure 48. LED Control Logic The general scheme for the Am79C973/Am79C975 power management is that when a PCI Wake-up event is detected, a signal is generated to cause hardware external to the Am79C973/Am79C975 device to put the computer into the working (S0) mode. The Am79C973/Am79C975 device supports three types of wake-up events: 1. Magic Packet Detect 2. OnNow Pattern Match Detect 3. Link State Change Figure 49 shows the relationship between these Wakeup events and the various outputs used to signal to the external hardware. Am79C973/Am79C975 P R E L I M I N A R Y Magic Packet WUMI MPPEN MPINT PG LED MPMAT S SET Q MPMODE MPEN POR MPDETECT R CLR Q RWU Link Change LCMODE S SET Q LCDET S SET Q Link Change R CLR Q H_RESET R CLR Q POR PME_STATUS S DET Q Pattern Match POR BCR47 Input Pattern BCR46 BCR45 S SET Q Pattern Match RAM (PMR) R CLR Q PMAT R CLR Q POR PME Status PME_EN MPMAT PME PME_EN_OVR LCEVENT 21510D-54 Figure 49. OnNow Functional Diagram OnNow Wake-Up Sequence The system software enables the PME pin by setting the PME_EN bit in the PMCSR register (PCI configuration registers, offset 44h, bit 8) to 1. When a Wake-up event is detected, the Am79C973/Am79C975 controller sets the PME_STATUS bit in the PMCSR register (PCI configuration registers, offset 44h, bit 15). Setting this bit causes the PME signal to be asserted. Assertion of the PME signal causes external hardware to wake up the CPU. The system software then reads the PMCSR register of every PCI device in the system to determine which device asserted the PME signal. When the software determines that the signal came from the Am79C973/Am79C975 controller, it writes to the device's PMCSR to put the device into power state D0. The software then writes a 0 to the PME_STATUS bit to clear the bit and turn off the PME signal, and it calls the device's software driver to tell it that the device is now in state D0. The system software can clear the PME_STATUS bit either before, after, or at the same time that it puts the device back into the D0 state. Link Change Detect Link change detect is one of Wake-up events defined by the OnNow specification and is supported by the RWU mode. Link Change Detect mode is set when the LCMODE bit (CSR116, bit 8) is set either by software or loaded through the EEPROM. When this bit is set, any change in the Link status will cause the LCDET bit (CSR116, bit 9) to be set. When Am79C973/Am79C975 103 P R E L I M I N A R Y the LCDET bit is set, the RWU pin will be asserted and the PME_STATUS bit (PMCSR register, bit 15) will be set. If either the PME_EN bit (PMCSR, bit 8) or the PME_EN_OVR bit (CSR116, bit 10) are set, then the PME will also be asserted. OnNow Pattern Match Mode In the OnNow Pattern Match Mode, the Am79C973/ Am79C975 device compares the incoming packets with up to eight patterns stored in the Pattern Match RAM (PMR). The stored patterns can be compared with part or all of incoming packets, depending on the pattern length and the way the PMR is programmed. When a pattern match has been detected, then PMAT bit (CSR116, bit 7) is set. The setting of the PMAT bit causes the PME_STATUS bit (PMCSR, bit 15) to be set, which in turn will asser t the PME pin if the PME_EN bit (PMCSR, bit 8) is set. Pattern Match RAM (PMR) PMR is organized as an array of 64 words by 40 bits as shown in Figure 50. The PMR is programmed indirectly through the BCRs 45, 46, and 47. When the BCR45 is written and the PMAT_MODE bit (BCR45, bit 7) is set to 1, Pattern Match logic is enabled. No bus accesses into the PMR are possible when the PMAT_MODE bit is set, and BCR46, BCR47, and all other bits in BCR45 are ignored. When PMAT_MODE is set, a read of B C R 4 5 r e t u r n s a l l b i t s u n d e f i n e d ex c e p t fo r PMAT_MODE. In order to access the contents of the PMR, PMAT_MODE bit should be programmed to 0. When BCR45 is written to set the PMAT_MODE bit to 0, the Pattern Match logic is disabled and accesses to the PMR are possible. Bits 6:0 of BCR45 specify the address of the PMR word to be accessed. Writing to BCR45 does not immediately affect the contents of the PMR. Following the write to BCR45, the PMR word addressed by the bits 6:0 of the BCR45 may be read by reading BCR45, BCR46, and BCR47 in any order. To write to the PMR word, the write to BCR45 must be followed by a write to BCR46 and a write to BCR47 in that order to complete the operation. The PMR will not actually be written until the write to BCR47 is complete. The first two 40-bit words in this RAM serve as pointers and contain enable bits for the eight possible match patterns. The remainder of the RAM contains the match patterns and associated match pattern control bits. The byte 0 of the first word contains the Pattern Enable bits. Any bit position set in this byte enables the corresponding match pattern in the PMR, as an example if the bit 3 is set, then the Pattern 3 is enabled for matching. Bytes 1 to 4 in the first word are pointers to the beginning of the patterns 0 to 3, and bytes 1 to 4 in the second word are pointers to the beginning of the patterns 4 to 7, respectively. Byte 0 of the second word has no function associated with it. The byte 0 of the 104 words 2 to 63 is the Control Field of the PMR. Bit 7 of this field is the End of Packet (EOP) bit. When this bit is set, it indicates the end of a pattern in the PMR. Bits 64 of the Control Field byte are the SKIP bits. The value of the SKIP field indicates the number of the Dwords to be skipped before the pattern in this PMR word is compared with data from the incoming frame. A maximum of seven Dwords may be skipped. Bits 3-0 of the Control Field byte are the MASK bits. These bits correspond to the pattern match bytes 3-0 of the same PMR word (PMR bytes 4-1). If bit n of this field is 0, then byte n of the corresponding pattern word is ignored. If this field is programmed to 3, then bytes 0 and 1 of the pattern match field (bytes 2 and 1 of the word) are used and bytes 3 and 2 are ignored in the pattern matching operation. The contents of the P MR are not affec ted by H_RESET, S_RESET, or STOP. The contents are undefined after a power up reset (POR). Magic Packet Mode In Magic Packet mode, the Am79C973/Am79C975 controller remains fully powered up (all VDD and VDDB pins must remain at their supply levels). The device will not generate any bus master transfers. No transmit operations will be initiated on the network. The device will continue to receive frames from the network, but all frames will be automatically flushed from the receive FIFO. Slave accesses to the Am79C973/Am79C975 controller are still possible. A Magic Packet is a frame that is addressed to the Am79C973/Am79C975 controller and contains a data sequence anywhere in its data field made up of 16 consecutive copies of the device's physical address (PADR[47:0]). The Am79C973/ Am79C975 controller will search incoming frames until it finds a Magic Packet frame. It starts scanning for the sequence after processing the length field of the frame. The data sequence can begin anywhere in the data field of the frame, but must be detected before the Am79C973/Am79C975 controller reaches the frame's FCS field. Any deviation of the incoming frame's data sequence from the required physical address sequence, even by a single bit, will prevent the detection of that frame as a Magic Packet frame. The Am79C973/Am79C975 controller supports two different modes of address detection for a Magic Packet frame. If MPPLBA (CSR5, bit 5) or EMPPLBA (CSR116, bit 6) are at their default value of 0, the Am79C973/Am79C975 controller will only detect a Magic Packet frame if the destination address of the packet matches the content of the physical address register (PADR). If MPPLBA or EMPPLBA are set to 1, the destination address of the Magic Packet frame can be unicast, multicast, or broadcast. Am79C973/Am79C975 P R E L I M I N A R Y BCR 47 BCR Bit Number 15 8 7 PMR_B4 Pattern Match RAM Address BCR 46 0 15 8 PMR_B3 BCR 45 7 0 15 PMR_B2 PMR_B1 8 PMR_B0 Pattern Match RAM Bit Number 39 32 31 24 23 16 15 8 7 0 Comments 0 P3 pointer P2 pointer P1 pointer P0 pointer Pattern Enable bits First Address 1 P7 pointer P6 pointer P5 pointer P4 pointer X Second Address 2 Data Byte 3 Data Byte 2 Data Byte1 Data Byte 0 Pattern Control Start Pattern P1 2+n Data Byte 4n+3 Date Byte 4n+2 Data Byte 4n+1 Data Byte 4n+0 J Data Byte 3 Data Byte 2 Data Byte 1 Data Byte 0 J+m Data Byte 4m+3 Data Byte 4m+2 Data Byte 4m+1 Data Byte 4m+0 Pattern Control End Pattern P1 Pattern Control Start Pattern Pk Pattern Control End Pattern Pk 63 Last Address 7 EOP 6 5 4 SKIP 3 2 1 0 MASK 21510D-55 Figure 50. Pattern Match RAM Note: The setting of MPPLBA or EMPPLBA only effects the address detection of the Magic Packet frame. The Magic Packet's data sequence must be made up of 16 consecutive copies of the device's physical address (PADR[47:0]), regardless of what kind of destination address it has. Th e r e a r e t wo g e n er a l m e th o d s t o p l a c e t h e Am79C973/Am79C975 controller into the Magic Packet mode. The first is the software method. In this method, either the BIOS or other software, sets the MPMODE bit (CSR5, bit 1). Then Am79C973/ Am79C975 controller must be put into suspend mode (see description of CSR5, bit 0), allowing any current network activity to finish. Finally, either PG must be deasserted (hardware control) or MPEN (CSR5, bit 2) must be set to 1 (software control). Note: FASTSPNDE (CSR7, bit 15) has no meaning in Magic Packet mode. The second method is the hardware method. In this method, the MPPEN bit (CSR116, bit 4) is set at power up by the loading of the EEPROM. This bit can also be set by software. The Am79C973/Am79C975 controller will be placed in the Magic Packet Mode when either the PG input is deasserted or the MPEN bit is set. WUMI output will be asserted when the Am79C973/ Am79C975 controller is in the Magic Packet mode. Magic Packet mode can be disabled at any time by asserting PG or clearing MPEN bit. Am79C973/Am79C975 105 P R E L I M I N A R Y When the Am79C973/Am79C975 controller detects a Magic Packet frame, it sets the MPMAT bit (CSR116, b i t 5 ) , t h e M P I N T b i t ( C S R 5 , b i t 4 ) , a n d th e PME_STATUS bit (PMCSR, bit 15). The setting of the MPMAT bit will also cause the RWU pin to be asserted and if the PME_EN or the PME_EN_OVR bits are set, then the PME will be asserted as well. If IENA (CSR0, bit 6) and MPINTE (CSR5, bit 3) are set to 1, INTA will be asserted. Any one of the four LED pins can be programmed to indicate that a Magic Packet frame has been received. MPSE (BCR4-7, bit 9) must be set to 1 to enable that function. pins are tested. The following paragraphs summarize the IEEE 1149.1-compatible test functions implemented in the Am79C973/Am79C975 controller. Note: The polarity of the LED pin can be programmed to be active HIGH by setting LEDPOL (BCR4-7, bit 14) to 1. The TAP engine is a 16-state finite state machine (FSM), driven by the Test Clock (TCK), and the Test Mode Select (TMS) pins. An independent power-on reset circuit is provided to ensure that the FSM is in the TEST_LOGIC_RESET state at power-up. Therefore, the TRST is not provided. The FSM is also reset when TMS and TDI are high for five TCK periods. O n c e a M ag i c Packe t f r am e i s d e t ec te d , t h e Am79C973/Am79C975 controller will discard the frame internally, but will not resume normal transmit and receive operations until PG is asserted or MPEN is cleared. Once both of these events has occurred, indicating that the system has detected the Magic Packet and is awake, the controller will continue polling receive and transmit descriptor rings where it left off. It is not necessary to re-initialize the device. If the part is re-initialized, then the descriptor locations will be reset and the Am79C973/Am79C975 controller will not start where it left off. If magic packet mode is disabled by the assertion of PG, then in order to immediately re-enable Magic Packet mode, the PG pin must remain deasserted for at least 200 ns before it is reasserted. If Magic Packet mode is disabled by clearing MPEN bit, then it may be immediately re-enabled by setting MPEN back to 1. The PCI bus interface clock (CLK) is not required to be running while the device is operating in Magic Packet mode. Either of the INTA, the LED pins, RWU or the PME signal may be used to indicate the receipt of a Magic Packet frame when the CLK is stopped. If the system wishes to stop the CLK, it will do so after enabling the Magic Packet mode. CAUTION: To prevent unwanted interrupts from other active parts of the Am79C973/Am79C975 controller, care must be taken to mask all likely interruptible events during Magic Packet mode. An example would be the interrupts from the Media Independent Interface, which could occur while the device is in Magic Packet mode. IEEE 1149.1 (1990) Test Access Port Interface An IEEE 1149.1-compatible boundary scan Test Access Port is provided for board-level continuity test and diagnostics. All digital input, output, and input/output 106 Boundary Scan Circuit The boundary scan test circuit requires four pins (TCK, TMS, TDI, and TDO), defined as the Test Access Port (TAP). It includes a finite state machine (FSM), an instruction register, a data register array, and a power-on reset circuit. Internal pull-up resistors are provided for the TDI, TCK, and TMS pins. TAP Finite State Machine Supported Instructions In addition to the minimum IEEE 1149.1 requirements (BYPASS, EXTEST, and SAMPLE instructions), three additional instructions (IDCODE, TRIBYP, and SETBYP) are provided to further ease board-level testing. All unused instruction codes are reserved. See Table 16 for a summary of supported instructions. Table 16. IEEE 1149.1 Supported Instruction Summary Instruction Instruction Description Name Code EXTEST 0000 External Test ID Code Inspection Sample Boundary Mode Selected Data Register Test BSR Normal ID REG Normal BSR IDCODE 0001 SAMPLE 0010 TRIBYP 0011 Force Float Normal Bypass SETBYP 0100 Control Boundary To 1/0 Test Bypass BYPASS 1111 Bypass Scan Normal Bypass Instruction Register and Decoding Logic After the TAP FSM is reset, the IDCODE instruction is always invoked. The decoding logic gives signals to control the data flow in the Data registers according to the current instruction. Boundary Scan Register Each Boundary Scan Register (BSR) cell has two stages. A flip-flop and a latch are used for the Serial Shift Stage and the Parallel Output Stage, respectively. Am79C973/Am79C975 P R E L I M I N A R Y There are four possible operation modes in the BSR cell shown in Table 17. Table 17. BSR Mode Of Operation 1 2 3 4 Capture Shift Update System Function H_RESET will clear DWIO (BCR18, bit 7) and the Am79C973/Am79C975 controller will be in 16-bit I/O mode after the reset operation. A DWord write operation to the RDP (I/O offset 10h) must be performed to set the device into 32-bit I/O mode. S_RESET Software Reset (S_RESET) is an Am79C973/ Am79C975 reset operation that has been created by a read access to the Reset register, which is located at offset 14h in Word I/O mode or offset 18h in DWord I/O mode from the Am79C973/Am79C975 I/O or memory mapped I/O base address. Other Data Registers Other data registers are the following: 1. Bypass Register (1 bit) 2. Device ID register (32 bits) (Table 18). Table 18. Device ID Register Bits 31-28 Version Bits 27-12 Part Number (0010 0110 0010 0101) Bits 11-1 Manufacturer ID. The 11 bit manufacturer ID cod for AMD is 00000000001 in accordance with JEDEC publication 106-A. Bit 0 Always a logic 1 Note: The content of the Device ID register is the same as the content of CSR88. Reset There are four different types of RESET operations that may be performed on the Am79C973/Am79C975 device, H_RESET, S_RESET, STOP, and POR. The following is a description of each type of RESET operation. S_RESET will reset all of or some portions of CSR0, 3, 4, 15, 80, 100, and 124 to default values. For the identity of individual CSRs and bit locations that are affected by S_RESET, see the individual CSR register descriptions. S_RESET will not affect any PCI configuration space location. S_RESET will not affect any of the BCR register values. S_RESET will cause the microcode program to jump to its reset state. Following the end of the S_RESET operation, the Am79C973/ Am79C975 controller will not attempt to read the EEPROM device. After S_RESET, the host must perform a full re-initialization of the Am79C973/Am79C975 controller before starting network activity. S_RESET will cause REQ to deassert immediately. STOP (CSR0, bit 2) or SPND (CSR5, bit 0) can be used to terminate any pending bus mastership request in an orderly sequence. S_RESET terminates all network activity abruptly. The host can use the suspend mode (SPND, CSR5, bit 0) to terminate all network activity in an orderly sequence before issuing an S_RESET. STOP H_RESET Hardware Reset (H_RESET) is an Am79C973/ Am79C975 reset operation that has been created by the proper assertion of the RST pin of the Am79C973/ Am79C975 device while the PG pin is HIGH. When the minimum pulse width timing as specified in the RST pin description has been satisfied, then an internal reset operation will be performed. H_RESET will program most of the CSR and BCR registers to their default value. Note that there are several CSR and BCR registers that are undefined after H_RESET. See the sections on the individual registers for details. H_RESET will clear most of the registers 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 Am79C973/ Am79C975 controller will attempt to read the EEPROM device through the EEPROM interface. A STOP reset is generated by the assertion of the STOP bit in CSR0. Writing a 1 to the STOP bit of CSR0, when the stop bit currently has a value of 0, will initiate a STOP reset. If the STOP bit is already a 1, then writing a 1 to the STOP bit will not generate a STOP reset. STOP will reset all or some portions of CSR0, 3, and 4 to default values. For the identity of individual CSRs and bit locations that are affected by STOP, see the individual CSR register descriptions. 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 Am79C973/Am79C975 controller will not attempt to read the EEPROM device. Note: STOP will not cause a deassertion of the REQ signal, if it happens to be active at the time of the write to CSR0. The Am79C973/Am79C975 controller will wait until it gains bus ownership and it will first finish all scheduled bus master accesses before the STOP reset is executed. Am79C973/Am79C975 107 P R E L I M I N A R Y STOP terminates all network activity abruptly. The host can use the suspend mode (SPND, CSR5, bit 0) to terminate all network activity in an orderly sequence before setting the STOP bit. Power on Reset Power on Reset (POR) is generated when the Am79C973/Am79C975 controller is powered up. POR generates a hardware reset (H_RESET). In addition, it clears some bits that H_RESET does not affect. Software Access PCI Configuration Registers specification revision 2.1. The 64-byte header includes all registers required to identify the Am79C973/ Am79C975 controller and its function. Additionally, PCI Power Management Interface registers are implemented at location 40h - 47h. The layout of the Am79C973/Am79C975 PCI configuration space is shown in Table 19. The PCI configuration registers are accessible only by configuration cycles. All multi-byte numeric fields follow little endian byte ordering. All write accesses to Reserved locations have no effect; reads from these locations will return a data value of 0. The Am79C973/Am79C975 controller implements the 256-byte configuration space as defined by the PCI Table 19. PCI Configuration Space Layout 31 24 23 Device ID Status 16 15 8 7 Vendor ID Command Base-Class Sub-Class Programming IF Revision ID Reserved Header Type Latency Timer Reserved I/O Base Address Memory Mapped I/O Base Address Reserved Reserved Reserved Reserved Cardbus CIS Pointer Subsystem ID Subsystem Vendor ID Expansion ROM Base Address Reserved CAP-PTR Reserved MAX_LAT MIN_GNT Interrupt Pin Interrupt Line PMC NXT_ITM_PTR CAP_ID DATA_REG PMCSR_BSE PMCSR Reserved Reserved 108 Am79C973/Am79C975 0 Offset 00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h 24h 28h 2Ch 30h 34h 38h 3Ch 40h 44H . . FCh P R E L I M I N A R Y I/O Resources Address PROM Space The Am79C973/Am79C975 controller requires 32 bytes of address space for access to all the various internal registers as well as to some setup information stored in an external serial EEPROM. A software reset port is available, too. The Am79C973/Am79C975 controller allows for connection of a serial EEPROM. The first 16 bytes of the EEPROM will be automatically loaded into the Address PROM (APROM) space after H_RESET. Additionally, the first six bytes of the EEPROM will be loaded into CSR12 to CSR14. The Address PROM space is a convenient place to store the value of the 48-bit IEEE station address. It can be overwritten by the host computer and its content has no effect on the operation of the controller. The software must copy the station address from the Address PROM space to the initialization block in order for the receiver to accept unicast frames directed to this station. The Am79C973/Am79C975 controller supports mapping the address space to both I/O and memory space. The value in the PCI I/O Base Address register determines the start address of the I/O address space. The 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 PCI Command register to enable I/O accesses to the Am79C973/Am79C975 controller. For memory mapped I/O access, the PCI Memory Mapped I/O Base Address register controls the start address of the memory space. The MEMEN bit in the PCI Command register must also be set to enable the mode. Both base address registers can be active at the same time. The Am79C973/Am79C975 controller supports two modes for accessing the I/O resources. For backwards compatibility with AMD's 16-bit Ethernet controllers, Word I/O is the default mode after power up. The device can be configured to DWord I/O mode by software. I/O Registers The Am79C973/Am79C975 controller registers are divided into two groups. The Control and Status Registers (CSR) are used to configure the Ethernet MAC engine and to obtain status information. The Bus Control Registers (BCR) are used to configure the bus interface unit and the LEDs. Both sets of registers are accessed using indirect addressing. The CSR and BCR share a common Register Address Port (RAP). There are, however, separate data ports. The Register Data Port (RDP) is used to access a CSR. The BCR Data Port (BDP) is used to access a BCR. In order to access a particular CSR location, the RAP should first be written with the appropriate CSR address. The RDP will then point to the selected CSR. A read of the RDP will yield the selected CSR data. A write to the RDP will write to the selected CSR. In order to access a particular BCR location, the RAP should first be written with the appropriate BCR address. The BDP will then point to the selected BCR. A read of the BDP will yield the selected BCR data. A write to the BDP will write to the selected BCR. 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 cleared to all 0s when an H_RESET or S_RESET occurs. RAP is unaffected by setting the STOP bit. The six bytes of the IEEE station address occupy the first six locations of the Address PROM 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. APROMWE bit (BCR2, bit 8) must be set to 1 to enable write access to the Address PROM space. Reset Register A read of the Reset register creates an internal software reset (S_RESET) pulse in the Am79C973/ Am79C975 controller. 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, S_RESET is the equivalent of the assertion of the RST pin (H_RESET) except that S_RESET has no effect on the BCR or PCI Configuration space locations. 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 Am79C973/Am79C975 controller does not have a similar requirement. The write access is not required and does not have any effect. Note: The Am79C973/Am79C975 controller cannot service any slave accesses for a very short time after a read access of the Reset register, because the internal S_RESET operation takes about 1 ms to finish. The Am79C973/Am79C975 controller will terminate all slave accesses with the assertion of DEVSEL and STOP while TRDY is not asserted, signaling to the initiator to disconnect and retry the access at a later time. Word I/O Mode After H_RESET, the Am79C973/Am79C975 controller is programmed to operate in Word I/O mode. DWIO (BCR18, bit 7) will be cleared to 0. Table 20 shows how the 32 bytes of address space are used in Word I/O mode. Am79C973/Am79C975 109 P R E L I M I N A R Y All I/O resources must be accessed in word quantities and on word addresses. The Address PROM locations can also be read in byte quantities. The only allowed DWord operation is a write access to the RDP, which switches the device to DWord I/O mode. A read access other than listed in the table below will yield undefined data, a write operation may cause unexpected reprogramming of the Am79C973/Am79C975 control registers. Table 21 shows legal I/O accesses in Word I/O mode. Table 20. I/O Map In Word I/O Mode (DWIO = 0) Offset No. of Bytes Register 00h - 0Fh 16 APROM 10h 2 RDP 12h 2 RAP (shared by RDP and BDP) 14h 2 Reset Register 16h 2 BDP 18h - 1Fh 8 Reserved Double Word I/O Mode The Am79C973/Am79C975 controller can be configured to operate in DWord (32-bit) I/O mode. The soft- 110 ware can invoke the DWIO mode by performing a DWord write access to the I/O location at offset 10h (RDP). The data of the write access must be such that it does not affect the intended operation of the Am79C973/Am79C975 controller. Setting the device into 32-bit I/O mode is usually the first operation after H_RESET or S_RESET. The RAP register will point to CSR0 at that time. Writing a value of 0 to CSR0 is a safe operation. DWIO (BCR18, bit 7) will be set to 1 as an indication that the Am79C973/Am79C975 controller operates in 32-bit I/O mode. Note: 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. Once the DWIO bit has been set to 1, only H_RESET can clear it to 0. The DWIO mode setting is unaffected by S_RESET or setting of the STOP bit. Table 22 shows how the 32 bytes of address space are used in DWord I/O mode. All I/O resources must be accessed in DWord quantities and on DWord addresses. A read access other than listed in Table 23 will yield undefined data, a write operation may cause unexpected reprogramming of the Am79C973/Am79C975 control registers. Am79C973/Am79C975 P R E L I M I N A R Y Table 21. Legal I/O Accesses in Word I/O Mode (DWIO = 0) AD[4:0] 0XX00 0XX01 0XX10 0XX11 BE[3:0] 1110 1101 1011 0111 Type RD RD RD RD 0XX00 1100 RD 0XX10 0011 RD 10000 10010 10100 10110 1100 0011 1100 0011 RD RD RD RD 0XX00 1100 WR 0XX10 0011 WR 10000 10010 10100 10110 1100 0011 1100 0011 WR WR WR WR 10000 0000 WR Comment Byte read of APROM location 0h, 4h, 8h or Ch Byte read of APROM location 1h, 5h, 9h or Dh Byte read of APROM location 2h, 6h, Ah or Eh Byte read of APROM location 3h, 7h, Bh or Fh Word read of APROM locations 1h (MSB) and 0h (LSB), 5h and 4h, 8h and 9h or Ch and Dh Word read of APROM locations 3h (MSB) and 2h (LSB), 7h and 6h, Bh and Ah or Fh and Eh Word read of RDP Word read of RAP Word read of Reset Register Word read of BDP Word write to APROM locations 1h (MSB) and 0h (LSB), 5h and 4h, 8h and 9h or Ch and Dh Word write to APROM locations 3h (MSB) and 2h (LSB), 7h and 6h, Bh and Ah or Fh and Eh Word write to RDP Word write to RAP Word write to Reset Register Word write to BDP DWord write to RDP, switches device to DWord I/O mode Table 22. I/O Map In DWord I/O Mode (DWIO =1) Offset No. of Bytes Register 00h - 0Fh 16 APROM 10h 4 RDP 14h 4 RAP (shared by RDP and BDP) 18h 4 Reset Register 1Ch 4 BDP Table 23. Legal I/O Accesses in Double Word I/O Mode (DWIO =1) AD[4:0] BE[3:0] Type 0XX00 0000 RD 10000 10100 0000 0000 RD RD 11000 0000 RD 0XX00 0000 WR 10000 10100 0000 0000 WR WR 11000 0000 WR Am79C973/Am79C975 Comment DWord read of APROM locations 3h (MSB) to 0h (LSB), 7h to 4h, Bh to 8h or Fh to Ch DWord read of RDP DWord read of RAP DWord read of Reset Register DWord write to APROM locations 3h (MSB) to 0h (LSB), 7h to 4h, Bh to 8h or Fh to Ch DWord write to RDP DWord write to RAP DWord write to Reset Register 111 P R E L I M I N A R Y USER ACCESSIBLE REGISTERS The Am79C973/Am79C975 controller has four types of user registers: the PCI configuration registers, the Control and Status registers (CSR), the Bus Control registers (BCR), and the PHY Management registers (ANR). The Am79C973/Am79C975 controller implements all PCnet-ISA (Am79C960) registers, all C-LANCE (Am79C90) registers, plus a number of additional registers. The Am79C973/Am79C975 CSRs are compatible upon power up with both the PCnet-ISA CSRs and all of the C-LANCE CSRs. The PCI configuration registers can be accessed in any data width. All other registers must be accessed according to the I/O mode that is currently selected. When WIO mode is selected, all other register locations are defined to be 16 bits in width. When DWIO mode is selected, all these register locations are defined to be 32 bits in width, with the upper 16 bits of most register locations marked as reserved locations with undefined values. When performing register write operations in DWIO mode, the upper 16 bits should always be written as zeros. When performing register read operations in DWIO mode, the upper 16 bits of I/O resources should always be regarded as having undefined values, except for CSR88. Setup Registers These registers are intended to be initialized by the device driver to program the operation of various Am79C973/Am79C975 controller features. The following is a list of the registers that would typically need to be programmed once during the setup of the Am79C973/Am79C975 controller within a system. The control bits in each of these registers typically do not need to be modified once they have been written. However, there are no restrictions as to how many times these registers may actually be accessed. Note that if the default power up values of any of these registers is acceptable to the application, then such registers need never be accessed at all. Note: Registers marked with "^" may be programmable through the EEPROM read operation and, therefore, do not necessarily need to be written to by the system initialization procedure or by the driver software. Registers marked with "*" will be initialized by the initialization block read operation. CSR1 Initialization Block Address[15:0] CSR2* Initialization Block Address[31:16] CSR3 Interrupt Masks and Deferral Control CSR4 Test and Features Control CSR5 Extended Control and Interrupt CSR7 Extended Control and Interrupt2 CSR8* Logical Address Filter[15:0] CSR9* Logical Address Filter[31:16] PCI Configuration Registers CSR10* Logical Address Filter[47:32] These registers are intended to be initialized by the system initialization procedure (e.g., BIOS device initialization routine) to program the operation of the Am79C973/Am79C975 controller PCI bus interface. CSR11* Logical Address Filter[63:48] CSR12* Physical Address[15:0] CSR13*^ Physical Address[31:16] The following is a list of the registers that would typically need to be programmed once during the initialization of the Am79C973/Am79C975 controller within a system: CSR14*^ Physical Address[47:32] CSR15* Mode CSR24* Base Address of Receive Ring Lower CSR25* Base Address of Receive Ring Upper CSR30* Base Address of Transmit Ring Lower CSR31* Base Address of Transmit Ring Upper CSR47* Transmit Polling Interval CSR49* Receive Polling Interval -- PCI Command register CSR76* Receive Ring Length -- OnNow register CSR78* Transmit Ring Length CSR80 DMA Transfer Counter and FIFO Threshold Control The Am79C973/Am79C975 registers can be divided into four groups: PCI Configuration, Setup, Running, and Test. Registers not included in any of these categories can be assumed to be intended for diagnostic purposes. -- PCI I/O Base Address or Memory Mapped I/O Base Address register -- PCI Expansion ROM Base Address register -- PCI Interrupt Line register -- PCI Latency Timer register -- PCI Status register 112 Am79C973/Am79C975 P R E L I M I N A R Y CSR82 Bus Activity Timer BCR46 OnNow Pattern Matching Register 2 CSR100 Memory Error Timeout BCR47 OnNow Pattern Matching Register 3 CSR116^ OnNow Miscellaneous Running Registers CSR122 Receiver Packet Alignment Control CSR125^ MAC Enhanced Configuration Control BCR2^ Miscellaneous Configuration These registers are intended to be used by the device driver software after the Am79C973/Am79C975 controller is running to access status information and to pass control information. BCR4^ LED0 Status BCR5^ LED1 Status BCR6^ LED2 Status BCR7^ LED3 Status BCR9^ Full-Duplex Control BCR18^ Bus and Burst Control BCR19 EEPROM Control and Status BCR20 Software Style BCR22^ PCI Latency BCR23^ PCI Subsystem Vendor ID BCR24^ PCI Subsystem ID BCR25^ SRAM Size BCR26^ SRAM Boundary BCR27^ SRAM Interface Control BCR32^ Internal PHY Control and Status BCR33^ Internal PHY Address BCR35^ PCI Vendor ID BCR36 PCI Power Management Capabilities (PMC) Alias Register BCR37 PCI DATA Register Zero (DATA0) Alias Register PCI Configuration Registers BCR38 PCI DATA Register One (DATA1) Alias Register Offset 00h BCR39 PCI DATA Register Two (DATA2) Alias Register BCR40 PCI DATA Register Three (DATA3) Alias Register BCR41 PCI DATA Register Four (DATA4) Alias Register BCR42 PCI DATA Register Five (DATA5) Alias Register BCR43 PCI DATA Register Six (DATA6) Alias Register BCR44 PCI DATA Register Seven (DATA7) Alias Register BCR45 The following is a list of the registers that would typically need to be periodically read and perhaps written during the normal running operation of the Am79C973/ Am79C975 controller within a system. Each of these registers contains control bits, or status bits, or both. RAP Register Address Port CSR0 Am79C973/Am79C975 Controller Status CSR3 Interrupt Masks and Deferral Control CSR4 Test and Features Control CSR5 Extended Control and Interrupt CSR7 Extended Control and Interrupt2 CSR112 Missed Frame Count CSR114 Receive Collision Count BCR32 Internal PHY Control and Status BCR33 Internal PHY Address BCR34 Internal PHY Management Data Test Registers OnNow Pattern Matching Register 1 These registers are intended to be used only for testing and diagnostic purposes. Those registers not included in any of the above lists can be assumed to be intended for diagnostic purposes. PCI Vendor ID Register The PCI Vendor ID register is a 16-bit register that identifies the manufacturer of the Am79C973/Am79C975 controller. AMD's Vendor ID is 1022h. Note that this vendor ID is not the same as the Manufacturer ID in CSR88 and CSR89. The vendor ID is assigned by the PCI Special Interest Group. The PCI Vendor ID register is located at offset 00h in the PCI Configuration Space. It is read only. This register is the same as BCR35 and can be written by the EEPROM. PCI Device ID Register Offset 02h The PCI Device ID register is a 16-bit register that uniquely identifies the Am79C973/Am79C975 control- Am79C973/Am79C975 113 P R E L I M I N A R Y ler within AMD's product line. The Am79C973/ Am79C975 Device ID is 2000h. Note that this Device ID is not the same as the Part number in CSR88 and CSR89. The Device ID is assigned by AMD. The Device ID is the same as the PCnet-PCI II (Am79C970A) and PCnet-FAST (Am79C971) devices. controller detects a parity error, it only sets the Detected Parity Error bit in the PCI Status register. When PERREN is 1, the Am79C973/Am79C975 controller asserts PERR on the detection of a data parity error. It also sets the DATAPERR bit (PCI Status register, bit 8), when the data parity error occurred during a master cycle. PERREN also enables reporting address parity errors through the SERR pin and the SERR bit in the PCI Status register. The PCI Device ID register is located at offset 02h in the PCI Configuration Space. It is read only. PCI Command Register Offset 04h The PCI Command register is a 16-bit register used to control the gross functionality of the Am79C973/ Am79C975 controller. It controls the Am79C973/ Am79C975 controller's ability to generate and respond to PCI bus cycles. To logically disconnect the Am79C973/Am79C975 device from all PCI bus cycles except configuration cycles, a value of 0 should be written to this register. The PCI Command register is located at offset 04h in the PCI Configuration Space. It is read and written by the host. Bit Name RES Reserved locations. Read as zeros; write operations have no effect. 9 FBTBEN Fast Back-to-Back Enable. Read as zero; write operations have no effect. The Am79C973/ Am79C975 controller will not generate Fast Back-to-Back cycles. SERREN 5 VGASNOOP VGA Palette Snoop. Read as zero; write operations have no effect. 4 MWIEN Memory Write and Invalidate Cycle Enable. Read as zero; write operations have no effect. The Am79C973/Am79C975 controller only generates Memory Write cycles. 3 SCYCEN Special Cycle Enable. Read as zero; write operations have no effect. The Am79C973/Am79C975 controller ignores all Special Cycle operations. 2 BMEN Bus Master Enable. Setting BMEN enables the Am79C973/ Am79C975 controller to become a bus master on the PCI bus. The host must set BMEN before setting the INIT or STRT bit in CSR0 of the Am79C973/Am79C975 controller. Description 15-10 8 PERREN is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. SERR Enable. Controls the assertion of the SERR pin. SERR is disabled when SERREN is cleared. SERR will be asserted on detection of an address parity error and if both SERREN and PERREN (bit 6 of this register) are set. SERREN is cleared by H_RESET and is not effected by S_RESET or by setting the STOP bit. 7 RES Reserved location. Read as zeros; write operations have no effect. 6 PERREN Parity Error Response Enable. Enables the parity error response functions. When PERREN is 0 and the Am79C973/Am79C975 114 BMEN is cleared by H_RESET and is not effected by S_RESET or by setting the STOP bit. 1 MEMEN Am79C973/Am79C975 Memory Space Access Enable. The Am79C973/Am79C975 controller will ignore all memory accesses when MEMEN is cleared. The host must set MEMEN before the first memory access to the device. P R E L I M I N A R Y For memory mapped I/O, the host must program the PCI Memory Mapped I/O Base Address register with a valid memory address before setting MEMEN. BE[3:0], and the PAR lines for a parity error at the following times: * In slave mode, during the address phase of any PCI bus command. For accesses to the Expansion ROM, the host must program the PCI Expansion ROM Base Address register at offset 30h with a valid memory address before setting MEMEN. The Am79C973/ Am79C975 controller will only respond to accesses to the Expansion ROM when both ROMEN (PCI Expansion ROM Base Address register, bit 0) and MEMEN are set to 1. Since MEMEN also enables the memory mapped access to the Am79C973/ Am79C975 I/O resources, the PCI Memory Mapped I/O Base Address register must be programmed with an address so that the device does not claim cycles not intended for it. * In slave mode, for all I/O, memory and configuration write commands that select the Am79C973/Am79C975 controller when data is transferred (TRDY and IRDY are asserted). * In master mode, during the data phase of all memory read commands. In master mode, during the data phase of the memory write command, the Am79C973/ Am79C975 controller sets the PERR bit if the target reports a data parity error by asserting the PERR signal. PERR is not effected by the state of the Parity Error Response enable bit (PCI Command register, bit 6). MEMEN is cleared by H_RESET and is not effected by S_RESET or by setting the STOP bit. 0 IOEN I/O Space Access Enable. The Am79C973/Am79C975 controller will ignore all I/O accesses when IOEN is cleared. The host must set IOEN before the first I/O access to the device. The PCI I/O Base Address register must be programmed with a valid I/O address before setting IOEN. PERR is set by the Am79C973/ Am79C975 controller and cleared by writing a 1. Writing a 0 has no effect. PERR is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 14 SERR IOEN is cleared by H_RESET and is not effected by S_RESET or by setting the STOP bit. PCI Status Register SERR is set by the Am79C973/ Am79C975 controller and cleared by writing a 1. Writing a 0 has no effect. SERR is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. Offset 06h The PCI Status register is a 16-bit register that contains status information for the PCI bus related events. It is located at offset 06h in the PCI Configuration Space. Bit Name Description 15 PERR Parity Error. PERR is set when the Am79C973/Am79C975 controller detects a parity error. The Am79C973/Am79C975 controller samples the AD[31:0], C/ Signaled SERR. SERR is set when the Am79C973/Am79C975 controller detects an address parity error and both SERREN and PERREN (PCI Command register, bits 8 and 6) are set. 13 RMABORT Received Master Abort. RMABORT is set when the Am79C973/Am79C975 controller terminates a master cycle with a master abort sequence. Am79C973/Am79C975 115 P R E L I M I N A R Y RMABORT is set by the Am79C973/Am79C975 controller and cleared by writing a 1. Writing a 0 has no effect. RMABORT is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 12 RTABORT Received Target Abort. RTABORT is set when a target terminates an Am79C973/ Am79C975 master cycle with a target abort sequence. RTABORT is set by the Am79C973/Am79C975 controller and cleared by writing a 1. Writing a 0 has no effect. RTABORT is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 11 STABORT Send Target Abort. Read as zero; write operations have no effect. The Am79C973/Am79C975 controller will never terminate a slave access with a target abort sequence. PERR input to detect whether the target has reported a parity error. DATAPERR is set by the Am79C973/Am79C975 controller and cleared by writing a 1. Writing a 0 has no effect. DATAPERR is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 7 FBTBC Fast Back-To-Back Capable. Read as one; write operations have no effect. The Am79C973/ Am79C975 controller is capable of accepting fast back-to-back transactions with the first transaction addressing a different target. 6-5 RES Reserved locations. Read as zero; write operations have no effect. 4 NEW_CAP New Capabilities. This bit indicates whether this function implements a list of extended capabilities such as PCI power management. When set, this bit indicates the presence of New Capabilities. A value of 0 means that this function does not implement New Capabilities. STABORT is read only. 10-9 DEVSEL Device Select Timing. DEVSEL is set to 01b (medium), which means that the Am79C973/ Am79C975 controller will assert DEVSEL two clock periods after FRAME is asserted. Read as one; write operations have no effect. The Am79C973/ Am79C975 controller supports the Linked Additional Capabilities List. DEVSEL is read only. 3-0 8 DATAPERR Data Parity Error Detected. DATAPERR is set when the Am79C973/Am79C975 controller is the current bus master and it detects a data parity error and the Parity Error Response enable bit (PCI Command register, bit 6) is set. During the data phase of all memory read commands, the Am79C973/Am79C975 controller checks for parity error by sampling the AD[31:0] and C/BE[3:0] and the PAR lines. During the data phase of all memory write commands, the Am79C973/ Am79C975 controller checks the 116 RES Reserved locations. Read as zero; write operations have no effect. PCI Revision ID Register Offset 08h The PCI Revision ID register is an 8-bit register that specifies the Am79C973/Am79C975 controller revision number. The value of this register is 4Xh with the lower four bits being silicon-revision dependent. The PCI Revision ID register is located at offset 08h in the PCI Configuration Space. It is read only. PCI Programming Interface Register Offset 09h The PCI Programming Interface register is an 8-bit register that identifies the programming interface of Am79C973/Am79C975 controller. PCI does not define Am79C973/Am79C975 P R E L I M I N A R Y any specific register-level programming interfaces for network devices. The value of this register is 00h. H_RESET and is not effected by S_RESET or by setting the STOP bit. The PCI Programming Interface register is located at offset 09h in the PCI Configuration Space. It is read only. PCI Header Type Register PCI Sub-Class Register Offset 0Ah The PCI Sub-Class register is an 8-bit register that identifies specifically the function of the Am79C973/ Am79C975 controller. The value of this register is 00h which identifies the Am79C973/Am79C975 device as an Ethernet controller. The PCI Sub-Class register is located at offset 0Ah in the PCI Configuration Space. It is read only. Offset 0Eh The PCI Header Type register is an 8-bit register that describes the format of the PCI Configuration Space locations 10h to 3Ch and that identifies a device to be single or multi-function. The PCI Header Type register is located at address 0Eh in the PCI Configuration Space. It is read only. Bit Name Description 7 FUNCT Single-function/multi-function device. Read as zero; write operations have no effect. The Am79C973/Am79C975 controller is a single function device. 6-0 LAYOUT PCI configuration space layout. Read as zeros; write operations have no effect. The layout of the PCI configuration space locations 10h to 3Ch is as shown in the table at the beginning of this section. PCI Base-Class Register Offset 0Bh The PCI Base-Class register is an 8-bit register that broadly classifies the function of the Am79C973/ Am79C975 controller. The value of this register is 02h which classifies the Am79C973/Am79C975 device as a network controller. The PCI Base-Class register is located at offset 0Bh in the PCI Configuration Space. It is read only. PCI Latency Timer Register Offset 0Dh The PCI Latency Timer register is an 8-bit register that specifies the minimum guaranteed time the Am79C973/ Am79C975 controller will control the bus once it starts its bus mastership period. The time is measured in clock cycles. Every time the Am79C973/Am79C975 controller asserts FRAME at the beginning of a bus mastership period, it will copy the value of the PCI Latency Timer register into a counter and start counting down. The counter will freeze at 0. When the system arbiter removes GNT while the counter is non-zero, the Am79C973/Am79C975 controller will continue with its data transfers. It will only release the bus when the counter has reached 0. PCI I/O Base Address Register Offset 10h The PCI I/O Base Address register is a 32-bit register that determines the location of the Am79C973/ Am79C975 I/O resources in all of I/O space. It is located at offset 10h in the PCI Configuration Space. Bit Name Description 31-5 IOBASE I/O base address most significant 27 bits. These bits are written by the host to specify the location of the Am79C973/Am79C975 I/O resources in all of I/O space. IOBASE must be written with a valid address before the Am79C973/ Am79C975 controller slave I/O mode is turned on by setting the IOEN bit (PCI Command register, bit 0). The PCI Latency Timer is only significant in burst transactions, where FRAME stays asserted until the last data phase. In a non-burst transaction, FRAME is only asserted during the address phase. The internal latency counter will be cleared and suspended while FRAME is deasserted. All eight bits of the PCI Latency Timer register are programmable. The host should read the Am79C973/ Am79C975 PCI MIN_GNT and PCI MAX_LAT registers to determine the latency requirements for the device and then initialize the Latency Timer register with an appropriate value. The PCI Latency Timer register is located at offset 0Dh in the PCI Configuration Space. It is read and written by the host. The PCI Latency Timer register is cleared by Am79C973/Am79C975 When the Am79C973/ Am79C975 controller is enabled for I/O mode (IOEN is set), it monitors the PCI bus for a valid I/ O command. If the value on AD[31:5] during the address phase of the cycles matches the value of IOBASE, the Am79C973/Am79C975 controller 117 P R E L I M I N A R Y will drive DEVSEL indicating it will respond to the access. When the Am79C973/ Am79C975 controller is enabled for memory mapped I/O mode (MEMEN is set), it monitors the PCI bus for a valid memory command. If the value on AD[31:5] during the address phase of the cycles matches the value of MEMBASE, the Am79C973/ Am79C975 controller will drive DEVSEL indicating it will respond to the access. IOBASE is read and written by the host. IOBASE is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 4-2 IOSIZE I/O size requirements. Read as zeros; write operations have no effect. IOSIZE indicates the size of the I/O space the Am79C973/ Am79C975 controller requires. When the host writes a value of FFFF FFFFh to the I/O Base Address register, it will read back a value of 0 in bits 4-2. That indicates an Am79C973/Am79C975 I/O space requirement of 32 bytes. 1 RES Reserved location. Read as zero; write operations have no effect. 0 IOSPACE I/O space indicator. Read as one; write operations have no effect. Indicating that this base address register describes an I/O base address. MEMBASE is read and written by the host. MEMBASE is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. 4 MEMSIZE MEMSIZE indicates the size of the memory space the Am79C973/Am79C975 controller requires. When the host writes a value of FFFF FFFFh to the Memory Mapped I/O Base Address register, it will read back a value of 0 in bit 4. That indicates a Am79C973/Am79C975 memory space requirement of 32 bytes. PCI Memory Mapped I/O Base Address Register Offset 14h The PCI Memory Mapped I/O Base Address register is a 32-bit register that determines the location of the Am79C973/Am79C975 I/O resources in all of memory space. It is located at offset 14h in the PCI Configuration Space. Bit Name 31-5 MEMBASE Memory mapped I/O base address most significant 27 bits. These bits are written by the host to specify the location of the Am79C973/Am79C975 I/O resources in all of memory space. MEMBASE must be written with a valid address before the Am79C973/Am79C975 controller slave memory mapped I/O mode is turned on by setting the MEMEN bit (PCI Command register, bit 1). 118 Memory mapped I/O size requirements. Read as zeros; write operations have no effect. 3 Description 2-1 0 PREFETCH Prefetchable. Read as zero; write operations have no effect. Indicates that memory space controlled by this base address register is not prefetchable. Data in the memory mapped I/O space cannot be prefetched. Because one of the I/O resources in this address space is a Reset register, the order of the read accesses is important. TYPE Memory type indicator. Read as zeros; write operations have no effect. Indicates that this base address register is 32 bits wide and mapping can be done anywhere in the 32-bit memory space. MEMSPACE Memory space indicator. Read as zero; write operations have no effect. Indicates that this base address register describes a memory base address. Am79C973/Am79C975 P R E L I M I N A R Y PCI Subsystem Vendor ID Register When the Am79C973/ Am79C975 controller is enabled for Expansion ROM access (ROMEN and MEMEN are set to 1), it monitors the PCI bus for a valid memory command. If the value on AD[31:2] during the address phase of the cycle falls between ROMBASE and ROMBASE + 1M - 4, the Am79C973/Am79C975 controller will drive DEVSEL indicating it will respond to the access. Offset 2Ch The PCI Subsystem Vendor ID register is a 16-bit register that together with the PCI Subsystem ID uniquely identifies the add-in card or subsystem the Am79C973/ Am79C975 controller is used in. Subsystem Vendor IDs can be obtained from the PCI SIG. A value of 0 (the default) indicates that the Am79C973/Am79C975 controller does not support subsystem identification. The PCI Subsystem Vendor ID is an alias of BCR23, bits 15-0. It is programmable through the EEPROM. The PCI Subsystem Vendor ID register is located at offset 2Ch in the PCI Configuration Space. It is read only. ROMBASE is read and written by the host. ROMBASE is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. PCI Subsystem ID Register Offset 2Eh The PCI Subsystem ID register is a 16-bit register that together with the PCI Subsystem Vendor ID uniquely identifies the add-in card or subsystem the Am79C973/ Am79C975 controller is used in. The value of the Subsystem ID is up to the system vendor. A value of 0 (the default) indicates that the Am79C973/Am79C975 controller does not support subsystem identification. The PCI Subsystem ID is an alias of BCR24, bits 15-0. It is programmable through the EEPROM. 19-1 ROMSIZE The PCI Subsystem ID register is located at offset 2Eh in the PCI Configuration Space. It is read only. PCI Expansion ROM Base Address Register Offset 30h The PCI Expansion ROM Base Address register is a 32-bit register that defines the base address, size and address alignment of an Expansion ROM. It is located at offset 30h in the PCI Configuration Space. Bit Name 31-20 ROMBASE Expansion ROM base address most significant 12 bits. These bits are written by the host to specify the location of the Expansion ROM in all of memory space. ROMBASE must be written with a valid address before the Am79C973/Am79C975 Expansion ROM access is enabled by setting ROMEN (PCI Expansion ROM Base Address register, bit 0) and MEMEN (PCI Command register, bit 1). ROM size. Read as zeros; write operation have no effect. ROMSIZE indicates the maximum size of the Expansion ROM the Am79C973/Am79C975 controller can support. The host can determine the Expansion ROM size by writing FFFF FFFFh to the Expansion ROM Base Address register. It will read back a value of 0 in bit 19-1, indicating an Expansion ROM size of 1M. Note that ROMSIZE only specifies the maximum size of Expansion ROM the Am79C973/ Am79C975 controller supports. A smaller ROM can be used, too. The actual size of the code in the Expansion ROM is always determined by reading the Expansion ROM header. Description 0 ROMEN Since the 12 most significant bits of the base address are programmable, the host can map the Expansion ROM on any 1M boundary. Am79C973/Am79C975 Expansion ROM Enable. Written by the host to enable access to the Expansion ROM. The Am79C973/Am79C975 controller will only respond to accesses to the Expansion ROM when both ROMEN and MEMEN (PCI Command register, bit 1) are set to 1. ROMEN is read and written by the host. ROMEN is cleared by H_RESET and is not effected by S_RESET or by setting the STOP bit. 119 P R E L I M I N A R Y PCI Capabilities Pointer Register The host should use the value in this register to determine the setting of the PCI Latency Timer register. Offset 34h Bit Name Description 7-0 CAP_PTR The PCI Capabilities pointer Register is an 8-bit register that points to a linked list of capabilities implemented on this device. This register has a default value of 40h. The PCI Capabilities register is located at offset 34h in the PCI Configuration Space. It is read only. The PCI MIN_GNT register is located at offset 3Eh in the PCI Configuration Space. It is read only. PCI MAX_LAT Register Offset 3Fh The PCI MAX_LAT register is an 8-bit register that specifies the maximum arbitration latency the Am79C973/ Am79C975 controller can sustain without causing problems to the network activity. The register value specifies the time in units of 1/4 s. The MAX_LAT register is an alias of BCR22, bits 15-8. It is recommended that BCR22 be programmed to a value of 1818h. The host should use the value in this register to determine the setting of the PCI Latency Timer register. PCI Interrupt Line Register Offset 3Ch The PCI Interrupt Line register is an 8-bit register that is used to communicate the routing of the interrupt. This register is written by the POST software as it initializes the Am79C973/Am79C975 controller in the system. The register is read by the network driver to determine the interrupt channel which the POST software has assigned to the Am79C973/Am79C975 controller. The PCI Interrupt Line register is not modified by the Am79C973/Am79C975 controller. It has no effect on the operation of the device. The PCI MAX_LAT register is located at offset 3Fh in the PCI Configuration Space. It is read only PCI Capability Identifier Register Offset 40h Bit Name Description 7-0 CAP_ID This register, when set to 1, identifies the linked list item as being the PCI Power Management registers. This register has a default value of 1h. The PCI Interrupt Line register is located at offset 3Ch in the PCI Configuration Space. It is read and written by the host. It is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. The PCI Capabilities Identifier register is located at offset 40h in the PCI Configuration Space. It is read only. PCI Interrupt Pin Register Offset 3Dh This PCI Interrupt Pin register is an 8-bit register that indicates the interrupt pin that the Am79C973/ Am79C975 controller is using. The value for the Am79C973/Am79C975 Interrupt Pin register is 01h, which corresponds to INTA. PCI Next Item Pointer Register Offset 41h Bit Name 7-0 NXT_ITM_PTR The PCI Interrupt Pin register is located at offset 3Dh in the PCI Configuration Space. It is read only. PCI MIN_GNT Register Offset 3Eh The PCI MIN_GNT register is an 8-bit register that specifies the minimum length of a burst period that the Am79C973/Am79C975 device needs to keep up with the network activity. The length of the burst period is calculated assuming a clock rate of 33 MHz. The register value specifies the time in units of 1/4 ms. The PCI MIN_GNT register is an alias of BCR22, bits 7-0. It is recommended that the BCR22 be programmed to a value of 1818h. 120 Am79C973/Am79C975 Description The Next Item Pointer Register points to the starting address of the next capability. The pointer at this offset is a null pointer, indicating that this is the last capability in the linked list of the capabilities. This register has a default value of 0h. The PCI Next Pointer Register is located at offset 41h in the PCI Configuration Space. It is read only. P R E L I M I N A R Y PCI Power Management Capabilities Register (PMC) Offset 42h 8-6 RES Reserved locations. Written as zeros and read as undefined. 5 DSI Device Specific Initialization. When this bit is 1, it indicates that special initialization of the function is required (beyond the standard PCI configuration header) before the generic class device driver is able to use it. Note: All bits of this register are loaded from EEPROM. The register is aliased to BCR36 for testing purposes. Bit Name Description 15-11 PME_SPT PME Support. This 5-bit field indicates the power states in which the function may assert PME. A value of 0b for any bit indicates that the function is not capable of asserting the PME signal while in that power state. Read only. 4 RES Reserved locations. Written as zeros and read as undefined. 3 PME_CLK PME Clock. When this bit is a 1, it indicates that the function relies on the presence of the PCI clock for PME operation. When this bit is a 0 it indicates that no PCI clock is required for the function to generate PME. Bit(11) XXXX1b - PME can be asserted from D0. Bit(12) XXX1Xb - PME can be asserted from D1. Bit(13) XX1XXb - PME can be asserted from D2. Functions that do not support PME generation in any state must return 0 for this field. Bit(14) X1XXXb - PME can be asserted from D3hot. Bit(15) 1XXXXb - PME can be asserted from D3cold. Read only. 2-0 Read only. Bit 15 of the PMC register indicates that the controller is capable of generating PME from the D3 cold state. This capability depends on the presence of auxiliary power, as indicated by the AUXDET input. The capability can be disabled by loading a zero into bit 15 of BCR36 from the EEPROM. (This register is aliased to the PMC register.) 10 D2_SPT D2 Support. If this bit is a 1, this function supports the D2 Power Management State. PMIS_VER Power Management Interface Specification Version. A value of 001b indicates that this function complies with the revision 1.1 of the PCI Power Management Interface Specification. PCI Power Management Control/Status Register (PMCSR) Offset 44h Bit 15 Name PME_STATUS PME Status. This bit is set when the function would normally assert the PME signal independent of the state of the PME_EN bit. Read only. 9 D1_SPT Description D1 Support. If this bit is a 1, this function supports the D1 Power Management State. Read only. Am79C973/Am79C975 Writing a 1 to this bit will clear it and cause the function to stop asserting a PME (if enabled). Writing a 0 has no effect. If the function supports PME from D3cold then this bit is sticky and must be explicitly cleared by the operating system each time the operating system is initially loaded. 121 P R E L I M I N A R Y Read/write accessible always. Sticky bit. This bit is reset by POR. H_RESET, S_RESET, or setting the STOP bit has no effect. 00b - D0. 01b - D1. 10b - D2. 11b - D3. These bits can be written and read, but their contents have no effect on the operation of the device. 14-13 DATA_SCALE Data Scale. This two bit readonly field indicates the scaling factor to be used when interpreting the value of the Data register. The value and meaning of this field will vary depending on the DATA_SCALE field. Read only. 12-9 Read/write accessible always. PCI PMCSR Bridge Support Extensions Register Offset 46h Bit 7-0 DATA_SEL Data Select. This optional four-bit field is used to select which data is reported through the Data register and DATA_SCALE field. Name PMCSR_BSE The PCI PMCSR Bridge Support Extensions Register is an 8-bit register. PMCSR Bridge Support Extensions are not supported. This register has a default value of 00h. Read/write accessible always. Sticky bit. This bit is reset by POR. H_RESET, S_RESET, or setting the STOP bit has no effect. 8 PME_EN PME Enable. When a 1, PME_EN enables the function to assert PME. When a 0, PME assertion is disabled. This bit defaults to "0" if the function does not support PME generation from D3cold. If the function supports PME from D3cold, then this bit is sticky and must be explicitly cleared by the operating system each time the operating system is initially loaded. Read/write accessible always. Sticky bit. This bit is reset by POR. H_RESET, S_RESET, or setting the STOP bit has no effect. 7-2 1-0 122 RES Reserved locations. Read only. PWR_STATE Power State. This 2-bit field is used both to determine the current power state of a function and to set the function into a new power state. The definition of the field values is given below. Description The PCI PMCSR Bridge Support Extensions register is located at offset 46h in the PCI Configuration Space. It is read only. PCI Data Register Offset 47h Note: All bits of this register are loaded from EEPROM. The register is aliased to lower bytes of the BCR37-44 for testing purposes. Bit Name Description 7-0 DATA_REG The PCI Data Register is an 8-bit register. Refer to the "PCI Bus Power Management Interface Specification" version 1.1 for a more detailed description of this register. The PCI DATA register is located at offset 47h in the PCI Configuration Space. It is read only. RAP Register The RAP (Register Address Pointer) register is used to gain access to CSR and BCR registers on board the Am79C973/Am79C975 controller. The RAP contains the address of a CSR or BCR. As an example of RAP use, consider a read access to CSR4. In order to access this register, it is necessary to first load the value 0004h into the RAP by performing a write access to the RAP offset of 12h (12h when WIO mode has been selected, 14h when DWIO mode has Am79C973/Am79C975 P R E L I M I N A R Y been selected). Then a second access is performed, this time to the RDP offset of 10h (for either WIO or DWIO mode). The RDP access is a read access, and since RAP has just been loaded with the value of 0004h, the RDP read will yield the contents of CSR4. A read of the BDP at this time (offset of 16h when WIO mode has been selected, 1Ch when DWIO mode has been selected) will yield the contents of BCR4, since the RAP is used as the pointer into both BDP and RDP space. 15 ERR Read accessible always. ERR is read only. Write operations are ignored. 14 RES Reserved locations. Read/Write accessible always. Read returns zero. 13 CERR Collision Error is set by the Am79C973/Am79C975 controller when the device operates in halfduplex mode and the collision inputs (10 Mbps) failed to activate within 20 network bit times after the chip terminated transmission (SQE Test). This feature is a 10BASE-T PHY test feature. CERR reporting is disabled when the Am79C973/Am79C975 controller operates in full-duplex mode. RAP: Register Address Port Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-8 RES Reserved locations. Read and written as zeros. 7-0 RAP Register Address Port. The value of these 8 bits determines which CSR or BCR will be accessed when an I/O access to the RDP or BDP port, respectively, is performed. A write access to undefined CSR or BCR locations may cause unexpected reprogramming of the Am79C973/Am79C975 control registers. A read access will yield undefined values. When the MII port is selected, CERR is only reported when the external PHY is operating as a half-duplex 10BASE-T PHY. CERR assertion will not result in an interrupt being generated. CERR assertion will set the ERR bit. Read/Write accessible always. RAP is cleared by H_RESET or S_RESET and is unaffected by setting the STOP bit. Read/Write accessible always. CERR is cleared by the host by writing a 1. Writing a 0 has no effect. CERR is cleared by H_RESET, S_RESET, or by setting the STOP bit. Control and Status Registers The CSR space is accessible by performing accesses to the RDP (Register Data Port). The particular CSR that is read or written during an RDP access will depend upon the current setting of the RAP. RAP serves as a pointer into the CSR space. 12 MISS CSR0: Am79C973/Am79C975 Controller Status and Control Register Certain bits in CSR0 indicate the cause of an interrupt. The register is designed so that these indicator bits are cleared by writing ones to those bit locations. This means that the software can read CSR0 and write back the value just read to clear the interrupt condition. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. Error is set by the OR of CERR, MISS, and MERR. ERR remains set as long as any of the error flags are true. Am79C973/Am79C975 Missed Frame is set by the Am79C973/Am79C975 controller when it has lost an incoming receive frame resulting from a Receive Descriptor not being available. This bit is the only immediate indication that receive data has been lost since there is no current receive descriptor. The Missed Frame Counter (CSR112) also increments each time a receive frame is missed. When MISS is set, INTA is asserted if IENA is 1 and the mask 123 P R E L I M I N A R Y bit MISSM (CSR3, bit 12) is 0. MISS assertion will set the ERR bit, regardless of the settings of IENA and MISSM. fect. RINT is cleared by H_RESET, S_RESET, or by setting the STOP bit. 9 TINT Read/Write accessible always. MISS is cleared by the host by writing a 1. Writing a 0 has no effect. MISS is cleared by H_RESET, S_RESET, or by setting the STOP bit. 11 MERR When TINT is set, INTA is asserted if IENA is 1 and the mask bit TINTM (CSR3, bit 9) is 0. Memory Error is set by the Am79C973/Am79C975 controller when it requests the use of the system interface bus by asserting REQ and has not received GNT assertion after a programmable length of time. The length of time in microseconds before MERR is asserted will depend upon the setting of the Bus Timeout Register (CSR100). The default setting of CSR100 will give a MERR after 153.6 ms of bus latency. When MERR is set, INTA is asserted if IENA is 1 and the mask bit MERRM (CSR3, bit 11) is 0. MERR assertion will set the ERR bit, regardless of the settings of IENA and MERRM. TINT will not be set if TINTOKD (CSR5, bit 15) is set to 1 and the transmission was successful. Read/Write accessible always. TINT is cleared by the host by writing a 1. Writing a 0 has no effect. TINT is cleared by H_RESET, S_RESET, or by setting the STOP bit. 8 IDON Read/Write accessible always. MERR is cleared by the host by writing a 1. Writing a 0 has no effect. MERR is cleared by H_RESET, S_RESET, or by setting the STOP bit. 10 RINT Receive Interrupt is set by the Am79C973/Am79C975 controller after the last descriptor of a receive frame has been updated by writing a 0 to the OWNership bit. RINT may also be set when the first descriptor of a receive frame has been updated by writing a 0 to the OWNership bit if the LAPPEN bit of CSR3 has been set to a 1. Initialization Done is set by the Am79C973/Am79C975 controller after the initialization sequence has completed. When IDON is set, the Am79C973/Am79C975 controller has read the initialization block from memory. When IDON is set, INTA is asserted if IENA is 1 and the mask bit IDONM (CSR3, bit 8) is 0. Read/Write accessible always. IDON is cleared by the host by writing a 1. Writing a 0 has no effect. IDON is cleared by H_RESET, S_RESET, or by setting the STOP bit. 7 INTR When RINT is set, INTA is asserted if IENA is 1 and the mask bit RINTM (CSR3, bit 10) is 0. Read/Write accessible always. RINT is cleared by the host by writing a 1. Writing a 0 has no ef- 124 Transmit Interrupt is set by the Am79C973/Am79C975 controller after the OWN bit in the last descriptor of a transmit frame has been cleared to indicate the frame has been sent or an error occurred in the transmission. Am79C973/Am79C975 Interrupt Flag indicates that one or more following interrupt causing conditions has occurred: EXDINT, IDON, MERR, MISS, MFCO, RCVCCO, RINT, SINT, TINT, TXSTRT, UINT, STINT, MREINT, MCCINT, MIIPDTINT, MAPINT and the associated mask or enable bit is programmed to allow the event to cause an interrupt. If IENA is set to 1 and INTR is set, INTA will be active. When INTR is set by SINT P R E L I M I N A R Y or SLPINT, INTA will be active independent of the state of INEA. the poll-time counter to elapse. If TXON is not enabled, TDMD bit will be reset and no Transmit Descriptor Ring access will occur. Read accessible always. INTR is read only. INTR is cleared by clearing all of the active individual interrupt bits that have not been masked out. 6 IENA TDMD is required to be set if the TXDPOLL bit in CSR4 is set. Setting TDMD while TXDPOLL = 0 merely hastens the Am79C973/ Am79C975 controller's response to a Transmit Descriptor Ring Entry. Interrupt Enable allows INTA to be active if the Interrupt Flag is set. If IENA = 0, then INTA will be disabled regardless of the state of INTR. Read/Write accessible always. TDMD is set by writing a 1. Writing a 0 has no effect. TDMD will be cleared by the Buffer Management Unit when it fetches a Transmit Descriptor. TDMD is cleared by H_RESET or S_RESET and setting the STOP bit. Read/Write accessible always. IENA is set by writing a 1 and cleared by writing a 0. IENA is cleared by H_RESET or S_RESET and setting the STOP bit. 5 RXON Receive On indicates that the receive function is enabled. RXON is set if DRX (CSR15, bit 0) is set to 0 after the START bit is set. If INIT and START are set together, RXON will not be set until after the initialization block has been read in. 2 STOP Read accessible always. RXON is read only. RXON is cleared by H_RESET or S_RESET and setting the STOP bit. 4 TXON Transmit On indicates that the transmit function is enabled. TXON is set if DTX (CSR15, bit 1) is set to 0 after the START bit is set. If INIT and START are set together, TXON will not be set until after the initialization block has been read in. Read/Write accessible always. STOP is set by writing a 1, by H_RESET or S_RESET. Writing a 0 has no effect. STOP is cleared by setting either STRT or INIT. 1 STRT This bit will reset if the DXSUFLO bit (CSR3, bit 6) is reset and there is an underflow condition encountered. TDMD Transmit Demand, when set, causes the Buffer Management Unit to access the Transmit Descriptor Ring without waiting for STRT assertion enables Am79C973/Am79C975 controller to send and receive frames, and perform buffer management operations. Setting STRT clears the STOP bit. If STRT and INIT are set together, the Am79C973/ Am79C975 controller initialization will be performed first. Read/Write accessible always. STRT is set by writing a 1. Writing a 0 has no effect. STRT is cleared by H_RESET, S_RESET, or by setting the STOP bit. Read accessible always. TXON is read only. TXON is cleared by H_RESET or S_RESET and setting the STOP bit. 3 STOP assertion disables the chip from all DMA activity. The chip remains inactive until either STRT or INIT are set. If STOP, STRT and INIT are all set together, STOP will override STRT and INIT. 0 INIT Am79C973/Am79C975 INIT assertion enables the Am79C973/Am79C975 controller to begin the initialization procedure which reads in the initialization block from memory. Setting 125 P R E L I M I N A R Y INIT clears the STOP bit. If STRT and INIT are set together, the Am79C973/Am79C975 controller initialization will be performed first. INIT is not cleared when the initialization sequence has completed. ter accesses, while the 32-bit hardware for which the Am79C973/Am79C975 controller is intended will require 32 bits of address. Therefore, whenever SSIZE32 = 0, the IADR[31:24] bits will be appended to the 24-bit initialization address, to each 24bit descriptor base address and to each beginning 24-bit buffer address in order to form complete 32-bit addresses. The upper 8 bits that exist in the descriptor address registers and the buffer address registers which are stored on board the Am79C973/ Am79C975 controller will be overwritten with the IADR[31:24] value, so that CSR accesses to these registers will show the 32bit address that includes the appended field. Read/Write accessible always. INIT is set by writing a 1. Writing a 0 has no effect. INIT is cleared by H_RESET, S_RESET, or by setting the STOP bit. CSR1: Initialization Block Address 0 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 IADR[15:0] Lower 16 bits of the address of the Initialization Block. Bit locations 1 and 0 must both be 0 to align the initialization block to a DWord boundary. If SSIZE32 = 1, then software will provide 32-bit pointer values for all of the shared software structures - i.e., descriptor bases and buffer addresses, and therefore, IADR[31:24] will not be written to the upper 8 bits of any of these resources, but it will be used as the upper 8 bits of the initialization address. This register is aliased with CSR16. Read/Write accessible only when either the STOP or the SPND bit is set. Unaffected by H_RESET or S_RESET, or by setting the STOP bit. This register is aliased with CSR17. CSR2: Initialization Block Address 1 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-8 IADR[31:24] If SSIZE32 is set (BCR20, bit 8), then the IADR[31:24] bits will be used strictly as the upper 8 bits of the initialization block address. However, if SSIZE32 is reset (BCR20, bit 8), then the IADR[31:24] bits will be used to generate the upper 8 bits of all bus mastering addresses, as required for a 32-bit address bus. Note that the 16-bit software structures specified by the SSIZE32 = 0 setting will yield only 24 bits of address for the Am79C973/Am79C975 bus mas- 126 Read/Write accessible only when either the STOP or the SPND bit is set. Unaffected by H_RESET, S_RESET, or by setting the STOP bit. 7-0 IADR[23:16] Bits 23 through 16 of the address of the Initialization Block. Whenever this register is written, CSR17 is updated with CSR2's contents. Read/Write accessible only when either the STOP or the SPND bit is set. Unaffected by H_RESET, S_RESET, or by setting the STOP bit. CSR3: Interrupt Masks and Deferral Control Am79C973/Am79C975 P R E L I M I N A R Y Bit 31-16 Name RES Description Reserved locations. Written as zeros and read as undefined. 15-13 RES Reserved locations. Read and written as zero. 12 MISSM When DXSUFLO (CSR3, bit 6) is set to 0, the transmitter is turned off when an UFLO error occurs (CSR0, TXON = 0). When DXSUFLO is set to 1, the Am79C973/Am79C975 controller gracefully recovers from an UFLO error. It scans the transmit descriptor ring until it finds the start of a new frame and starts a new transmission. Missed Frame Mask. If MISSM is set, the MISS bit will be masked and unable to set the INTR bit. Read/Write accessible always. MISSM is cleared by H_RESET or S_RESET and is not affected by STOP. 11 MERRM Memory Error Mask. If MERRM is set, the MERR bit will be masked and unable to set the INTR bit. Read/Write accessible always. DXSUFLO is cleared by H_RESET or S_RESET and is not affected by STOP. 5 LAPPEN Read/Write accessible always. MERRM is cleared by H_RESET or S_RESET and is not affected by STOP. 10 RINTM Receive Interrupt Mask. If RINTM is set, the RINT bit will be masked and unable to set the INTR bit. Read/Write accessible always. RINTM is cleared by H_RESET or S_RESET and is not affected by STOP. Look Ahead Packet Processing Enable. When set to a 1, the LAPPEN bit will cause the Am79C973/Am79C975 controller to generate an interrupt following the descriptor write operation to the first buffer of a receive frame. This interrupt will be generated in addition to the interrupt that is generated following the descriptor write operation to the last buffer of a receive packet. The interrupt will be signaled through the RINT bit of CSR0. 7 RES Reserved location. Read and written as zeros. Setting LAPPEN to a 1 also enables the Am79C973/Am79C975 controller to read the STP bit of receive descriptors. The Am79C973/Am79C975 controller will use the STP information to determine where it should begin writing a receive packet's data. Note that while in this mode, the Am79C973/Am79C975 controller can write intermediate packet data to buffers whose descriptors do not contain STP bits set to 1. Following the write to the last descriptor used by a packet, the Am79C973/Am79C975 controller will scan through the next descriptor entries to locate the next STP bit that is set to a 1. The Am79C973/Am79C975 controller will begin writing the next packets data to the buffer pointed to by that descriptor. 6 DXSUFLO Disable Transmit Stop on Underflow error. Note that because several descriptors may be allocated by the 9 TINTM Transmit Interrupt Mask. If TINTM is set, the TINT bit will be masked and unable to set the INTR bit. Read/Write accessible always. TINTM is cleared by H_RESET or S_RESET and is not affected by STOP. 8 IDONM Initialization Done Mask. If IDONM is set, the IDON bit will be masked and unable to set the INTR bit. Read/Write accessible always. IDONM is cleared by H_RESET or S_RESET and is not affected by STOP. Am79C973/Am79C975 127 P R E L I M I N A R Y host for each packet, and not all messages may need all of the descriptors that are allocated between descriptors that contain STP = 1, then some descriptors/ buffers may be skipped in the ring. While performing the search for the next STP bit that is set to 1, the Am79C973/Am79C975 controller will advance through the receive descriptor ring regardless of the state of ownership bits. If any of the entries that are examined during this search indicate Am79C973/Am79C975 controller ownership of the descriptor but also indicate STP = 0, then the Am79C973/Am79C975 controller will reset the OWN bit to 0 in these entries. If a scanned entry indicates host ownership with STP = 0, then the Am79C973/ Am79C975 controller will not alter the entry, but will advance to the next entry. When the STP bit is found to be true, but the descriptor that contains this setting is not owned by the Am79C973/Am79C975 controller, then the Am79C973/ Am79C975 controller will stop advancing through the ring entries and begin periodic polling of this entry. When the STP bit is found to be true, and the descriptor that contains this setting is owned by the Am79C973/ Am79C975 controller, then the Am79C973/Am79C975 controller will stop advancing through the ring entries, store the descriptor information that it has just read, and wait for the next receive to arrive. Read/Write accessible always. The LAPPEN bit will be reset to 0 by H_RESET or S_RESET and will be unaffected by STOP. See Appendix E for more information on the Look Ahead Packet Processing concept. 4 DXMT2PD Read/Write accessible always. DXMT2PD is cleared by H_RESET or S_RESET and is not affected by STOP. 3 EMBA Enable Modified Back-off Algorithm (see Contention Resolution section in Media Access Management section for more details). If EMBA is set, a modified back-off algorithm is implemented. Read/Write accessible always. EMBA is cleared by H_RESET or S_RESET and is not affected by STOP. 2 BSWP This behavior allows the host software to pre-assign buffer space in such a manner that the header portion of a receive packet will always be written to a particular memory area, and the data portion of a receive packet will always be written to a separate memory area. The interrupt is generated when the header bytes have been written to the header memory area. 128 Disable Transmit Two Part Deferral (see Medium Allocation section in the Media Access Management section for more details). If DXMT2PD is set, Transmit Two Part Deferral will be disabled. Am79C973/Am79C975 Byte Swap. This bit is used to choose between big and little Endian modes of operation. When BSWP is set to a 1, big Endian mode is selected. When BSWP is set to 0, little Endian mode is selected. When big Endian mode is selected, the Am79C973/Am79C975 controller will swap the order of bytes on the AD bus during a data phase on accesses to the FIFOs only. Specifically, AD[31:24] becomes Byte 0, AD[23:16] becomes Byte 1, AD[15:8] becomes Byte 2, and AD[7:0] becomes Byte 3 when big Endian mode is selected. When little Endian mode is selected, the order of bytes on the AD bus during a data phase is: AD[31:24] is Byte 3, AD[23:16] is Byte 2, AD[15:8] is Byte 1, and AD[7:0] is Byte 0. P R E L I M I N A R Y Byte swap only affects data transfers that involve the FIFOs. Initialization block transfers are not affected by the setting of the BSWP bit. Descriptor transfers are not affected by the setting of the BSWP bit. RDP, RAP, BDP and PCI configuration space accesses are not affected by the setting of the BSWP bit. Address PROM transfers are not affected by the setting of the BSWP bit. Expansion ROM accesses are not affected by the setting of the BSWP bit. or S_RESET and is unaffected by the STOP bit. 14 DMAPLUS Writing and reading from this bit has no effect. DMAPLUS is always set to 1. 13 RES Reserved Location. Written as zero and read as undefined. 12 TXDPOLL Disable Transmit Polling. If TXDPOLL is set, the Buffer Management Unit will disable transmit polling. Likewise, if TXDPOLL is cleared, automatic transmit polling is enabled. If TXDPOLL is set, TDMD bit in CSR0 must be set in order to initiate a manual poll of a transmit descriptor. Transmit descriptor polling will not take place if TXON is reset. Transmit polling will take place following Receive activities. Note that the byte ordering of the PCI bus is defined to be little Endian. BSWP should not be set to 1 when the Am79C973/ Am79C975 controller is used in a PCI bus application. Read/Write accessible always. BSWP is cleared by H_RESET or S_RESET and is not affected by STOP. 1-0 RES Reserved location. The default value of this bit is a 0. Writing a 1 to this bit has no effect on device function. If a 1 is written to this bit, then a 1 will be read back. Existing drivers may write a 1 to this bit for compatibility, but new drivers should write a 0 to this bit and should treat the read value as undefined. Read/Write accessible always. TXDPOLL is cleared by H_RESET or S_RESET and is unaffected by the STOP bit. 11 CSR4: Test and Features Control Certain bits in CSR4 indicate the cause of an interrupt. The register is designed so that these indicator bits are cleared by writing ones to those bit locations. This means that the software can read CSR4 and write back the value just read to clear the interrupt condition. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 RES Reserved location. It is OK for legacy software to write a 1 to this location. This bit must be set back to 0 before setting INIT or STRT bits. APAD_XMT Auto Pad Transmit. When set, APAD_XMT enables the automatic padding feature. Transmit frames will be padded to extend them to 64 bytes including FCS. The FCS is calculated for the entire frame, including pad, and appended after the pad field. APAD_XMT will override the programming of the DXMTFCS bit (CSR15, bit 3) and of the ADD_FCS bit (TMD1, bit 29) for frames shorter than 64 bytes. Read/Write accessible always. APAD_XMT is cleared by H_RESET or S_RESET and is unaffected by the STOP bit. 10 ASTRP_RCV Auto Strip Receive. When set, ASTRP_RCV enables the automatic pad stripping feature. The pad and FCS fields will be stripped from receive frames and not placed in the FIFO. Read/Write accessible always. This bit is cleared by H_RESET Am79C973/Am79C975 Read/Write accessible always. ASTRP_RCV is cleared by H_RESET or S_RESET and is unaffected by the STOP bit. 129 P R E L I M I N A R Y 9 MFCO Missed Frame Counter Overflow is set by the Am79C973/ Am79C975 controller when the Missed Frame Counter (CSR112 and CSR113) has wrapped around. Am79C975 controller when the Receive Collision Counter (CSR114 and CSR115) has wrapped around. When RCVCCO is set, INTA is asserted if IENA is 1 and the mask bit RCVCCOM is 0. When MFCO is set, INTA is asserted if IENA is 1 and the mask bit MFCOM is 0. Read/Write accessible always. MFCO is cleared by the host by writing a 1. Writing a 0 has no effect. MFCO is cleared by H_RESET, S_RESET, or by setting the STOP bit. 8 MFCOM UINTCMD UINT 130 RCVCCO Read/Write accessible always. RCVCCOM is set to 1 by H_RESET or S_RESET and is not affected by the STOP bit. 3 TXSTRT Receive Collision Counter Overflow is set by the Am79C973/ Transmit Start status is set by the Am79C973/Am79C975 controller whenever it begins transmission of a frame. When TXSTRT is set, INTA is asserted if IENA is 1 and the mask bit TXSTRTM is 0. Read/Write accessible always. TXSTRT is cleared by the host by writing a 1. Writing a 0 has no effect. TXSTRT is cleared by H_RESET, S_RESET, or by setting the STOP bit. 2 TXSTRTM User Interrupt. UINT is set by the Am79C973/Am79C975 controller after the host has issued a user interrupt command by setting UINTCMD (CSR4, bit 7) to 1. Read/Write accessible always. UINT is cleared by the host by writing a 1. Writing a 0 has no effect. UINT is cleared by H_RESET or S_RESET or by setting the STOP bit. 5 RCVCCOM Receive Collision Counter Overflow Mask. If RCVCCOM is set, the RCVCCO bit will be masked and unable to set the INTR bit. User Interrupt Command. UINTCMD can be used by the host to generate an interrupt unrelated to any network activity. When UINTCMD is set, INTA is asserted if IENA is set to 1. UINTCMD will be cleared internally after the Am79C973/ Am79C975 controller has set UINT to 1. Read/Write accessible always. UINTCMD is cleared by H_RESET or S_RESET or by setting the STOP bit. 6 4 Missed Frame Counter Overflow Mask. If MFCOM is set, the MFCO bit will be masked and unable to set the INTR bit. Read/Write accessible always. MFCOM is set to 1 by H_RESET or S_RESET and is not affected by the STOP bit. 7 Read/Write accessible always. RCVCCO is cleared by the host by writing a 1. Writing a 0 has no effect. RCVCCO is cleared by H_RESET, S_RESET, or by setting the STOP bit. Transmit Start Mask. If TXSTRTM is set, the TXSTRT bit will be masked and unable to set the INTR bit. Read/Write accessible always. TXSTRTM is set to 1 by H_RESET or S_RESET and is not affected by the STOP bit. 1-0 RES Reserved locations. Written as zeros and read as undefined. CSR5: Extended Control and Interrupt 1 Certain bits in CSR5 indicate the cause of an interrupt. The register is designed so that these indicator bits are cleared by writing ones to those bit locations. This Am79C973/Am79C975 P R E L I M I N A R Y means that the software can read CSR5 and write back the value just read to clear the interrupt condition. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 TOKINTD Transmit OK Interrupt Disable. If TOKINTD is set to 1, the TINT bit in CSR0 will not be set when a transmission was successful. Only a transmit error will set the TINT bit. TOKINTD has no effect when LTINTEN (CSR5, bit 14) is set to 1. A transmit descriptor with LTINT set to 1 will always cause TINT to be set to 1, independent of the success of the transmission. Note that the assertion of an interrupt due to SINT is not dependent on the state of the INEA bit, since INEA is cleared by the STOP reset generated by the system error. Read/Write accessible always. SINT is cleared by the host by writing a 1. Writing a 0 has no effect. The state of SINT is not affected by clearing any of the PCI Status register bits that get set when a data parity error (DATAPERR, bit 8), master abort (RMABORT, bit 13), or target abort (RTABORT, bit 12) occurs. SINT is cleared by H_RESET or S_RESET and is not affected by setting the STOP bit. 10 SINTE Read/Write accessible always. TOKINTD is cleared by H_RESET or S_RESET and is unaffected by STOP. 14 LTINTEN Last Transmit Interrupt Enable. When set to 1, the LTINTEN bit will cause the Am79C973/ Am79C975 controller to read bit 28 of TMD1 as LTINT. The setting LTINT will determine if TINT will be set at the end of the transmission. Read/Write accessible always. SINTE is set to 0 by H_RESET or S_RESET and is not affected by setting the STOP bit. 9-8 RES Reserved locations. Written as zeros and read as undefined. 7 EXDINT Excessive Deferral Interrupt is set by the Am79C973/ Am79C975 controller when the transmitter has experienced Excessive Deferral on a transmit frame, where Excessive Deferral is defined in the ISO 8802-3 (IEEE/ANSI 802.3) standard. Read/Write accessible always. LTINTEN is cleared by H_RESET or S_RESET and is unaffected by STOP. 13-12 RES Reserved locations. Written as zeros and read as undefined. 11 SINT System Interrupt is set by the Am79C973/Am79C975 controller when it detects a system error during a bus master transfer on the PCI bus. System errors are data parity error, master abort, or a target abort. The setting of SINT due to data parity error is not dependent on the setting of PERREN (PCI Command register, bit 6). System Interrupt Enable. If SINTE is set, the SINT bit will be able to set the INTR bit. When EXDINT is set, INTA is asserted if the enable bit EXDINTE is 1. Read/Write accessible always. EXDINT is cleared by the host by writing a 1. Writing a 0 has no effect. EXDINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 6 EXDINTE When SINT is set, INTA is asserted if the enable bit SINTE is 1. Am79C973/Am79C975 Excessive Deferral Interrupt Enable. If EXDINTE is set, the EXDINT bit will be able to set the INTR bit. 131 P R E L I M I N A R Y Read/Write accessible always. EXDINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit. 5 MPPLBA Magic Packet Physical Logical Broadcast Accept. If MPPLBA is at its default value of 0, the Am79C973/Am79C975 controller will only detect a Magic Packet frame if the destination address of the packet matches the content of the physical address register (PADR). If MPPLBA is set to 1, the destination address of the Magic Packet frame can be unicast, multicast, or broadcast. Note that the setting of MPPLBA only affects the address detection of the Magic Packet frame. The Magic Packet frame's data sequence must be made up of 16 consecutive physical addresses (PADR[47:0]) regardless of what kind of destination address it has. This bit is OR'ed with EMPPLBA bit (CSR116, bit 6). Read/Write accessible always. MPPLBA is set to 0 by H_RESET or S_RESET and is not affected by setting the STOP bit. 4 MPINT H_RESET or S_RESET and is not affected by setting the STOP bit. 2 MPEN Read/Write accessible always. MPEN is cleared to 0 by H_RESET or S_RESET and is not affected by setting the STOP bit. 1 MPMODE MPINTE 0 SPND Magic Packet Interrupt. Magic Packet Interrupt is set by the Am79C973/Am79C975 controller when the device is in the Magic Packet mode and the Am79C973/Am79C975 controller receives a Magic Packet frame. When MPINT is set to 1, INTA is asserted if IENA (CSR0, bit 6) and the enable bit MPINTE are set to 1. Magic Packet Interrupt Enable. If MPINTE is set to 1, the MPINT bit will be able to set the INTR bit. Read/Write accessible always. MPINT is cleared to 0 by 132 The Am79C973/Am79C975 controller will enter the Magic Packet mode when MPMODE is set to 1 and either PG is asserted or MPEN is set to 1. Read/Write accessible always. MPMODE is cleared to 0 by H_RESET or S_RESET and is not affected by setting the STOP bit Read/Write accessible always. MPINT is cleared by the host by writing a 1. Writing a 0 has no affect. MPINT is cleared by H_RESET, S_RESET, or by setting the STOP bit. 3 Magic Packet Enable. MPEN allows activation of the Magic Packet mode by the host. The Am79C973/Am79C975 controller will enter the Magic Packet mode when both MPEN and MPMODE are set to 1. Am79C973/Am79C975 Suspend. Setting SPND to 1 will cause the Am79C973/ Am79C975 controller to start requesting entrance into suspend mode. The host must poll SPND until it reads back 1 to determine that the Am79C973/Am79C975 controller has entered the suspend mode. Setting SPND to 0 will get the Am79C973/ Am79C975 controller out of suspend mode. SPND can only be set to 1 if STOP (CSR0, bit 2) is set to 0. H_RESET, S_RESET or setting the STOP bit will get the Am79C973/Am79C975 controller out of suspend mode. Requesting entrance into the suspend mode by the host depends on the setting of the FASTSPNDE bit (CSR7, bit 15). Refer to the bit description of the FASTSPNDE bit and the Suspend section in Detailed Functions, Buffer Management Unit for details. P R E L I M I N A R Y In suspend mode, all of the CSR and BCR registers are accessible. As long as the Am79C973/ Am79C975 controller is not reset while in suspend mode (by H_RESET, S_RESET or by setting the STOP bit), no re-initialization of the device is required after the device comes out of suspend mode. The Am79C973/ Am79C975 controller will continue at the transmit and receive descriptor ring locations, from where it had left, when it entered the suspend mode. Read/Write accessible always. SPND is cleared by H_RESET, S_RESET, or by setting the STOP bit. CSR6: RX/TX Descriptor Table Length Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 TLEN RLEN is only defined after initialization. These bits are unaffected by H_RESET, S_RESET, or STOP. 7-0 RES CSR7: Extended Control and Interrupt 2 Certain bits in CSR7 indicate the cause of an interrupt. The register is designed so that these indicator bits are cleared by writing ones to those bit locations. This means that the software can read CSR7 and write back the value just read to clear the interrupt condition. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 FASTSPNDE Fast Suspend Enable. When FASTSPNDE is set to 1, the Am79C973/Am79C975 controller performs a fast suspend whenever the SPND bit is set. Contains a copy of the transmit encoded ring length (TLEN) field read from the initialization block during the Am79C973/ Am79C975 controller initialization. This field is written during the Am79C973/Am79C975 controller initialization routine. Read accessible only when either the STOP or the SPND bit is set. Write operations have no effect and should not be performed. TLEN is only defined after initialization. These bits are unaffected by H_RESET, S_RESET, or STOP. 11-8 RLEN Reserved locations. Read as 0s. Write operations are ignored. Contains a copy of the receive encoded ring length (RLEN) read from the initialization block during Am79C973/Am79C975 controller initialization. This field is written during the Am79C973/ Am79C975 controller initialization routine. Read accessible only when either the STOP or the SPND bit is set. Write operations have no effect and should not be performed. Am79C973/Am79C975 When a fast suspend is requested, the Am79C973/Am79C975 controller performs a quick entry into the suspend mode. At the time the SPND bit is set, the Am79C973/Am79C975 controller will complete the DMA process of any transmit and/or receive packet that had already begun DMA activity. In addition, any transmit packet that had started transmission will be fully transmitted and any receive packet that had begun reception will be fully received. However, no additional packets will be transmitted or received and no additional transmit or receive DMA activity will begin. Hence, the Am79C973/ Am79C975 controller may enter the suspend mode with transmit and/or receive packets still in the FIFOs or the SRAM. When FASTSPNDE is 0 and the SPND bit is set, the Am79C973/ Am79C975 controller may take longer before entering the suspend mode. At the time the SPND bit is set, the Am79C973/ Am79C975 controller will complete the DMA process of a transmit packet if it had already begun 133 P R E L I M I N A R Y and the Am79C973/Am79C975 controller will completely receive a receive packet if it had already begun. Additionally, all transmit packets stored in the transmit FIFOs and the transmit buffer area in the SRAM (if one is enabled) will be transmitted and all receive packets stored in the receive FIFOs, and the receive buffer area in the SRAM (if one is enabled) will be transferred into system memory. Since the FIFO and SRAM contents are flushed, it may take much longer before the Am79C973/Am79C975 controller enters the suspend mode. The amount of time that it takes depends on many factors including the size of the SRAM, bus latency, and network traffic level. RDMD is required to be set if the RXDPOLL bit in CSR7 is set. Setting RDMD while RXDPOLL = 0 merely hastens the Am79C973/ Am79C975 controller's response to a receive Descriptor Ring Entry. Read/Write accessible always. RDMD is set by writing a 1. Writing a 0 has no effect. RDMD will be cleared by the Buffer Management Unit when it fetches a receive Descriptor. RDMD is cleared by H_RESET. RDMD is unaffected by S_RESET or by setting the STOP bit. 12 RXDPOLL When a write to CSR5 is performed with bit 0 (SPND) set to 1, the value that is simultaneously written to FASTSPNDE is used to determine which approach is used to enter suspend mode. Read/Write accessible always. FASTSPNDE is cleared by H_RESET, S_RESET or by setting the STOP bit. 14 RXFRTG Receive Frame Tag. When Receive Frame Tag is set to 1, a tag word is put into the receive descriptor supplied by the EADI. See the section Receive Frame Tagging for details. This bit is valid only when the EADISEL (BCR2, bit 3) is set to 1. Read/Write accessible always. RXDPOLL is cleared by H_RESET. RXDPOLL is unaffected by S_RESET or by setting the STOP bit. 11 STINT Read/Write accessible always. RXFRTG is cleared by H_RESET. RXFRTG is unaffected by S_RESET or by setting the STOP bit. 13 134 RDMD Receive Disable Polling. If RXDPOLL is set, the Buffer Management Unit will disable receive polling. Likewise, if RXDPOLL is cleared, automatic receive polling is enabled. If RXDPOLL is set, RDMD bit in CSR7 must be set in order to initiate a manual poll of a receive descriptor. Receive Descriptor Polling will not take place if RXON is reset. Receive Demand, when set, causes the Buffer Management Unit to access the Receive Descriptor Ring without waiting for the receive poll-time counter to elapse. If RXON is not enabled, RDMD has no meaning and no receive Descriptor Ring access will occur. Am79C973/Am79C975 Software Timer Interrupt. The Software Timer interrupt is set by the Am79C973/Am79C975 controller when the Software Timer counts down to 0. The Software Timer will immediately load the STVAL (BCR 31, bits 5-0) into the Software Timer and begin counting down. When STINT is set to 1, INTA is asserted if the enable bit STINTE is set to 1. Read/Write accessible always. STINT is cleared by the host by writing a 1. Writing a 0 has no effect. STINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. P R E L I M I N A R Y 10 STINTE Software Timer Interrupt Enable. If STINTE is set, the STINT bit will be able to set the INTR bit. ister and the read produce differences. When MAPINT is set to 1, INTA is asserted if the enable bit MAPINTE is set to 1. Read/Write accessible always. STINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit 9 MREINT PHY Management Read Error Interrupt. The PHY Read Error interrupt is set by the Am79C973/ Am79C975 controller to indicate that the currently read register from the PHY is invalid. The contents of BCR34 are incorrect and that the operation should be performed again. The indication of an incorrect read comes from the internal PHY. When MREINT is set to 1, INTA is asserted if the enable bit MREINTE is set to 1. Read/Write accessible always. MAPINT is cleared by the host by writing a 1. Writing a 0 has no effect. MAPINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 6 MAPINTE MREINTE 5 MCCINT MAPINT PHY Management Auto-Poll Interrupt. The PHY Auto-Poll interrupt is set by the Am79C973/ Am79C975 controller to indicate that the currently read status does not match the stored previous status indicating a change in state for the internal PHY. A change in the Auto-Poll Access Method (BCR32, Bit 11) will reset the shadow register and will not cause an interrupt on the first access from the Auto-Poll section. Subsequent accesses will generate an interrupt if the shadow reg- PHY Management Command Complete Interrupt. The PHY Management Command Complete Interrupt is set by the Am79C973/Am79C975 controller when a read or write operation to the internal PHY Data Port (BCR34) is complete. When MCCINT is set to 1, INTA is asserted if the enable bit MCCINTE is set to 1. PHY Management Read Error Interrupt Enable. If MREINTE is set, the MREINT bit will be able to set the INTR bit. Read/Write accessible always. MCCINT is cleared by the host by writing a 1. Writing a 0 has no effect. MCCINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Read/Write accessible always. MREINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit 7 PHY Auto-Poll Interrupt Enable. If MAPINTE is set, the MAPINT bit will be able to set the INTR bit. Read/Write accessible always. MAPINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit Read/Write accessible always. MREINT is cleared by the host by writing a 1. Writing a 0 has no effect. MREINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 8 register 4 MCCINTE Am79C973/Am79C975 PHY Management Command Complete Interrupt Enable. If MCCINTE is set to 1, the MCCINT bit will be able to set the INTR bit when the host reads or writes to the internal PHY Data Port (BCR34) only. Internal PHY Management Commands will not generate an interrupt. For instance Auto-Poll state machine generated management frames will not generate an interrupt upon completion unless there is a compare error which get reported 135 P R E L I M I N A R Y through the MAPINT (CSR7, bit 6) interrupt or the MCCIINTE is set to 1. rupt is set by the Am79C973/ Am79C975 controller whenever the MIIPD bit (BCR32, bit 14) transitions from 0 to 1 or vice versa. Read/Write accessible always. MCCINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit. 3 MCCIINT PHY Management Command Complete Internal Interrupt. The PHY Management Command Complete Interrupt is set by the Am79C973/Am79C975 controller when a read or write operation on the internal PHY management port is complete from an internal operation. Examples of internal operations are Auto-Poll or PHY Management Port generated management frames. These are normally hidden to the host. When MCCIINT is set to 1, INTA is asserted if the enable bit MCCINTE is set to 1. Read/Write accessible always. MCCIINT is cleared by the host by writing a 1. Writing a 0 has no effect. MCCIINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 2 MCCIINTE PHY Management Command Complete Internal Interrupt Enable. If MCCIINTE is set to 1, the MCCIINT bit will be able to set the INTR bit when the internal state machines generate management frames. For instance, when MCCIINTE is set to 1 and the Auto-Poll state machine generates a management frame, the MCCIINT will set the INTR bit upon completion of the management frame regardless of the comparison outcome. Read/Write accessible always. MCCIINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit. 1 136 MIIPDTINT PHY Detect Transition Interrupt. The PHY Detect Transition Inter- Read/Write accessible always. MIIPDTINT is cleared by the host by writing a 1. Writing a 0 has no effect. MIIPDTINT is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 0 MIIPDTINTE PHY Detect Transition Interrupt Enable. If MIIPDTINTE is set to 1, the MIIPDTINT bit will be able to set the INTR bit. Read/Write accessible always. MIIPDTINTE is set to 0 by H_RESET and is not affected by S_RESET or setting the STOP bit. CSR8: Logical Address Filter 0 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 LADRF[15:0] Logical Address Filter, LADRF[15:0]. The content of this register is undefined until loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR9: Logical Address Filter 1 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 LADRF[31:16] Logical Address Filter, LADRF[31:16]. The content of this register is undefined until loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. Am79C973/Am79C975 P R E L I M I N A R Y Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 15-0 CSR10: Logical Address Filter 2 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. PADR[15:0] Physical Address Register, PADR[15:0]. The contents of this register are loaded from EEPROM after H_RESET or by an EEPROM read command (PRGAD, BCR19, bit 14). If the EEPROM is not present, the contents of this register are undefined. This register can also be loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. 15-0 LADRF[47:32] Logical Address Filter, LADRF[47:32]. The content of this register is undefined until loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR11: Logical Address Filter 3 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR13: Physical Address Register 1 Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 PADR[31:16]Physical Address Register, PADR[31:16]. The contents of this register are loaded from EEPROM after H_RESET or by an EEPROM read command (PRGAD, BCR19, bit 14). If the EEPROM is not present, the contents of this register are undefined. 15-0 LADRF[63:48] Logical Address Filter, LADRF[63:48]. The content of this register is undefined until loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. This register can also be loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR12: Physical Address Register 0 Note: Bits 15-0 in this register are programmable through the EEPROM. Bit 31-16 Name RES Description Reserved locations. Written as zeros and read as undefined. CSR14: Physical Address Register 2 Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Am79C973/Am79C975 Description 137 P R E L I M I N A R Y 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 PADR[47:32]Physical Address Register, PADR[47:32].The contents of this register are loaded from EEPROM after H_RESET or by an EEPROM read command (PRGAD, BCR19, bit 14). If the EEPROM is not present, the contents of this register are undefined. Read/Write accessible only when either the STOP or the SPND bit is set. 13 DRCVPA This register can also be loaded from the initialization block after the INIT bit in CSR0 has been set or a direct register write has been performed on this register. 12-9 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 8-7 PORTSEL[1:0] Port Select bits allow for software controlled selection of the network medium. The only legal values for this field is 11. Read/Write accessible only when either the STOP or the SPND bit is set. RES This register's fields are loaded during the Am79C973/ Am79C975 controller initialization routine with the corresponding Initialization Block values, or when a direct register write has been performed on this register. 6 Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 PROM Promiscuous Mode. When PROM = 1, all incoming receive frames are accepted. INTL 138 Disable Receive Broadcast. When set, disables the Am79C973/Am79C975 controller from receiving broadcast messages. Used for protocols that do not support broadcast addressing, except as a function of multicast. DRCVBC is cleared by activation of H_RESET or S_RESET (broadcast messages will be received) and is unaffected by STOP. Internal Loopback. See the description of LOOP (CSR15, bit 2). Read/Write accessible only when either the STOP or the SPND bit is set. 5 DRTY Read/Write accessible only when either the STOP or the SPND bit is set. DRCVBC Reserved locations. Written as zeros and read as undefined. Read/Write accessible only when either the STOP or the SPND bit is set. Cleared by H_RESET or S_RESET and is unaffected by STOP. CSR15: Mode 14 Disable Receive Physical Address. When set, the physical address detection (Station or node ID) of the Am79C973/Am79C975 controller will be disabled. Frames addressed to the nodes individual physical address will not be recognized. Disable Retry. When DRTY is set to 1, the Am79C973/Am79C975 controller will attempt only one transmission. In this mode, the device will not protect the first 64 bytes of frame data in the Transmit FIFO from being overwritten, because automatic retransmission will not be necessary. When DRTY is set to 0, the Am79C973/ Am79C975 controller will attempt 16 transmissions before signaling a retry error. Read/Write accessible only when either the STOP or the SPND bit is set. 4 FCOLL Am79C973/Am79C975 Force Collision. This bit allows the collision logic to be tested. The Am79C973/Am79C975 con- P R E L I M I N A R Y troller must be in internal loopback for FCOLL to be valid. If FCOLL = 1, a collision will be forced during loopback transmission attempts, which will result in a Retry Error. If FCOLL = 0, the Force Collision logic will be disabled. FCOLL is defined after the initialization block is read. modes are defined as follows in Table 24. Table 24. Loopback Configuration LOOP INTL MIIILP 0 0 0 Normal Operation 0 0 1 Internal Loop 1 0 0 External Loop Read/Write accessible only when either the STOP or the SPND bit is set. 3 DXMTFCS Disable Transmit CRC (FCS). When DXMTFCS is set to 0, the transmitter will generate and append an FCS to the transmitted frame. When DXMTFCS is set to 1, no FCS is generated or sent with the transmitted frame. DXMTFCS is overridden when ADD_FCS and ENP bits are set in TMD1. Refer to Loop Back Operation section for more details. Read/Wr ite acc essible only when either the STOP or the SPND bit is set. LOOP is cleared by H_RESET or S_RESET and is unaffected by STOP. 1 DTX When APAD_XMT bit (CSR4, bit11) is set to 1, the setting of DXMTFCS has no effect on frames shorter than 64 bytes. If DXMTFCS is set and ADD_FCS is clear for a particular frame, no FCS will be generated. If ADD_FCS is set for a particular frame, the state of DXMTFCS is ignored and a FCS will be appended on that frame by the transmit circuitry. See also the ADD_FCS bit in TMD1. 2 LOOP Loopback Enable allows the Am79C973/Am79C975 controller to operate in full-duplex mode for test purposes. The setting of the full- duplex control bits in BCR9 have no effect when the device operates in loopback mode. When LOOP = 1, loopback is enabled. In combination with INTL and MIIILP, various loopback Disable Transmit results in Am79C973/Am79C975 controller not accessing the Transmit Descriptor Ring and, therefore, no transmissions are attempted. DTX = 0, will set TXON bit (CSR0 bit 4) if STRT (CSR0 bit 1) is asserted. Read/Write accessible only when either the STOP or the SPND bit is set. 0 DRX This bit was called DTCR in the LANCE (Am7990) device. Read/Write accessible only when either the STOP or the SPND bit is set. Function Disable Receiver results in the Am79C973/Am79C975 controller not accessing the Receive Descriptor Ring and, therefore, all receive frame data are ignored. DRX = 0, will set RXON bit (CSR0 bit 5) if STRT (CSR0 bit 1) is asserted. Read/Write accessible only when either the STOP or the SPND bit is set. CSR16: Initialization Block Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 IADRL This register is an alias of CSR1. Am79C973/Am79C975 Read/Write accessible only when either the STOP or the SPND bit is set. 139 P R E L I M I N A R Y CSR17: Initialization Block Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 IADRH This register is an alias of CSR2. Read/Write accessible only when either the STOP or the SPND bit is set. CSR18: Current Receive Buffer Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CRBAL Contains the lower 16 bits of the current receive buffer address at which the Am79C973/ Am79C975 controller will store incoming frame data. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR19: Current Receive Buffer Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CRBAU Contains the upper 16 bits of the current receive buffer address at which the Am79C973/ Am79C975 controller will store incoming frame data. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR20: Current Transmit Buffer Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CXBAL Contains the lower 16 bits of the current transmit buffer address from which the Am79C973/ 140 Am79C975 controller is transmitting. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR21: Current Transmit Buffer Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CXBAU Contains the upper 16 bits of the current transmit buffer address from which the Am79C973/ Am79C975 controller is transmitting. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR22: Next Receive Buffer Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NRBAL Contains the lower 16 bits of the next receive buffer address to which the Am79C973/ Am79C975 controller will store incoming frame data. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR23: Next Receive Buffer Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NRBAU Contains the upper 16 bits of the next receive buffer address to which the Am79C973/ Am79C975 controller will store incoming frame data. Am79C973/Am79C975 P R E L I M I N A R Y Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NRDAU Contains the upper 16 bits of the next receive descriptor address pointer. CSR24: Base Address of Receive Ring Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 BADRL Contains the lower 16 bits of the base address of the Receive Ring. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR28: Current Receive Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CRDAL Contains the lower 16 bits of the current receive descriptor address pointer. CSR25: Base Address of Receive Ring Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 BADRU Contains the upper 16 bits of the base address of the Receive Ring. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR29: Current Receive Descriptor Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CRDAU Contains the upper 16 bits of the current receive descriptor address pointer. CSR26: Next Receive Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NRDAL Contains the lower 16 bits of the next receive descriptor address pointer. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR30: Base Address of Transmit Ring Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 BADXL Contains the lower 16 bits of the base address of the Transmit Ring. CSR27: Next Receive Descriptor Address Upper Bit Name Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected Description Am79C973/Am79C975 141 P R E L I M I N A R Y by H_RESET, S_RESET, or STOP. 15-0 CXDAL Contains the lower 16 bits of the current transmit descriptor address pointer. CSR31: Base Address of Transmit Ring Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 BADXU Contains the upper 16 bits of the base address of the Transmit Ring. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR35: Current Transmit Descriptor Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CXDAU Contains the upper 16 bits of the current transmit descriptor address pointer. CSR32: Next Transmit Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NXDAL Contains the lower 16 bits of the next transmit descriptor address pointer. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR36: Next Next Receive Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NNRDAL Contains the lower 16 bits of the next next receive descriptor address pointer. CSR33: Next Transmit Descriptor Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NXDAU Contains the upper 16 bits of the next transmit descriptor address pointer. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR34: Current Transmit Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 142 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR37: Next Next Receive Descriptor Address Upper Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NNRDAU Contains the upper 16 bits of the next next receive descriptor address pointer. Am79C973/Am79C975 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected P R E L I M I N A R Y by H_RESET, S_RESET, or STOP. CSR38: Next Next Transmit Descriptor Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NNXDAL Contains the lower 16 bits of the next next transmit descriptor address pointer. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR39: Next Next Transmit Descriptor Address Uper CSR41: Current Receive Status Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 CRST Current Receive Status. This field is a copy of bits 31-16 of RMD1 of the current receive descriptor. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR42: Current Transmit Byte Count Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 RES Reserved locations. Read and written as zeros. 11-0 CXBC Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 NNXDAU Contains the upper 16 bits of the next next transmit descriptor address pointer. Current Transmit Byte Count. This field is a copy of the BCNT field of TMD1 of the current transmit descriptor. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR40: Current Receive Byte Count CSR43: Current Transmit Status Bit Bit 31-16 Name RES Description Reserved locations. Written as zeros and read as undefined. 15-12 RES Reserved locations. Read and written as zeros. 11-0 CRBC Current Receive Byte Count. This field is a copy of the BCNT field of RMD1 of the current receive descriptor. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Current Transmit Status. This field is a copy of bits 31-16 of TMD1 of the current transmit descriptor. CXST Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR44: Next Receive Byte Count Bit Name Am79C973/Am79C975 Description 143 P R E L I M I N A R Y 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 RES Reserved locations. Read and written as zeros. 11-0 Next Receive Byte Count. This field is a copy of the BCNT field of RMD1 of the next receive descriptor. NRBC 15-0 TXPOLLINT Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR45: Next Receive Status Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Next Receive Status. This field is a copy of bits 31-16 of RMD1 of the next receive descriptor. NRST Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR46: Transmit Poll Time Counter Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Transmit Poll Time Counter. This counter is incremented by the Am79C973/Am79C975 controller microcode and is used to trigger the transmit descriptor ring polling operation of the Am79C973/ Am79C975 controller. TXPOLL Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR47: Transmit Polling Interval Bit Name 31-16 RES 144 Transmit Polling Interval. This register contains the time that the Am79C973/Am79C975 controller will wait between successive polling operations. The TXPOLLINT value is expressed as the two's complement of the desired interval, where each bit of TXPOLLINT represents 1 clock period of time. TXPOLLINT[3:0] are ignored. (TXPOLLINT[16] is implied to be a one, so TXPOLLINT[15] is significant and does not represent the sign of the two's complement TXPOLLINT value.) The default value of this register is 0000h. This corresponds to a polling interval of 65,536 clock periods (1.966 ms when CLK = 33 MHz). The TXPOLLINT value of 0000h is created during the microcode initialization routine and, therefore, might not be seen when reading CSR47 after H_RESET or S_RESET. If the user desires to program a value for POLLINT other than the default, then the correct procedure is to first set INIT only in CSR0. Then, when the initialization sequence is complete, the user must set STOP (CSR0, bit 2). Then the user may write to CSR47 and then set STRT in CSR0. In this way, the default value of 0000h in CSR47 will be overwritten with the desired user value. If the user does not use the standard initialization procedure (standard implies use of an initialization block in memory and setting the INIT bit of CSR0), but instead, chooses to write directly to each of the registers that are involved in the INIT operation, then it is imperative that the user also writes all zeros to CSR47 as part of the alternative initialization sequence. Description Reserved locations. Written as zeros and read as undefined. Am79C973/Am79C975 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected P R E L I M I N A R Y by H_RESET, S_RESET, or STOP. If the user desires to program a value for RXPOLLINT other than the default, then the correct procedure is to first set INIT only in CSR0. Then, when the initialization sequence is complete, the user must set STOP (CSR0, bit 2). Then the user may write to CSR49 and then set STRT in CSR0. In this way, the default value of 0000h in CSR47 will be overwritten with the desired user value. CSR48: Receive Poll Time Counter Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Receive Poll Time Counter. This counter is incremented by the Am79C973/Am79C975 controller microcode and is used to trigger the receive descriptor ring polling operation of the Am79C973/ Am79C975 controller. RXPOLL If the user does not use the standard initialization procedure (standard implies use of an initialization block in memory and setting the INIT bit of CSR0), but instead, chooses to write directly to each of the registers that are involved in the INIT operation, then it is imperative that the user also writes all zeros to CSR49 as part of the alternative initialization sequence. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR49: Receive Polling Interval Bit Name 31-16 RES 15-0 Description Reserved locations. Written as zeros and read as undefined. RXPOLLINT Receive Polling Interval. This register contains the time that the Am79C973/Am79C975 controller will wait between successive polling operations. The RXPOLLINT value is expressed as the two's complement of the desired interval, where each bit of RXPOLLINT approximately represents one clock time period. RXPOLLINT[3:0] are ignored. (RXPOLLINT[16] is implied to be a 1, so RXPOLLINT[15] is significant and does not represent the sign of the two's complement RXPOLLINT value.) The default value of this register is 0000h. This corresponds to a polling interval of 65,536 clock periods (1.966 ms when CLK = 33 MHz). The RXPOLLINT value of 0000h is created during the microcode initialization routine and, therefore, might not be seen when reading CSR49 after H_RESET or S_RESET. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR58: Software Style This register is an alias of the location BCR20. Accesses to and from this register are equivalent to accesses to BCR20. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-11 RES Reserved locations. Written as zeros and read as undefined. 10 Advanced Parity Error Handling Enable. When APERREN is set to 1, the BPE bits (RMD1 and TMD1, bit 23) start having a meaning. BPE will be set in the descriptor associated with the buffer that was accessed when a data parity error occurred. Note that since the advanced parity error handling uses an additional bit in the descriptor, SWSTYLE (bits 7-0 of this register) must be set to 2 or 3 to program the Am79C973/ APERREN Am79C973/Am79C975 145 P R E L I M I N A R Y Am79C975 controller to use 32bit software structures. ware structures specified by the SSIZE32 = 0 setting will yield only 24 bits of address for the Am79C973/Am79C975 controller bus master accesses. APERREN does not affect the reporting of address parity errors or data parity errors that occur when the Am79C973/Am79C975 controller is the target of the transfer. If SSIZE32 is set, then the software structures that are common to the Am79C973/Am79C975 controller and the host system will supply a full 32 bits for each address pointer that is needed by the Am79C973/Am79C975 controller for performing master accesses. Read anytime, write accessible only when either the STOP or the SPND bit is set. APERREN is cleared by H_RESET and is not affected by S_RESET or STOP. 9 8 RES SSIZE32 Reserved locations. Written as zeros and read as undefined. Software Size 32 bits. When set, this bit indicates that the Am79C973/Am79C975 controller utilizes 32-bit software structures for the initialization block and the transmit and receive descriptor entries. When cleared, this bit indicates that the Am79C973/ Am79C975 controller utilizes 16bit software structures for the initialization block and the transmit and receive descriptor entries. In this mode, the Am79C973/ Am79C975 controller is backwards compatible with the Am7990 LANCE and Am79C960 PCnet-ISA controllers. The value of the SSIZE32 bit has no effect on the drive of the upper 8 address bits. The upper 8 address pins are always driven, regardless of the state of the SSIZE32 bit. Note that the setting of the SSIZE32 bit has no effect on the defined width for I/O resources. I/O resource width is determined by the state of the DWIO bit (BCR18, bit 7). 7-0 SWSTYLE The value of SSIZE32 is determined by the Am79C973/ Am79C975 controller according to the setting of the Software Style (SWSTYLE, bits 7-0 of this register). Read accessible always. SSIZE32 is read only; write operations will be ignored. SSIZE32 will be cleared after H_RESET (since SWSTYLE defaults to 0) and is not affected by S_RESET or STOP. If SSIZE32 is reset, then bits IADR[31:24] of CSR2 will be used to generate values for the upper 8 bits of the 32-bit address bus during master accesses initiated by the Am79C973/ Am79C975 controller. This action is required, since the 16-bit soft- 146 Am79C973/Am79C975 Software Style register. The value in this register determines the style of register and memory resources that shall be used by the Am79C973/Am79C975 controller. The Software Style selection will affect the interpretation of a few bits within the CSR space, the order of the descriptor entries and the width of the descriptors and initialization block entries. All Am79C973/Am79C975 controller CSR bits and BCR bits and all descriptor, buffer, and initialization block entries not cited in Table 25 are unaffected by the Software Style selection and are, therefore, always fully functional as specified in the CSR and BCR sections. Read/Write accessible only when either the STOP or the SPND bit is set. The SWSTYLE register will contain the value 00h following H_RESET and will be unaffected by S_RESET or STOP. P R E L I M I N A R Y CSR60: Previous Transmit Descriptor Address Lower Bit Name 31-16 RES 15-0 PXDAL Description Reserved locations. Written as zeros and read as undefined. Contains the lower 16 bits of the previous transmit descriptor address pointer. The Am79C973/ Am79C975 controller has the capability to stack multiple transmit frames. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Table 25. Software Styles SWSTYLE [7:0] Style Name SSIZE32 LANCE/ 00h PCnet-ISA controller 0 01h RES 1 02h PCnet-PCI controller 1 03h All Other PCnet-PCI controller Reserved 1 Undefined Initialization Block Entries Descriptor Ring Entries 16-bit software structures, 16-bit software structures, non-burst or burst access non-burst access only RES RES 32-bit software structures, 32-bit software structures, non-burst or burst access non-burst access only 32-bit software structures, 32-bit software structures, non-burst or burst access non-burst or burst access Undefined Undefined Am79C973/Am79C975 147 P R E L I M I N A R Y CSR61: Previous Transmit Descriptor Address Upper Bit Name Bit Name Description Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Contains the upper 16 bits of the previous transmit descriptor address pointer. The Am79C973/ Am79C975 controller has the capability to stack multiple transmit frames. PXDAU CSR64: Next Transmit Buffer Address Lower Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Contains the lower 16 bits of the next transmit buffer address from which the Am79C973/Am79C975 controller will transmit an outgoing frame. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR65: Next Transmit Buffer Address Upper Bit CSR62: Previous Transmit Byte Count NXBAL Name Description Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 15-12 RES Reserved locations. 11-0 Previous Transmit Byte Count. This field is a copy of the BCNT field of TMD1 of the previous transmit descriptor. Contains the upper 16 bits of the next transmit buffer address from which the Am79C973/Am79C975 controller will transmit an outgoing frame. Bit Name PXBC Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR63: Previous Transmit Status Bit Name NXBAU Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR66: Next Transmit Byte Count Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 RES Reserved locations. Read and written as zeros. 15-0 Previous Transmit Status. This field is a copy of bits 31-16 of TMD1 of the previous transmit descriptor. 11-0 Next Transmit Byte Count. This field is a copy of the BCNT field of TMD1 of the next transmit descriptor. PXST NXBC Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 148 Am79C973/Am79C975 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. P R E L I M I N A R Y CSR67: Next Transmit Status Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Next Transmit Status. This field is a copy of bits 31-16 of TMD1 of the next transmit descriptor. NXST Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. 7-0 RES Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR76: Receive Ring Length Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Receive Ring Length. Contains the two's complement of the receive descriptor ring length. This register is initialized during the Am79C973/Am79C975 controller initialization routine based on the value in the RLEN field of the initialization block. However, this register can be manually altered. The actual receive ring length is defined by the current value in this register. The ring length can be defined as any value from 1 to 65535. RCVRL Reserved locations. Read and written as zeros. Accessible only when either the STOP or the SPND bit is set. CSR72: Receive Ring Counter Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Receive Ring Counter location. Contains a two's complement binary number used to number the current receive descriptor. This counter interprets the value in CSR76 as pointing to the first descriptor. A counter value of zero corresponds to the last descriptor in the ring. RCVRC Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR78: Transmit Ring Length Bit Name Name Reserved locations. Written as zeros and read as undefined. 15-0 Transmit Ring Length. Contains the two's complement of the transmit descriptor ring length. This register is initialized during the Am79C973/ Am79C975Am79C973/ Am79C975 controller initialization routine based on the value in the TLEN field of the initialization block. However, this register can be manually altered. The actual transmit ring length is defined by the current value in this register. The ring length can be defined as any value from 1 to 65535. XMTRL Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Transmit Ring Counter location. Contains a two's complement binary number used to number the current transmit descriptor. This counter interprets the value in CSR78 as pointing to the first descriptor. A counter value of zero corresponds to the last descriptor in the ring. XMTRC Description 31-16 RES CSR74: Transmit Ring Counter Bit Description Am79C973/Am79C975 Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected 149 P R E L I M I N A R Y by H_RESET, S_RESET, or STOP. present in the FIFO before receive DMA is requested. CSR80: DMA Transfer Counter and FIFO Threshold Control When operating with the SRAM, the Bus Receive FIFO, and the MAC Receive FIFO operate independently on the bus side and MAC side of the SRAM, respectively. In this case, the watermark value set by RCVFW[1:0] sets the number of bytes that must be present in the Bus Receive FIFO only. See Table 26. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-14 RES Reserved locations. Written as zeros and read as undefined. 13-12 RCVFW[1:0] Receive FIFO Watermark. RCVFW controls the point at which receive DMA is requested in relation to the number of received bytes in the Receive FIFO. RCVFW specifies the number of bytes which must be present (once the frame has been verified as a non-runt) before receive DMA is requested. Note however that, if the network interface is operating in half-duplex mode, in order for receive DMA to be performed for a new frame, at least 64 bytes must have been received. This effectively avoids having to react to receive frames which are runts or suffer a collision during the slot time (512 bit times). If the Runt Packet Accept feature is enabled or if the network interface is operating in fullduplex mode, receive DMA will be requested as soon as either the RCVFW threshold is reached, or a complete valid receive frame is detected (regardless of length). When the FDRPAD (BCR9, bit 2) is set and the Am79C973/ Am79C975 controller is in full-duplex mode, in order for receive DMA to be performed for a new frame, at least 64 bytes must have been received. This effectively disables the runt packet accept feature in full duplex. When operating in the NO-SRAM mode (no SRAM enabled), the Bus Receive FIFO and the MAC Receive operate like a single FIFO and the watermark value selected by RCVFW[1:0] sets the number of bytes that must be 150 Table 26. Receive Watermark Programming RCVFW[1:0] Bytes Received 00 16 01 64 10 112 11 Reserved Read/Write accessible only when either the STOP or the SPND bit is set. RCVFW[1:0] is set to a value of 01b (64 bytes) after H_RESET or S_RESET and is unaffected by STOP. 11-10 XMTSP[1:0] Transmit Start Point. XMTSP controls the point at which preamble transmission attempts to commence in relation to the number of bytes written to the MAC Transmit FIFO for the current transmit frame. When the entire frame is in the MAC Transmit FIFO, transmission will start regardless of the value in XMTSP. If the network interface is operating in half-duplex mode, regardless of XMTSP, the FIFO will not internally overwrite its data until at least 64 bytes (or the entire frame if shorter than 64 bytes) have been transmitted onto the network. This ensures that for collisions within the slot time window, transmit data need not be rewritten to the Transmit FIFO, and retries will be handled autonomously by the MAC. If the Disable Retry feature is enabled, or if the network is operating in full-duplex mode, the Am79C973/ Am79C975 controller can overwrite the beginning of the frame as soon as the data is transmit- Am79C973/Am79C975 P R E L I M I N A R Y ted, because no collision handling is required in these modes. any time when the number of bytes specified by XMTFW could be written to the FIFO without causing Transmit FIFO overflow, and the internal microcode engine has reached a point where the Transmit FIFO is checked to determine if DMA servicing is required. Note that when the SRAM is being used, if the NOUFLO bit (CSR80, bit 14) is set to 1, there is the additional restriction that the complete transmit frame must be DMA'd into the Am79C973/ Am79C975 controller and reside within a combination of the Bus Transmit FIFO, the SRAM, and the MAC Transmit FIFO. When operating in the NO-SRAM mode (no SRAM enabled), SRAM_SIZE set to 0, the Bus Transmit FIFO and the MAC Transmit FIFO operate like a single FIFO and the watermark value selected by XMTFW[1:0] sets the number of FIFO byte locations that must be available in the FIFO before receive DMA is requested. When the SRAM is used, SRAM_SIZE > 0, there is a restriction that the number of bytes written is a combination of bytes written into the Bus Transmit FIFO and the MAC Transmit FIFO. The Am79C973/ Am79C975 controller supports a mode that will wait until a full packet is available before commencing with the transmission of preamble. This mode is useful in a system where high latencies cannot be avoided. See Table 27. When operating with the SRAM, the Bus Transmit FIFO and the MAC Transmit FIFO operate independently on the bus side and MAC side of the SRAM, respectively. In this case, the watermark value set by XMTFW[1:0] sets the number of FIFO byte locations that must be available in the Bus Transmit FIFO. See Table 28. Read/Write accessible only when either the STOP or the SPND bit is set. XMTSP is set to a value of 01b (64 bytes) after H_RESET or S_RESET and is unaffected by STOP. Table 28. Transmit Watermark Programming XMTFW[1:0] Bytes Available 00 16 Table 27. Transmit Start Point Programming XMTSP[1:0] SRAM_SIZE Bytes Written 00 0 20 01 0 64 10 0 128 11 0 220 max 00 >0 36 01 >0 64 10 >0 128 >0 Full Packet when NOUFLO bit is set 11 9-8 XMTFW[1:0] Transmit FIFO Watermark. XMTFW specifies the point at which transmit DMA is requested, based upon the number of bytes that could be written to the Transmit FIFO without FIFO overflow. Transmit DMA is requested at 01 64 10 108 11 Reserved Read/Write accessible only when either the STOP or the SPND bit is set. XMTFW is set to a value of 00b (16 bytes) after H_RESET or S_RESET and is unaffected by STOP. 7-0 DMATC[7:0] DMA Transfer Counter. Writing and reading to this field has no effect. Use MAX_LAT and MIN_GNT in the PCI configuration space. Am79C973/Am79C975 151 P R E L I M I N A R Y CSR82: Transmit Descriptor Address Pointer Lower Bit Name Bit Name Reserved locations. Written as zeros and read as undefined. 15-0 Contains the lower 16 bits of the transmit descriptor address corresponding to the last buffer of the previous transmit frame. If the previous transmit frame did not use buffer chaining, then TXDAPL contains the lower 16 bits of the previous frame's transmit descriptor address. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 This register contains the upper 16 bits of the address of system memory for the current DMA cycle. The Bus Interface Unit controls the Address Register by issuing increment commands to increment the memory address for sequential operations. The DMABAU register is undefined until the first Am79C973/ Am79C975 controller DMA operation. DMABAU When both the STOP or SPND bits are cleared, this register is updated by Am79C973/ Am79C975 controller immediately before a transmit descriptor write. Read accessible always. Write accessible through the PXDAL bits (CSR60) when the STOP or SPND bit is set. TXDAPL is set to 0 by H_RESET and are unaffected by S_RESET or STOP. CSR84: DMA Address Register Lower Bit Name Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR86: Buffer Byte Counter Bit Name Reserved locations. Written as zeros and read as undefined. 15-0 This register contains the lower 16 bits of the address of system memory for the current DMA cycle. The Bus Interface Unit controls the Address Register by issuing increment commands to increment the memory address for sequential operations. The DMABAL register is undefined until the first Am79C973/ Am79C975 controller DMA operation. Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 RES Reserved. Read and written with ones. 11-0 DMA Byte Count Register. Contains the two's complement of the current size of the remaining transmit or receive buffer in bytes. This register is incremented by the Bus Interface Unit. The DMABC register is undefined until written. Description 31-16 RES DMABAL Description Description 31-16 RES TXDAPL CSR85: DMA Address Register Upper DMABC Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. CSR88: Chip ID Register Lower Bit Name 31-28 VER Description Version. This 4-bit pattern is silicon-revision dependent. Read accessible only when either the STOP or the SPND bit is set. 152 Am79C973/Am79C975 P R E L I M I N A R Y VER is read only. Write operations are ignored. 27-12 PARTID Part number. The 16-bit code for the Am79C973 controller is 0010 0110 0010 0101 (2625h) and the code for the Am79C975 is 0010 0110 0010 0111 (2627h). Read accessible only when either the STOP or the SPND bit is set. VER is read only. VER is read only. Write operations are ignored. 11-0 PARTIDU This register is exactly the same as the Device ID register in the JTAG description. However, this part number is different from that stored in the Device ID register in the PCI configuration space. Read accessible only when either the STOP or the SPND bit is set. PARTID is read only. Write operations are ignored. 11-1 MANFID Manufacturer ID. The 11-bit manufacturer code for AMD is 00000000001b. This code is per the JEDEC Publication 106-A. Read accessible only when either the STOP or the SPND bit is set. VER is read only. PARTIDU is read only. Write operations are ignored. CSR92: Ring Length Conversion Bit Name Reserved locations. Written as zeros and read as undefined. 15-0 Ring Length Conversion Register. This register performs a ring length conversion from an encoded value as found in the initialization block to a two's complement value used for internal counting. By writing bits 15-12 with an encoded ring length, a two's complemented value is read. The RCON register is undefined until written. RCON Read accessible only when either the STOP or the SPND bit is set. VER is read only. MANFID is read only. Write operations are ignored. ONE Read/Write accessible only when either the STOP or the SPND bit is set. These bits are unaffected by H_RESET, S_RESET, or STOP. Always a logic 1. Read accessible only when either the STOP or the SPND bit is set. VER is read only. ONE is read only. Write operations are ignored. CSR100: Bus Timeout Bit Device CSR88 Am79C973 5003h Am79C975 7003h Name Name Reserved locations. Written as zeros and read as undefined. 15-0 This register contains the value of the longest allowable bus latency (interval between assertion of REQ and assertion of GNT) that a system may insert into an Am79C973/Am79C975 controller master transfer. If this value of bus latency is exceeded, then a MERR will be indicated in CSR0, bit 11, and an interrupt may be generated, depending upon the MERRTO Description 31-16 RES Reserved locations. Read as undefined. 15-12 VER Version. This 4-bit pattern is silicon-revision dependent. Description 31-16 RES CSR89: Chip ID Register Upper Bit Description 31-16 RES Note that this code is not the same as the Vendor ID in the PCI configuration space. 0 Upper 12 bits of the Am79C973/ Am79C975 controller part number, i.e., 0010 0110 0010b (262h). Am79C973/Am79C975 153 P R E L I M I N A R Y setting of the MERRM bit (CSR3, bit 11) and the IENA bit (CSR0, bit 6). The value in this register is interpreted as the unsigned number of bus clock periods divided by two, (i.e., the value in this register is given in 0.1 ms increments.) For example, the value 0600h (1536 decimal) will cause a MERR to be indicated after 153.6 ms of bus latency. A value of 0 will allow an infinitely long bus latency, i.e., bus timeout error will never occur. Read/Write accessible only when either the STOP or the SPND bit is set. This register is set to 0600h by H_RESET or S_RESET and is unaffected by STOP. CSR112: Missed Frame Count Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Missed Frame Count. Indicates the number of missed frames. MFC RCVCCO bit of CSR4 (bit 5) will be set each time that this occurs. Read accessible always. RCC is read only, write operations are ignored. RCC is cleared by H_RESET or S_RESET, or by setting the STOP bit. CSR116: OnNow Power Mode Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name 31-14 RES 12 MPPEN_D3C Read accessible always. MFC is read only, write operations are ignored. MFC is cleared by H_RESET or S_RESET or by setting the STOP bit. CSR114: Receive Collision Count Name Reserved locations. Written as zeros and read as undefined. 15-0 Receive Collision Count. Indicates the total number of collisions encountered by the receiver since the last reset of the counter. RCC will roll over to a count of 0 from the value 65535. The 154 This bit is read/write from the the PCI bus and is reset only at power-on. This bit is not written from the EEPROM. Power management software can set this bit before going to D3cold and even if there is a reset and the EEPROM loads because of an incorrect PG signal, the control bit will not be changed. This bit is OR'ed with MPPEN (CSR116 bit 4) for both hardware magic packet or OnNow magic packet. 11 PMAT_MODE_D3C Description 31-16 RES RCC Reserved locations. Written as zeros and read as undefined. 13 LCMODE_D3C. This bit is a read/write from the PCI bus and is reset only at power-on. This bit is not written from the EEPROM. Power management software can set this bit before going to D3cold and even if there is a reset and the EEPROM loads because of an incorrect PG signal, the control bit will not be changed. This bit is OR'ed with LCMODE (CSR116 bit 8) for OnNow link chnage, but not for hardware link change MFC will roll over to a count of 0 from the value 65535. The MFCO bit of CSR4 (bit 8) will be set each time that this occurs. Bit Description Am79C973/Am79C975 This bit is read/write from the the PCI bus and is reset only at power-on. This bit is not written from the EEPROM. Power management software can set this bit before going to D3cold and even if there is a reset and the EEPROM loads because of an incorrect PG signal, the control bit will not be changed. This bit is OR'ed with PMAT_MODE (BCR45 bit 7) for OnNow magic packet. P R E L I M I N A R Y only affects the address detection of the Magic Packet frame. The Magic Packet frame's data sequence must be made up of 16 consecutive physical addresses (PADR[47:0]) regardless of what kind of destination address it has. 10 PME_EN_OVR PME_EN Overwrite. When this bit is set and the MPMAT or LCDET bit is set, the PME pin will always be asserted regardless of the state of PME_EN bit. Read/Write accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 9 LCDET Link Change Detected. This bit is set when the MII auto-polling logic detects a change in link status and the LCMODE bit is set. Read/Write accessible always. EMPPLBA is set to 0 by H_RESET or S_RESET and is not affected by setting the STOP bit. 5 MPMAT LCDET is cleared when power is initially applied (POR). MPMAT is cleared when power is initially applied (POR). Read/Write accessible always. 8 LCMODE Link Change Wake-up Mode. When this bit is set to 1, the LCDET bit gets set when the MII auto polling logic detects a Link Change. Read/Write accessible always. 4 MPPEN Read/Write accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7 PMAT 3 RWU_DRIVER Read accessible always. 6 EMPPLBA Magic Packet Physical Logical Broadcast Accept. If both EMPPLBA and MPPLBA (CSR5, bit 5) are at their default value of 0, the Am79C973/Am79C975 controller will only detect a Magic Packet frame if the destination address of the packet matches the content of the physical address register (PADR). If either EMPPLBA or MPPLBA is set to 1, the destination address of the Magic Packet frame can be unicast, multicast, or broadcast. Note that the setting of EMPPLBA and MPPLBA Magic Packet Pin Enable. When this bit is set, the device enters the Magic Packet mode when the PG input goes LOW or MPEN bit (CSR5, bit 2) gets set to 1. This bit is OR'ed with MPEN bit (CSR5, bit 2). Read/Write is accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Pattern Matched. This bit is set when the PMMODE bit is set and an OnNow pattern match occurs. PMAT is cleared when power is initially applied (POR). Magic Packet Match. This bit is set when PCnet-FAST+ detects a Magic Packet while it is in the Magic Packet mode. RWU Driver Type. If this bit is set to 1, RWU is a totem pole driver; otherwise RWU is an open drain output. Read/Write is accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 2 RWU_GATE Am79C973/Am79C975 RWU Gate Control. If this bit is set, RWU is forced to the high Impedance State when PG is LOW, regardless of the state of the MPMAT and LCDET bits. Read/Write accessible only when either the STOP bit or the SPND 155 P R E L I M I N A R Y bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 1 RWU_POL RWU Pin Polarity. If RWU_POL is set to 1, the RWU pin is normally HIGH and asserts LOW; otherwise RWU is normally LOW and asserts HIGH. Read/Write accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 0 RST_POL PHY_RST Pin Polarity. If the PHY_POL is set to 1, the PHY_RST pin is active LOW; otherwise PHY_RST is active HIGH. Read/Write accessible always. RCVALGN is cleared by H_RESET or S_RESET and is not affected by STOP. CSR124: Test Register 1 This register is used to place the Am79C973/ Am79C975 controller into various test modes. The Runt Packet Accept is the only user accessible test mode. All other test modes are for AMD internal use only. Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-4 RES Reserved locations. Written as zeros and read as undefined. 3 RPA Runt Packet Accept. This bit forces the Am79C973/ Am79C975 controller to accept runt packets (packets shorter than 64 bytes). Read/Write accessible only when either the STOP bit or the SPND bit is set. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Read accessible always; write accessible only when STOP is set to 1. RPA is cleared by H_RESET or S_RESET and is not affected by STOP. CSR122: Advanced Feature Control Bit Name Description Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 2-0 15-1 RES Reserved locations. Written as zeros and read as undefined. CSR125: MAC Enhanced Configuration Control 0 RCVALGN Receive Packet Align. When set, this bit forces the data field of ISO 8802-3 (IEEE/ANSI 802.3) packets to align to 0 MOD 4 address boundaries (i.e., DWord aligned addresses). It is important to note that this feature will only function correctly if all receive buffer boundaries are DWord aligned and all receive buffers have 0 MOD 4 lengths. In order to accomplish the data alignment, the Am79C973/Am79C975 controller simply inserts two bytes of random data at the beginning of the receive packet (i.e., before the ISO 8802-3 (IEEE/ANSI 802.3) destination address field). The MCNT field reported to the receive descriptor will not include the extra two bytes. Bit 156 RES Name Reserved locations. Written as zeros and read as undefined. Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-8 Inter Packet Gap. Changing IPG allows the user to program the Am79C973/Am79C975 controller for aggressiveness on a network. By changing the default value of 96 bit times (60h) the user can adjust the fairness or aggressiveness of the Am79C973/ Am79C975 MAC on the network. By programming a lower number of bit times other then the ISO/ IEC 8802-3 standard requires, the Am79C973/Am79C975 MAC will become more aggressive on the network. This aggressive nature will give rise to the Am79C973/Am79C975 controller possibly "capturing the network" at times by forcing other less ag- IPG Am79C973/Am79C975 P R E L I M I N A R Y gressive nodes to defer. By programming a larger number of bit times, the Am79C973/ Am79C975 MAC will become less aggressive on the network and may defer more often than normal. The performance of the Am79C973/Am79C975 controller may decrease as the IPG value is increased from the default value. Note: Programming of the IPG should be done in nibble intervals instead of absolute bit times. The decimal and hex values do not match due to delays in the part used to make up the final IPG. Changes should be added or subtracted from the provided hex value on a one-for-one basis. CAUTION: Use this parameter with care. By lowering the IPG below the ISO/IEC 8802-3 standard 96 bit times, the Am79C973/Am79C975 controller can interrupt normal network behavior. Read/Write is accessible only when either the STOP bit or the SPND bit is set. IPG is set to 60h (96 Bit times) by H_RESET or S_RESET and is not affected by STOP. 7-0 IFS1 InterFrameSpacingPart1. Changing IFS1 allows the user to program the value of the InterFrameSpacePart1 timing. The Am79C973/Am79C975 controller sets the default value at 60 bit times (3ch). See the subsection on Medium Allocation in the section Media Access Management for more details. The equation for setting IFS1 when IPG 96 bit times is as follows: IFS1 = IPG - 36 bit times Note: Programming of the IPG should be done in nibble intervals instead of absolute bit times due to the MII. The decimal and hex values do not match due to delays in the part used to make up the final IPG. Changes should be added or subtracted from the provided hex value on a one-for-one basis. Due to changes in synchronization delays internally through different network ports, the IFS1 can be off by as much as +12 bit times. Read/Write is accessible only when either the STOP bit or the SPND bit is set. IFS1 is set to 3ch (60 bit times) by H_RESET or S_RESET and is not affected by STOP. Bus Configuration Registers The Bus Configuration Registers (BCR) are used to program the configuration of the bus interface and other special features of the Am79C973/Am79C975 controller that are not related to the IEEE 8802-3 MAC functions. The BCRs are accessed by first setting the appropriate RAP value and then by performing a slave access to the BDP. See Table 29. All BCR registers are 16 bits in width in Word I/O mode (DWIO = 0, BCR18, bit 7) and 32 bits in width in DWord I/O mode (DWIO = 1). The upper 16 bits of all BCR registers is undefined when in DWord I/O mode. These bits should be written as zeros and should be treated as undefined when read. The default value given for any BCR is the value in the register after H_RESET. Some of these values may be changed shortly after H_RESET when the contents of the external EEPROM is automatically read in. None of the BCR register values are affected by the assertion of the STOP bit or S_RESET. Note that several registers have no default value. BCR0, BCR1, BCR3, BCR8, BCR10-17, and BCR21 are reserved and have undefined values. BCR2 and BCR34 are not observable without first being programmed through the EEPROM read operation or a user register write operation. BCR0, BCR1, BCR16, BCR17, and BCR21 are registers that are used by other devices in the PCnet family. Writing to these registers have no effect on the operation of the Am79C973/Am79C975 controller. Writes to those registers marked as "Reserved" will have no effect. Reads from these locations will produce undefined values. Am79C973/Am79C975 157 P R E L I M I N A R Y BCR0: Master Mode Read Active BCR1: Master Mode Write Active Bit Description Bit 31-16 RES Reserved locations. Written as zeros and read as undefined. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Reserved locations. After H_RESET, the value in this register will be 0005h. The setting of this register has no effect on any Am79C973/Am79C975 controller function. It is only included for software compatibility with other PCnet family devices. 15-0 Reserved locations. After H_RESET, the value in this register will be 0005h. The setting of this register has no effect on any Am79C973/Am79C975 controller function. It is only included for software compatibility with other PCnet family devices. Name MSRDA Name MSWRA Read always. MSRDA is read only. Write operations have no effect. 158 Am79C973/Am79C975 Description Read always. MSWRA is read only. Write operations have no effect. P R E L I M I N A R Y Table 29. BCR Registers (Am79C973) RAP 0 1 2 3 4 5 6 7 8 9 10-15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Mnemonic MSRDA MSWRA MC Reserved LED0 LED1 LED2 LED3 Reserved FDC Reserved IOBASEL IOBASEU BSBC EECAS SWS INTCON PCILAT PCISID PCISVID SRAMSIZ SRAMB SRAMIC EBADDRL EBADDRU EBD STVAL MIICAS MIIADDR MIIMDR PCIVID Default 0005h 0005h 0002h N/A 00C0h 0084h 0088h 0090h N/A 0000h N/A N/A N/A 9001h 0002h 0000h N/A FF06h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A FFFFh 0000h 0000h N/A 1022h 36 PMC_A C811h 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 PMR1 PMR2 PMR3 Reserved Reserved Reserved Reserved Reserved 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A 0000h 0000h 0000h 0000h 0000h Name Reserved Reserved Miscellaneous Configuration Reserved LED0 Status LED1 Status LED2 Status LED3 Status Reserved Full-Duplex Control Reserved Reserved Reserved Burst and Bus Control EEPROM Control and Status Software Style Reserved PCI Latency PCI Subsystem ID PCI Subsystem Vendor ID SRAM Size SRAM Boundary SRAM Interface Control Expansion Bus Address Lower Expansion Bus Address Upper Expansion Bus Data Port Software Timer Value PHY Control and Status PHY Address PHY Management Data PCI Vendor ID PCI Power Management Capabilities (PMC) Alias Register PCI DATA Register Zero Alias Register PCI DATA Register One Alias Register PCI DATA Register Two Alias Register PCI DATA Register Three Alias Register PCI DATA Register Four Alias Register PCI DATA Register Five Alias Register PCI DATA Register Six Alias Register PCI DATA Register Seven Alias Register Pattern Matching Register 1 Pattern Matching Register 2 Pattern Matching Register 3 Reserved (for Am79C975) Reserved (for Am79C975) Reserved (for Am79C975) Reserved (for Am79C975) Reserved (for Am79C975) Am79C973/Am79C975 Programmability User EEPROM No No No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No No No No No Yes Yes Yes No Yes No No No Yes Yes No Yes No Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes No Yes No Yes Yes Yes Yes Yes No No Yes No Yes No No No No No No No No Yes Yes Yes Yes* Yes* Yes* Yes* Yes* Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes* Yes* Yes* Yes* Yes* 159 P R E L I M I N A R Y Table 29. BCR Registers (Am79C973) 53 54 Reserved Reserved 0000h 0000h Reserved (for Am79C975) Reserved (for Am79C975) Note: *Program only as `0' value. 160 Am79C973/Am79C975 Yes* Yes* Yes* Yes* P R E L I M I N A R Y Table 30. BCR Registers (Am79C975) RAP 0 1 2 3 4 5 6 7 8 9 10-15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Mnemonic MSRDA MSWRA MC Reserved LED0 LED1 LED2 LED3 Reserved FDC Reserved IOBASEL IOBASEU BSBC EECAS SWS INTCON PCILAT PCISID PCISVID SRAMSIZ SRAMB SRAMIC EBADDRL EBADDRU EBD STVAL MIICAS MIIADDR MIIMDR PCIVID Default 0005h 0005h 0002h N/A 00C0h 0084h 0088h 0090h N/A 0000h N/A N/A N/A 9001h 0002h 0000h N/A FF06h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A FFFFh 0000h 0000h N/A 1022h 36 PMC_A C811h 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 PMR1 PMR2 PMR3 N_IP_ADR[15:0] N_IP_ADR[31:16] M_IEEE_ADR[15:0] M_IEEE_ADR[31:16] M_IEEE_ADR[47:32] 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A 0000h 0000h 0000h 0000h 0000h Name Reserved Reserved Miscellaneous Configuration Reserved LED0 Status LED1 Status LED2 Status LED3 Status Reserved Full-Duplex Control Reserved Reserved Reserved Burst and Bus Control EEPROM Control and Status Software Style Reserved PCI Latency PCI Subsystem ID PCI Subsystem Vendor ID SRAM Size SRAM Boundary SRAM Interface Control Expansion Bus Address Lower Expansion Bus Address Upper Expansion Bus Data Port Software Timer Value PHY Control and Status PHY Address PHY Management Data PCI Vendor ID PCI Power Management Capabilities (PMC) Alias Register PCI DATA Register Zero Alias Register PCI DATA Register One Alias Register PCI DATA Register Two Alias Register PCI DATA Register Three Alias Register PCI DATA Register Four Alias Register PCI DATA Register Five Alias Register PCI DATA Register Six Alias Register PCI DATA Register Seven Alias Register Pattern Matching Register 1 Pattern Matching Register 2 Pattern Matching Register 3 Node IP Address [15:0] Node IP Address [31:16] Management IEEE Address [15:0] Management IEEE Address [31:16] Management IEEE Address [47:32] Am79C973/Am79C975 Programmability User EEPROM No No No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No No No No No Yes Yes Yes No Yes No No No Yes Yes No Yes No Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes No Yes No Yes Yes Yes Yes Yes No No Yes No Yes No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes 161 P R E L I M I N A R Y Table 30. BCR Registers (Am79C975) 53 54 M_IP_ADR[15:0] M_IPADR[31:16] 0000h 0000h Management IP Address [15:0] Management IP Address [31:16] BCR2: Miscellaneous Configuration Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 (For Am79C975 only) SMIUEN is used to enable/disable the Serial Management Interface Unit in the Am79C975 controller. 14 SMIUEN If SMIUEN is set to 0 (default), the SMIU is disable. If SMIUEN is set to 1, the SMIU is enabled. LED Program Enable. When LEDPE is set to 1, programming of the LED0 (BCR4), LED1 (BCR5), LED2 (BCR6), and LED3 (BCR7) registers is enabled. When LEDPE is cleared to 0, programming of LED0 (BCR4), LED1 (BCR5), LED2 (BCR6), and LED3 (BCR7) registers is disabled. Writes to those registers will be ignored. Read/Write accessible always. SMIUEN is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. Read/Write accessible always. LEDPE is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. DISSCR_SFEX 162 12 11 LEDPE RESET_SFEX This bit is used to disable the scrambler/descrambler when the device is used in PECL mode. This bit defaults to 0, which enables the scrambler/descrambler for MLT3 applications. This bit is used to reset the internal PHY. When RESET_SFEX is set to 1, the internal PHY will stay reset until RESET_SFEX is cleared to 0. When DISSCR_SFEX is set to 1, the scrambler will be disabled for fiber applications. Read/Write accessible always. RESET_SFEX is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. Read/Write accessible always. This bit is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 13 Yes Yes Read/Write accessible always. PHYSELEN is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Yes Yes PHYSELEN This bit enables writes to BCR18[4:3] for software selection of various operation and test modes. When PHYSELEN is set to 0 (default), the two bits can only be written from the EEPROM. When PHYSELEN is set to 1, writes to BCR18[4:3] are enabled. 10 I2C_M3 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D6 bit position (see Appendix B on SMIU Bus Frequency. Read/Write accessible always. I2C_M3 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 9 I2C_M2 Am79C973/Am79C975 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the P R E L I M I N A R Y 8 value in the D5 bit position (see Appendix B on SMIU Bus Frequency. tems that do not allow interrupt channels to be shared by multiple devices. Read/Write accessible always. I2C_M2 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. INTLEVEL should not be set to 1 when the Am79C973/Am79C975 controller is used in a PCI bus application. APROMWE Address PROM Write Enable. The Am79C973/Am79C975 controller contains a shadow RAM on board for storage of the first 16 bytes loaded from the serial EEPROM. Accesses to Address PROM I/O Resources will be directed toward this RAM. When APROMWE is set to 1, then write access to the shadow RAM will be enabled. Read/Write accessible always. INTLEVEL is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 6 I2C_M1 Read/Write accessible always. APROMWE is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 7 INTLEVEL Interrupt Level. This bit allows the interrupt output signals to be programmed for level or edgesensitive applications. When INTLEVEL is cleared to 0, the INTA pin is configured for level-sensitive applications. In this mode, an interrupt request is signaled by a low level driven on the INTA pin by the Am79C973/ Am79C975 controller. When the interrupt is cleared, the INTA pin is tri-stated by the Am79C973/ Am79C975 controller and allowed to be pulled to a high level by an external pullup device. This mode is intended for systems which allow the interrupt signal to be shared by multiple devices. When INTLEVEL is set to 1, the INTA pin is configured for edgesensitive applications. In this mode, an interrupt request is signaled by a high level driven on the INTA pin by the Am79C973/ Am79C975 controller. When the interrupt is cleared, the INTA pin is driven to a low level by the Am79C973/Am79C975 controller. This mode is intended for sys- (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D4 bit position (see Appendix B on SMIU Bus Frequency. Read/Write accessible always. I2C_M1 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 5 I2C_M0 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D3 bit position (see Appendix B on SMIU Bus Frequency. Read/Write accessible always. I2C_M0 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 4 I2C_N2 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D2 bit position (see Appendix B on SMIU Bus Frequency. Read/Write accessible always. I2C_N2 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 3 EADISEL Am79C973/Am79C975 EADI Select. When set to 1, this bit enables the three EADI interface pins that are multiplexed with other functions. EESK/LED1 becomes SFBD, EEDO/LED3 becomes MIIRXFRTGD, and LED2 becomes MIIRXFRTGE. 163 P R E L I M I N A R Y See the section on External Address Detection for more details. Read/Write accessible always. EADISEL is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 2 Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 This bit indicates the current (non-stretched) value of the LED output pin. A value of 1 in this bit indicates that the OR of the enabled signals is true. LEDOUT SLEEP_SFEX Setting this bit will reduce the power consumption of the internal PHY substantially. The logical value of the LEDOUT status signal is determined by the settings of the individual Status Enable bits of the LED register (bits 8 and 6-0). Read/Write accessible always. SLEEP_SFEX is cleared to 0 by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 1 I2C_N1 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D1 bit position (see Appendix B on SMIU Bus Frequency. Read accessible always. This bit is read only; writes have no effect. LEDOUT is unaffected by H_RESET, S_RESET, or STOP. 14 LEDPOL Read/Write accessible always. I2C_N1 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. 0 I2C_N0 (Am79C975 only). This bit is used to set the operating frequency of the SMIU core. It represents the value in the D0 bit position (see Appendix B on SMIU Bus Frequency. Read/Write accessible always. I2C_N0 is cleared by H_RESET and is unaffected by S_RESET or by setting the STOP bit. BCR4: LED 0 Status BCR4 controls the function(s) that the LED0 pin displays. Multiple functions can be simultaneously enabled on this LED pin. The LED display will indicate the logical OR of the enabled functions. BCR4 defaults to Link Status (LNKST) with pulse stretcher enabled (PSE = 1) and is fully programmable. Note: When LEDPE (BCR2, bit 12) is set to 1, programming of the LED0 Status register is enabled. When LEDPE is cleared to 0, programming of the LED0 register is disabled. Writes to those registers will be ignored. 164 Description Am79C973/Am79C975 LED Polarity. When this bit has the value 0, then the LED pin will be driven to a LOW level whenever the OR of the enabled signals is true, and the LED pin will be disabled and allowed to float high whenever the OR of the enabled signals is false (i.e., the LED output will be an Open Drain output and the output value will be the inverse of the LEDOUT status bit). When this bit has the value 1, then the LED pin will be driven to a HIGH level whenever the OR of the enabled signals is true, and the LED pin will be driven to a LOW level whenever the OR of the enabled signals is false (i.e., the LED output will be a Totem Pole output and the output value will be the same polarity as the LEDOUT status bit.). The setting of this bit will not effect the polarity of the LEDOUT bit for this register. Read/Write accessible always. LEDPOL is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. P R E L I M I N A R Y 13 LEDDIS LED Disable. This bit is used to disable the LED output. When LEDDIS has the value 1, then the LED output will always be disabled. When LEDDIS has the value 0, then the LED output value will be governed by the LEDOUT and LEDPOL values. and is not affected by S_RESET or setting the STOP bit. 7 PSE Read/Write accessible always. LEDDIS is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 12 100E 100 Mbps Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when the Am79C973/Am79C975 controller is operating at 100 Mbps mode. Read/Write accessible always. 100E is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 11-10 RES Reserved locations. Written and read as zeros. 9 Magic Packet Status Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when Magic Packet frame mode is enabled and a Magic Packet frame is detected on the network. MPSE Read/Write accessible always. PSE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. 6 LNKSE 5 RCVME Full-Duplex Link Status Enable. Indicates the Full-Duplex Link Test Status. When this bit is set, a value of 1 is passed to the LEDOUT signal when the Am79C973/ Am79C975 controller is functioning in a Link Pass state and fullduplex operation is enabled. When the Am79C973/ Am79C975 controller is not functioning in a Link Pass state with full-duplex operation being enabled, a value of 0 is passed to the LEDOUT signal. Receive Match Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network that has passed the address match function for this node. All address matching modes are included: physical, logical filtering, broadcast and promiscuous. Read/Write accessible always. RCVME is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 4 FDLSE Link Status Enable. When this bit is set, a value of 1 will be passed to the LEDOUT bit in this register when in Link Pass state. Read/Write accessible always. LNKSE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. Read/Write accessible always. MPSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 8 Pulse Stretcher Enable. When this bit is set, the LED illumination time is extended for each new occurrence of the enabled function for this LED output. A value of 0 disables the pulse stretcher. XMTE Transmit Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is transmit activity on the network. Read/Write accessible always. XMTE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 3 RES Reserved location. Written and read as zeros. 2 RCVE Receive Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this Read/Write accessible always. FDLSE is cleared by H_RESET Am79C973/Am79C975 165 P R E L I M I N A R Y register when there is receive activity on the network. 14 LEDPOL Read/Write accessible always. RCVE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 1 RES Reserved location. Written and read as zeros. 0 COLE Collision Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is collision activity on the network. When this bit has the value 1, then the LED pin will be driven to a HIGH level whenever the OR of the enabled signals is true, and the LED pin will be driven to a LOW level whenever the OR of the enabled signals is false (i.e., the LED output will be a Totem Pole output and the output value will be the same polarity as the LEDOUT status bit). Read/Write accessible always. COLE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR5: LED1 Status BCR5 controls the function(s) that the LED1 pin displays. Multiple functions can be simultaneously enabled on this LED pin. The LED display will indicate the logical OR of the enabled functions. BCR5 defaults to Receive Status (RCV) with pulse stretcher enabled (PSE = 1) and is fully programmable. Note: When LEDPE (BCR2, bit 12) is set to 1, programming of the LED1 Status register is enabled. When LEDPE is cleared to 0, programming of the LED1 register is disabled. Writes to those registers will be ignored. The setting of this bit will not effect the polarity of the LEDOUT bit for this register. Read/Write accessible always. LEDPOL is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 13 LEDDIS Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 This bit indicates the current (non-stretched) value of the LED output pin. A value of 1 in this bit indicates that the OR of the enabled signals is true. LEDOUT The logical value of the LEDOUT status signal is determined by the settings of the individual Status Enable bits of the LED register (bits 8 and 6-0). LED Disable. This bit is used to disable the LED output. When LEDDIS has the value 1, then the LED output will always be disabled. When LEDDIS has the value 0, then the LED output value will be governed by the LEDOUT and LEDPOL values. Read/Write accessible always. LEDDIS is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 12 100E Read accessible always. This bit is read only, writes have no effect. LEDOUT is unaffected by H_RESET, S_RESET, or STOP. 166 LED Polarity. When this bit has the value 0, then the LED pin will be driven to a LOW level whenever the OR of the enabled signals is true, and the LED pin will be disabled and allowed to float high whenever the OR of the enabled signals is false (i.e., the LED output will be an Open Drain output and the output value will be the inverse of the LEDOUT status bit). Am79C973/Am79C975 100 Mbps Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when the Am79C973/Am79C975 controller is operating at 100 Mbps mode. Read/Write accessible always. 100E is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. P R E L I M I N A R Y 11-10 RES Reserved locations. Written and read as zeros. 9 Magic Packet Status Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when Magic Packet mode is enabled and a Magic Packet frame is detected on the network. Receive Match Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network that has passed the address match function for this node. All address matching modes are included: physical, logical filtering, broadcast, and promiscuous. Read/Write accessible always. MPSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Read/Write accessible always. RCVME is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 8 MPSE FDLSE Full-Duplex Link Status Enable. Indicates the Full-Duplex Link Test Status. When this bit is set, a value of 1 is passed to the LEDOUT signal when the Am79C973/ Am79C975 controller is functioning in a Link Pass state and fullduplex operation is enabled. When the Am79C973/ Am79C975 controller is not functioning in a Link Pass state with full-duplex operation being enabled, a value of 0 is passed to the LEDOUT signal. 5 4 RCVME XMTE Read/Write accessible always. XMTE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 3 RES Reserved location. Written and read as zeros. 2 RCVE Receive Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network. Read/Write accessible always. FDLSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7 PSE Pulse Stretcher Enable. When this bit is set, the LED illumination time is extended for each new occurrence of the enabled function for this LED output. A value of 0 disables the pulse stretcher. Read/Write accessible always. PSE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. 6 LNKSE Transmit Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is transmit activity on the network. Read/Write accessible always. RCVE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. 1 RES Reserved location. Written and read as zeros. 0 COLE Collision Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is collision activity on the network. Link Status Enable. When this bit is set, a value of 1 will be passed to the LEDOUT bit in this register in Link Pass state. Read/Write accessible always. LNKSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Am79C973/Am79C975 Read/Write accessible always. COLE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 167 P R E L I M I N A R Y BCR6: LED2 Status will be the same polarity as the LEDOUT status bit). BCR6 controls the function(s) that the LED2 pin displays. Multiple functions can be simultaneously enabled on this LED pin. The LED display will indicate the logical OR of the enabled functions. The setting of this bit will not effect the polarity of the LEDOUT bit for this register. Note: When LEDPE (BCR2, bit 12) is set to 1, programming of the LED2 Status register is enabled. When LEDPE is cleared to 0, programming of the LED2 register is disabled. Writes to those registers will be ignored. Note: Bits 15-0 in this register are programmable through the EEPROM PREAD operation. Bit Name 13 LEDDIS Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 This bit indicates the current (non-stretched) value of the LED output pin. A value of 1 in this bit indicates that the OR of the enabled signals is true. LEDOUT Read/Write accessible always. LEDPOL is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. The logical value of the LEDOUT status signal is determined by the settings of the individual Status Enable bits of the LED register (bits 8 and 6-0). Read/Write accessible always. LEDDIS is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 12 100E Read accessible always. This bit is read only; writes have no effect. LEDOUT is unaffected by H_RESET, S_RESET, or STOP. 14 LEDPOL LED Polarity. When this bit has the value 0, then the LED pin will be driven to a LOW level whenever the OR of the enabled signals is true, and the LED pin will be disabled and allowed to float high whenever the OR of the enabled signals is false (i.e., the LED output will be an Open Drain output and the output value will be the inverse of the LEDOUT status bit). When this bit has the value 1, then the LED pin will be driven to a HIGH level whenever the OR of the enabled signals is true, and the LED pin will be driven to a LOW level whenever the OR of the enabled signals is false (i.e., the LED output will be a Totem Pole output and the output value 168 LED Disable. This bit is used to disable the LED output. When LEDDIS has the value 1, then the LED output will always be disabled. When LEDDIS has the value 0, then the LED output value will be governed by the LEDOUT and LEDPOL values. 100 Mbps Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when the Am79C973/Am79C975 controller is operating at 100 Mbps mode. Read/Write accessible always. 100E is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 11-10 RES Reserved locations. Written and read as zeros. 9 Magic Packet Status Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when Magic Packet frame mode is enabled and a Magic Packet frame is detected on the network. MPSE Read/Write accessible always. MPSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 8 FDLSE Am79C973/Am79C975 Full-Duplex Link Status Enable. Indicates the Full-Duplex Link Test Status. When this bit is set, a value of 1 is passed to the LEDOUT signal when the Am79C973/ P R E L I M I N A R Y Am79C975 controller is functioning in a Link Pass state and fullduplex operation is enabled. When the Am79C973/ Am79C975 controller is not functioning in a Link Pass state with full-duplex operation being enabled, a value of 0 is passed to the LEDOUT signal. Read/Write accessible always. XMTE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 3 RES Reserved location. Written and read as zeros. 2 RCVE Receive Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network. Read/Write accessible always. FDLSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7 PSE Pulse Stretcher Enable. When this bit is set, the LED illumination time is extended for each new occurrence of the enabled function for this LED output. A value of 0 disables the pulse stretcher. Read/Write accessible always. PSE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. 6 LNKSE RCVME Receive Match Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network that has passed the address match function for this node. All address matching modes are included: physical, logical filtering, broadcast, and promiscuous. Read/Write accessible always. RCVME is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 4 XMTE 1 RES Reserved location. Written and read as zeros. 0 COLE Collision Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is collision activity on the network. Link Status Enable. When this bit is set, a value of 1 will be passed to the LEDOUT bit in this register in Link Pass state. Read/Write accessible always. LNKSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 5 Read/Write accessible always. RCVE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. Transmit Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is transmit activity on the network. Read/Write accessible always. COLE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR7: LED3 Status BCR7 controls the function(s) that the LED3 pin displays. Multiple functions can be simultaneously enabled on this LED pin. The LED display will indicate the logical OR of the enabled functions. BCR7 defaults to Transmit Status (XMT) with pulse stretcher enabled (PSE = 1) and is fully programmable. Note: When LEDPE (BCR2, bit 12) is set to 1, programming of the LED3 Status register is enabled. When LEDPE is cleared to 0, programming of the LED3 register is disabled. Writes to those registers will be ignored. Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 This bit indicates the current (non-stretched) value of the LED output pin. A value of 1 in this bit indicates that the OR of the enabled signals is true. LEDOUT Am79C973/Am79C975 169 P R E L I M I N A R Y The logical value of the LEDOUT status signal is determined by the settings of the individual Status Enable bits of the LED register (bits 8 and 6-0). 12 100E Read accessible always. This bit is read only; writes have no effect. LEDOUT is unaffected by H_RESET, S_RESET, or STOP. 14 LEDPOL LED Polarity. When this bit has the value 0, then the LED pin will be driven to a LOW level whenever the OR of the enabled signals is true, and the LED pin will be disabled and allowed to float high whenever the OR of the enabled signals is false (i.e., the LED output will be an Open Drain output and the output value will be the inverse of the LEDOUT status bit.). When this bit has the value 1, then the LED pin will be driven to a HIGH level whenever the OR of the enabled signals is true, and the LED pin will be driven to a LOW level whenever the OR of the enabled signals is false (i.e., the LED output will be a Totem Pole output and the output value will be the same polarity as the LEDOUT status bit). Read/Write accessible always. 100E is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 11-10 RES Reserved locations. Written and read as zeros. 9 Magic Packet Status Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when magic frame mode is enabled and a magic frame is detected on the network. MPSE Read/Write accessible always. MPSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 8 FDLSE The setting of this bit will not effect the polarity of the LEDOUT bit for this register. Read/Write accessible always. LEDPOL is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 13 LEDDIS LED Disable. This bit is used to disable the LED output. When LEDDIS has the value 1, then the LED output will always be disabled. When LEDDIS has the value 0, then the LED output value will be governed by the LEDOUT and LEDPOL values. Full-Duplex Link Status Enable. Indicates the Full-Duplex Link Test Status. When this bit is set, a value of 1 is passed to the LEDOUT signal when the Am79C973/ Am79C975 controller is functioning in a Link Pass state and fullduplex operation is enabled. When the Am79C973/ Am79C975 controller is not functioning in a Link Pass state with full-duplex operation being enabled, a value of 0 is passed to the LEDOUT signal. Read/Write accessible always. FDLSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7 PSE Read/Write accessible always. LEDDIS is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 170 100 Mbps Enable. When this bit is set to 1, a value of 1 is passed to the LEDOUT bit in this register when the Am79C973/Am79C975 controller is operating at 100 Mbps mode. Am79C973/Am79C975 Pulse Stretcher Enable. When this bit is set, the LED illumination time is extended for each new occurrence of the enabled function for this LED output. A value of 0 disables the pulse stretcher. Read/Write accessible always. PSE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. P R E L I M I N A R Y 6 LNKSE Link Status Enable. When this bit is set, a value of 1 will be passed to the LEDOUT bit in this register in Link Pass state. Read/Write accessible always. LNKSE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 5 RCVME Receive Match Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network that has passed the address match function for this node. All address matching modes are included: physical, logical filtering, broadcast, and promiscuous. Read/Write accessible always. COLE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR9: Full-Duplex Control Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-3 RES Reserved locations. Written as zeros and read as undefined. 2 FDRPAD Full-Duplex Runt Packet Accept Disable. When FDRPAD is set to 1 and full-duplex mode is enabled, the Am79C973/ Am79C975 controller will only receive frames that meet the minimum Ethernet frame length of 64 bytes. Receive DMA will not start until at least 64 bytes or a complete frame have been received. By default, FDRPAD is cleared to 0. The Am79C973/Am79C975 controller will accept any length frame and receive DMA will start according to the programming of the receive FIFO watermark. Note that there should not be any runt packets in a full-duplex network, since the main cause for runt packets is a network collision and there are no collisions in a full-duplex network. This bit needs to be set if in full-duplex mode and external address rejection (EAR (BCR9, bit 2)) functionality is desired. Read/Write accessible always. RCVME is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 4 XMTE Transmit Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is transmit activity on the network. Read/Write accessible always. XMTE is set to 1 by H_RESET and is not affected by S_RESET or setting the STOP bit. 3 RES Reserved location. Written and read as zeros. 2 RCVE Receive Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is receive activity on the network. 1 0 RES COLE Description Read/Write accessible always. FDRPAD is cleared by H_RESET and is not affected by S_RESET or by setting the STOP bit. Read/Write accessible always. RCVE is cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 1 RES Reserved location. Written and read as zeros. Reserved locations. Written as zeros and read as undefined. 0 FDEN Full-Duplex Enable. FDEN controls whether full-duplex operation is enabled. When FDEN is cleared and the Auto-Negotiation is disabled, full-duplex operation is not enabled and the Am79C973/Am79C975 controller Collision Status Enable. When this bit is set, a value of 1 is passed to the LEDOUT bit in this register when there is collision activity on the network. Am79C973/Am79C975 171 P R E L I M I N A R Y will always operate in the half-duplex mode. When FDEN is set, the Am79C973/Am79C975 controller will operate in full-duplex mode. Do not set this bit when Auto-Negotiation is enabled. Read/Write accessible always. FDEN is reset to 0 by H_RESET, and is unaffected by S_RESET and the STOP bit. BCR18: Burst and Bus Control Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-12 ROMTMG Expansion ROM Timing. The value of ROMTMG is used to tune the timing for all EBDATA (BCR30) accesses to Flash/ EPROM as well as all Expansion ROM accesses to Flash/EPROM. BCR16: I/O Base Address Lower Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-5 Reserved locations. After H_RESET, the value of these bits will be undefined. The settings of these bits will have no effect on any Am79C973/Am79C975 controller function. It is only included for software compatibility with other PCnet family devices. IOBASEL ROMTMG, during read operations, defines the time from when the Am79C973/Am79C975 controller drives the lower 8 or 16 bits of the Expansion Bus Address bus to when the Am79C973/ Am79C975 controller latches in the data on the 8 or 16 bits of the Expansion Bus Data inputs. ROMTMG, during write operations, defines the time from when the Am79C973/Am79C975 controller drives the lower 8 or 16 bits of the Expansion Bus Data to when the EBWE and EROMCS deassert. Read/Write accessible always. IOBASEL is not affected by S_RESET or STOP. 4-0 RES Reserved locations. Written as zeros, read as undefined. The register value specifies the time in number of clock cycles +1 according to Table 31. BCR17: I/O Base Address Upper Bit Name 31-16 RES 15-0 IOBASEU Description Reserved locations. Written as zeros and read as undefined. Reserved locations. After H_RESET, the value in this register will be undefined. The settings of this register will have no effect on any Am79C973/Am79C975 controller function. It is only included for software compatibility with other PCnet family devices. Description Table 31. ROMTNG Programming Values ROMTMG (bits 15-12) No. of Expansion Bus Cycles 1h<=n <=Fh n+1 Read/Write accessible always. IOBASEU is not affected by S_RESET or STOP. Note: Programming ROMTNG with a value of 0 is not permitted. The access time for the Expansion ROM or the EBDATA (BCR30) device (tACC) during read operations can be calculated by subtracting the clock to output delay for the EBUA_EBA[7:0] outputs (tv_A_D) and by subtracting the input to clock setup time for the EBD[7:0] inputs (ts_D) from the time defined by ROMTMG: tACC = ROMTMG * CLK period *CLK_FAC - (tv_A_D) - (ts_D) 172 Am79C973/Am79C975 P R E L I M I N A R Y The access time for the Expansion ROM or for the EBDATA (BCR30) device (tACC) during write operations can be calculated by subtracting the clock to output delay for the EBUA EBA[7:0] outputs (tv_A_D) and by adding the input to clock setup time for Flash/EPRO inputs (ts_D) from the time defined by ROMTMG. suffer transmit underflows, because the arbiter that controls transfers to and from the SRAM guarantees a worst case latency on transfers to and from the MAC and Bus Transmit FIFOs such that it will never underflow if the complete packet has been DMA'd into the Am79C973/ Am79C975 controller before packet transmission begins. tACC = ROMTMG * CLK period * CLK_FAC - (tv_A_D) - (ts_D) The NOUFLO bit has no effect when the Am79C973/Am79C975 controller is operating in the NOSRAM mode. For an adapter card application, the value used for clock period should be 30 ns to guarantee correct interface timing at the maximum clock frequency of 33 MHz. Read accessible always; write accessible only when the STOP bit is set. ROMTMG is set to the value of 1001b by H_RESET and is not affected by S_RESET or STOP. The default value allows using an Expansion ROM with an access time of 250 ns in a system with a maximum clock frequency of 33 MHz. 11 NOUFLO No Underflow on Transmit. When the NOUFLO bit is set to 1, the Am79C973/Am79C975 controller will not start transmitting the preamble for a packet until the Transmit Start Point (CSR80, bits 10-11) requirement (except when XMTSP = 3h, Full Packet has no meaning when NOUFLO is set to 1) has been met and the complete packet has been DMA'd into the Am79C973/Am79C975 controller. The complete packet may reside in any combination of the Bus Transmit FIFO, the SRAM, and the MAC Transmit FIFO, as long as enough of the packet is in the MAC Transmit FIFO to meet the Transmit Start Point requirement. When the NOUFLO bit is cleared to 0, the Transmit Start Point is the only restriction on when preamble transmission begins for transmit packets. Read/Write accessible only when either the STOP or the SPND bit is set. NOUFLO is cleared to 0 after H_RESET or S_RESET and is unaffected by STOP. 10 RES Reserved location. Written as zeros and read as undefined. 9 MEMCMD Memory Command used for burst read accesses to the transmit buffer. When MEMCMD is set to 0, all burst read accesses to the transmit buffer are of the PCI command type Memory Read Line (type 14). When MEMCMD is set to 1, all burst read accesses to the transmit buffer are of the PCI command type Memory Read Multiple (type 12). Read accessible always; write accessible only when either the STOP or the SPND bit is set. MEMCMD is cleared by H_RESET and is not affected by S_RESET or STOP. 8 EXTREQ Setting the NOUFLO bit guarantees that the Am79C973/ Am79C975 controller will never Am79C973/Am79C975 Extended Request. This bit controls the deassertion of REQ for a burst transaction. If EXTREQ is set to 0, REQ is deasserted at the beginning of a burst transaction. (The Am79C973/Am79C975 controller never performs more than one burst transaction within a single bus mastership period.) In this mode, the Am79C973/ Am79C975 controller relies on the PCI latency timer to get enough bus bandwidth, in case the system arbiter also removes 173 P R E L I M I N A R Y GNT at the beginning of the burst transaction. If EXTREQ is set to 1, REQ stays asserted until the last but one data phase of the burst transaction is done. This mode is useful for systems that implement an arbitration scheme without preemption and require that REQ stays asserted throughout the transaction. the appropriate bit inside of the EEPROM is set to 0.) Read accessible always. DWIO is read only, write operations have no effect. DWIO is cleared by H_RESET and is not affected S_RESET or by setting the STOP bit. 6 BREADE EXTREQ should not be set to 1 when the Am79C973/Am79C975 controller is used in a PCI bus application. Read accessible always, write accessible only when either the STOP or the SPND bit is set. EXTREQ is cleared by H_RESET and is not affected by S_RESET or STOP. 7 DWIO Double Word I/O. When set, this bit indicates that the Am79C973/ Am79C975 controller is programmed for DWord I/O (DWIO) mode. When cleared, this bit indicates that the Am79C973/ Am79C975 controller is programmed for Word I/O (WIO) mode. This bit affects the I/O Resource Offset map and it affects the defined width of the Am79C973/Am79C975 controllers I/O resources. See the DWIO and WIO sections for more details. BREADE should be set to 1 when the Am79C973/Am79C975 controller is used in a PCI bus application to guarantee maximum performance. Read accessible always; write accessible only when either the STOP or the SPND bit is set. BREADE is cleared by H_RESET and is not affected by S_RESET or STOP. 5 BWRITE The initial value of the DWIO bit is determined by the programming of the EEPROM. The value of DWIO can be altered automatically by the Am79C973/Am79C975 controller. Specifically, the Am79C973/ Am79C975 controller will set DWIO if it detects a DWord write access to offset 10h from the Am79C973/Am79C975 controller I/O base address (corresponding to the RDP resource). Once the DWIO bit has been set to a 1, only a H_RESET or an EEPROM read can reset it to a 0. (Note that the EEPROM read operation will only set DWIO to a 0 if 174 Burst Read Enable. When set, this bit enables burst mode during memory read accesses. When cleared, this bit prevents the device from performing bursting during read accesses. The Am79C973/Am79C975 controller can perform burst transfers when reading the initialization block, the descriptor ring entries (when SWSTYLE = 3) and the buffer memory. Am79C973/Am79C975 Burst Write Enable. When set, this bit enables burst mode during memory write accesses. When cleared, this bit prevents the device from performing bursting during write accesses. The Am79C973/Am79C975 controller can perform burst transfers when writing the descriptor ring entries (when SWSTYLE = 3) and the buffer memory. BWRITE should be set to 1 when the Am79C973/Am79C975 controller is used in a PCI bus application to guarantee maximum performance. Read accessible always, write accessible only when either the STOP or the SPND bit is set. BWRITE is cleared by H_RESET P R E L I M I N A R Y and is not affected by S_RESET or STOP. 4-3 PHYSEL[1:0] PHYSEL[1:0] bits allow for software controlled selection of different operation and test modes. The normal mode of operation is when both bits 0 and 1 are set to 0 to select the Expansion ROM/ Flash. Setting bit 0 to 1 and bit 1 to 0 allows snooping of the internal MII-compatible bus to allow External Address Detection Interface (EADI). Setting PHYSEL[1:0] = 10 enables the external MII mode. Since the internal 10/100 PHY is disabled in this mode, the Am79C973/ Am79C975 controller behaves like an Am79C972 PCnet-FAST+ device. Tehese controllers are not designed to support two PHYs at a time as only one PHY can be used at a given time. An external or internal PHY can be used by reconfiguring the EEPROM or the BCI18 register. See the following table for details. PHYSEL [1:0] Mode 00 Expansion ROM/Flash - Normal Mode 01 EADI/Internal MII Snoop Mode 10 Full MII Mode - An External PHY Required 11 Reserved BCR19: EEPROM Control and Status Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 EEPROM Valid status bit. Read accessible only. PVALID is read only; write operations have no effect. A value of 1 in this bit indicates that a PREAD operation has occurred, and that (1) there is an EEPROM connected to the Am79C973/Am79C975 controller interface pins and (2) the contents read from the EEPROM have passed the checksum verification operation. PVALID Read accessible always, these bits can only be written from the EEPROM unless a write-enable bit BCR2[13], is set. PHYSEL [1:0] is cleared by H_RESET and is not affected by S_RESET or STOP. 2-0 LINBC Description Reserved locations. Read accessible always; write accessible only when either the STOP or the SPND bit is set. After H_RESET, the value in these bits will be 001b. The setting of these bits have no effect on any Am79C973/Am79C975 controller function. LINBC is not affected by S_RESET or STOP. Am79C973/Am79C975 A value of 0 in this bit indicates a failure in reading the EEPROM. The checksum for the entire 82 bytes of EEPROM is incorrect or no EEPROM is connected to the interface pins. PVALID is set to 0 during H_RESET and is unaffected by S_RESET or the STOP bit. However, following the H_RESET operation, an automatic read of the EEPROM will be performed. Just as is true for the normal PREAD command, at the end of this automatic read operation, the PVALID bit may be set to 1. Therefore, H_RESET will set the PVALID bit to 0 at first, but the automatic EEPROM read operation may later set PVALID to a 1. If PVALID becomes 0 following an EEPROM read operation (either automatically generated after H_RESET, or requested through PREAD), then all EEPROM-programmable BCR locations will be reset to their H_RESET values. The content of the Address PROM locations, however, will not be cleared. If no EEPROM is present at the EESK, EEDI, and EEDO pins, then all attempted PREAD commands will terminate early and PVALID will not be set. This applies to the automatic read of the 175 P R E L I M I N A R Y EEPROM after H_RESET, as well as to host-initiated PREAD commands. 14 PREAD successfully. The Am79C973/ Am79C975 controller will terminate these accesses with the assertion of DEVSEL and STOP while TRDY is not asserted, signaling to the initiator to disconnect and retry the access at a later time. EEPROM Read command bit. When this bit is set to a 1 by the host, the PVALID bit (BCR19, bit 15) will immediately be reset to a 0, and then the Am79C973/ Am79C975 controller will perform a read operation of 82 bytes from the EEPROM through the interface. The EEPROM data that is fetched during the read will be stored in the appropriate internal registers on board the Am79C973/Am79C975 controller. Upon completion of the EEPROM read operation, the Am79C973/Am79C975 controller will assert the PVALID bit. EEPROM contents will be indirectly accessible to the host through read accesses to the Address PROM (offsets 0h through Fh) and through read accesses to other EEPROM programmable registers. Note that read accesses from these locations will not actually access the EEPROM itself, but instead will access the Am79C973/Am79C975 controllers internal copy of the EEPROM contents. Write accesses to these locations may change the Am79C973/Am79C975 controller register contents, but the EEPROM locations will not be affected. EEPROM locations may be accessed directly through BCR19. If a PREAD command is given to the Am79C973/Am79C975 controller but no EEPROM is attached to the interface pins, the PREAD bit will be cleared to a 0, and the PVALID bit will remain reset with a value of 0. This applies to the automatic read of the EEPROM after H_RESET as well as to host initiated PREAD commands. EEPROM programmable locations on board the Am79C973/Am79C975 controller will be set to their default values by such an aborted PREAD operation. For example, if the aborted PREAD operation immediately followed the H_RESET operation, then the final state of the EEPROM programmable locations will be equal to the H_RESET programming for those locations. If a PREAD command is given to the Am79C973/Am79C975 controller and the auto-detection pin indicates (EESK/LED1/SFBD) that no EEPROM is present, then the EEPROM read operation will still be attempted. Note that at the end of the H_RESET operation, a read of the EEPROM will be performed automatically. This H_RESETgenerated EEPROM read function will not proceed if the autodetection pin (EESK/LED1/SFBD) indicates that no EEPROM is present. At the end of the read operation, the PREAD bit will automatically be reset to a 0 by the Am79C973/ Am79C975 controller and PVALID will be set, provided that an EEPROM existed on the interface pins and that the checksum for the entire 82 bytes of EEPROM was correct. Note that when PREAD is set to a 1, then the Am79C973/ Am79C975 controller will no longer respond to any accesses directed toward it, until the PREAD operation has completed 176 Read accessible always; write accessible only when either the STOP or the SPND bit is set. PREAD is set to 0 during H_RESET and is unaffected by S_RESET or the STOP bit. 13 EEDET Am79C973/Am79C975 EEPROM Detect. This bit indicates the sampled value of the P R E L I M I N A R Y EESK/LED1/SFBD pin at the end of H_RESET. This value indicates whether or not an EEPROM is present at the EEPROM interface. If this bit is a 1, it indicates that an EEPROM is present. If this bit is a 0, it indicates that an EEPROM is not present. Read accessible only. EEDET is read only; write operations have no effect. The value of this bit is determined at the end of the H_RESET operation. It is unaffected by S_RESET or the STOP bit. Read accessible always, write accessible only when either the STOP or the SPND bit is set. EEN is set to 0 by H_RESET and is unaffected by the S_RESET or STOP bit. 3 RES Reserved location. Written as zero and read as undefined. 2 ECS EEPROM Chip Select. This bit is used to control the value of the EECS pin of the interface when the EEN bit is set to 1 and the PREAD bit is set to 0. If EEN = 1 and PREAD = 0 and ECS is set to a 1, then the EECS pin will be forced to a HIGH level at the rising edge of the next clock following bit programming. Table 32 indicates the possible combinations of EEDET and the existence of an EEPROM and the resulting operations that are possible on the EEPROM interface. 12-5 RES Reserved locations. Written as zeros; read as undefined. 4 EEN EEPROM Port Enable. When this bit is set to a 1, it causes the values of ECS, ESK, and EDI to be driven onto the EECS, EESK, and EEDI pins, respectively. If EEN = 0 and no EEPROM read function is currently active, then EECS will be driven LOW. When EEN = 0 and no EEPROM read function is currently active, EESK and EEDI pins will be driven by the LED registers BCR5 and BCR4, respectively. See Table 32. If EEN = 1 and PREAD = 0 and ECS is set to a 0, then the EECS pin will be forced to a LOW level at the rising edge of the next clock following bit programming. ECS has no effect on the output value of the EECS pin unless the PREAD bit is set to 0 and the EEN bit is set to 1. Read accessible always, write accessible only when either the STOP or the SPND bit is set. ECS is set to 0 by H_RESET and is not affected by S_RESET or STOP. Table 32. Interface Pin Assignment 1 RST Pin Low High PREAD or Auto Read in Progress X 1 EEN X X High 0 1 High 0 0 ESK EECS 0 Active From ECS Bit of BCR19 0 EEPROM Serial Clock. This bit and the EDI/EDO bit are used to control host access to the EEPROM. Values programmed to this bit are placed onto the EESK pin at the rising edge of the next Am79C973/Am79C975 EESK Tri-State Active EEDI Tri-State Active From ESK Bit of BCR19 From EEDI Bit of BCR19 LED1 LED0 clock following bit programming, except when the PREAD bit is set to 1 or the EEN bit is set to 0. If both the ESK bit and the EDI/ EDO bit values are changed during one BCR19 write operation, 177 P R E L I M I N A R Y while EEN = 1, then setup and hold times of the EEDI pin value with respect to the EESK signal edge are not guaranteed. that since the advanced parity error handling uses an additional bit in the descriptor, SWSTYLE (bits 7-0 of this register) must be set to 2 or 3 to program the Am79C973/ Am79C975 controller to use 32bit software structures. ESK has no effect on the EESK pin unless the PREAD bit is set to 0 and the EEN bit is set to 1. APERREN does not affect the reporting of address parity errors or data parity errors that occur when the Am79C973/Am79C975 controller is the target of the transfer. Read accessible always, write accessible only when either the STOP or the SPND bit is set. ESK is reset to 1 by H_RESET and is not affected by S_RESET or STOP. 0 EDI/EDO EEPROM Data In/EEPROM Data Out. Data that is written to this bit will appear on the EEDI output of the interface, except when the PREAD bit is set to 1 or the EEN bit is set to 0. Data that is read from this bit reflects the value of the EEDO input of the interface. Read anytime; write accessible only when either the STOP or the SPND bit is set. APERREN is cleared by H_RESET and is not affected by S_RESET or STOP. 9 RES Reserved locations. Written as zeros; read as undefined. 8 SSIZE32 Software Size 32 bits. When set, this bit indicates that the Am79C973/Am79C975 controller utilizes 32-bit software structures for the initialization block and the transmit and receive descriptor entries. When cleared, this bit indicates that the Am79C973/ Am79C975 controller utilizes 16bit software structures for the initialization block and the transmit and receive descriptor entries. In this mode, the Am79C973/ Am79C975 controller is backwards compatible with the Am7990 LANCE and Am79C960 PCnet-ISA controllers. EDI/EDO has no effect on the EEDI pin unless the PREAD bit is set to 0 and the EEN bit is set to 1. Read accessible always; write accessible only when either the STOP or the SPND bit is set. EDI/ EDO is reset to 0 by H_RESET and is not affected by S_RESET or STOP. BCR20: Software Style This register is an alias of the location CSR58. Accesses to and from this register are equivalent to accesses to CSR58. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-11 RES Reserved locations. Written as zeros and read as undefined. 10 Advanced Parity Error Handling Enable. When APERREN is set to 1, the BPE bits (RMD1 and TMD1, bit 23) start having a meaning. BPE will be set in the descriptor associated with the buffer that was accessed when a data parity error occurred. Note 178 APERREN Am79C973/Am79C975 The value of SSIZE32 is determined by the Am79C973/ Am79C975 controller according to the setting of the Software Style (SWSTYLE, bits 7-0 of this register). Read accessible always. SSIZE32 is read only; write operations will be ignored. SSIZE32 will be cleared after H_RESET (since SWSTYLE defaults to 0) and is not affected by S_RESET or STOP. If SSIZE32 is reset, then bits IADR[31:24] of CSR2 will be used to generate values for the P R E L I M I N A R Y upper 8 bits of the 32-bit address bus during master accesses initiated by the Am79C973/ Am79C975 controller. This action is required, since the 16-bit software structures specified by the SSIZE32 = 0 setting will yield only 24 bits of address for Am79C973/Am79C975 controller bus master accesses. I/O resource width is determined by the state of the DWIO bit (BCR18, bit 7). 7-0 SWSTYLE If SSIZE32 is set, then the software structures that are common to the Am79C973/Am79C975 controller and the host system will supply a full 32 bits for each address pointer that is needed by the Am79C973/Am79C975 controller for performing master accesses. Software Style register. The value in this register determines the style of register and memory resources that shall be used by the Am79C973/Am79C975 controller. The Software Style selection will affect the interpretation of a few bits within the CSR space, the order of the descriptor entries and the width of the descriptors and initialization block entries. All Am79C973/Am79C975 controller CSR bits and all descriptor, buffer, and initialization block entries not cited in the Table 33 are unaffected by the Software Style selection and are, therefore, always fully functional as specified in the CSR and BCR sections. The value of the SSIZE32 bit has no effect on the drive of the upper 8 address bits. The upper 8 address pins are always driven, regardless of the state of the SSIZE32 bit. Read/Write accessible only when either the STOP or the SPND bit is set. The SWSTYLE register will contain the value 00h following H_RESET and will be unaffected by S_RESET or STOP. Note that the setting of the SSIZE32 bit has no effect on the defined width for I/O resources. Table 33. Software Styles SWSTYLE [7:0] Style Name LANCE/ 00h PCnet-ISA controller RES 01h 02h 03h SSIZE32 0 1 PCnet-PCI controller 1 PCnet-PCI 1 controller All Other Reserved Undefined Initialization Block Entries 16-bit software structures, non-burst or burst access RES 32-bit software structures, non-burst or burst access 32-bit software structures, non-burst or burst access Undefined BCR22: PCI Latency Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-8 Maximum Latency. Specifies the maximum arbitration latency the Am79C973/Am79C975 controller MAX_LAT Am79C973/Am79C975 Descriptor Ring Entries 16-bit software structures, non-burst access only RES 32-bit software structures, non-burst access only 32-bit software structures, non-burst or burst access Undefined can sustain without causing problems to the network activity. The register value specifies the time in units of 1/4 microseconds. MAX_LAT is aliased to the PCI configuration space register MAX_LAT (offset 3Fh). The host will use the value in the register to determine the setting of the Am79C973/Am79C975 Latency Timer register. 179 P R E L I M I N A R Y Read accessible always; write accessible only when either the STOP or the SPND bit is set. MAX_LAT is set to the value of FFh by H_RESET which results in a default maximum latency of 63.75 microseconds. It is recommended to program the value of 18H via EEPROM. MAX_LAT is not affected by S_RESET or STOP. 7-0 MIN_GNT Minimum Grant. Specifies the minimum length of a burst period the Am79C973/Am79C975 controller needs to keep up with the network activity. The length of the burst period is calculated assuming a clock rate of 33 MHz. The register value specifies the time in units of 1/4 ms. MIN_GNT is aliased to the PCI configuration space register MIN_GNT (offset 3Eh). The host will use the value in the register to determine the setting of the Am79C973/ Am79C975 Latency Timer register. Read accessible always; write accessible only when either the STOP or the SPND bit is set. MIN_GNT is set to the value of 06h by H_RESET which results in a default minimum grant of 1.5 ms, which is the time it takes to Am79C973/Am79C975 controller to read/write half of the FIFO. (16 DWord transfers in burst mode with one extra wait state per data phase inserted by the target.) Note that the default is only a typical value. It also does not take into account any descriptor accesses. It is recommended to program the value of 18H via EEPROM. MIN_GNT is not affected by S_RESET or STOP. 15-0 SVID Subsystem Vendor ID. SVID is used together with SID (BCR24, bits 15-0) to uniquely identify the add-in board or subsystem the Am79C973/Am79C975 controller is used in. Subsystem Vendor IDs can be obtained form the PCI SIG. A value of 0 (the default) indicates that the Am79C973/ Am79C975 controller does not support subsystem identification. SVID is aliased to the PCI configuration space register Subsystem Vendor ID (offset 2Ch). Read accessible always. SVID is read only. Write operations are ignored. SVID is cleared to 0 by H_RESET and is not affected by S_RESET or by setting the STOP bit. BCR24: PCI Subsystem ID Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Subsystem ID. SID is used together with SVID (BCR23, bits 15-0) to uniquely identify the addin board or subsystem the Am79C973/Am79C975 controller is used in. The value of SID is up to the system vendor. A value of 0 (the default) indicates that the Am79C973/Am79C975 controller does not support subsystem identification. SID is aliased to the PCI configuration space register Subsystem ID (offset 2Eh). SID Read accessible always. SID is read only. Write operations are ignored. SID is cleared to 0 by H_RESET and is not affected by S_RESET or by setting the STOP bit. BCR23: PCI Subsystem Vendor ID Register Note: Bits 15-0 in this register are programmable through the EEPROM. BCR25: SRAM Size Register Bit Description Bit Reserved locations. Written as zeros and read as undefined. Note: Bits 7-0 in this register are programmable through the EEPROM. 31-0 180 Name RES Name Am79C973/Am79C975 Description P R E L I M I N A R Y 31-8 7-0 RES Reserved locations. Written as zeros and read as undefined. SRAM_SIZE SRAM Size. Specifies the upper 8 bits of the 16-bit total size of the SRAM buffer. Each bit in SRAM_SIZE accounts for a 512byte page. The starting address for the lower 8 bits is assumed to be 00h and the ending address for the lower is assumed to be FFh. Therefore, the maximum address range is the starting address of 0000h to ending address of ((SRAM_SIZE +1) * 256 words) or 17FFh. An SRAM_SIZE value of all zeros specifies that no SRAM will be used and the internal FIFOs will be joined into a contiguous FIFO similar to the PCnet-PCI II controller. Note: The minimum allowed number of pages is eight for normal network operation. The Am79C973/Am79C975 controller will not operate correctly with less than the eight pages of memory. When the minimum number of pages is used, these pages must be allocated four each for transmit and receive. begins in the SRAM. The transmit buffer in the SRAM begins at address 0 and ends at the address located just before the address specified by SRAM_BND. Therefore, the receive buffer always begins on a 512 byte boundary. The lower bits are assumed to be zeros. SRAM_BND has no effect in the Low Latency Receive mode. Note: The minimum allowed number of pages is four. The Am79C973/Am79C975 controller will not operate correctly with less than four pages of memory per queue. See Table 34 for SRAM_BND programming details. Table 34. SRAM_BND Programming SRAM Addresses Minimum SRAM_BND Address Maximum SRAM_BND Address Name BCR27: SRAM Interface Control Register Bit Name 7-0 RES Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 Reserved. Reserved for manufacturing tests. Written as zero and read as undefined. PTR TST Description Note: Bits 7-0 in this register are programmable through the EEPROM. 31-8 13h Read accessible always; write accessible only when the STOP bit is set. SRAM_BND is set to 00000000b during H_RESET and is unaffected by S_RESET or STOP. BCR26: SRAM Boundary Register Bit 04h CAUTION: Programming SRAM_BND and SRAM_SIZE to the same value will cause data corruption except in the case where SRAM SIZE is 0. CAUTION: Programming SRAM_BND and SRAM_SIZE to the same value will cause data corruption except in the case where SRAM_SIZE is 0. Read accessible always; write accessible only when the STOP bit is set. SRAM_SIZE is set to 000000b during H_RESET and is unaffected by S_RESET or STOP. SRAM_BND [7:0] Reserved locations. Written as zeros and read as undefined. SRAM_BND SRAM Boundary. Specifies the upper 8 bits of the 16-bit address boundary where the receive buffer Am79C973/Am79C975 Note: Use of this bit will cause data corruption and erroneous operation. Read/Write accessible always. PTR_TST is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. 181 P R E L I M I N A R Y 14 LOLATRX Low Latency Receive. When the LOLATRX bit is set to 1, the Am79C973/Am79C975 controller will switch to an architecture applicable to cut-through switches. The Am79C973/Am79C975 controller will assert a receive frame DMA after only 16 bytes of the current receive frame has been received regardless of where the RCVFW (CSR80, bits 13-12) are set. The watermark is a fixed value and cannot be changed. The receive FIFOs will be in NO_SRAM mode while all transmit traffic is buffered through the SRAM. This bit is only valid and the low latency receive only enabled when the SRAM_SIZE (BCR25, bits 7-0) bits are non-zero. SRAM_BND (BCR26, bits 70) has no meaning when the Am79C973/Am79C975 controller is in the Low Latency mode. See the section on SRAM Configuration for more details. When the LOLATRX bit is set to 0, the Am79C973/Am79C975 controller will return to a normal receive configuration. The runt packet accept bit (RPA, CSR124, bit 3) must be set when LOLATRX is set. 13-6 RES Reserved locations. Written as zeros and read as undefined. 5-3 EBCS Expansion Bus Clock Source. These bits are used to select the source of the fundamental clock to drive the SRAM and Expansion ROM access cycles. Table 35 shows the selected clock source for the various values of EBCS. Note that the actual frequency that the Expansion Bus access cycles run at is a function of both the EBCS and CLK_FAC (BCR27, bits 2-0) bit field settings. When EBCS is set to either the PCI clock or the Time Base clock, no external clock source is required as the clocks are routed internally and the EBCLK pin should be pulled to VDD through a resistor. Table 35. EBCS Values EBCS 000 001 010 011 1XX CAUTION: To provide data integrity when switching into and out of the low latency mode, DO NOT SET the FASTSPNDE (CSR7, bit 15) bit when setting the SPND bit. Receive frames WILL be overwritten and the Am79C973/ Am79C975 controller may give erratic behavior when it is enable again. The minimum allowed number of pages is four. The Am79C973/Am79C975 controller will not operate correctly in the LOLATRX mode with less than four pages of memory. Read/Write accessible only when the STOP bit is set. LOLATRX is cleared to 0 after H_RESET or S_RESET and is unaffected by STOP. 182 Am79C973/Am79C975 Expansion Bus Clock Source CLK pin (PCI Clock) Time Base Clock EBCLK pin Reserved Reserved Read accessible always; write accessible only when the STOP bit is set. EBCS is set to 000b (PCI clock selected) during H_RESET and is unaffected by S_RESET or the STOP bit. Note: The clock frequency driving the Expansion Bus access cycles that results from the settings of the EBCS and CLK FAC bits must not exceed 33 MHz at any time. When EBCS is set to either the PCI clock or the Time Base clock, no external clock source is required because the clocks are routed internally and the EBCLK pin should be pulled to VDD through a resistor. CAUTION: Care should be exercised when choosing the PCI clock pin because of the nature of the PCI clock signal. The PCI specification states that the PCI clock can be stopped. If P R E L I M I N A R Y that can occur while it is being used for the Expansion Bus clock data, corruption will result. ed only, EPADDRL[0] is the least significant word address bit. On any byte write accesses to the SRAM, the user will have to follow the read-modify-write scheme. On any byte read accesses to the SRAM, the user will have to chose which byte is needed from the complete word returned in BCR30. CAUTION: The Time Base Clock will not support 100 Mbit operation and should only be selected in 10 Mbit only configurations. CAUTION: The external clock source used to drive the EBCLK pin must be a continuous clock source at all times. 2-0 CLK_FAC Flash accesses are started when a read or write is performed on BCR30 and the FLASH (BCR 29, bit 15) is set to 1. During Flash accesses all bits in EPADDR are valid. Clock Factor. These bits are used to select whether the clock selected by EBCS is used directly or if it is divided down to give a slower clock for running the Expansion Bus access cycles. The possible factors are given in Table 36. Read accessible always; write accessible only when the STOP is set or when SRAM SIZE (BCR25, bits 7-0) is 0. EPADDRL is undefined after H_RESET and is unaffected by S_RESET or STOP. Table 36. CLK_FAC Values CLK_FAC 000 001 010 011 1XX Clock Factor 1 1/2 (divide by 2) Reserved 1/4 (divide by 4) Reserved BCR29: Expansion Port Address Upper (Used for Flash/EPROM Accesses) Bit Read accessible always; write accessible only when the STOP bit is set. CLK_FAC is set to 000b during H_RESET and is unaffected by S_RESET or STOP. Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 Flash Access. When the FLASH bit is set to 1, the Expansion Bus access will be a Flash cycle. When FLASH is set to 0, the Expansion Bus access will be a SRAM cycle. For a complete description, see the section on Expansion Bus Accesses. This bit is only applicable to reads or writes to EBDATA (BCR30). It does not affect Expansion ROM accesses from the PCI system bus. FLASH BCR28: Expansion Bus Port Address Lower (Used for Flash/EPROM and SRAM Accesses) Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Expansion Port Address Lower. This address is used to provide addresses for the Flash and SRAM port accesses. EPADDRL SRAM accesses are started when a read or write is performed on BCR30 and the FLASH (BCR 29, bit 15) is set to 0. During SRAM accesses only bits in the EPADDRL are valid. Since all SRAM accesses are word orient- Description Read accessible always; write accessible only when the STOP bit is set. FLASH is 0 after H_RESET and is unaffected by S_RESET or the STOP bit. 14 LAAINC Am79C973/Am79C975 Lower Address Auto Increment. When the LAAINC bit is set to 1, the Expansion Port Lower Address will automatically increment by one after a read or write access to EBDATA (BCR30). When 183 P R E L I M I N A R Y EBADDRL reaches FFFFh and LAAINC is set to 1, the Expansion Port Lower Address (EPADDRL) will roll over to 0000h. When the LAAINC bit is set to 0, the Expansion Port Lower Address will not be affected in any way after an access to EBDATA (BCR30) and must be programmed. port. The Flash and SRAM accesses use different address phases. Incorrect configuration will result in a possible corruption of data. Flash read cycles are performed when BCR30 is read and the FLASH bit (BCR29, bit 15) is set to 1. Upon completion of the read cycle, the 8-bit result for Flash access is stored in EBDATA[7:0], EBDATA[15:8] is undefined. Flash write cycles are performed when BCR30 is written and the FLASH bit (BCR29, bit 15) is set to 1. EBDATA[7:0] only is valid for write cycles. Read accessible always; write accessible only when the STOP bit is set. LAINC is 0 after H_RESET and is unaffected by S_RESET or the STOP bit. 13-4 RES Reserved locations. Written as zeros and read as undefined. 3-0 EPADDRU Expansion Port Address Upper. This upper portion of the Expansion Bus address is used to provide addresses for Flash/EPROM port accesses. SRAM read cycles are performed when BCR30 is read and the FLASH bit (BCR29, bit 15) is set to 0. Upon completion of the read cycle, the 16-bit result for SRAM access is stored in EBDATA. Write cycles to the SRAM are invoked when BCR30 is written and the FLASH bit (BCR29, bit 15) is set to 0. Byte writes to the SRAM must use a read-modifywrite scheme since the word is always valid for SRAM write or read accesses. Read accessible always; write accessible only when the STOP bit is set or when SRAM SIZE (BCR25, bits 7-0) is 0. EPADDRU is undefined after H_RESET and is unaffected by S_RESET or the STOP bit. BCR30: Expansion Bus Data Port Register Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Expansion Bus Data Port. EBDATA is the data port for operations on the Expansion Port accesses involving SRAM and Flash accesses. The type of access is set by the FLASH bit (BCR 29, bit 15). When the FLASH bit is set to 1, the Expansion Bus access will follow the Flash access timing. When the FLASH bit is set to 0, the Expansion Bus access will follow the SRAM access timing. EBDATA Read and write accessible only when the STOP is set or when SRAM SIZE (BCR25, bits 7-0) is 0. EBDATA is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. Description BCR31: Software Timer Register Bit Name 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Software Timer Value. STVAL controls the maximum time for the Software Timer to count before generating the STINT (CSR7, bit 11) interrupt. The Software Timer is a free-running timer that is started upon the first write to STVAL. After the first write, the Software Timer will continually count and set the STINT interrupt at the STVAL period. STVAL Note: It is important to set the FLASH bit and load Expansion Port Address EPADDR (BCR28, BCR29) with the required address before attempting read or write to the Expansion Bus data 184 Description Am79C973/Am79C975 P R E L I M I N A R Y The STVAL value is interpreted as an unsigned number with a resolution of 256 Time Base Clock periods. For instance, a value of 122 ms would be programmed with a value of 9531 (253Bh) if the Time Base Clock is running at 20 MHz. A value of 0 is undefined and will result in erratic behavior. will set the MIIPDTI bit in CSR7, bit 3. Read accessible always. MIIPD is read only. Write operations are ignored and should not be performed. 13-12 FMDC Read and write accessible always. STVAL is set to FFFFh after H_RESET and is unaffected by S_RESET and the STOP bit. BCR32: PHY Control and Status Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 Reserved for manufacturing tests. Written as 0 and read as undefined. ANTST Note: Use of this bit will cause data corruption and erroneous operation. Read/Write accessible always. ANTST is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. Fast Management Data Clock (is used for manufacturing tests). When FMDC is set to 2h the MII Management Data Clock will run at 10 MHz max. The Management Data Clock will no longer be IEEE 802.3u-compliant and setting this bit should be used with care. The accompanying external PHY must also be able to accept management frames at the new clock rate. When FMDC is set to 1h, the MII Management Data Clock will run at 5 MHz max. The Management Data Clock will no longer be IEEE 802.3u-compliant and setting this bit should be used with care. The accompanying external PHY must also be able to accept management frames at the new clock rate. When FMDC is set to 0h, the MII Management Data Clock will run at 2.5 MHz max and will be fully compliant to IEEE 802.3u standards. See Table 37. Table 37. FMDC Values 14 MIIPD MII PHY Detect. MIIPD reflects the quiescent state of the MDIO pin. MIIPD is continuously updated whenever there is no management operation in progress on the MII interface. When a management operation begins on the interface, the state of MIIPD is preserved until the operation ends, when the quiescent state is again monitored and continuously updates the MIIPD bit. When the MDIO pin is at a quiescent LOW state, MIIPD is cleared to 0. When the MDIO pin is at a quiescent HIGH state, MIIPD is set to 1. MIIPD is used by the automatic port selection logic to select the MII port. When the MIIPD bit is set to 1, the MII port is selected. Any transition on the MIIPD bit FMDC 00 01 10 11 Fast Management Data Clock 2.5 MHz max 5 MHz max 10 MHz max Reserved Read/Write accessible always. FMDC is set to 0 during H_RESET, and is unaffected by S_RESET and the STOP bit 11 APEP Am79C973/Am79C975 Auto-Poll PHY. APEP when set to 1 the Am79C973/Am79C975 controller will poll the status register in the PHY. This feature allows the software driver or upper layers to see any changes in the status of the PHY. An interrupt when enabled is generated when the contents of the new status is different from the previous status. 185 P R E L I M I N A R Y Read/Write accessible always. APEP is set to 0 during H_RESET and is unaffected by S_RESET and the STOP bit. 10-8 APDW PHY. This bit is needed when there is no way to guarantee the state of the external PHY. This bit must be reprogrammed after every H_RESET. Auto-Poll Dwell Time. APDW determines the dwell time between PHY Management Frame accesses when Auto-Poll is turned on. See Table 38. Read/Write accessible always. XPHYRST is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. XPHYRST is only valid when the internal Network Port Manager is scanning for a network port. Table 38. APDW Values APDW 000 001 010 011 100 101 Auto-Poll Dwell Time Continuous (26s @ 2.5 MHz) Every 128 MDC cycles (103s @ 2.5 MHz) Every 256 MDC cycles (206s @ 2.5 MHz) Every 512 MDC cycles (410 s @ 2.5 MHz) Every 1024 MDC cycles (819 s @ 2.5 MHz) Every 2048 MDC cycles (1640 s @ 2.5 MHz) 110-111 Reserved 5 XPHYANE Read/Write accessible always. XPHYANE is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. XPHYANE is only valid when the internal Network Port Manager is scanning for a network port. Read/Write accessible always. APDW is set to 100h after H_RESET and is unaffected by S_RESET and the STOP bit. 7 DANAS Disable Auto-Negotiation Auto Setup. When DANAS is set, the Am79C973/Am79C975 controller after a H_RESET or S_RESET will remain dormant and not automatically startup the Auto-Negotiation section or the enhanced automatic port selection section. Instead, the Am79C973/ Am79C975 controller will wait for the software driver to setup the Auto-Negotiation portions of the device. The PHY Address and Data programming in BCR33 and BCR34 is still valid. The Am79C973/Am79C975 controller will not generate any management frames unless Auto-Poll is enabled. Read/write accessible always. DANAS is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. 6 186 XPHYRST PHY Auto-Negotiation Enable. This bit will force the PHY into enabling Auto-Negotiation. When set to 0 the Am79C973/ Am79C975 controller will send a management frame disabling Auto-Negotiation. 4 XPHYFD PHY Full Duplex. When set, this bit will force the PHY into full duplex when Auto-Negotiation is not enabled. Read/Write accessible always. XPHYFD is set to 0 by H_RESET, and is unaffected by S_RESET and the STOP bit. 3 XPHYSP PHY Speed. When set, this bit will force the PHY into 100 Mbps mode when Auto-Negotiation is not enabled. Read/Write accessible always. XPHYSP is set to 0 by H_RESET, and is unaffected by S_RESET and the STOP bit. 2 RES Reserved location. Written as zeros and read as undefined. 1 MIIILP Media Independent Interface Internal Loopback. When set, this bit will cause the internal portion of the MII data port to loopback on itself. The interface is mapped in the following way. The PHY Reset. When XPHYRST is set, the Am79C973/Am79C975 controller after an H_RESET or S_RESET will issue management frames that will reset the Am79C973/Am79C975 P R E L I M I N A R Y 0 RES TXD[3:0] nibble data path is looped back onto the RXD[3:0] nibble data path. TX_CLK is looped back as RX_CLK. TX_EN is looped back as RX_DV. CRS is correctly OR'd with TX_EN and RX_DV and always encompasses the transmit frame. TX_ER is looped back as RX_ER. However, TX_ER will not get asserted by the Am79C973/Am79C975 controller to signal an error. The TX_ER function is reserved for future use. 4-0 Read/Write accessible always. MIIILP is set to 0 by H_RESET and is unaffected by S_RESET and the STOP bit. Bit 31-16 RES Reserved locations. Written as zeros and read as undefined. Reserved location. Written as zeros and read as undefined. 15-0 MII Management Data. MIIMD is the data port for operations on the MII management interface (MDIO and MDC). The Am79C973/ Am79C975 device builds management frames using the PHYAD and REGAD values from BCR33. The operation code used in each frame is based upon whether a read or write operation has been performed to BCR34. Read cycles on the MII management interface are invoked when BCR34 is read. Upon completion of the read cycle, the 16-bit result of the read operation is stored in MIIMD. Write cycles on the MII management interface are invoked when BCR34 is written. The value written to MIIMD is the value used in the data field of the management write frame. REGAD Read/Write accessible always. REGAD is undefined after H_RESET and is unaffected by S_RESET and the STOP bit. BCR34: PHY Management Data Register Name MIIMD BCR33: PHY Address Register Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15 RES Reserved locations. Written as zeros and read as undefined. 9-5 PHYAD Management Frame PHY Address. PHYAD contains the 5-bit PHY Address field that is used in the management frame that gets clocked out via the MII management port pins (MDC and MDIO) whenever a read or write transaction occurs to BCR34. The PHY address 1Fh is not valid. The PHY address of the internal PHY unit is 1Eh (30 dec.) The Network Port Manager copies the PHYAD after the Am79C973/Am79C975 controller reads the EEPROM and uses it to communicate with the external PHY. The PHY address must be programmed into the EEPROM prior to starting the Am79C973/ Am79C975 controller. Read/Write accessible always. PHYAD is undefined after H_RESET and is unaffected by S_RESET and the STOP bit. Management Frame Register Address. REGAD contains the 5-bit Register Address field that is used in the management frame that gets clocked out via the internal MII management interface whenever a read or write transaction occurs to BCR34. Description Read/Write accessible always. MIIMD is undefined after H_RESET and is unaffected by S_RESET and the STOP bit. BCR35: PCI Vendor ID Register Note: Bits 15-0 in this register are programmable through the EEPROM. Bit Name Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-0 Vendor ID. The PCI Vendor ID register is a 16-bit register that VID Am79C973/Am79C975 187 P R E L I M I N A R Y identifies the manufacturer of the Am79C973/Am79C975 controller. AMD's Vendor ID is 1022h. Note that this Vendor ID is not the same as the Manufacturer ID in CSR88 and CSR89. The Vendor ID is assigned by the PCI Special Interest Group. The Vendor ID is not normally programmable, but the Am79C973/Am79C975 controller allows this due to legacy operating systems that do not look at the PCI Subsystem Vendor ID and the Vendor ID to uniquely identify the add-in board or subsystem that the Am79C973/ Am79C975 controller is used in. Note: If the operating system or the network operating system supports PCI Subsystem Vendor ID and Subsystem ID, use those to identify the add-in board or subsystem and program the VID with the default value of 1022h. means of programming them indirectly. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to zero. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 BCR36: PCI Power Management Capabilities (PMC) Alias Register Note: This register is an alias of the PMC register located at offset 42h of the PCI Configuration Space. Since PMC register is read only, BCR36 provides a means of programming it through the EEPROM. The contents of this register are copied into the PMC register. For the definition of the bits in this register, refer to the PMC register definition. Bits 15-0 in this register are programmable through the EEPROM. Read accessible always. Read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR37: PCI DATA Register Zero (DATA0) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PMCSR register. Since these two are read only, BCR37 provides a 188 Reserved locations. Written as zeros and read as undefined. D0_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 1413). Refer to the description of DATA_SCALE for the meaning of this field. Read accessible always. D0_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7-0 DATA0 VID is aliased to the PCI configuration space register Vendor ID (offset 00h). Read accessible always. VID is read only. Write operations are ignored. VID is set to 1022h by H_RESET and is not affected by S_RESET or by setting the STOP bit. Description These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA0 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit BCR38: PCI DATA Register One (DATA1) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PMCSR register. Since these two are read only, BCR38 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to one. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 Description Reserved locations. Written as zeros and read as undefined. D1_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. Am79C973/Am79C975 P R E L I M I N A R Y Read accessible always. D1_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7-0 DATA1 These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA1 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR39: PCI DATA Register Two (DATA2) Alias Register H_RESET and is not affected by S_RESET or setting the STOP bit BCR40: PCI DATA Register Three (DATA3) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PCMCR register. Since these two are read only, BCR40 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to three. Bits 15-0 in this register are programmable through the EEPROM. Bit 15-10 RES 9-8 Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PMCSR register. Since these two are read only, BCR39 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to two. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 Reserved locations. Written as zeros and read as undefined. These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA2 is read only. Cleared by Reserved locations. Written as zeros and read as undefined. Read accessible always. D3_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7-0 DATA3 D2_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 1413). Refer to the description of DATA_SCALE for the meaning of this field. DATA2 Description D3_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. Description Read accessible always. D2_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7-0 Name These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA3 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR41: PCI DATA Register Four (DATA4) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PCMCR register. Since these two are read only, BCR41 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to four. Bits 15-0 in this register are programmable through the EEPROM. Bit Name Am79C973/Am79C975 Description 189 P R E L I M I N A R Y 15-10 RES 9-8 Reserved locations. Written as zeros and read as undefined. D4_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. by S_RESET or setting the STOP bit 7-0 DATA5 Read accessible always. DATA5 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Read accessible always. D4_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit 7-0 DATA4 These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA4 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. BCR42: PCI DATA Register Five (DATA5) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PCMCR register. Since these two are read only, BCR42 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to five. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 BCR43: PCI DATA Register Six (DATA6) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PCMCR register. Since these two are read only, BCR43 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to six. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 Reserved locations. Written as zeros and read as undefined. Read accessible always. D6_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit Reserved locations. Written as zeros and read as undefined. 7-0 DATA6 Read accessible always. D5_SCALE is read only. Cleared by H_RESET and is not affected 190 Description D6_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. Description D5_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Am79C973/Am79C975 These bits correspond to the PCI DATA register (offset Register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA6 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. P R E L I M I N A R Y BCR44: PCI DATA Register Seven (DATA7) Alias Register Note: This register is an alias of the DATA register and also of the DATA_SCALE field of the PCMCR register. Since these two are read only, BCR44 provides a means of programming them through the EEPROM. The contents of this register are copied into the corresponding fields pointed with the DATA_SEL field set to seven. Bits 15-0 in this register are programmable through the EEPROM. Bit Name 15-10 RES 9-8 Description Reserved locations. Written as zeros and read as undefined. Bit Name DATA7 These bits correspond to the PCI DATA register (offset register 47 of the PCI configuration space, bits 7-0). Refer to the description of DATA register for the meaning of this field. Read accessible always. DATA7 is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. Reserved locations. Written as zeros and read as undefined. 15-8 Pattern Match RAM Byte 0. This byte is written into or read from Byte 0 of the Pattern Match RAM PMR_B0 Read and write accessible always. PMR_B0 is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. 7 PMAT_MODEPattern Match Mode. Writing a 1 to this bit will enable Pattern Match Mode and should only be done after the Pattern Match RAM has been programmed. Read and write accessible always. PMAT_MODE is reset to 0 after H_RESET, and is unaffected by S_RESET and the STOP bit. 6-0 PMR_ADDRPattern Match Ram Address. These bits are the Pattern Match Ram address to be written to or read from. Read and write accessible always. PMR_ADDR is reset to 0 after H_RESET, and is unaffected by S_RESET and the STOP bit. BCR45: OnNow Pattern Matching Register 1 Note: This register is used to control and indirectly access the Pattern Match RAM (PMR). When BCR45 is written and the PMAT_MODE bit (bit 7) is 1, Pattern Match logic is enabled. No bus accesses into PMR are possible, and BCR46, BCR47, and all other bits in BCR45 are ignored. When PMAT_MODE is set, a read of BCR45, BCR46, or BCR47 returns all undefined bits except for PMAT_MODE. When BCR45 is written and the PMAT_MODE bit is 0, the Pattern Match logic is disabled and accesses to the PMR are possible. Bits 6-0 of BCR45 specify the address of the PMR word to be accessed. Following the write to BCR45, the PMR word may be read by reading BCR45, BCR46 and BCR47 in any order. To write to Description 31-16 RES D7_SCALE These bits correspond to the DATA_SCALE field of the PMCSR (offset Register 44 of the PCI configuration space, bits 14-13). Refer to the description of DATA_SCALE for the meaning of this field. Read accessible always. D7_SCALE is read only. Cleared by H_RESET and is not affected by S_RESET or setting the STOP bit. 7-0 PMR word, the write to BCR45 must be followed by a write to BCR46 and a write to BCR47 in that order to complete the operation. The RAM will not actually be written until the write to BCR47 is complete. The write to BCR47 causes all 5 bytes (four bytes of BCR46-47 and the upper byte of the BCR45) to be written to whatever PMR word is addressed by bits 6:0 of BCR45. BCR46: OnNow Pattern Matching Register 2 Note: This register is used to control and indirectly access the Pattern Match RAM (PMR). When BCR45 is written and the PMAT_MODE bit (bit 7) is 1, Pattern Match logic is enabled. No bus accesses into PMR are possible, and BCR46, BCR47, and all other bits in BCR45 are ignored. When PMAT_MODE is set, a read of BCR45, BCR46, or BCR47 returns all undefined bits except for PMAT_MODE. When BCR45 is written and the PMAT_MODE bit is 0, the Pattern Match logic is disabled and accesses to the PMR are possible. Bits 6-0 of BCR45 specify the ad- Am79C973/Am79C975 191 P R E L I M I N A R Y dress of the PMR word to be accessed. Following the write to BCR45, the PMR word may be read by reading BCR45, BCR46 and BCR47 in any order. To write to PMR word, the write to BCR45 must be followed by a write to BCR46 and a write to BCR47 in that order to complete the operation. The RAM will not actually be written until the write to BCR47 is complete. The write to BCR47 causes all 5 bytes (four bytes of BCR46-47 and the upper byte of the BCR45) to be written to whatever PMR word is addressed by bits 6:0 of BCR45. When PMAT_MODE is 0, the contents of the word addressed by bits 6:0 of BCR45 can be read by reading BCR45-47 in any order. Bit Description 31-16 RES Reserved locations. Written as zeros and read as undefined. 31-16 RES Reserved locations. Written as zeros and read as undefined. 15-8 15-8 Pattern Match RAM Byte 2. This byte is written into or read from Byte 2 of the Pattern Match RAM. Pattern Match RAM Byte 4. This byte is written into or read from Byte 4 of Pattern Match RAM. Name PMR_B2 Read and write accessible always. PMR_B2 is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. 7-0 PMR_B1 Name PMR_B4 BCR47: OnNow Pattern Matching Register 3 Note: This register is used to control and indirectly access the Pattern Match RAM (PMR). When BCR45 is written and the PMAT_MODE bit (bit 7) is 1, Pattern Match logic is enabled. No bus accesses into PMR are possible, and BCR46, BCR47, and all other bits in BCR45 are ignored. When PMAT_MODE is set, a read of BCR45, BCR46, or BCR47 returns all undefined bits except for PMAT_MODE. When BCR45 is written and the PMAT_MODE bit is 0, the Pattern Match logic is disabled and accesses to the PMR are possible. Bits 6-0 of BCR45 specify the address of the PMR word to be accessed. Following the write to BCR45, the PMR word may be read by reading BCR45, BCR46 and BCR47 in any order. To write to PMR word, the write to BCR45 must be followed by a write to BCR46 and a write to BCR47 in that order to complete the operation. The RAM will not actually be written until the write to BCR47 is complete. The write to BCR47 causes all 5 bytes (four bytes of BCR46-47 and the upper byte of the BCR45) to be written to whatever PMR word is addressed by bits 6:0 of BCR45. Description Read and write accessible always. PMR_B4 is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. 7-0 PMR_B3 Pattern Match RAM Byte 1. This byte is written into or read from Byte 1 of Pattern Match RAM. Read and write accessible always. PMR_B1 is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. 192 Bit Pattern Match RAM Byte 3. This byte is written into or read from Byte 3 of Pattern Match RAM. Read and write accessible always. PMR_B3 is undefined after H_RESET, and is unaffected by S_RESET and the STOP bit. BCR48-BCR55: Reserved Locations for Am79C975 These registers must be 00h for the Am79C973 controller. PHY Management Registers (ANRs) The Am79C973/Am79C975 device supports the MII basic register set and extended register set. Both sets of registers are accessible through the PHY Management Interface. As specified in the IEEE standard, the basic register set consists of the Control Register (Register 0) and the Status Register (Register 1). The extended register set consists of Registers 2 to 31 (decimal). Table 39 lists all the registers implemented in the device. All the reserved registers should not be written to, and reading them will return a zero value. Am79C973/Am79C975 P R E L I M I N A R Y 20-23 24 25-31 Reserved Summary Status Reserved E E E Table 39. Am79C973/Am79C975 Internal PHY Management Register Set Register Address (in Decimal) 0 1 2-3 4 5 6 7 8-15 16 17 18 19 Register Name PHY Control PHY Status PHY Identifier Auto-Negotiation Advertisement Auto-Negotiation Link Partner Ability Auto-Negotiation Expansion Auto-Negotiation Next Page Reserved Interrupt Enable and Status PHY Control/Status Descrambler Resynch. Timer PHY Management Extension Basic/ Extended B B E E E E E E E E E E Am79C973/Am79C975 193 P R E L I M I N A R Y Table 40. ANR0: PHY Control Register (Register 0) Reg Bits Read/Write (Note 1) Default Value Soft Reset R/W, SC 0 0 1 =asserts the internal LPBCK, 0 = deasserts the internal LPBCK R/W 0 0 Name Soft Reset (Note 2) Description When write: 1 = PHY software reset, 0 = normal operation. 0 15 0 14 0 13 Speed Selection (Note 3) 1 = 100 Mbps, 0 = 10 Mbps R/W 1 1 0 12 Auto-Negotiation Enable 1 = enable Auto-Negotiation, 0 = disable Auto-Negotiation R/W 1 1 0 11 Power Down 1 = power down, 0 = normal operation R/W 0 0 0 10 1 = electrically isolate PHY 0 = normal operation R/W 1 1 0 9 Restart AutoNegotiation 1 = restart Auto-Negotiation, 0 = normal operation R/W, SC 0 0 0 8 Duplex Mode (Note 3) 1 = full duplex, 0 = half duplex R/W 1 Retains previous value 0 7 Collision Test 1 = enable COL signal test, 0 = disable COL signal test R/W 0 0 0 6-0 Reserved Write as 0, ignore on read RO 0 0 Loopback Isolate When read: 1 = reset in process, 0 = reset done. Notes: 1. R/W = Read/Write, SC = Self Clearing, RO = Read only. 2. Soft Reset does not reset the PDX block. Refer to the Soft Reset Section for details. 3. Bits 8 and 13 have no effect if Auto-Negotiation is enabled (Bit 12 = 1). 194 Am79C973/Am79C975 P R E L I M I N A R Y ANR1: Status Register (Register 1) The Status Register identifies the physical and Autonegotiation capabilities of the local PHY. This register is read only; a write will have no effect. Table 41. ANR1: PHY Status Register (Register 1) Read/Write (Note 1) Default Value 1 = 100BASE-T4 able, 0 = not 100BASE-T4 able RO 0 100BASE-X Full Duplex 1 = 100BASE-X full duplex able, 0 = not 100BASE-X full duplex able RO 1 13 100BASE-X Half Duplex 1 = 100BASE-X half duplex able, 0 = not 100BASE-X half duplex able RO 1 1 12 10 Mbps Full Duplex 1 = 10 Mbps full duplex able, 0 = not 10 Mbps full duplex able RO 1 1 11 10 Mbps Half Duplex 1 = 10 Mbps full duplex able, 0 = not 10 Mbps full duplex able RO 1 1 10-7 Reserved Ignore when read RO 0 RO 1 RO 0 RO, LH 0 RO 1 RO, LL 0 Reg Bits Name 1 15 100BASE-T4 1 14 1 Description 1 6 MF Preamble Suppression 1 = PHY can accept management (mgmt) frames with or without preamble, 0 = PHY can only accept mgmt frames with preamble 1 5 Auto-Negotiation Complete 1 = Auto-Negotiation completed, 0 = Auto-Negotiation not completed 4 Remote Fault 1 = remote fault detected, 0 = no remote fault detected 3 Auto-Negotiation Ability 1 = PHY able to auto-negotiate, 0 = PHY not able to auto-negotiate 2 Link Status 1 = link is up, 0 = link is down 1 1 Jabber Detect 1 = jabber condition detected, 0 = no jabber condition detected RO 0 1 0 Extended Capability 1 = extended register capabilities, 0 = basic register set capabilities only RO 1 1 (Note 1) 1 1 (Note 1) Note: 1. LH = Latching High, LL = Latching Low. 2. The link status bit 2 is fed from register 24 bit 3. Register 24 bit 3 tracks the real time state of the PHY, but link status in ANR1 is latched. After a change of the state of the link, ANR1 must be read twice. The first read will provide old information but it causes the link status bit to be updated from register 24 bit 3. The second read will then provide the correct state of the link. Am79C973/Am79C975 195 P R E L I M I N A R Y ANR2 and ANR3: PHY Identifier (Registers 2 and 3) Registers 2 and 3 contain a unique PHY identifier, consisting of 22 bits of the organizationally unique IEEE Identifier, a 6-bit manufacturer's model number, and a 4-bit manufacturer's revision number. The most significant bit of the PHY identifier is bit 15 of register 2; the least significant bit of the PHY identifier is bit 0 of register 3. Register 2, bit 15 corresponds to bit 3 of the IEEE Identifier and register 2, bit 0 corresponds to bit 18 of the IEEE Identifier. Register 3, bit 15 corresponds to bit 19 of the IEEE Identifier and register 3, bit 10 corresponds to bit 24 of the IEEE Identifier. Register 3, bits 9-4 contain the manufacturer's model number and bits 3-0 contain the manufacturer's revision number. These registers are shown in Table 42 and Table 43. Table 42. ANR2: PHY Identifier (Register 2) Reg 2 Bits 15-0 Name PHY_ID[31-16] Read/ Write Description IEEE Address (bits 3-18); Register 2, bit 15 is MS bit of PHY Identifier RO Default Value Soft Reset 0000000000000000 (0000 Hex) Retains original Value Table 43. ANR3: PHY Identifier (Register 3) Reg Bits Name Description Read/Write 3 15-10 PHY_ID[15-10] IEEE Address (bits 19-24) RO 3 9-4 PHY_ID[9-4] Manufacturer's Model Number (bits 5-0) RO PHY_ID[3-0] Revision Number (bits 3-0); Register 3, bit 0 is LS bit of PHY Identifier RO 3 196 3-0 Am79C973/Am79C975 Default Value 011010 (1A Hex) 110110 (36 Hex) 0000 Soft Reset Retains original value Retains original value Retains original value P R E L I M I N A R Y ANR4: Auto-Negotiation Advertisement Register (Register 4) register is to advertise the technology ability to the link partner device. See Table 44. This register contains the advertised ability of the Am79C973/Am79C975 device. The purpose of this When this register is modified, Res tar t AutoNegotiation (Register 0, bit 9) must be enabled to guarantee the change is implemented. Table 44. ANR4: Auto-Negotiation Advertisement Register (Register 4) Bit(s) Name Description 15 Next Page When set, the device wishes to engage in next page exchange. If clear, the device does not wish to engage in next page exchange. 14 Reserved When set, a remote fault bit is inserted into the base link code word during the Auto Negotiation process. When cleared, the base link code work will have the bit position for remote fault as cleared. Read/ Write H/W or Soft Reset R/W 0 RO 0 R/W 0 RO 0 R/W 0 RO 0 13 Remote Fault 12:11 Reserved 10 PAUSE 9 Reserved 8 Full Duplex 100BASE-TX This bit advertises Full Duplex capability. When set, Full Duplex capability is advertised. When cleared, Full Duplex capability is not advertised. R/W 1 7 Half duplex 100BASE-TX This bit advertises Half Duplex capability for the Auto-negotiation process. Setting this bit advertises Half Duplex capability. Clearing this bit does not advertise Half Duplex capability. R/W 1 6 Full Duplex 10BASE-T This bit advertises Full Duplex capability. When set, Full Duplex capability is advertised. When cleared, Full Duplex capability is not advertised. R/W 1 5 Half duplex 10BASE-T This bit advertises Half Duplex capability for the Auto-negotiation process. Setting this bit advertises Half Duplex capability. Clearing this bit does not advertise Half Duplex capability. R/W 1 4:0 Selector Field The Am79C973/Am79C975 device is an 802.3 compliant device RO 0x01 This bit should be set if the PAUSE capability is to be advertised. Am79C973/Am79C975 197 P R E L I M I N A R Y ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) The Auto-Negotiation Link Partner Ability Register is Read Only. The register contains the advertised ability of the link partner. The bit definitions represent the received link code word. This register contains either the base page or the link partner's next pages. See Table 45 and Table 46. Table 45. ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) - Base Page Format Read/ Write H/W or Soft Reset Link partner next page request. RO 0 Acknowledge Link partner acknowledgment RO 0 Remote Fault Link partner remote fault request RO 0 RO 0 RO 0 Bit(s) Name 15 Next Page 14 13 12:5 Description Technology Ability Link partner technology ability field 4:0 Selector Field Link partner selector field. Table 46. ANR5: Auto-Negotiation Link Partner Ability Register (Register 5) - Next Page Format Bit(s) Name 15 Next Page 14 Acknowledge 13 Message Page 12 Acknowledge 2 11 Toggle 10:0 Message Field 198 Read/ Write H/W or Soft Reset Link partner next page request. RO 0 Link partner acknowledgment RO 0 Link partner message page request RO 0 RO 0 Link partner toggle bit. RO 0 Link partner's message code. RO 0 Description 1 = Link partner can comply with the request 0 = Link partner cannot comply with the request Am79C973/Am79C975 P R E L I M I N A R Y ANR6: Auto-Negotiation Expansion Register (Register 6) process. The Auto-Negotiation Expansion Register bits are Read Only. See Table 47. The Auto-Negotiation Expansion Register provides additional information which aids the Auto-Negotiation Table 47. ANR6: Auto-Negotiation Expansion Register (Register 6) Bit(s) Name 15:5 Reserved Description 4 Parallel Detection 1=Parallel detection fault Fault 0=No parallel detection fault 3 Link Partner Next Page Able 2 Next Page Able 1 Page Received 0 1 = Link partner is next page able. 0 = Link partner is not next page able. 1 = Am79C973/Am79C975 device channel is next page able 0 = Am79C973/Am79C975 device channel is not next page able 1 = A new page has been received. Read/ Write H/W or Soft Reset RO 0 RO, LH 0 RO 0 RO 1 RO, LH 0 = A new page has not been received. Link Partner ANEG 1 = Link partner is Auto-Negotiation able. Able 0 = Link partner is not Auto-Negotiation able. RO 0 0 up the default value of 0x2001 represents a message page with the message code set to null. See Table 48. ANR7: Auto-Negotiation Next Page Register (Register 7) The Auto-Negotiation Next Page Register contains the next page link code word to be transmitted. On power- Table 48. ANR7: Auto-Negotiation Next Page Register (Register 7) Bit(s) Name 15 Next Page 14 Reserved 13 Message Page 12 Acknowledge 2 11 Toggle 10:0 Message Field Read/ Write H/W or Soft Reset R/W 0 RO 0 R/W 1 R/W 0 Am79C973/Am79C975 device channel toggle bit. RO 0 Message code field. R/W 0x001 Description Am79C973/Am79C975 device channel next page request. Am79C973/Am79C975 device channel message page request 1 = Am79C973/Am79C975 device channel can comply with the request 0 = Am79C973/Am79C975 device channel cannot comply with the request Reserved Registers (Registers 8-15, 20-23, and 2531) The Am79C973/Am79C975 device contains reserved registers at addresses 8-15, 20-23, and 25-31. These registers should be ignored when read and should not be written at any time. Am79C973/Am79C975 199 P R E L I M I N A R Y ANR16: INTERRUPT Status and Enable Register (Register 16) The Interrupt bits indicate when there is a change in the Link Status, Duplex Mode, Auto-Negotiation status, or Speed status. Register 16 contains the interrupt status and interrupt enable bits. The status is always updated whether or not the interrupt enable bits are set. When an interrupt occurs, the system will need to read the interrupt register to clear the status bits and determine the course of action needed. See Table 49. Table 49. ANR16: INTERRUPT Status and Enable Register (Register 16) Bit(s) Name 15:14 Reserved 13 Interrupt Test Enable (Note 1) Description 1 = When this bit is set, setting bits 12:9 of this register will cause an INTR condition and will set bits 4:1 accordingly. The effect is to test the register bits with a forced interrupt condition. Read/ Write H/W or Soft Reset RO 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 RO 0 0 = Bits 4:1 are only set if the interrupt condition (if any bits in 12:9 are set) occurs. Link Status Change 12 Interrupt Enable Duplex Mode Change 11 Interrupt Enable Auto-Neg Change 10 9 Interrupt Enable 0 = This interrupt is masked. Reserved Link Status Change Interrupt Duplex Mode Change Interrupt Auto-Neg Change Interrupt Speed Change Interrupt Global 0 1 = Auto-Neg Change 1 = Speed Change 7:5 1 0 = This interrupt is masked. Speed Change Interrupt Enable 2 1 = Duplex Mode Change 0 = This interrupt is masked. 8 3 0 = This interrupt is masked. Interrupt Enable Global 4 1 = Link Status Change Interrupt 1= Global Interrupt 0 = This interrupt is masked. 1 = Link Status has changed on a port. RO, 0 = No change in Link Status LH 1 = Duplex Mode has changed on a port RO, 0 = No change in Duplex mode LH 1 = Auto-Neg status has changed on a port RO, 0 = No change in Auto-Neg status LH 1 = Speed status has changed on a port RO, 0 = No change LH 1 = Indicates a change in status of any of the above interrupts RO, 0 = Indicates no change in Interrupt Status LH 0 0 0 0 0 Note: 1. All bits, except bit 13, are cleared on read (COR). The register must be read twice to see if it has been cleared. ANR17: PHY Control/Status Register (Register 17) This register is used to control the configuration of the 10/100 PHY unit of the Am79C973/Am79C975 device. See Table 50. When configuring the device to enable/disable the scrambler/descrambler (SDISSCR), and/or to enable/ 200 disable the alignment (SDISALIGN), a software reset after a write operation to the appropriate bits in this register is mandatory for proper configuration. If a register bit is only appropriate to use at one speed, then the speed will be indicated in parenthesis in the Name column, for example, (10M). Am79C973/Am79C975 P R E L I M I N A R Y Table 50. ANR17: PHY Control/Status Register (Register 17) Reg Bits Name 17 15 SDISALIGN (100M) 17 14 SDISSCR (100M) 17 13 Force Link Good Enable 17 12 Disable Link Pulse (10M) Read/Write H/W Reset 1 = pass unaligned data to internal PHY 0 = enable alignment block R/W 0 Retains Previous Value 1 = disable scrambler/descrambler 0 = enable scrambler/descrambler R/W 0 Retains Previous Value 1 = link status forced to link up state. 0 = link status is determined by the device. R/W 0 0 1 = Link pulses sent from the 10BASE-T transmitter are suppressed. R/W 0 0 R/W 0 0 1 = enable FEFI, 0 = disable FEFI This bit is ignored if auto-neg is enabled. R/W 0 0 1 = disable jabber detect 0 = enable jabber detect R/W 0 0 00 = normal operation 01 = unused 10 = unused 11 = serial loopback R/W 00 00 1 = Receive polarity of the 10BASE-T receiver is reversed. 0 = Receive polarity is correct. RO 0 0 Description 1 = Disables the SQE heartbeat which occurs after each 10BASE-T transmission. SQE_TEST Disable 0 = The heart beat assertion occurs on the (10M) COL pin approximately 1 s after transmission and for a duration of 1 s. Soft Reset 17 11 17 10 EN_FEFI (100M) 17 9 Jabber Detect Disable (10M) 17 8:7 LBK[1-0] (100M) 17 6 Receive Polarity Reversed (10M) 17 5 Auto Receive Polarity Correction Disable (10M) 1 = polarity correction circuit is disabled for 10BASE-T. 0 = Self correcting polarity circuit is enabled R/W 0 0 4 Extended Distance Enable (10M) 1 = 10BASE-T receive squelch thresholds are reduced to allow reception of frames which are greater than 100 meters. 0 = Squelch thresholds are set for standard distance of 100 meters. R/W 0 0 1 = TX outputs not active for MLT-3 and 10BASE-T. TX outputs to logical "0" for PECL. 0 = Transmit valid data. R/W 0 0 RO 1 1 17 17 3 TX_DISABLE 17 2 TX_CRS 1 = CRS is asserted when transmit or receive medium is active. 0 = CRS is asserted when receive medium is active. 17 1 Reserved Reserved. RO 0 0 17 0 PHY Isolated 1 = Internal PHY is isolated 0 = Internal PHY is enabled RO 0/1 0/1 Am79C973/Am79C975 201 P R E L I M I N A R Y ANR18: Descrambler Resynchronization Timer Register (Register 18) Descrambler Resynchronization Timer Register (shown in Table 51) allows the user to program the time it takes for the descrambler to start the resynchronization process. This is to ensure that the Descrambler re- synchronizes itself to the next IDLE symbol stream after it receives a packet of excessive length. This register should be programmed as described in the Table 51. The programmed timer value should always be greater than the length of the maximum size packet in normal operation. Table 51. ANR18: Descrambler Resynchronization Timer (Register 18) Reg 18 Bits 15-0 Name Description Descrambler Resynch Timer Each bit indicates 4 clocks, or 160 ns. The count decrements from a default value of 1 ms or an initial value loaded by the user. This counter provides a maximum timer value of 10.5 ms. Read/ Write R/W Default Value Soft Reset 0001100 000110000 0011010 1101010 10 (Note 1) (Note 1) Note: 1. The corresponding time to this setting is 1ms. ANR19: PHY Management Extension Register (Register 19) Table 52 contains the PHY Management Extension Register (Register 19) bits. Table 52. ANR19: PHY Management Extension Register (Register 19) Reg Bits Name 19 15:6 Reserved 19 19 Description Read/Write Default Value Soft Reset Write as 0, ignore on read. RO 0 0 5 Mgmt Frame Format 1 = last management frame was invalid (opcode error, etc.); 0 = last management frame was valid. RO 0 0 4-0 PHY Address PHY Address defaults to 11110. RO 11110 Retains Previous Value ANR24: Summary Status Register (Register 24) The Summary Status register is a global register containing status information. This register is Read/Only and represents the most important data which a single register access can convey. The Summary Status register indicates the following: Link Status, Full Duplex Status, Auto-Negotiation Alert, and Speed. See Table 53. 202 Am79C973/Am79C975 P R E L I M I N A R Y Table 53. ANR24: Summary Status Register (Register 24) Bit(s) Name 15-4 Reserved 3 Link Status 2 Full Duplex 1 0 AutoNEG Alert Speed Description Write as 0; Ignore on Read 1 = Link Status is up. 0 = Link Status is down. 1 = Operating in full duplex mode 0 = Operating in half duplex mode 1 = AutoNEG status has changed 0 = AutoNEG status unchanged 1 = Operating at 100 Mbps 0 = Operating at 10 Mbps Initialization Block Read/ Write H/W or Soft Reset 0 0 R/O 0 R/O 0 R/O 0 R/O 1 statement is always true, regardless of the setting of the SSIZE32 bit. Note: When SSIZE32 (BCR20, bit 8) is set to 0, the software structures are defined to be 16 bits wide. The base address of the initialization block must be aligned to a DWord boundary, i.e., CSR1, bit 1 and 0 must be cleared to 0. When SSIZE32 is set to 0, the initialization block looks like Table 54. When SSIZE32 (BCR20, bit 8) is set to 1, the software structures are defined to be 32 bits wide. The base address of the initialization block must be aligned to a DWord boundary, i.e., CSR1, bits 1 and 0 must be cleared to 0. When SSIZE32 is set to 1, the initialization block looks like Table 55. Note: The Am79C973/Am79C975 controller performs DWord accesses to read the initialization block. This Table 54. Initialization Block (SSIZE32 = 0) Address Bits 15-13 Bit 12 Bits 11-8 IADR+00h MODE 15-00 IADR+02h PADR 15-00 IADR+04h PADR 31-16 IADR+06h PADR 47-32 IADR+08h LADRF 15-00 IADR+0Ah LADRF 31-16 IADR+0Ch LADRF 47-32 IADR+0Eh LADRF 63-48 IADR+10h RDRA 15-00 IADR+12h RLEN 0 IADR+14h IADR+16h RES Bits 7-4 Bits 3-0 TDRA 23-16 TDRA 15-00 TLEN 0 RES Am79C973/Am79C975 TDRA 23-16 203 P R E L I M I N A R Y Table 55. Initialization Block (SSIZE32 = 1) Address Bits 31-28 Bits 27-24 Bits 23-20 Bits 19-16 IADR+00h TLEN RES RLEN RES IADR+04h IADR+08h Bits 15-12 Bits 3-0 PADR 31-00 RES PADR 47-32 LADRF 31-00 IADR+10h LADRF 63-32 IADR+14h RDRA 31-00 IADR+18h TDRA 31-00 RLEN and TLEN When SSIZE32 (BCR20, bit 8) is set to 0, the software structures are defined to be 16 bits wide, and the RLEN and TLEN fields in the initialization block are each three bits wide. The values in these fields determine the number of transmit and receive Descriptor Ring Entries (DRE) which are used in the descriptor rings. Their meaning is shown in Table 56. If a value other than those listed in Table 56 is desired, CSR76 and CSR78 can be written after initialization is complete. byte address boundary when SSIZE32 is set to 0 (BCR20, bit 8). Table 57. R/TLEN Decoding (SSIZE32 = 1) R/TLEN 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 11XX 1X1X When SSIZE32 (BCR20, bit 8) is set to 1, the software structures are defined to be 32 bits wide, and the RLEN and TLEN fields in the initialization block are each 4 bits wide. The values in these fields determine the number of transmit and receive Descriptor Ring Entries (DRE) which are used in the descriptor rings. Their meaning is shown in Table 57. If a value other than those listed in Table 57 is desired, CSR76 and CSR78 can be written after initialization is complete. Table 56. R/TLEN Decoding (SSIZE32 = 0) Number of DREs 1 2 4 8 16 32 64 128 RDRA and TDRA RDRA and TDRA indicate where the transmit and receive descriptor rings begin. Each DRE must be located at a 16-byte address boundary when SSIZE32 is set to 1 (BCR20, bit 8). Each DRE must be located at an 8- 204 Bits 7-4 MODE IADR+0Ch R/TLEN 000 001 010 011 100 101 110 111 Bits 11-8 Number of DREs 1 2 4 8 16 32 64 128 256 512 512 512 LADRF The Logical Address Filter (LADRF) is a 64-bit mask that is used to accept incoming Logical Addresses. If the first bit in the incoming address (as transmitted on the wire) is a 1, it indicates a logical address. If the first bit is a 0, it is a physical address and is compared against the physical address that was loaded through the initialization block. A logical address is passed through the CRC generator, producing a 32-bit result. The high order 6 bits of the CRC is used to select one of the 64 bit positions in the Logical Address Filter. If the selected filter bit is set, the address is accepted and the frame is placed into memory. The Logical Address Filter is used in multicast addressing schemes. The acceptance of the incoming frame based on the filter value indicates that the message may be intended for the node. It is the node's responsibility to determine if the message is actually intended for the node by comparing the destination address of the stored message with a list of acceptable logical addresses. Am79C973/Am79C975 P R E L I M I N A R Y If the Logical Address Filter is loaded with all zeros and promiscuous mode is disabled, all incoming logical addresses except broadcast will be rejected. If the DRCVBC bit (CSR15, bit 14) is set as well, the broadcast packets will be rejected. See Figure 51. PADR This 48-bit value represents the unique node address assigned by the ISO 8802-3 (IEEE/ANSI 802.3) and used for internal address comparison. PADR[0] is compared with the first bit in the destination address of the incoming frame. It must be 0 since only the destination address of a unicast frames is compared to PADR. The six hex-digit nomenclature used by the ISO 8802-3 (IEEE/ANSI 802.3) maps to the Am79C973/ Am79C975 PADR register as follows: the first byte is compared with PADR[7:0], with PADR[0] being the least significant bit of the byte. The second ISO 8802-3 (IEEE/ANSI 802.3) byte is compared with PADR[15:8], again from the least significant bit to the most significant bit, and so on. The sixth byte is compared with PADR[47:40], the least significant bit being PADR[40]. Mode The mode register field of the initialization block is copied into CSR15 and interpreted according to the description of CSR15. 32-Bit Resultant CRC Received Message Destination Address 47 1 0 1 31 26 0 CRC GEN 63 SEL Logical Address Filter (LADRF) 0 64 MUX Match = 1 Packet Accepted Match = 0 Packet Rejected Match 6 21510B-56 Figure 51. Address Match Logic Receive Descriptors receive descriptors look like Table 59 (CRDA = Current Receive Descriptor Address). When SWSTYLE (BCR20, bits 7-0) is set to 0, then the software structures are defined to be 16 bits wide, and receive descriptors look like Table 58 (CRDA = Current Receive Descriptor Address). When SWSTYLE (BCR 20, bits 7-0) is set to 3, then the software structures are defined to be 32 bits wide, and receive descriptors look like Table 60 (CRDA = Current Receive Descriptor Address). When SWSTYLE (BCR 20, bits 7-0) is set to 2, then the software structures are defined to be 32 bits wide, and Table 58. Receive Descriptor (SWSTYLE = 0) Address CRDA+00h CRDA+02h CRDA+04h CRDA+06h 15 14 13 12 OWN 1 0 ERR 1 0 FRAM 1 0 OFLO 1 0 11 10 RBADR[15:0] CRC BUFF Am79C973/Am79C975 9 STP 8 ENP BCNT MCNT 7-0 RBADR[23:16] 205 P R E L I M I N A R Y Table 59. Receive Descriptor (SWSTYLE = 2) Address CRDA+00h 31 30 29 CRDA+04h OWN ERR 28 FRA M 27 26 25 OFL BUF CRC O F CRDA+08h RES CRDA+0Ch 24 23 22 RBADR[31:0] STP ENP BPE PAM 21 20 19-16 15-12 11-0 LAFM BAM RES 1111 BCNT 0000 MCNT RFRTAG[14:0] USER SPACE Table 60. Receive Descriptor (SWSTYLE = 3) Address CRDA+00h CRDA+04h CRDA+08h CRDA+0Ch 31 30 29 OWN ERR FRAM 28 27 RES OFLO CRC 26 25 24 BUFF STP ENP RBADR[31:0] USER SPACE RMD0 Bit 31-0 Name RBADR 31 Name OWN Description Receive Buffer address. This field contains the address of the receive buffer that is associated with this descriptor. Description This bit indicates whether the descriptor entry is owned by the host (OWN = 0) or by the Am79C973/Am79C975 controller (OWN = 1). The Am79C973/ Am79C975 controller clears the OWN bit after filling the buffer that the descriptor points to. The host sets the OWN bit after emptying the buffer. Once the Am79C973/Am79C975 controller or host has relinquished ownership of a buffer, it must not change any field in the descriptor entry. 30 ERR ERR is the OR of FRAM, OFLO, CRC, BUFF, or BPE. ERR is set by the Am79C973/Am79C975 controller and cleared by the host. 29 FRAM Framing error indicates that the incoming frame contains a noninteger multiple of eight bits and 206 22-16 RES RES 15-12 0000 1111 11-0 MCNT BCNT there was an FCS error. If there was no FCS error on the incoming frame, then FRAM will not be set even if there was a noninteger multiple of eight bits in the frame. FRAM is not valid in internal loopback mode. FRAM is valid only when ENP is set and OFLO is not. FRAM is set by the Am79C973/Am79C975 controller and cleared by the host. RMD1 Bit 23 RES BPE 28 OFLO Overflow error indicates that the receiver has lost all or part of the incoming frame, due to an inability to move data from the receive FIFO into a memory buffer before the internal FIFO overflowed. OFLO is set by the Am79C973/ Am79C975 controller and cleared by the host. 27 CRC CRC indicates that the receiver has detected a CRC (FCS) error on the incoming frame. CRC is valid only when ENP is set and OFLO is not. CRC is set by the Am79C973/Am79C975 controller and cleared by the host. CRC will also be set when Am79C973/ Am79C975 receives an RX_ER indication from the external PHY through the MII. 26 BUFF Buffer error is set any time the Am79C973/Am79C975 controller does not own the next buffer Am79C973/Am79C975 P R E L I M I N A R Y while data chaining a received frame. This can occur in either of two ways: ting APERREN (BCR20, bit 10) to 1. BPE is set by the Am79C973/ Am79C975 controller and cleared by the host. 1. The OWN bit of the next buffer is 0. This bit does not exist when the Am79C973/Am79C975 controller is programmed to use 16-bit software structures for the descriptor ring entries (BCR20, bits 7-0, SWSTYLE is cleared to 0). 2. FIFO overflow occurred before the Am79C973/Am79C975 controller was able to read the OWN bit of the next descriptor. 22 PAM If a Buffer Error occurs, an Overflow Error may also occur internally in the FIFO, but will not be reported in the descriptor status entry unless both BUFF and OFLO errors occur at the same time. BUFF is set by the Am79C973/Am79C975 controller and cleared by the host. 25 24 23 STP ENP BPE Start of Packet indicates that this is the first buffer used by the Am79C973/Am79C975 controller for this frame. If STP and ENP are both set to 1, the frame fits into a single buffer. Otherwise, the frame is spread over more than one buffer. When LAPPEN (CSR3, bit 5) is cleared to 0, STP is set by the Am79C973/ Am79C975 controller and cleared by the host. When LAPPEN is set to 1, STP must be set by the host. Physical Address Match is set by the Am79C973/Am79C975 controller when it accepts the received frame due to a match of the frame's destination address with the content of the physical address register. PAM is valid only when ENP is set. PAM is set by the Am79C973/Am79C975 controller and cleared by the host. This bit does not exist when the Am79C973/Am79C975 controller is programmed to use 16-bit software structures for the descriptor ring entries (BCR20, bits 7-0, SWSTYLE is cleared to 0). 21 LAFM End of Packet indicates that this is the last buffer used by the Am79C973/Am79C975 controller for this frame. It is used for data chaining buffers. If both STP and ENP are set, the frame fits into one buffer and there is no data chaining. ENP is set by the Am79C973/Am79C975 controller and cleared by the host. Bus Parity Error is set by the Am79C973/Am79C975 controller when a parity error occurred on the bus interface during data transfers to a receive buffer. BPE is valid only when ENP, OFLO, or BUFF are set. The Am79C973/ Am79C975 controller will only set BPE when the advanced parity error handling is enabled by set- Am79C973/Am79C975 Logical Address Filter Match is set by the Am79C973/ Am79C975 controller when it accepts the received frame based on the value in the logical address filter register. LAFM is valid only when ENP is set. LAFM is set by the Am79C973/ Am79C975 controller and cleared by the host. Note that if DRCVBC (CSR15, bit 14) is cleared to 0, only BAM, but not LAFM will be set when a Broadcast frame is received, even if the Logical Address Filter is programmed in such a way that a Broadcast frame would pass the hash filter. If DRCVBC is set to 1 and the Logical Address Filter is programmed in such a way that a Broadcast frame would pass the hash filter, LAFM will be set on the reception of a Broadcast frame. This bit does not exist when the Am79C973/Am79C975 controller 207 P R E L I M I N A R Y is programmed to use 16-bit software structures for the descriptor ring entries (BCR20, bits 7-0, SWSTYLE is cleared to 0). 20 BAM Broadcast Address Match is set by the Am79C973/Am79C975 controller when it accepts the received frame, because the frame's destination address is of the type 'Broadcast.' BAM is valid only when ENP is set. BAM is set by the Am79C973/Am79C975 controller and cleared by the host. This bit does not exist when the Am79C973/Am79C975 controller is programmed to use 16-bit software structures for the descriptor ring entries (BCR20, bits 7-0, SWSTYLE is cleared to 0). 19-16 RES Reserved locations. These locations should be read and written as zeros. 15-12 ONES These four bits must be written as ones. They are written by the host and unchanged by the Am79C973/Am79C975 controller. 11-0 Buffer Byte Count is the length of the buffer pointed to by this descriptor, expressed as the two's complement of the length of the buffer. This field is written by the host and unchanged by the 208 BCNT Am79C973/Am79C975 ler. control- RMD2 Bit 31 Name ZERO Description This field is reserved. The Am79C973/Am79C975 controller will write a zero to this location. 30-16 RFRTAG Receive Frame Tag. Indicates the Receive Frame Tag applied from the EADI interface. This field is user defined and has a default value of all zeros. When RXFRTG (CSR7, bit 14) is set to 0, RFRTAG will be read as all zeros. See the section on Receive Frame Tagging for details. 15-12 ZEROS This field is reserved. Am79C973/Am79C975 controller will write zeros to these locations. 11-0 Message Byte Count is the length in bytes of the received message, expressed as an unsigned binary integer. MCNT is valid only when ERR is clear and ENP is set. MCNT is written by the Am79C973/Am79C975 controller and cleared by the host. MCNT RMD3 Bit 31-0 Name US Am79C973/Am79C975 Description User Space. Reserved for user defined space. P R E L I M I N A R Y Transmit Descriptors transmit descriptors look like Table 62 (CXDA = Current Transmit Descriptor Address). When SWSTYLE (BCR20, bits 7-0) is set to 0, the software structures are defined to be 16 bits wide, and transmit descriptors look like Table 61 (CXDA = Current Transmit Descriptor Address). When SWSTYLE (BCR 20, bits 7-0) is set to 3, then the software structures are defined to be 32 bits wide, and transmit descriptors look like Table 63 (CXDA = Current Transmit Descriptor Address). When SWSTYLE (BCR 20, bits 7-0) is set to 2, the software structures are defined to be 32 bits wide, and Table 61. Transmit Descriptor (SWSTYLE = 0) Address CXDA+00h 15 14 CXDA+02h OWN ERR CXDA+04h 1 1 CXDA+06h BUFF UFLO 13 12 11 10 TBADR[15:0] ADD_ FCS 1 EX DEF MORE/ LTINT 1 ONE DEF 9 8 7-0 STP ENP TBADR[23:16] BCNT LCOL LCAR RTRY TDR Table 62. Transmit Descriptor (SWSTYLE = 2) Address CXDA+00h 31 30 CXDA+04h OWN ERR CXDA+08h BUFF UFLO 29 28 27 26 ADD_ FCS EX DEF MORE/ LTINT ONE DEF STP LCOL LCAR RTRY RES CXDA+0Ch 25 24 TBADR[31:0] 23 22-16 15-12 11-4 3-0 ENP BPE RES 1111 RES RES RES RES RES TRC 22-16 15-12 11-4 3-0 RES TRC BCNT USER SPACE Table 63. Transmit Descriptor (SWSTYLE = 3) Address 31 30 CXDA+00h BUFF UFLO CXDA+04h OWN ERR 29 EX DEF ADD_ FCS 28 27 26 LCOL LCAR RTRY MORE/ LTINT ONE DEF CXDA+08h CXDA+0Ch 25 24 RES STP ENP 31-0 Name TBADR 31 Name OWN RES 1111 BCNT OWN bit after filling the buffer pointed to by the descriptor entry. The Am79C973/Am79C975 controller clears the OWN bit after transmitting the contents of the buffer. Both the Am79C973/ Am79C975 controller and the host must not alter a descriptor entry after it has relinquished ownership. Description Transmit Buffer address. This field contains the address of the transmit buffer that is associated with this descriptor. TMD1 Bit BPE TBADR[31:0] USER SPACE TMD0 Bit 23 Description This bit indicates whether the descriptor entry is owned by the host (OWN = 0) or by the Am79C973/Am79C975 controller (OWN = 1). The host sets the 30 ERR Am79C973/Am79C975 ERR is the OR of UFLO, LCOL, LCAR, RTRY or BPE. ERR is set by the Am79C973/Am79C975 controller and cleared by the host. This bit is set in the current descriptor when the error occurs 209 P R E L I M I N A R Y and, therefore, may be set in any descriptor of a chained buffer transmission. 29 28 ADD_FCS MORE/LTINT Bit 28 always functions as MORE. The value of MORE is written by the Am79C973/ Am79C975 controller and is read by the host. When LTINTEN is cleared to 0 (CSR5, bit 14), the Am79C973/Am79C975 controller will never look at the contents of bit 28, write operations by the host have no effect. When LTINTEN is set to 1 bit 28 changes its function to LTINT on host write operations and on Am79C973/ Am79C975 controller read operations. MORE LTINT 210 ADD_FCS dynamically controls the generation of FCS on a frame by frame basis. This bit should be set with the ENP bit. However, for backward compatibility, it is recommended that this bit be set for every descriptor of the intended frame. When ADD_FCS is set, the state of DXMTFCS is ignored and transmitter FCS generation is activated. When ADD_FCS is cleared to 0, FCS generation is controlled by DXMTFCS. When APAD_XMT (CSR4, bit 11) is set to 1, the setting of ADD_FCS has no effect on frames shorter than 64 bytes. ADD_FCS is set by the host, and is not changed by the Am79C973/Am79C975 controller. This is a reserved bit in the CLANCE (Am79C90) controller. MORE indicates that more than one retry was needed to transmit a frame. The value of MORE is written by the Am79C973/ Am79C975 controller. This bit has meaning only if the ENP bit is set. LTINT is used to suppress interrupts after successful transmission on selected frames. When LTINT is cleared to 0 and ENP is set to 1, the Am79C973/ Am79C975 controller will not set TINT (CSR0, bit 9) after a successful transmission. TINT will only be set when the last descriptor of a frame has both LTINT and ENP set to 1. When LTINT is cleared to 0, it will only cause the suppression of interrupts for successful transmission. TINT will always be set if the transmission has an error. The LTINTEN overrides the function of TOKINTD (CSR5, bit 15). 27 ONE ONE indicates that exactly one retry was needed to transmit a frame. ONE flag is not valid when LCOL is set. The value of the ONE bit is written by the Am79C973/Am79C975 controller. This bit has meaning only if the ENP bit is set. 26 DEF Deferred indicates that the Am79C973/Am79C975 controller had to defer while trying to transmit a frame. This condition occurs if the channel is busy when the Am79C973/Am79C975 controller is ready to transmit. DEF is set by the Am79C973/Am79C975 controller and cleared by the host. 25 STP Start of Packet indicates that this is the first buffer to be used by the Am79C973/Am79C975 controller for this frame. It is used for data chaining buffers. The STP bit must be set in the first buffer of the frame, or the Am79C973/ Am79C975 controller will skip over the descriptor and poll the next descriptor(s) until the OWN and STP bits are set. STP is set by the host and is not changed by the Am79C973/Am79C975 controller. 24 ENP End of Packet indicates that this is the last buffer to be used by the Am79C973/Am79C975 controller for this frame. It is used for data chaining buffers. If both STP and ENP are set, the frame fits into one buffer and there is no data chaining. ENP is set by the host and is not changed by the Am79C973/Am79C975 controller. 23 BPE Bus Parity Error is set by the Am79C973/Am79C975 controller Am79C973/Am79C975 P R E L I M I N A R Y when a parity error occurred on the bus interface during a data transfers from the transmit buffer associated with this descriptor. The Am79C973/Am79C975 controller will only set BPE when the advanced parity error handling is enabled by setting APERREN (BCR20, bit 10) to 1. BPE is set by the Am79C973/Am79C975 controller and cleared by the host. This bit does not exist, when the Am79C973/Am79C975 controller is programmed to use 16-bit software structures for the descriptor ring entries (BCR20, bits 7-0, SWSTYLE is cleared to 0). 22-16 RES Reserved locations. 15-12 ONES These four bits must be written as ones. This field is written by the host and unchanged by the Am79C973/Am79C975 controller. 11-00 BCNT Buffer Byte Count is the usable length of the buffer pointed to by this descriptor, expressed as the two's complement of the length of the buffer. This is the number of bytes from this buffer that will be transmitted by the Am79C973/ Am79C975 controller. This field is written by the host and is not changed by the Am79C973/ Am79C975 controller. There are no minimum buffer size restrictions. 2. FIFO underflow occurred before the Am79C973/Am79C975 controller obtained the STATUS byte (TMD1[31:24]) of the next descriptor. BUFF is set by the Am79C973/Am79C975 controller and cleared by the host. If a Buffer Error occurs, an Underflow Error will also occur. BUFF is set by the Am79C973/ Am79C975 controller and cleared by the host. 30 UFLO When DXSUFLO (CSR3, bit 6) is cleared to 0, the transmitter is turned off when an UFLO error occurs (CSR0, TXON = 0). When DXSUFLO is set to 1, the Am79C973/Am79C975 controller gracefully recovers from an UFLO error. It scans the transmit descriptor ring until it finds the start of a new frame and starts a new transmission. UFLO is set by the Am79C973/ Am79C975 controller and cleared by the host. 29 EXDEF Excessive Deferral. Indicates that the transmitter has experienced Excessive Deferral on this transmit frame, where Excessive Deferral is defined in the ISO 8802-3 (IEEE/ANSI 802.3) standard. Excessive Deferral will also set the interrupt bit EXDINT (CSR5, bit 7). 28 LCOL Late Collision indicates that a collision has occurred after the first channel slot time has elapsed. The Am79C973/Am79C975 controller does not retry on late collisions. LCOL is set by the Am79C973/Am79C975 controller and cleared by the host. 27 LCAR Loss of Carrier is set when the carrier is lost during an Am79C973/Am79C975 controller TMD2 Bit 31 Name BUFF Description Buffer error is set by the Am79C973/Am79C975 controller during transmission when the Am79C973/Am79C975 controller does not find the ENP flag in the current descriptor and does not own the next descriptor. This can occur in either of two ways: 1. The OWN bit of the next buffer is 0. Underflow error indicates that the transmitter has truncated a message because it could not read data from memory fast enough. UFLO indicates that the FIFO has emptied before the end of the frame was reached. Am79C973/Am79C975 211 P R E L I M I N A R Y initiated transmission when operating in half-duplex mode. The Am79C973/Am79C975 controller does not retry upon loss of carrier. It will continue to transmit the whole frame until done. LCAR will not be set when the device is operating in full-duplex mode. LCAR is not valid in Internal Loopback Mode. LCAR is set by the Am79C973/Am79C975 controller and cleared by the host. 25-4 RES Reserved locations. 3-0 TRC Transmit Retry Count. Indicates the number of transmit retries of the associated packet. The maximum count is 15. However, if a RETRY error occurs, the count will roll over to 0. In this case only, the Transmit Retry Count value of 0 should be interpreted as meaning 16. TRC is written by the Am79C973/ Am79C975 controller into the last transmit descriptor of a frame, or when an error terminates a frame. Valid only when OWN is cleared to 0. LCAR will be set when the PHY is in Link Fail state during transmission. 26 212 RTRY Retry error indicates that the transmitter has failed after 16 attempts to successfully transmit a message, due to repeated collisions on the medium. If DRTY is set to 1 in the MODE register, RTRY will set after one failed transmission attempt. RTRY is set by the Am79C973/ Am79C975 controller and cleared by the host. TMD3 Bit 31-0 Name US Am79C973/Am79C975 Description User Space. Reserved for user defined space. P R E L I M I N A R Y REGISTER SUMMARY PCI Configuration Registers Offset Name Width in Bit Access Mode Default Value 00h PCI Vendor ID 16 RO 1022h 02h PCI Device ID 16 RO 2000h 04h PCI Command 16 RW 0000h 06h PCI Status 16 RW 0290h 08h PCI Revision ID 8 RO 40h 09h PCI Programming IF 8 RO 00h 0Ah PCI Sub-Class 8 RO 00h 0Bh PCI Base-Class 8 RO 02h 0Ch Reserved 8 RO 00h 0Dh PCI Latency Timer 8 RW 00h 0Eh PCI Header Type 8 RO 00h 0Fh Reserved 8 RO 00h 10h PCI I/O Base Address 32 RW 0000 0001h 14h PCI Memory Mapped I/O Base Address 32 RW 0000 0000h Reserved 8 RO 00h 2Ch PCI Subsystem Vendor ID 16 RO 00h 2Eh PCI Subsystem ID 16 RO 00h 30h PCI Expansion ROM Base Address 32 RW 0000 0000h Reserved 8 RO 00h Capabilities Pointer 8 RO 40h 18h - 2Bh 31h - 33h 34h 35h - 3Bh Reserved 8 RO 00h 3Ch PCI Interrupt Line 8 RW 00h 3Dh PCI Interrupt Pin 8 RO 01h 3Eh PCI MIN_GNT 8 RO 06h 3Fh PCI MAX_LAT 8 RO FFh 40h PCI Capability Identifier 8 RO 01h 41h PCI Next Item Pointer 8 RO 00h 42h PCI Power Management Capabilities 16 RO 00h 44h PCI Power Management Control/Status 8 RO 00h 46h PCI PMCSR Bridge Support Extensions 8 RO 00h 47h PCI Data 8 RO 00h 48h - FFh Reserved 8 RO 00h Note: RO = read only, RW = read/write Am79C973/Am79C975 213 P R E L I M I N A R Y Control and Status Registers RAP Addr Symbol Default Value 00 CSR0 uuuu 0004 Am79C973/Am79C975 Controller Status Register R 01 CSR1 uuuu uuuu Lower IADR: maps to location 16 S 02 CSR2 uuuu uuuu Upper IADR: maps to location 17 S 03 CSR3 uuuu 0000 Interrupt Masks and Deferral Control S 04 CSR4 uuuu 0115 Test and Features Control R 05 CSR5 uuuu 0000 Extended Control and Interrupt 1 R 06 CSR6 uuuu uuuu RXTX: RX/TX Encoded Ring Lengths S 07 CSR7 0uuu 0000 Extended Control and Interrupt 1 R 08 CSR8 uuuu uuuu LADRF0: Logical Address Filter -- LADRF[15:0] S 09 CSR9 uuuu uuuu LADRF1: Logical Address Filter -- LADRF[31:16] S 10 CSR10 uuuu uuuu LADRF2: Logical Address Filter -- LADRF[47:32] S 11 CSR11 uuuu uuuu LADRF3: Logical Address Filter -- LADRF[63:48] S 12 CSR12 uuuu uuuu PADR0: Physical Address Register -- PADR[15:0][ S 13 CSR13 uuuu uuuu PADR1: Physical Address Register -- PADR[31:16] S 14 CSR14 uuuu uuuu PADR2: Physical Address Register -- PADR[47:32] S 15 CSR15 see register description MODE: Mode Register S 16 CSR16 uuuu uuuu IADRL: Base Address of INIT Block Lower (Copy) T 17 CSR17 uuuu uuuu IADRH: Base Address of INIT Block Upper (Copy) T 18 CSR18 uuuu uuuu CRBAL: Current RCV Buffer Address Lower T 19 CSR19 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 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 Comments Use Note: u = undefined value, R = Running register, S = Setup register, T = Test register; all default values are in hexadecimal format. 214 Am79C973/Am79C975 P R E L I M I N A R Y Control and Status Registers (Continued) RAP Addr Symbol Default Value After H_RESET 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 Receive Byte Count T 41 CSR41 uuuu uuuu CRST: Current Receive Status T 42 CSR42 uuuu uuuu CXBC: Current Transmit Byte T 43 CSR43 uuuu uuuu CXST: Current Transmit 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 PI: Polling Interval S 48 CSR48 uuuu uuuu Reserved 49 CSR49 uuuu uuuu Reserved 50 CSR50 uuuu uuuu Reserved 51 CSR51 uuuu uuuu Reserved 52 CSR52 uuuu uuuu Reserved 53 CSR53 uuuu uuuu Reserved 54 CSR54 uuuu uuuu Reserved 55 CSR55 uuuu uuuu Reserved 56 CSR56 uuuu uuuu Reserved 57 CSR57 uuuu uuuu Reserved 58 CSR58 see register description SWS: Software Style S 59 CSR59 uuuu uuuu Reserved 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 Transmit Byte Count T 63 CSR63 uuuu uuuu PXST: Previous Transmit Status T 64 CSR64 uuuu uuuu NXBAL: Next XMT Buffer Address Lower T 65 CSR65 uuuu uuuu NXBAU: Next XMT Buffer Address Upper T 66 CSR66 uuuu uuuu NXBC: Next Transmit Byte Count T 67 CSR67 uuuu uuuu NXST: Next Transmit Status T 68 CSR68 uuuu uuuu Reserved 69 CSR69 uuuu uuuu Reserved 70 CSR70 uuuu uuuu Reserved Comments Am79C973/Am79C975 Use 215 P R E L I M I N A R Y Control and Status Registers (Continued) RAP Addr Symbol Default Value After H_RESET 71 CSR71 uuuu uuuu Reserved 72 CSR72 uuuu uuuu RCVRC: RCV Ring Counter 73 CSR73 uuuu uuuu Reserved 74 CSR74 uuuu uuuu XMTRC: XMT Ring Counter 75 CSR75 uuuu uuuu Reserved 76 CSR76 uuuu uuuu RCVRL: RCV Ring Length 77 CSR77 uuuu uuuu Reserved 78 CSR78 uuuu uuuu XMTRL: XMT Ring Length 79 CSR79 uuuu uuuu Reserved 80 CSR80 uuuu 1410 DMATCFW: DMA Transfer Counter and FIFO Threshold 81 CSR81 uuuu uuuu Reserved 82 CSR82 uuuu uuuu Transmit Descriptor Pointer Address Lower 83 CSR83 uuuu uuuu Reserved 84 CSR84 uuuu uuuu DMABA: Address Register Lower T 85 CSR85 uuuu uuuu DMABA: Address Register Upper T 86 CSR86 uuuu uuuu DMABC: Buffer Byte Counter T 87 CSR87 uuuu uuuu Reserved 88 CSR88 89 CSR89 90 262 5003 (Am79C973) Comments Use T T S S S S Chip ID Register Lower T uuuu 262 Chip ID Register Upper T CSR90 uuuu uuuu Reserved 91 CSR91 uuuu uuuu Reserved T 92 CSR92 uuuu uuuu RCON: Ring Length Conversion T 93 CSR93 uuuu uuuu Reserved 94 CSR94 uuuu uuuu Reserved 95 CSR95 uuuu uuuu Reserved 96 CSR96 uuuu uuuu Reserved 97 CSR97 uuuu uuuu Reserved 98 CSR98 uuuu uuuu Reserved 262 7003 (Am79C975) 99 CSR99 uuuu uuuu Reserved 100 CSR100 uuuu 0200 Bus Timeout 101 CSR101 uuuu uuuu Reserved 102 CSR102 uuuu uuuu Reserved 103 CSR103 uuuu 0105 Reserved 104 CSR104 uuuu uuuu Reserved 105 CSR105 uuuu uuuu Reserved 106 CSR106 uuuu uuuu Reserved 107 CSR107 uuuu uuuu Reserved 216 Am79C973/Am79C975 S P R E L I M I N A R Y Control and Status Registers (Concluded) RAP Addr Symbol Default Value After H_RESET 108 CSR108 uuuu uuuu Reserved 109 CSR109 uuuu uuuu Reserved 110 CSR110 uuuu uuuu Reserved 111 CSR111 uuuu uuuu Reserved 112 CSR112 uuuu uuuu Missed Frame Count 113 CSR113 uuuu uuuu Reserved 114 CSR114 uuuu uuuu Received Collision Count 115 CSR115 uuuu uuuu Reserved 116 CSR116 0000 0000 OnNow Miscellaneous 117 CSR117 uuuu uuuu Reserved 118 CSR118 uuuu uuuu Reserved 119 CSR119 uuuu 0105 Reserved 120 CSR120 uuuu uuuu Reserved 121 CSR121 uuuu uuuu Reserved 122 CSR122 uuuu 0000 Receive Frame Alignment Control 123 CSR123 uuuu uuuu Reserved 124 CSR124 uuuu 0000 Test Register 1 T 125 CSR125 003c 0060 MAC Enhanced Configuration Control T 126 CSR126 uuuu uuuu Reserved 127 CSR127 uuuu uuuu Reserved Comments Am79C973/Am79C975 Use R R S S 217 P R E L I M I N A R Y Bus Configuration Registers Writes to those registers marked as "Reserved" will have no effect. Reads from these locations will produce undefined values. 218 RAP 0 1 2 3 4 5 6 7 8 9 10-15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Mnemonic MSRDA MSWRA MC Reserved LED0 LED1 LED2 LED3 Reserved FDC Reserved IOBASEL IOBASEU BSBC EECAS SWS Reserved PCILAT PCISID PCISVID SRAMSIZ SRAMB SRAMIC EBADDRL EBADDRU EBDR STVAL MIICAS MIIADDR MIIMDR PCIVID Default 0005h 0005h 0002h N/A 00C0h 0084h 0088h 0090h N/A 0000h N/A N/A N/A 9001h 0002h 0200h N/A FF06h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A FFFFh 0000h N/A N/A 1022h 36 PMC_A C811h 37 38 39 40 41 42 43 44 45 46 47 DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 PMR1 PMR2 PMR3 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h N/A N/A N/A Name Reserved Reserved Miscellaneous Configuration Reserved LED0 Status LED1 Status LED2 Status LED3 Status Reserved Full-Duplex Control Reserved Reserved Reserved Burst and Bus Control EEPROM Control and Status Software Style Reserved PCI Latency PCI Subsystem ID PCI Subsystem Vendor ID SRAM Size SRAM Boundary SRAM Interface Control Expansion Bus Address Lower Expansion Bus Address Upper Expansion Bus Data Port Software Timer Value PHY Control and Status PHY Address PHY Management Data PCI Vendor ID PCI Power Management Capabilities (PMC) Alias Register PCI DATA Register Zero Alias Register PCI DATA Register One Alias Register PCI DATA Register Two Alias Register PCI DATA Register Three Alias Register PCI DATA Register Four Alias Register PCI DATA Register Five Alias Register PCI DATA Register Six Alias Register PCI DATA Register Seven Alias Register Pattern Matching Register 1 Pattern Matching Register 2 Pattern Matching Register 3 Am79C973/Am79C975 Programmability User EEPROM No No No No Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes No No Yes Yes No No No No No No Yes Yes Yes No Yes No No No Yes Yes No Yes No Yes Yes Yes Yes Yes Yes Yes Yes No Yes No Yes No Yes No Yes Yes Yes Yes Yes No No Yes No Yes No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No P R E L I M I N A R Y PHY Management Registers Writes to registers marked "Reserved" will have no effect. Reads from these locations will produce undefined values. Register Address Symbol Name Default Value After H_RESET 0 ANR0 PHY Control Register 2500h 1 ANR1 PHY Status Register 7849h 2 ANR2 PHY_ID[31:16] 0000h 3 ANR3 PHY_ID[15:0] 6BA0h 4 ANR4 Auto-Negotiation Advertisement Register 03C1h 5 ANR5 Auto-Negotiation Link Partner Ability Register 0000h 6 ANR6 Auto-Negotiation Expansion Register 0004h 7 ANR7 Auto-Negotiation Next Page Register 2001h 8-15 ANR8-ANR15 Reserved -- 16 ANR16 Interrupt Status and Enable Register 0000h 17 ANR17 PHY Control/Status Register 0001h 18 ANR18 Descrambler Resynchronization Timer Register 186Ah 19 ANR19 PHY Management Extension Register -- 20-23 ANR20-ANR23 Reserved -- 24 ANR24 Summary Status Register 0001h 25-31 ANR25-ANR31 Reserved -- Am79C973/Am79C975 219 P R E L I M I N A R Y PROGRAMMABLE REGISTER SUMMARY Am79C973/Am79C975 Control and Status Registers Register CSR0 Contents Status and control bits: (DEFAULT = 0004) 8000 4000 2000 1000 ERR -CERR MISS 0800 0400 0200 0100I MERR RINT TINT IDON 0080 0040 INTR IENA 0020 0010 RXON TXON Lower IADR (Maps to CSR 16) Upper IADR (Maps to CSR 17) Interrupt masks and Deferral Control: (DEFAULT = 0) 8000 -0800 MERRM 0080 -4000 -0400 RINTM 0040 DXSUFLO 2000 -0200 TINTM 0020 LAPPEN 1000 MISSM 0100 IDONM 0010 DXMT2PD CSR4 Interrupt masks, configuration and status bits: (DEFAULT = 0115) 8000 -0800 APAD_XMT 0080 UNITCMD 4000 DMAPLUS 0400 ASTRP_RCV 0040 UNIT 2000 -0200 MFCO 0020 RCVCCO 1000 TXDPOLL 0100 MFCOM 0010 RCVCCOM CSR5 Extended Interrupt masks, configuration and status bits: (DEFAULT = 0XXX) 8000 TOKINTD 0800 SINT 0080 EXDINT 4000 LTINTEN 0400 SINTE 0040 EXDINTE 2000 -0200 -0020 MPPLBA 1000 -0100 -0010 MPINT CSR7 Extended Interrupt masks, configuration and status bits: (DEFAULT = 0000) 8000 FASTSPND 0800 STINT 0080 MAPINT 4000 RXFRMTG 0400 STINTE 0040 MAPINTE 2000 RDMD 0200 MREINT 0020 MCCINT 1000 RXDPOLL 0100 MREINTE 0010 MCCINTE CSR8 - CSR11 Logical Address Filter CSR12 - CSR14 Physical Address Register MODE: (DEFAULT = 0) 0008 0004 0002 TDMD STOP STRT 0001 INIT 0008 0004 0002 0001 EMBA BSWP --- 0008 0004 0002 0001 TXSTRT TXSTRTM --- 0008 0004 0002 0001 MPINTE MPEN MPMODE SPND 0008 0004 0002 0001 MCCIINT MCCIINTE MIIPDTINT MIIPDTNTE 0008 0004 0002 0001 DXMTFCS LOOP DTX DRX CSR1 CSR2 CSR3 CSR15 CSR47 CSR49 CSR58 bits [8:7] = PORTSEL, Port Selection 11 0080 0040 0020 0010 PORTSEL0 INTL DRTY FCOLL bits [7:0] = SWSTYLE, Software Style Register. 8000 4000 2000 1000 220 PHY Selected 10 Reserved 8000 PROM 0800 -4000 DRCVBC 0400 -2000 DRCVPA 0200 -1000 -0100 PORTSEL1 TXPOLLINT: Transmit Polling Interval RXPOLLINT: Receive Polling Interval Software Style (mapped to BCR20) 0000 LANCE/PCnet-ISA 0002 ----- PCnet-32 0800 0400 0200 0100 -APERREN -SSIZE32 0080 0040 0020 0010 Am79C973/Am79C975 ----- 0008 0004 0002 0001 SWSTYLE3 SWSTYLE2 -SWSTYLE0 P R E L I M I N A R Y Am79C973/Am79C975 Control and Status Registers (Concluded) Register CSR76 CSR78 CSR80 Contents RCVRL: RCV Descriptor Ring length XMTRL: XMT Descriptor Ring length FIFO threshold and DMA burst control (DEFAULT = 2810) 8000 Reserved 4000 Reserved bits [13:12] = RCVFW, Receive FIFO Watermark 0000 Request DMA when 16 bytes are present 1000 Request DMA when 64 bytes are present 2000 Request DMA when 112 bytes are present 3000 Reserved bits [11:10] = XMTSP, Transmit Start Point 0000 Start transmission after 20/36 (No SRAM/SRAM) bytes have been written 0400 Start transmission after 64 bytes have been written 0800 Start transmission after 128 bytes have been written 0C00 Start transmission after 220 max/Full Packet (No SRAM/SRAM with UFLO bit set) bytes have been written bits [9:8] = XMTFW, Transmit FIFO Watermark 0000 Start DMA when 16 write cycles can be made 0100 Start DMA when 32 write cycles can be made 0200 Start DMA when 64 write cycles can be made CSR88~89 CSR112 CSR114 CSR116 CSR122 CSR124 CSR125 0300 Start DMA when 128 write cycles can be made bits [7:0] = DMA Burst Register Chip ID (Contents = v2625003 (for Am79C973); v = Version Number) Chip ID (Contents = v2627003 (for Am79C975); v = Version Number) Missed Frame Count Receive Collision Count OnNow Miscellaneous 8000 -0800 -0080 PMAT 0008 4000 -- 0400 -- 0040 EMPPLBA 0004 RWU_GATE 2000 -- 0200 PME_EN_OVR 0020 MPMAT 0002 RWU_POL 1000 -0100 LCDET Receive Frame Alignment Control 8000 -0800 -- 0010 MPPEN 0001 RST_POL 0080 -- 0008 -- 4000 -- 0400 -- 0040 -- 0004 -- 2000 -- 0200 -- 0020 -- 0002 -- 1000 -0100 -BMU Test Register (DEFAULT = 0000) 8000 -0800 -- 0010 -- 0001 RCVALGN 0080 -- 0008 -- 4000 -- 0400 -- 0040 -- 0004 RPA 2000 -- 0200 -- 0020 -- 0002 -- 1000 -0100 -0010 MAC Enhanced Configuration Control (DEFAUT = 603c -- 0001 -- RWU_DRIVER bits [15:8] = IPG, InterPacket Gap (Default=60xx, 96 bit times) bits [8:0] = IFS1, InterFrame Space Part 1 (Default=xx3c, 60 bit times) Am79C973/Am79C975 221 P R E L I M I N A R Y Am79C973/Am79C975 Bus Configuration Registers RAP Addr Register 0 MSRDA 1 MSWRA 2 MC 4 5 6 7 9 16 17 18 19 20 222 LED0 LED1 LED2 LED3 FDC IOBASEL IOBASEU BSBC EECAS Contents Programs width of DMA read signal (DEFAULT = 5) Programs width of DMA write signal (DEFAULT = 5) Miscellaneous Configuration bits: (DEFAULT = 2) 8000 -0800 -0080 4000 -- 0400 -- 0040 -- 2000 -- 0200 -- 0020 -- INITLEVEL 0008 0004 1000 -0100 APROMWE 0010 -Programs the function and width of the LED0 signal. (DEFAULT = 00C0) 8000 LEDOUT 0800 -0080 PSE EADISEL -- 0002 -- ASEL 0001 0008 -- 4000 LEDPOL 0400 -- 0040 LNKSE 0004 RCVE 2000 LEDDIS 0200 MPSE 0020 RCVME 0002 -- 1000 100E 0100 FDLSE 0010 XMTE Programs the function and width of the LED1 signal. (DEFAULT = 0084) 8000 LEDOUT 0800 -0080 PSE 0001 COLE 0008 -- 4000 LEDPOL 0400 -- 0040 LNKSE 0004 RCVE 2000 LEDDIS 0200 MPSE 0020 RCVME 0002 -- 1000 100E 0100 FDLSE 0010 XMTE Programs the function and width of the LED2 signal. (DEFAULT = 0088) 8000 LEDOUT 0800 -0080 PSE 0001 COLE 0008 -- 4000 LEDPOL 0400 -- 0040 LNKSE 0004 RCVE 2000 LEDDIS 0200 MPSE 0020 RCVME 0002 -- 1000 100E 0100 FDLSE 0010 XMTE Programs the function and width of the LED3 signal. (DEFAULT = 0090) 8000 LEDOUT 0800 -0080 PSE 0001 COLE 0008 -- 4000 LEDPOL 0400 -- 0040 LNKSE 0004 RCVE 2000 LEDDIS 0200 MPSE 0020 RCVME 0002 -- 1000 100E 0100 FDLSE Full-Duplex Control. (DEFAULT= 0000) 8000 -0800 -- 0010 XMTE 0001 COLE 0080 -- 0008 -- 4000 -- 0400 -- 0040 -- 0004 FDRPAD 2000 -- 0200 -- 0020 -- 0002 -- 1000 -0100 -I/O Base Address Lower I/O Base Address Upper Burst Size and Bus Control (DEFAULT = 2101) 8000 ROMTMG3 0800 NOUFLO 0010 -- 0001 FDEN 0080 DWIO 0008 -- 4000 ROMTMG2 0400 -- 0040 BREADE 0004 -- 2000 ROMTMG1 0200 MEMCMD 0020 BWRITE 0002 -- -- 0001 -- 1000 ROMTMG0 0100 EXTREQ EEPROM Control and Status (DEFAULT = 0002) 8000 PVALID 0800 -- 0010 0080 -- 0008 -- 4000 PREAD 0400 -- 0040 -- 0004 ECS 2000 EEDET 0200 -- 0020 -- 0002 ESK EEN 0001 EDI/EDO 1000 -0100 -0010 SWSTYLE Software Style (DEFAULT = 0000, maps to CSR 58) Am79C973/Am79C975 P R E L I M I N A R Y Am79C973/Am79C975 Bus Configuration Registers (Concluded) RAP Addr Register 22 PCILAT 25 SRAMSIZE 26 SRAMBND 27 SRAMIC 28 29 EPADDRL EPADDRU Contents PCI Latency (DEFAULT = FF06) bits [15:8] = MAX_LAT bits [7:0] = MIN_GNT SRAM Size (DEFAULT = 0000) bits [7:0] = SRAM_SIZE SRAM Boundary (DEFAULT = 0000) bits [7:0] = SRAM_BND SRAM Interface Control (Default = 0000) 8000PTR TST 4000LOLATRX bits [5:3] = EBCS, Expansion Bus Clock Source 0000 CLK pin, PCI clock 0008 Time Base Clock 0010 EBCLK pin, Expansion Bus Clock bits [2:0] = CLK_FAC, Expansion Bus Clock Factor 0000 1/1 clock factor 0001 1/2 clock factor 0002 -0003 -Expansion Port Address Lower (Default = 0000) Expansion Port Address Upper (Default = 0000) 8000 4000 2000 1000 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 FLASH LAINC --- 0800 0400 0200 0100 ----- 0080 0040 0020 0010 0008 EPADDRU3 0004 EPADDRU2 0002 EPADDRU1 0001 EPADDRU0 ----- EBDATA STVAL MIICAS Expansion Bus Data Port Software Timer Interrupt Value (DEFAULT = FFFF) PHY Status and Control (DEFAULT = 0000) 0080 0800 APEP 0040 8000 ANTST XPHYRST 0400 APDW2 4000 MIIPD 2000 FMDC1 0020 0200 APDW1 1000 FMDC0 XPHYANE 0100 APDW0 0010 MIIADDR PHY Address (DEFAULT = 0000) bits [9:5] = PHYAD, Physical Layer Device Address bits [4:0] = REGAD, Auto-Negotiation Register Address MIIMDR PHY Data Port PCI Vendor ID PCI Vendor ID Register (DEFAULT = 1022h) PMC Alias PCI Power Management Capabilities (DEFAULT = 0000) DATA 0 PCI Data Register Zero Alias Register (DEFAULT = 0000) DATA 1 PCI Data Register One Alias Register (DEFAULT = 0000) DATA 2 PCI Data Register Two Alias Register (DEFAULT = 0000) DATA 3 PCI Data Register Three Alias Register (DEFAULT = 0000) DATA 4 PCI Data Register Four Alias Register (DEFAULT = 0000) DATA 5 PCI Data Register Five Alias Register (DEFAULT = 0000) DATA 6 PCI Data Register Six Alias Register (DEFAULT = 0000) DATA 7 PCI Data Register Seven Alias Register (DEFAULT = 0000) PMR 1 OnNow Pattern Matching Register 1 PMR 2 OnNow Pattern Matching Register 2 PMR 3 OnNow Pattern Matching Register 3 Am79C973/Am79C975 DANAS 0008 0004 0002 0001 XPHYSP -MIILP -- XPHYFD 223 P R E L I M I N A R Y ABSOLUTE MAXIMUM RATINGS OPERATING RANGES Storage Temperature . . . . . . . . . . . . -65C to +150C Ambient Temperature. . . . . . . . . . . . . -65C to +70C Supply voltage with respect to VSSB, VSS, DVSSD, DVSSP, and DVSSX . . . . . . . . . . . . . . -0.3 V to 3.63 V Commercial (C) Devices 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. DVDDD, DVDDA, DVDDP, DVDDTX, DVDDRX, and DVDDCO . . . . . . . . . . . . . . . . . . . . . +3.3 V 5% Temperature (TA) . . . . . . . . . . . . . . . . . .0C to +70C Supply Voltages: VDD, VDDB, VDD_PCI, . . . . . . . . . . . . . . +3.0 V to 3.6 V All inputs within the range: . . . . . . VSS - 0.5 V to 5.5 V Operating ranges define those limits between which the functionality of the device is guaranteed. 224 Am79C973/Am79C975 P R E L I M I N A R Y DC CHARACTERISTICS OVER COMMERCIAL OPERATING RANGES (unless otherwise specified) Parameter Parameter Description Symbol Digital I/O (Non-PCI Pins) VIH Input HIGH Voltage VIL Input LOW Voltage Test Conditions Min Max Units 0.8 V V 0.4 V 2.0 IOL1 = 4 mA VOL Output LOW Voltage IOL2 = 6 mA IOL3 = 12 mA (Note 1) IOH1= -4 mA VOH Output HIGH Voltage (Notes 2, 3) IOZ Output Leakage Current (Note 4) IIX Input Leakage Current (Note 5) IIL Input LOW Current (Note 6) IIH Input HIGH Current (Note 6) PCI Bus Interface - 5 V Signaling VIH Input HIGH Voltage VIL Input LOW Voltage IOZ Output Leakage Current (Note 4) IIL Input LOW Current IIH Input HIGH Current IIX_PME Input Leakage Current (Note 7) VOH Output HIGH Voltage (Note 2) VOL Output LOW Voltage IOH2= -2 mA (Note 3) 0 V |VTHS| (Note 1) Min Max Unit 250 375 ns 136 200 ns Note: RX pulses narrower than tPWDRD (min) will maintain internal Carrier Sense on. RX pulses wider than tPWKRD (max) will turn internal Carrier Sense off. tTETD TX 21510D-59 Figure 55 10 Mbps Transmit (TX) Timing Diagram t(PWKRD) t(PWKRD) VTSQ+ RX VTSQtPWKRD 21510D-60 Figure 56 10 Mbps Receive (RX) Timing Diagram Am79C973/Am79C975 233 P R E L I M I N A R Y SWITCHING WAVEFORMS 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 KS000010-PAL 234 Am79C973/Am79C975 P R E L I M I N A R Y SWITCHING TEST CIRCUITS IOL VTHRESHOLD Sense Point CL IOH 21510D-61 Figure 57 Normal and Tri-State Outputs Am79C973/Am79C975 235 P R E L I M I N A R Y SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE tHIGH 2.4 V 2.0 V CLK 2.0 V 1.5 V tLOW 1.5 V 0.8 V 0.8 V 0.4 V tRISE tFALL tCYC 21510D-62 Figure 58 CLK Waveform for 5 V Signaling tHIGH 0.6 VDD_PCI 0.5 VDD_PCI CLK 0.5 VDD_PCI 0.4 VDD_PCI tLOW 0.4 VDD_PCI 0.3 VDD_PCI 0.3 VDD_PCI 0.2 VDD_PCI tRISE tFALL tCYC 21510B21510D-63 Figure 59 CLK Waveform for 3.3 V Signaling Tx Tx CLK AD[31:00], C/BE[3:0], PAR, FRAME, IRDY, TRDY, STOP, DEVSEL, IDSEL tSU tH tSU(GNT) tH(GNT) GNT 21510B21510D-64 Figure 60 Input Setup and Hold Timing 236 Am79C973/Am79C975 P R E L I M I N A R Y SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE (Continued) Tx Tx Tx CLK tVAL AD[31:00] C/BE[3:0], PAR, FRAME, IRDY, TRDY, STOP, DEVSEL, PERR, SERR MIN Valid n MAX Valid n+1 tVAL(REQ) MIN REQ MAX Valid n+1 Valid n 21510D-65 Figure 61 Output Valid Delay Timing Tx Tx Tx CLK tON AD[31:00], C/BE[3:0], PAR, FRAME, IRDY, TRDY, STOP, DEVSEL, PERR Valid n tOFF AD[31:00], C/BE[3:0], PAR, FRAME, IRDY, TRDY, STOP, DEVSEL, PERR Valid n 21510D-66 Figure 62 Output Tri-state Delay Timing EESK EECS EEDI EEDO 0 1 1 A6 A5 A4 A3 A2 A1 A0 D15 D14 D13 D2 D1 D0 21510D-67 Figure 63 EEPROM Read Functional Timing Am79C973/Am79C975 237 P R E L I M I N A R Y SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE (Continued) tHIGH (EESK) tLOW (EESK) tSU (EEDO) EESK tH (EEDO) tVAL (EEDI,EECS) Stable EEDO tLOW (EECS) EECS EEDI 21510D-68 Figure 64 Automatic PREAD EEPROM Timing tJ3 2.0 V TCK tJ4 1.5 V 0.8 V 2.0 V 1.5 V 0.8 V tJ5 tJ6 tJ2 21510D-69 Figure 65 JTAG (IEEE 1149.1) TCK Waveform for 5 V Signaling 238 Am79C973/Am79C975 P R E L I M I N A R Y SWITCHING WAVEFORMS: SYSTEM BUS INTERFACE (Concluded) tJ2 TCK tJ8 tJ7 TDI, TMS tJ9 TDO tJ12 tJ11 Output Signals tJ13 tJ14 Input Signals 21510D-70 Figure 66 JTAG (IEEE 1149.1) Test Signal Timing Am79C973/Am79C975 239 P R E L I M I N A R Y SWITCHING WAVEFORMS: EXPANSION BUS INTERFACE tHIGH 2.4 V 2.0 V 2.0 V 1.5 V tLOW 1.5 V 0.8 V EBCLK 0.8 V 0.4V tRISE tFALL tCYC 21510D-71 Figure 67 EBCLK Waveform EBCLK EBUA_EGA[7:0] Lower Address Upper Address EBDA[15:8] tv_A_D t_HZ ts_D t_LZ Data EBD[7:0] th_D t_CS_H EROMCS t_CS_L EBWE t_AS_H AS_EBOE t_AS_L 21510D-72 Figure 68 Expansion Bus Read Timing 240 Am79C973/Am79C975 P R E L I M I N A R Y SWITCHING WAVEFORMS: EXPANSION BUS INTERFACE (Concluded) EBCLK EBUA_EBA[7:0] Lower Address Upper Address EBDA[15:8] tv_A_D EBD[7:0] DATA t_CS_H EBWE, EROMCS t_CS_L t_AS_H AS_EBOE t_WE_CSAD t_AS_L 21510D-73 Figure 69 Expansion Bus Write Timing Am79C973/Am79C975 241 P R E L I M I N A R Y PHYSICAL DIMENSIONS* PQR160 Plastic Quad Flat Pack (measured in millimeters) Pin 160 25.35 REF 27.90 28.10 31.00 31.40 Pin 120 Pin 1 I.D. 25.35 REF 27.90 28.10 31.00 31.40 Pin 40 Pin 80 3.20 3.60 0.65 BASIC 0.25 Min 3.95 MAX SEATING PLANE 16-038-PQR-1 PQR160 12-22-95 lv *For reference only. BSC is an ANSI standard for Basic Space Centering. 242 Am79C973/Am79C975 P R E L I M I N A R Y PQL176 Thin Quad Flat Pack (measured in millimeters) 176 1 25.80 23.80 26.20 24.20 44 23.80 24.20 25.80 26.20 11 - 13 1.35 1.45 1.60 MAX 0.50 BSC 11 - 13 16-038-PQT-1_AL PQL176 5.12.97 lv 1.00 REF. Trademarks Copyright 1999 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD logo, and combinations thereof are registered trademarks of Advanced Micro Devices, Inc. Auto-Poll, C-LANCE, IMR100, LANCE, Mace, Magic Packet, PCnet, PCnet-ISA, PCnet-ISA+, PCnet-ISA-II, PCnet-32, PCnet-PCI, PCnet-PCI II, and PCnet-FAST 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. 21510E Am79C973/Am79C975 243 APPENDIX A PCnetTM-FAST III Recommended Magnetics APPENDIX A: PCnetTM-FAST III Recommended Magnetics The PCnet-FAST III controller uses magnetics that have a Transmit (TX) turns ratio of 1:1.414 and a Receive (RX) turns ratio of 1:1. The following table shows the current approved vendor list of 3.3 V magnetics recommended for use with the PCnet-FAST III device. These magnetics modules are pin compatible with the AMD Am79C873 NetPHY-1 10/100 PHY magnetics and LevelOne LXT970 10/100 PHY magnetics that are used today with PCnet-FAST and PCnet-FAST+, but are not the same part numbers since the turns ratios are different. Table 67. Recommended Magnetics Vendors Vendor Part Number Package Halo TG22-SI43ND 16-pin module Halo TG22-SI41N2 16-pin module Halo TG110-SI41N2 16-pin module Bel Fuse S558-5999-G9 16-pin module Bel Fuse S558-5999-G8 16-pin module Pulse Engineering H1081 16-pin module Pulse Engineering H1119 16-pin module Bothhand 16ST61A8 16-pin module PCA Electronics EPF8095G 16-pin module PCA Electronics EPF8096G 16-pin module Transpower Technologies RJ622-CL1 RJ45/Magnetics Combo XFMRS XF973-COMBO1-4 RJ45/Magnetics Combo Am79C973/Am79C975 244 APPENDIX B Serial Management Interface Unit (Am79C975 only) APPENDIX B: Serial Management Interface Unit (Am79C975 only) Related Documents: n System Management Bus Specification Revision 1.0, February 15, 1995 2 n Phillips Semiconductors: The I C-bus and how to use it (including specifications), April 1995 Overview The Am79C973 and Am79C975 devices are fullyintegrated 32-bit PCI bus 10/100 Mbps Ethernet controllers with advanced power and network management features. With the Serial Management Interface, the Am79C975 device offers a very powerful system management feature in addition to the management features offered with the Am79C973 device. The Serial Management Interface Unit (SMIU) is based on the industry standard Inter-IC (I2C) bus and System Management Bus (SMBus) specifications. It enables a system to exchange short message with another network station (e.g., management console) for remote monitoring and alerting of system management parameters and events. The SMIU is capable of communicating within the system and over the network during normal operation or in low power mode, even if the Am79C975 controller is not initialized or setup for transmit or receive operation by a network driver. One application for the Serial Management Interface is a system where a dedicated microcontroller monitors various hardware components (e.g., fan, memory, chip set) and parameters (e.g., temperature, voltage) in order to obtain information about the status of the system. If there is any problem or issue with the system, the microcontroller can send a message via the serial management interface of the Am79C975 Am79C975 controller to another station on the network, for example, to alert the system administrator of the trouble event. A less robust (but more cost effective) implementation in a typical PC system simply uses the host processor to control operation of the I2C/SMBus interfaces of the PCI chipset (southbridge) and hardware monitoring de- vice, and the Serial Management Interface of the Am79C975 controller. The independent interface allows access to the network even at times when there is no operating system and network driver running on the system. The interface, however, also allows access to the network in parallel to the normal traffic. The electrical interface of the SMIU is comprised of 3 pins: clock, data, and interrupt. The host can access a set of registers via the interface to identify the Am79C975 controller, to obtain information about the status of the device, to get the network address of the local node and the management station of the network, and to control the transmission and reception of management frames. The Am79C975 controller provides internal transmit and receive data memories of 128 bytes each to store the management frames. The receive path includes a pattern match filter to qualify incoming frames. The SMIU is designed such that the amount of software running on the microcontroller in order to transmit or receive management frames is minimized. The SMIU does not use the PCI clock (CLK). It will operate with CLK stopped or running. The electrical interface of the SMIU follows the I2C specification. The signaling and register access protocol of the SMIU is a subset of the System Management Bus (SMBus) protocol. Am79C975 PIN DESIGNATIONS Listed by Pin Number 160-pin PQFP package 176-pin TQFP package Pin No Pin Name Pin No Pin Name 96 MIRQ 106 MIRQ 98 MDATA 108 MDATA 100 MCLOCK 110 MCLOCK Am79C973/Am79C975 245 P R E L I M I N A R Y Listed By Group mand register. Note that the SMIU interrupt acknowledge does not follow the SMB alert protocol, but simply requires clearing the interrupt bit. Serial Management Interface Unit (SMIU) Pin Name Pin Function Type Driver No. of Pins MCLOCK SMIU Clock I/O OD6 1 MDATA SMIU Data I/O OD6 1 MIRQ SMIU Interrupt O OD6 1 Transferring Data Note: OD6 = Open Drain Output, IOL = 6 mA, 50 pF load. Listed By Function MCLOCK SMIU Clock Input/Output MCLOCK is the clock pin of the serial management interface. MCLOCK is typically driven by an external master (e.g., the southbridge or a dedicated microcontroller). The Am79C975 controller will drive the clock line low in order to insert wait states before it starts sending out data in response to a read. The frequency of the clock signal can vary between 10 KHz and 100 KHz and it can change from cycle to cycle. Note: MCLOCK is capable of running at a frequency as high as 1.25 MHz to allow for shorter production test time. MDATA SMIU Data Input/Output MDATA is the data pin of the serial management interface. MDATA can be driven by an external master (e.g., the mi cr oc ontr ol ler or sou thbr id ge) or by th e Am79C975 controller. The interface protocol defines exactly at what time Am79C975 has to listen to the MDATA pin and at what time the controller must drive the pin (see section Basic Operations for more details). MIRQ SMIU Interrupt Output MIRQ is an asynchronous attention signal that the Am79C975 controller provides to indicate that a management frame has been transmitted or received. The assertion of the MIRQ signal can be controlled by a global mask bit (MIRQEN) or individual mask bits (MRX_DONEM, MTX_DONEM), located in the Com- 246 Basic Operation The Serial Management Interface Unit (SMIU) of the Am79C975 controller uses a two pin interface to communicate with other devices. MCLOCK is the clock pin. MDATA is the data pin. Both signals are bussed and shared with other devices in the system. There is at least one master device in the system (e.g., a microcontroller). A master is a device that initiates a transfer and also provides the clock signal. The Am79C975 controller is always a slave device. The master starts a data transfer on the serial management bus by asserting the START condition. The START condition is defined as a HIGH to LOW transition on MDATA while MCLOCK is HIGH. Data will follow with the most significant bit (MSB) of a byte transferred first. Data can only change during the LOW period of MCLOCK and must be stable on the MDATA pin during the HIGH period of MCLOCK. Every byte of data must be acknowledged by the receiving device with the Acknowledge bit (ACK). ACK is defined as a LOW pulse on MDATA that follows the same timing as a regular data bit. In a write operation, the Am79C975 controller is the receiving device and it must generate ACK. In a read operation, the master is the receiving device and it must generate ACK. An inverted Acknowledge bit (NACK) is used to signal the transmitting device that the data transfer should terminate. A data transfer is ended when the master asserts the STOP condition. The STOP condition is defined as a LOW to HIGH transition on MDATA while MCLOCK is HIGH. Implementation note: The assertion of START forces the state machine in the decoder logic to look for the slave address of the Am79C975 device. The assertion of STOP forces the state machine to reset and to wait for the assertion of a START condition. The first byte in every data transfer is the 7-bit address of the Am79C975 device followed by the Read/Write bit. The MSB of the 7-bit address is the first bit on the MDATA line. A 0 in the Read/Write bit indicates a write operation from the master to the Am79C975 controller, a 1 indicates a read operation. The Am79C975 controller does not support the General Call address (00h). It will ignore the address by not asserting ACK. Am79C973/Am79C975 P R E L I M I N A R Y MDATA R/W MSB MCLOCK S 1 7-Bit Address 2 3 A A/A First Byte of Data ACK from the receiver 4 5 6 7 8 9 1 2 3-8 9 Star Condition 0=Write 1 = Read P Stop Condition 21510D-B74 Figure 70. Standard Data Transfer on the Serial Management Interface A data transfer that involves a change in the direction data is transferred is a more complex operation. An example is a data write transfer followed by a data read transfer. After finishing the data write transfer, the master must initiate the turn-around of the MDATA line by asserting a repeated START condition followed by a repeated 7-bit slave address and the READ bit. The MDATA Am79C975 controller will drive the MCLOCK line low in order to insert wait states before it starts driving the read data onto the MDATA pin., The master acts as the receiver and must generate ACK. (See section Byte Read Command or Block Read Command for more details). A Data 6 MCLOCK Data 7 8 9 S Wait State 1 Repeated Start Condition 2 21510D-B75 Figure 71. Data Transfer with Change in Direction (with wait state) Am79C975 Slave Address Register Access The default value for the 7-bit slave address of the Am79C975 SMIU is 5Bh. This is the address assigned for a device from the class Networking Controller by Phillips. The address value can be changed via the EEPROM. If bit 7 of EEPROM location 50h is set to 0, the default slave address will be used. Otherwise, bits 6-0 of EEPROM location 50h define the slave address for the SMIU. If a system uses multiple Am79C975 controllers, recommended values for the slave address of the other devices are 58h, 59h and 5Ah. The I2C specification allows for an unlimited number of bytes being transferred per data transfer. The SMB specification defines a set of commands that structure the data transfers and limit their length. The SMIU of the Am79C975 controller follows the SMB specification and implements a subset of the commands to allow access to the SMIU registers and internal memories. 7 6-0 D Slave Address D=0: Default address will be used as slave address D=1: Bits 6-0 define the slave address Write Byte Command The Write Byte command is used to write 1 byte of data to an SMIU register. The command starts with the START condition (S). The next 7 bits are the slave address of the Am79C975 controller, followed by a 0 bit to indicate a write operation (W). The Am79C975 controller will drive SDATA LOW for 1 bit time to acknowledge the first byte (A). The next 8 bits specify the address of the SMIU register (MReg) that is accessed, followed by another ACK from the Am79C975 controller. The third byte is the write data to the SMIU register, followed by ACK. The master terminates the transfer with the assertion of the STOP condition (P). Am79C973/Am79C975 247 P R E L I M I N A R Y 1 7 1 1 8 1 8 1 1 S Slave Address W A MReg Address A MReg Data A P Key: Master to Am79C975 controller Am79C975 controller to Master Figure 72. Write Byte Command Note that the Am79C975 controller does not validate the register address specified in the Write Byte command. A Write Byte command to a non-existing register, or to register that is read-only, or to one of the registers that require a Block Read or Write command may cause unexpected reprogramming of an SMIU register. Read Byte Command The Read Byte command is used to read 1 byte of data from an SMIU register. This command is more complex compared to the Write Byte command, since it involves a change in the direction of the data transfer. The command starts with the START condition (S). The next 7 bits are the slave address of the Am79C975 controller, followed by a 0 bit to indicate that the data transfer starts with a write operation from the master to the Am79C975 controller (W). The Am79C975 controller must acknowledge the first byte by driving MDATA LOW for 1 bit time (A). The next byte specifies the address of the SMIU register (MReg) that is accessed, followed by another ACK from the Am79C975 controller. The master initiates the turn-around of the transfer direction by asserting a repeated START condition, followed by the repeated 7-bit slave address. This time, the Read/Write bit is set to 1 to indicate that the next byte of data is d r i ve n by th e A m 7 9 C 9 7 5 c o n tr o l l e r ( R) . T h e Am79C975 controller acknowledges the transfer and then drives the one byte of register data onto the MDATA line. The acknowledge for the register data is generated by the master, since he is the receiver of the data. The master generates a NACK (N) to force the Am79C975 controller to stop driving the MDATA line since the data transfer consists of only one byte. The Read Byte command terminates with the assertion of the STOP condition (P) by the master. 1 7 1 1 8 1 1 7 1 1 8 S Slave Address W A MReg Address A S Slave Address R A MReg Data 1 1 N P Key: Master to Am79C975 controller Am79C975 controller to Master Figure 73. Read Byte Command Note: The Am79C975 controller does not validate the register address specified in the Read Byte command. A Read Byte command to a non-existing register, or to register that is write-only, or to one of the registers that require a Block Read or Write command will yield undefined data. If the second slave address in the Read Byte Command is not the one of the Am79C975 controller, the device will release the MDATA line to generate a NACK. The master, receiving the NACK, must abort the cycle by generating a STOP condition. 248 Block Write Command The Block Write command is used to write data to the SMIU Transmit Data memory or to the Receive Pattern RAM. The command starts with the START condition (S). The next 7 bits are the slave address of the Am79C975 controller, followed by a 0 bit to indicate a write operation (W). The next byte specifies the address of the SMIU register (MReg) that is accessed. The address of the Receive Pattern RAM Data port (34) or the address of the Transmit Data port (36) is the only valid values for the MReg address. The third byte Am79C973/Am79C975 P R E L I M I N A R Y of the Block Write command specifies the byte count. The byte count value is ignored by the Am79C975 controller. The device is capable of receiving any amount of data even passed the limit of 32 bytes as defined by the SMB specification. Since the Am79C975 controller is the receiver of all data transfers, it must acknowledge each byte by driving the MDATA line LOW for 1 bit time (A). The master indicates the termination of the Block Write command with the assertion of the STOP condition (P). Note that the Am79C975 controller does not validate the register address specified in the Block Write command. A Block Write command to a register other than the Transmit Data port or the Receive Pattern RAM Data port may cause unexpected reprogramming of an SMIU register. The Am79C975 controller also does not check the length of the Block Write command. The master must make sure that the Transmit Data memory or the Receive Pattern RAM are not written beyond their respective length. 1 7 1 1 8 1 8 1 S Slave Address W A MReg Address A Byte Count N A 8 1 Data Byte 1 A .... 8 1 1 Data Byte N A P Key: Master to Am79C975 controller Am79C975 controller to Master Figure 74. Block Write Command Block Read Command The Block Read command is used to read data from the SMIU Receive Data memory. This command is more complex compared to the Block Write command, since it involves a change in the direction of the data transfer. The command starts with the START condition (S). The next 7 bits are the slave address of the Am79C975 controller, followed by a 0 bit to indicate that the data transfer starts with a write operation from the mas ter to the A m79 C975 c ontr ol ler (W ) . Th e Am79C975 controller must acknowledge the first byte by driving MDATA LOW for 1 bit time (A). The next byte specifies the address of the SMIU register (MReg) that is accessed, followed by another ACK from the Am79C975 controller. The address of the Receive Data port (40), is the only valid value for the MReg address. The master initiates the turn-around of the transfer direction by asserting a repeated START condition, followed by the repeated 7-bit slave address. This time, the Read/Write bit is set to 1 to indicate that the next bytes of data are driven by the Am79C975 controller (R). The Am79C975 controller acknowledges the transfer and then continues driving the MDATA line. The first byte is the byte count indicating how many bytes of data will follow. The byte count field will indicate 32 in all but the last transaction, in which the byte count field will indicate the remaining bytes of the frame. This time, the ACK is generated by the master, since he is the receiver of the data. Receive data will follow. Being the receiver, the master must ACK each byte by driving the MDATA line LOW for 1 bit time. The last byte, however, must be followed by a NACK (N) to force the Am79C975 controller to stop driving the MDATA line. The Am79C975 device is capable of a block read past the 32 byte limit that is indicated in the byte count field. If the host does not assert NACK after the 32nd byte, the Am79C975 controller will continue driving receive data onto the MDATA line until the host asserts NACK. If the master runs out of storage space for the incoming data, he can abort the data transfer after any byte by asserting NACK. The Block Read command terminates with the assertion of the STOP condition (P) by the master. Note: The Am79C975 controller does not validate the register address specified in the Block Read command. A Block Read command to a register other than the Receive Data port will yield unexpected data. The master must also make sure to only issue a Block Read command when there is data left in the Receive Data memory. Am79C973/Am79C975 249 P R E L I M I N A R Y If the second slave address in the Block Read Command is not the one of the Am79C975 controller, the device will release the MDATA line to generate a NACK. The master, receiving the NACK, must abort the cycle by generating a STOP condition. 1 7 1 1 8 1 1 7 1 1 S Slave Address W A MReg Address A S Slave Address R A 8 1 1 Data Byte N N P 8 1 8 1 Byte Count N A Data Byte 1 A .... Key: Master to Am79C975 controller Am79C975 controller to Master Figure 75. Block Read Command Detailed Functions Global Enable/Disable Bit 15 (SMIUEN) in BCR2 is used to enable/disable the Serial Management Interface Unit in the Am79C975 controller. If SMIUEN is set to 0 (default), the SMIU is disabled. If SMIUEN is set to 1, the SMIU is enabled. BCR2 is programmable via the EEPROM. Identification The SMIU of the Am79C975 controller provides a comprehensive set of registers that allow the identification of the device. ID information includes Vendor ID, Device ID and Revision ID. In addition, the Subsystem Vendor ID and Subsystem ID allow a system manufacturer to differentiate his product from a product by another vendor who is also using the Am79C975 controller. All SMIU ID registers are shadow registers of the respective PCI registers and can be initialized via the EEPROM (with the exception of the Revision ID). The host can verify that the registers are correctly initialized from the EEPROM by checking the PVALID bit in the SMIU Am79C975 Status register. Note that the SMIU is not accessible while the Am79C975 controller is reading the content of the EEPROM after H_RESET (for ~ 1.7 ms). The device will not drive the Acknowledge bit during that time and the access by the master will time-out. SMIU Bus Frequency The SMIU operating frequency is set by programming BCR2 register bits. The equation for SMIU bus frequency is FI2C = 2500/(M+1)*2N+1 kHz, assuming that a 25 MHz crystal has been used. The maximum value of M is F (Hex) and N is 7 (Hex). With different combinations of M and N, the SMIU bus frequency can vary from 0.5 kHz to 1.25 MHz. It should be noted that the frequencies that can be programmed through BCR2 are not continuous. For example, say FI2C = 10 kHz, then (M+1)*2N+1 = 250. It is impossible to have such M and N combinations that make an exact 250. With M = E (Hex) and N = 3 (Hex), we get FI2C = 10.41, which will work with a 10 kHz bus frequency. The following is a list of BCR2 contents for various SMIU bus frequencies. BCR2 (Hex) FI2C (kHz) Initialization A643 10 The SMIU of the Am79C975 controller does not require any complex initialization in order to transmit or receive management frames. Only the acknowledgment frame filter needs to be setup in order to receive incoming frames (see section Receive Operation later). A463 13 A642 20 A422 30 A641 40 A461 50 A202 60 A640 80 A460 100 The host should check the content of the Transceiver Status register to make sure the Am79C975 controller is connected to a network (LINK set to 1), before any transmit or receive operation is started. 250 Am79C973/Am79C975 P R E L I M I N A R Y Notes: 1. Bit 15 and 13 are default 1. Transmit Operation 2. M = bit (10, 9, 6, 5) and N = bit (4, 1, 0). The System Management Interface Unit (SMIU) of the Am79C975 controller provides a separate 128-byte Transmit Data memory to setup a management or alert frame for transmission. The host must load the frame byte by byte using one or multiple Block Write commands to the Transmit Data port. The command code of the Block Write command must be set to 36, the address of the Transmit Data port. The byte count field can have any value since it is ignored by the Am79C975 controller. The device is capable of receiving any amount of transmit data even passed the limit of 32 bytes as defined by the SMB specification. The location within the Transmit Data memory where the next byte is written to is controlled by the SMIU Transmit Address register (MTX_ADR). This register will come up cleared to 0 after H_RESET. With every byte write the address register will auto-increment. This allows a FIFO-type access to the Transmit Data memory and the host does not need to keep track of the location he is writing to. In addition, MTX_ADR can be set to any address within the Transmit Data memory in order to modify a specific location. The host must load all frame information starting from the destination address and ending with the last byte of data. The FCS is automatically appended by the Am79C975 controller. The host must load at least 60 bytes to the Transmit Data memory in order to create a legal length frame. Padding is not suppor ted by the SMIU. The setting of the APAD_XMT bit in CSR4 only effects the transmission of normal frames and not of management frames. 3. Similarly, other FI2C can be programmed with proper combinations of M and N. BCR2 Register Bits for setting SMIU Frequency BCR2 (Bit No.) Name Position 10 I2C_M3 D6 9 I2C_M2 D5 6 I2C_M1 D4 5 I2C_M0 D3 4 I2C_N2 D2 1 I2C_N1 D1 0 I2C_N0 D0 The frequency at which the SMIU will operate is calculated using the following expression: F I2C = 2500/ (M+1)*2N+1 kHz. Where: FI2C is the desired frequency (10-100 kHz) M is the value stored in bits D3-D6 N is the value stored in bits D0-D2. Status The SMIU of the Am79C975 controller provides two registers to determine the status of the device. The Am79C975 Status register indicates the status of the current power state of the device (D0-D3). The power state itself has no affect on the operation of the SMIU. The management interface will operate in any power state, as long as power is provided, i.e. operation in D3cold is not possible. The Am79C975 Status register also indicates the status of the normal operation of the device. The register contains bits to indicated if the controller is stopped or started and if the transceiver and receiver are enabled. The Transceiver Status register provides the status of the physical layer interface that is integrated into the Am79C975 controller. The host can read this register to determine if the controller is connected to an active network (LINK set to 1), the speed of the connection (100 Mbps: SPEED=1, 10 Mbps: SPEED=0) and if the connection is half duplex (DUPLEX=0) or full duplex (DUPLEX=1). In most cases, the transceiver will be configured using the autonegotiation process. AUTONEG_DONE will be set to ONE, when autonegotiation with the other end of the network cable has completed. LINK, SPEED and DUPLEX reflect the result of the autonegotiation process. If AUTONEG_DONE is ZERO, the LINK, SPEED and DULPEX bits reflect the status of a manual transceiver configuration. The SMIU provides a set of registers that contain network address information. The address information can be used to setup the alert frame. The six Node IEEE Address registers contain the unique 48-bit address of the station, the Am79C975 controller is used in. The four Node IP Address registers contain the 32-bit IP address of that station. The six Management Station IEEE Address registers contain the unique 48-bit address of the station that is used as the management console in the network. The four Management Station IP Address registers contain the 32-bit IP address of the management console. All 3 sets of registers are loaded from the EEPROM. The Node IP Address, Management IEEE Address and Management IP Address registers can also be used as general purpose registers to load information stored in the EEPROM and make it accessible via the serial management interface to the external host. The host must setup the Transmit Message Length register (MTX_LEN) with the number of bytes loaded to the Transmit Data memory so that the MAC knows how many bytes to transmit. The host is responsible to load a valid value into the Transmit Message Length register. Any value below 60 will create a runt frame on the Am79C973/Am79C975 251 P R E L I M I N A R Y network. Any value above 128 will create unpredictable results. Padding is not supported by the SMIU. (MTX_ERR). The transmit status bits remain valid as long as the MTX_START bit is set to 0. Once the Transmit Data memory is filled with the data of the alert frame and the Transmit Message Length register is setup with the length of the alert frame, the host must set the MTX_START bit in the Transmit Status register to start the transmission. The Am79C975 controller will transmit the alert frame after any pending frame transmission (including retries) has completed. The host can poll the MTX_DONE bit in the Interrupt register to determine if the transmission of the alert frame has already ended. The MTX_DONE bit will be set to a 1 after the end of transmission, independent of the success of the operation. The MTX_DONE bit will auto-clear after reading the Interrupt register. The Transmit Retry Error condition requires special attention. It can happen, that the START or STOP bit is set in the Am79C975 controller to change normal operation. START and STOP cause a reset of the transmit logic. Normal transmission of an alert frame will succeed. If, however, the SMIU is in the middle of a backoff interval or the transmission of the alert frame is suffering a collision, the transmission will abort and the MTX_RTRY bit will be set. If MTX_RTRY is set in the SMIU Transmit Status register, the host should retransmit the frame. The MTX_ADR register is cleared by setting the MTX_START bit. The host must not load data for a new alert frame into the Transmit Data memory until the transmission of the current frame is ended as indicated by the MTX_DONE bit. It is possible to issue a new MTX_START command without loading new data to the Transmit Data memory or updating the MTX_LEN register. The System Management Interface Unit (SMIU) of the Am79C975 controller provides a separate 128-byte Receive Data memory to store an incoming management or acknowledgment frame. The normal receive address matching mechanism (physical address, logical address, broadcast address) of the MAC cannot be used by the SMIU. The Am79C975 controller provides an Acknowledgment Frame Filter instead. The filter is stored in a 40-byte Receive Pattern RAM. The Am79C975 controller provides an asynchronous interrupt pin to signal the host that the transmission of the alert frame is complete. After the end of the transmission, the MIRQ pin will be asserted, if the global interrupt enable bit MIRQEN in the Command register is set to a 1 and the transmit interr upt mask bit (MTX_DONEM) is cleared to 0 (default state). Once MIRQ is asserted, the host can read the MTX_DONE bit in the Interrupt register to determine that the interrupt was caused by the end of the transmission. The read of the Interrupt register will clear the MTX_DONE bit and cause the deassertion of the MIRQ pin. The Interrupt register also provides a global interrupt bit M IR Q th a t i s t h e O R o f t h e M TX _ D O NE a n d MRX_DONE bits. Once the MTX_DONE bit indicates that the transmission of the alert frame has ended, MTX_START is cleared and the SMIU Transmit Status register provides the error status for the transmission. Three error conditions are reported: Late Collision, Loss of Carrier and Retr y Error. There is also an error summary bit Receive Operation The Receive Pattern RAM is organized as 8 pattern words of 5 bytes each. Each pattern word holds four bytes of data to be compared with the incoming frame plus mask information that indicates which bytes should be included in the comparison. The pattern word also contains a field that indicates how many Dwords of the incoming frame should be skipped before this Dword of pattern is compared with frame data. This field makes it unnecessary to store data for long series of bytes that will be excluded from the comparison anyway. A maximum of 7 Dwords (28 bytes) can be skipped. If the filter pattern contains a string of more than 7 Dwords that must be excluded from the comparison, one or more pattern words will be loaded with the value 7h in the Skip field and 0h in the Mask field. Finally the most significant bit of the pattern word indicates whether or not this word is the end of the stored pattern. The format of the pattern words is shown below. Bits Name Description 31:0 Pattern Bytes of data to be compared with the incoming frame. The least significant byte corresponds to the first byte of the Dword received from the network. 35:32 Mask Bits 3:0 of this field correspond to bytes 3:0 of the pattern field. If bit n of this field is 0, byte n of the pattern is ignored in the comparison. 38:36 Skip This field indicates how many Dwords of the incoming frame must be skipped before the pattern in this word is compared with data from the incoming frame. A maximum of 7 Dwords may be skipped per pattern word. 39 EOP End of Pattern. If this bit is set, this pattern word contains the last Dword of the frame filter. 252 Am79C973/Am79C975 P R E L I M I N A R Y The host must load the Receive Pattern RAM using one or multiple Block Write commands to the Receive Pattern RAM Data port. The command code of the Block Write command must be set to 34, the address of the Receive Pattern RAM Data port. The byte count field can have any value since it is ignored by the Am79C975 controller. The device is capable of receiving any amount of frame filter bytes even passed the limit of 32 bytes as defined by the SMB specification. The location within the Receive Pattern RAM where the next byte is written to is controlled by the Receive Pattern RAM Address register (MRX_PADR). This register will come up cleared to 0 after H_RESET. With every byte write the address register will auto-increment. This allows a FIFO-type access to the Receive Pattern RAM and the host does not need to keep track of the location he is writing to. In addition, MRX_PADR can be set to any address within the Receive Pattern RAM in order to modify a specific location. The sequence the Receive Pattern RAM must be written is LSB (bits 7:0) of the first pattern word, followed by bits 15:8 of the first Frame Offset Offset + Offset + Offset + Offset + 0 1 2 3 pattern word. The first pattern word is followed by the second pattern word. The host need not write all 8 pattern words. The last pattern word must have the EOP bit set, even if the pattern word number 8 is the last one. Words following the EOP bit are ignored. The host must make sure that no more than 40 bytes are written to the Receive Pattern RAM. When MRX_ENABLE is set to 1, the MRX_PADR register will clear to 0 and no write to the Receive Pattern RAM may occur. A new acknowledgment frame filter can be written to the Receive Pattern RAM after disabling the receiver by setting MRX_ENABLE to 0. The table below shows how a sample pattern would be stored in the Receive Pattern RAM. Note that in the 4 columns containing the frame data, the byte in the leftmost column is closer to the start of the frame than the byte in the rightmost column. The 4 columns showing pattern data stored in the RAM show the least significant byte of the RAM word in the rightmost column. RAM Word EOP Skip Mask Pattern 0 00 00 1A 00 1 0 0 1111 00 1A 00 00 4 E0 1B xx xx 2 0 0 0011 xx xx 1B E0 8 xx xx xx xx 12 08 06 xx xx 3 0 1 0011 xx xx 06 08 16 xx xx xx xx 20 xx 01 xx xx 4 0 1 0010 xx xx 01 xx 24 xx xx xx xx 28 xx xx xx xx 32 xx xx xx xx 36 xx xx 9d 37 5 0 3 1100 37 9d xx xx 40 c7 48 xx xx 6 1 0 0011 xx xx 48 c7 Once the acknowledgment frame filter has been loaded to the Receive Pattern RAM, the host must set the MRX_ENABLE bit in the Receive Status register to enable the reception of acknowledgment frames. When an incoming frame passes the acknowledgment frame filter, the Am79C975 controller will store the frame data in the Receive Data memory. Runt frames (frames shorter than 64 bytes) are automatically deleted, unless MRX_RPA (bit 2 in the SMIU Command register) is set to a 1. If the incoming frame is larger than 128 bytes (including FCS), the Am79C975 controller will only store the first 128 bytes and discard the rest. A message length between 129 and 132 bytes indicates that only FCS bytes have been lost and all message data bytes are available in the Receive Data memory. A message length greater than 132 indicates that message data bytes have been lost from the end of the message. The Receive Message Length register (MRX_LEN) will indicate the correct message length up to 255 bytes. It will freeze at 255 for longer frames. Pad stripping is not supported by the SMIU. The setting of the ASTRP_RCV bit in CSR4 only effects the reception of normal frames and not of acknowledgment frames. Note that if the main receiver of the Am79C975 device is enabled, the acknowledgment frame will also be passed up to the network driver and from there to the protocol stack. The frame format of the acknowledgment frame should be designed such that it will be identified by the protocol stack as a special frame and thrown away. There will be no real performance impact Am79C973/Am79C975 253 P R E L I M I N A R Y since the frequency of the acknowledgment frames is very low. Once the receive activity has ended, the Am79C975 controller will set the MRX_DONE bit in the Interrupt register and clear the MRX_ENABLE bit in the Receive Status register. The MIRQ pin will be asserted, if the global interrupt enable bit MIRQEN in the Command register is set to a 1 and the receive interrupt mask bit (MRX_DONEM) is cleared to 0 (default state). Once MIRQ is asserted, the host can read the MRX_DONE bit in the Interrupt register to determine that the interrupt was caused by the end of the reception. The read of the Interrupt register will clear the MRX_DONE bit and cause the deassertion of the MIRQ pin. The Interrupt register also provides a global interrupt bit MIRQ that is the OR of the MRX_DONE and MTX_DONE bits. Once the MRX_DONE bit indicates that the reception of the acknowledgment frame has ended, the Receive Status register provides the error status for the reception. Two error conditions are reported: Framing Error and Frame Check Sequence Error. There is also an error summary bit (MRX_ERR). The receive status bits remain valid as long as the MRX_ENABLE bit is set to 0. The host has the option to discard an erroneous frame by simply not reading the receive data and unprotecting the Receive Data memory by setting the MRX_ENABLE bit. The host must read the Receive Message Length register in order to determine the length of the frame. The data from the Receive Data memory is read byte by byte using one or multiple Block Read commands from the Receive Data port. The command code of the Block Read command must be set to 40, the address of the Receive Data port. The Am79C975 controller will indicate in the byte count field the number of bytes that will follow. The byte count field will indicate 32 in all but the last transaction in which the byte count field will indicate the remaining bytes of the frame. The device is capable of transferring data beyond the 32 byte mark. If the host does not assert NACK after the 32nd byte, the Am79C975 controller will continue driving receive data onto the MDATA line until the host asserts NACK. If the master does not have enough buffer space for the incoming data, it can abort the data transfer after any byte. The Am79C975 controller will start the next Block Read command with the remaining data. The location within the Receive Data memory from where the next byte is read is controlled by the Receive Address register. This register will come up cleared to 0 after H_RESET. With every byte read the address register will auto-increment. This allows a FIFO-type access to the Receive Data memory and the host does not need to keep track of the location he is reading from. In addition, MRX_ADR can be set to any address within the Receive Data memory in order to read a specific loca- 254 tion or to start the receive data read from an arbitrary address inside the Receive Data memory. Note, that the byte count field in the Block Read command will only reflect the correct amount of transfer data if the access starts at Receive Data memory address 0. If MRX_ADR is manually changed, the byte count field should be ignored. The host must use the Receive Message Length register (MRX_LEN) to determine the length of the data read operation. Data will be undefined, if the host reads further than the Receive Message Length register is indicating. The Receive Data memory will be protected from overwriting by another frame, until the host enables the next receive by setting the MRX_ENABLE bit the Receive Status register. The operation will also clear the Receive Address register. Loopback Operation The SMIU provides a looback mode for diagnostic purposes. If MLOOP in the Command register is set to 1, the receive path is not being blocked while the device is transmitting in half-duplex mode. Receive is never blocked in full-duplex mode and MLOOP has no effect in this mode. For loopback operation, transmit data must be sent back to the receiver. This is done at the transceiver by either using an external loopback connector or by programming the transceiver for loopback mode. The programming must be done using the Am79C975 CSR/ BCR register interface. This limits the SMIU loopback mode to a debug or manufacturing test environment. User Accessible Registers The Serial Management Interface Unit (SMIU) of the Am79C975 controller provides four types of user accessible registers: device ID registers, node address registers, device status registers and control and status registers. Most registers are accessible via the Read Byte and/or Write Byte commands. Only the access to the Transmit and Receive Data port as well as to the Receive Pattern RAM Data port is performed as a Block Read or Block Write command. In all commands, the command code is interpreted as the address of the register. Device ID Registers The following register allow the unique identification of the Am79C975 device in a system. SMIU Vendor ID Register 0 (MReg Address 0) This register is a shadow register of the PCI Vendor ID Register bits 7:0. The PCI Vendor ID Register is loaded from the EEPROM. Name and Description Bit No. 7:0 MVENDOR_ID[7:0] Am79C973/Am79C975 P R E L I M I N A R Y Default: 22h Read only, write has no effect. These are the lower 8-bits of a register that identifies AMD as the manufacturer of the Am79C975 device. SMIU Vendor ID Register 1 (MReg Address 1) This register is a shadow register of the PCI Vendor ID Register bits 15:8. The PCI Vendor ID Register is loaded from the EEPROM. Bit No. 7:0 bits are silicon-revision dependent. The initial revision value will be 40h. SMIU Subsystem Vendor ID Register 0 (MReg Address 5) This register is a shadow register of the PCI Subsystem Vendor ID Register bits 7:0. The PCI Subsystem Vendor ID Register is loaded from the EEPROM. 7:0 Name and Description These are the upper 8-bits of a register that identifies AMD as the manufacturer of the Am79C975 device. SMIU Device ID Register 0 (MReg Address 2) This register is a shadow register of the PCI Device ID Register bits 7:0. 7:0 Name and Description This register is a shadow register of the PCI Subsystem Vendor ID Register bits 15:8. The PCI Subsystem Vendor ID Register is loaded from the EEPROM. 7:0 Name and Description MSUBVEN_ID[15:8] Default: 00h Read only, write has no effect. Default: 00h Read only, write has no effect These are the lower 8-bits of a register that identifies the Am79C975 device within AMD's product line. These are the upper 8-bits of a register that together with the Subsystem ID uniquely identifies the add-in card or subsystem the Am79C975 device is used in. Name and Description MDEVICE_ID[15:8] SMIU Subsystem ID Register 0 (MReg Address 7) This register is a shadow register of the PCI Subsystem ID Register bits 7:0. The PCI Subsystem ID Register is loaded from the EEPROM. Name and Description Bit No. Default: 20h Read only, write has no effect 7:0 These are the upper 8-bits of a register that identifies the Am79C975 device within AMD's product line. This register is a shadow register of the PCI Revision ID Register. 7:0 MSUBSYS_ID[7:0]Default: write has no effect 00hRead only, These are the lower 8-bits of a register that together with the Subsystem Vendor ID uniquely identifies the add-in card or subsystem the Am79C975 device is used in. SMIU Revision ID Register (MReg Address 4) Bit No. only, SMIU Subsystem Vendor ID Register 1 (MReg Address 6) Bit No. MDEVICE_ID[7:0] This register is a shadow register of the PCI Device ID Register bits 15:8. 7:0 00hRead These are the lower 8-bits of a register that together with the Subsystem ID uniquely identifies the add-in card or subsystem the Am79C975 device is used in. SMIU Device ID Register 1 (MReg Address 3) Bit No. MSUBVEN_ID[7:0]Default: write has no effect MVENDOR_ID[15:8] Default: 10h Read only, write has no effect. Bit No. Name and Description Bit No. SMIU Subsystem ID Register 1 (MReg Address 8) This register is a shadow register of the PCI Subsystem Vendor ID Register bits 15:8. The PCI Subsystem ID Register is loaded from the EEPROM. Name and Description MREVISION_ID Default: 40h Read only, write has no effect Bit No. This 8-bit register specifies the Am79C975 controller revision number. The upper 4 bits of the register value are fixed to 4h, the lower four 7:0 Name and Description MSUBSYS_ID[15:8] Default: 00h Read only, write has no effect. Am79C973/Am79C975 255 P R E L I M I N A R Y These are the upper 8-bits of a register that together with the Subsystem Vendor ID uniquely identifies the add-in card or subsystem the Am79C975 device is used in. Node IEEE Address 3 (MReg Address 12) This register is a shadow register of the APROM location 03h. APROM location 03h is loaded from the EEPROM. Node ID Registers Bit No. The following registers provide the IEEE and IP addresses of the node using the Am79C975 devices, as well as of the management station. 7:0 Byte 3 of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. This register is a shadow register of the APROM location 00h. APROM location 00h is loaded from the EEPROM. 7:0 Node IEEE Address 4 (MReg Address 13) Name and Description N_IEEE_ADR[7:0] Default: 00h Read only, write has no effect. Byte 0 (the LSB) of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. This register is a shadow register of the APROM location 04h. APROM location 04h is loaded from the EEPROM. 7:0 Byte 4 of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. Node IEEE Address 5 (MReg Address 14) Name and Description N_IEEE_ADR[15:8] Default: 00h Read only, write has no effect. Byte 1 of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. This register is a shadow register of the APROM location 05h. APROM location 05h is loaded from the EEPROM. 7:0 Byte 5 (the MSB) of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. Node IP Address 0 (MReg Address 15) Name and Description This register is loaded from the EEPROM. N_IEEE_ADR[23:16] Default: 00h Read only, write has no effect. Name and Description Bit No. 7:0 Byte 2 of the Node IEEE Address register. The Node IEEE Address is the unique 48-bit address of the station, the Am79C975 controller is used in. 256 N_IEEE_ADR[47:40] Default: 00h Read only, write has no effect. This register is a shadow register of the APROM location 02h. APROM location 02h is loaded from the EEPROM. 7:0 Name and Description Bit No. Node IEEE Address 2 (MReg Address 11) Bit No. N_IEEE_ADR[39:32] Default: 00h Read only, write has no effect. This register is a shadow register of the APROM location 01h. APROM location 01h is loaded from the EEPROM. 7:0 Name and Description Bit No. Node IEEE Address 1 (MReg Address 10) Bit No. N_IEEE_ADR[31:24] Default: 00h Read only, write has no effect. Node IEEE Address 0 (MReg Address 9) Bit No. Name and Description N_IP_ADR[7:0]Default: 00hRead only, write has no effect. Byte 0 (the LSB) of the Node IP Address register. The Node IP Address is the 32-bit address used in the IP protocol header to address the station, the Am79C975 controller is used in. This register can also be used as general pur- Am79C973/Am79C975 P R E L I M I N A R Y pose 8-bit register that is loaded from the EEPROM. Byte 0 (the LSB) of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Node IP Address 1 (MReg Address 16) This register is loaded from the EEPROM. Bit No. 7:0 Name and Description N_IP_ADR[15:8] Default: 00h Read only, write has no effect. Byte 1 of the Node IP Address register. The Node IP Address is the 32-bit address used in the IP protocol header to address the station, the Am79C975 controller is used in. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Management Station IEEE Address 1 (MReg Address 20) This register is loaded from the EEPROM. 7:0 Byte 1 of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. This register is loaded from the EEPROM. 7:0 M_IEEE_ADR[15:8] Default: 00h Read only, write has no effect. Node IP Address 2 (MReg Address 17) Bit No. Name and Description Bit No. Name and Description N_IP_ADR[23:16] Default: 00h Read only, write has no effect. Byte 2 of the Node IP Address register. The Node IP Address is the 32-bit address used in the IP protocol header to address the station, the Am79C975 controller is used in. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Management Station IEEE Address 2 (MReg Address 21) This register is loaded from the EEPROM. 7:0 Byte 2 of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. This register is loaded from the EEPROM. 7:0 Name and Description N_IP_ADR[31:24] Default: 00h Read only, write has no effect. Byte 3 (the MSB) of the Node IP Address register. The Node IP Address is the 32-bit address used in the IP protocol header to address the station, the Am79C975 controller is used in. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. This register is loaded from the EEPROM. 7:0 Name and Description M_IEEE_ADR[7:0]Default: write has no effect. 00hRead Management Station IEEE Address 3 (MReg Address 22) This register is loaded from the EEPROM. Name and Description Bit No. 7:0 M_IEEE_ADR[31:24] Default: 00h Read only, write has no effect. Management Station IEEE Address 0 (MReg Address 19) Bit No. M_IEEE_ADR[23:16] Default: 00h Read only, write has no effect. Management Station IP Address 3 (MReg Address 18) Bit No. Name and Description Bit No. only, Byte 3 of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Am79C973/Am79C975 257 P R E L I M I N A R Y Management Station IEEE Address 4 (MReg Address 23) Default: 00h Read only, write has no effect. Byte 1 of the Management Station IP Address register. The Management Station IP Address is the 32-bit address used in the IP protocol header to address the station that functions as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. This register is loaded from the EEPROM. Bit No. 7:0 Name and Description M_IEEE_ADR[39:32] Default: 00h Read only, write has no effect. Byte 4 of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Management Station IP Address 2 (MReg Address 27) This register is loaded from the EEPROM. Name and Description Bit No. 7:0 M_IP_ADR[23:16] Management Station IEEE Address 5 (MReg Address 24) Default: 00h Read only, write has no effect. This register is loaded from the EEPROM. Byte 2 of the Management Station IP Address register. The Management Station IP Address is the 32-bit address used in the IP protocol header to address the station that functions as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Bit No. 7:0 Name and Description M_IEEE_ADR[47:40] Default: 00h Read only, write has no effect. Byte 5 (the MSB) of the Management Station IEEE Address register. The Management Station IEEE Address is the unique 48-bit address of the station that is used as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Management Station IP Address 0 (MReg Address 25) Management Station IP Address 3 (MReg Address 28) This register is loaded from the EEPROM. 7:0 7:0 Byte 3 (the MSB) of the Management Station IP Address register. The Management Station IP Address is the 32-bit address used in the IP protocol header to address the station that functions as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Name and Description M_IP_ADR[7:0] Default: 00h Read only, write has no effect. Byte 0 (the LSB) of the Management Station IP Address register. The Management Station IP Address is the 32-bit address used in the IP protocol header to address the station that functions as the management console in the network. This register can also be used as general purpose 8-bit register that is loaded from the EEPROM. Management Station IP Address 1 (MReg Address 26) This register is loaded from the EEPROM. Bit No. 7:0 258 Name and Description M_IP_ADR[15:8] M_IP_ADR[31:24] Default: 00hRead only, write has no effect. This register is loaded from the EEPROM. Bit No. Name and Description Bit No. Device Status Registers The following registers allow to determine the status of the Am79C975 device as it relates to the normal mode of operation (i.e. not related to the Serial Management Am79C975 Unit). SMIU Am79C975 Status (MReg Address 29) This register is a shadow register of some bits in CSR0, BCR19 and some bits in the PCI PCMCSR register. Name and Description Bit No. 7:6 POWERSTATE Am79C973/Am79C975 P R E L I M I N A R Y Default: 00 Read only, write has no effect. This two bit field indicates the current power state of the Am79C975 controller. The definition of the field values is given below: 00b - D0 01b - D1 10b - D2 11b - D3 5 4 Reserved bits. For future use only 7:4 PVALID effect. Read only, write has no effect. Default: 0 Read only, write has no effect. When STOP is set to a 1, it indicates that all bus master activity of the Am79C975 controller is disabled. STOP is set to 1 by H_RESET. STRT Read only, write has no effect. When LINK is set to 1, it indicates that the physical layer interface of the Am79C975 controller is in Link Pass state. A value of 0 indicates a Link Fail state. 2 DUPLEX Default: 0 Read only, write has no effect. When DULPEX is set to 1, it indicates that the physical layer interface is operating in full-duplex mode. A value of 0 indicates half-duplex mode. 1 SPEED Read only, write has no effect. When SPEED is set to 1, it indicates that the physical layer interface is operating at 100 Mbps. A value of 0 indicates a speed of 10 Mbps. Read only, write has no effect. STOP Default: 0 LINK Default: 0 When TXON is set to a 1, it indicates that the transmit function for normal operation is enabled. Note that the transmission of management frames via the SMIU is always active, independent of the state of TXON. TXON is cleared by H_RESET. 0 3 TXON Default: 1 RESERVED Reserved bits. For future use only RXON Default: 0 Name and Description Default: 0000Read as ZERO only Default: 0Read only, write has no When RXON is set to a 1, it indicates that the receive function for normal operation is enabled. Note that the reception of management frames via the SMIU is only controlled by the MRX_ENABLE bit in the Receive Status register, but not of the state of RXON. RXON is cleared by H_RESET. 1 This register is a shadow register of some bits in the transceiver status register. Bit No. Default: 0 2 MIU Transceiver Status (MReg Address 30) RESERVED Default: 0Read as ZERO only When PVALID is set to a 1, it indicates that there is an EEPROM connected to the Am79C975 controller and that the read operation of the EEPROM has passed the checksum verification. All registers that are loaded from the EEPROM contain data read from the EEPROM. PVALID is cleared by H_RESET. 3 When STRT is set to a 1, it indicates that the Am79C975 controller is initialized for normal mode of operation and that the device is setup to perform bus master activity. STRT is cleared by H_RESET. 0 AUTONEG_DONEDefault: 0Read only, write has no effect. When AUTONEG_DONE is set to 1, it indicates that the autonegotiation process of the physical layer interface with the other end of the network cable has completed. Control and Status Registers The following registers control the transmission and reception of management frames and provide status of the operation. Read only, write has no effect. Am79C973/Am79C975 259 P R E L I M I N A R Y SMIU Command Register (MReg Address 31) Bit No. 7 Name and Description MIRQEN Default: 0 Read/Write MIRQEN allows the MIRQ pin to be active if the interrupt flag MIRQ in the SMIU Interrupt register is set. If MIRQEN is cleared to 0, the MIRQ pin will be disabled regardless of the state of MIRQ. MRIRQEN is cleared by H_RESET. 6 When MRX_RPA is set to a 1, the Am79C975 controller will accept runt frames (frames shorter than 64 bytes) that pass the acknowledgment frame filter. MRX_RPA is cleared by H_RESET. 1:0 Default: 00 Read/Write as ZERO only Reserved bits. For future use only SMIU Interrupt Register (MReg Address 32) Name and Description Bit No. MTX_DONEM 7 Default: 0 RESERVED MIRQ Read/Write Default: 0 If MTX_DONEM is set to a 1, the MTX_DONE bit in the SMIU Interrupt register will be masked and unable to set the MIRQ bit. MTX_DONEM is cleared by H_RESET. 5 MIRQ indicates that one of the following interrupt causing conditions has occurred: MTX_DONE or MRX_DONE and the associated mask bit is programmed to allow the event to cause an interrupt. If the MIRQEN bit in the SMIU Command register is set to 1 and MIRQ is set, the MIRQ pin will be active. MIRQ is cleared by clearing all the active individual interrupt bits that have not been masked out, i.e. MIRQ will clear after reading the Interrupt register. MIRQ is also cleared by H_RESET. MRX_DONEM Default: 0 Read/Write If MRX_DONEM is set to a 1, the MRX_DONE bit in the SMIU Interrupt register will be masked and unable to set the MIRQ bit. MRX_DONEM is cleared by H_RESET. 4 6 RESERVED Default: 0 Read/Write If MLOOP is set to 0, transmit frames will be blocked from being received back, in case the transceiver loops back the data. Setting MLOOP to 1 enables loopback mode. All data that is transmitted will be received back, if the transceiver loop backs the data and the data passes the acknowledgment frame filter. The transceiver loopback can be achieved by programming the device into loopback mode or by using an external loopback connector. MLOOP has no effect., when the Am79C975 controller is configured for full-duplex operation. Receives are never blocked in full-duplex mode. MLOOP is cleared by H_RESET. 2 260 5 Read/Write MRX_DONE Default: 0 Read clear, write has no effect. MRX_DONE is set by the Am79C975 controller after an acknowledgment frame has been received. When MRX_DONE is set, the MIRQ pin is asserted if MIRQEN is set to a 1 and the mask bit MRX_DONEM in the SMIU Command register is 0. MRX_DONE is automatically cleared after reading the Interrupt register. MRX_DONE is also cleared by H_RESET. MRX_RPA Default: 0 Read clear, write has no effect. MTX_DONE is set by the Am79C975 controller after an alert frame has been transmitted. When MTX_DONE is set, the MIRQ pin is asserted if MIRQEN is set to a 1 and the mask bit MTX_DONEM in the SMIU Command register is 0. MTIRQ is automatically cleared after reading the Interrupt register. MTX_DONE is also cleared by H_RESET. MLOOP Default: 0 MTX_DONE Default: 0 Read/Write as ZERO only Reserved bit. For future use only 3 Read clear, write has no effect. 4:0 RESERVED Am79C973/Am79C975 P R E L I M I N A R Y Default: 00000Read as ZERO only SMIU Transmit Data Port (MReg Address 36) 7:0 SMIU Receive Pattern RAM Address Register (MReg Address 33) Bit No. 7:0 Name and Description Bit No. Reserved bits. For future use only MTX_DATA Default: undefined Write only, read has no effect. Name and Description This is the 8-bit data port used to write to the Transmit Data memory. MRX_PADR Default: 00h Read/Write The SMIU Receive Pattern RAM Address register contains the address of the location in the Receive Pattern RAM where the next byte of the Acknowledgment Frame Filter is written to. The register is cleared to 0 by H_RESET and every time the MRX_ENABLE bit is set to 1. The address register autoincrements with every byte write to the Receive Pattern RAM. This allows a FIFO-type access to the Receive Pattern RAM and the host does not need to keep track of the location he is writing to. In addition, MRX_PADR can be set to any address within the Receive Pattern RAM in order to modify a specific location. SMIU Transmit Message Length Register (MReg Address 37) Bit No. 7:0 7:0 The SMIU Transmit Message Length contains the number of bytes from the Transmit Data memory that will be transmitted by the Am79C975 controller as the alert frame. The 4 bytes of FCS checksum are not part of the memory content, but are calculated by the controller and appended to the frame. The host is responsible to load a valid value into the Transmit Message Length register. Any value below 60 will create a runt frame on the network. Any value above 128 will create unpredictable results. Name and Description MRX_PDATA Default: undefined SMIU Transmit Status Register (MReg Address 38) Read/Write 7 Read/Write When MTX_START is set to a 1, the Am79C975 controller will take the content of the SMIU Transmit Data memory and transmit the data as the next frame. Setting MTX_START will also clear the Transmit Address register. MTX_START is automatically cleared after every transmission. MTX_START is cleared by H_RESET. Name and Description MTX_ADR Default: 00h Read/Write The SMIU Transmit Address register contains the address of the location in the Transmit Data memory where the next byte of data is written to. The register is cleared to 0 by H_RESET and every time the MTX_START bit in the Transmit Status register transitions is set to 1. The address register auto-increments with every byte written to the Transmit Data memory. This allows a FIFO-type access to the Transmit Data memory and the host does not need to keep track of the location he is writing to. In addition, MTX_ADR can be set to any address within the Transmit Data memory in order to modify a specific location. MTX_START Default: 0 SMIU Transmit Address Register (MReg Address 35) 7:0 Name and Description Bit No. This is the 8-bit data port used to write to the Receive Pattern RAM. Bit No. MTX_ LEN Default: 00h Read/Write MIU Receive Pattern RAM Data Port (MReg Address 34) Bit No. Name and Description 6:4 RESERVED Default: 000 Read/Write as ZERO only Reserved bits. For future use only 3 MTX_LCOL Default: 0 Read only, write has no effect. Transmit Late Collision indicates that during the transmission of the alert frame a collision has occurred after the first slot time has Am79C973/Am79C975 261 P R E L I M I N A R Y elapsed. The Am79C975 controller will not retry the transmission on late collision. MTX_LCOL is valid while MTX_START is set to 0. MTX_LCOL is cleared by H_RESET. 2 7:0 Default: undefinedRead only, write has no effect. Read only, write has no effect. This is the 8-bit data port used to read from the Receive Data memory. SMIU Receive Message Length Register (MReg Address 41) MTX_RTRY 7:0 The SMIU Receive Message Length contains the length of the acknowledgment frame, including FCS. MRX_LEN only contains valid information after the Am79C975 controller has set the MRX_DONE bit in the Interrupt register. A message length value of larger than 128 indicates, that the Receive Data memory has overflowed. A message length between 129 and 132 bytes indicates that only FCS bytes have been lost and all message data bytes are available in the Receive Data memory. A message length greater than 132 indicates that message data bytes have been lost from the end of the message and the host should discard the frame. MRX_LEN will indicate the correct message length up to 255 bytes. It will freeze at 255 for longer frames. MRX_LEN is not affected by H_RESET. Read only, write has no effect. Transmit Error is the OR of the MTX_LCOL, MTX_LCAR and MTX_RTRY error. MTX_ERR is valid while MTX_START is set to 0. MTX_ERR is cleared by H_RESET. SMIU Receive Address Register (MReg Address 39) 7:0 Name and Description MRX_ADR SMIU Receive Status Register (MReg Address 42) Default: 00h Read/Write Bit No. The SMIU Receive Address register contains the address within the Receive Data memory from where the next byte of data is read. The register is cleared to 0 by H_RESET and by setting MRX_ENABLE in the Receive Status register, which also unprotects the Receive Data memory from being overwritten with a new frame. The address register autoincrements with every byte read from the Receive Data memory. This allows a FIFO-type access to the Receive Data memory and the host does not need to keep track of the location he is reading from. In addition, MRX_ADR can be set to any address within the Receive Data memory in order to modify a specific location. 7 Name and Description MRX_ENABLE Default: 0 Read/Write When MRX_ENABLE is set to a 1, the Am79C975 controller is enabled to receive acknowledgment frames from the management station. The host must program the acknowledgment frame filter registers with valid data before setting MRX_ENABLE. Setting MRX_ENABLE to a 1 will also clear the Receive Pattern RAM Address and Receive Address registers. MRX_ENABLE is automatically cleared after every receive. MRX_ENABLE is cleared by H_RESET. 6:3 262 MRX _LEN Default: undefinedRead only, write has no effect. Read only, write has no effect. MTX_ERR Default: 0 Name and Description Bit No. Transmit Retry error indicates that the transmission of the alert frame has failed after 16 attempts, due to repeated collisions on the network. MTX_RTRY is valid while MTX_START is set to 0. MTX_RTRY is cleared by H_RESET. Bit No. MRX_DATA Transmit Loss of Carrier indicates that the transceiver was in Link Fail state during the transmission of the alert frame. MTX_LCAR is valid while MTX_START is set to 0. MTX_LCAR is cleared by H_RESET. Default: 0 0 Name and Description Bit No. MTX_LCAR Default: 0 1 SMIU Receive Data Port (MReg Address 40) RESERVED Am79C973/Am79C975 P R E L I M I N A R Y Default: 0000 Read/Write as ZERO only 2 1 MRX_FCS Reserved bits. For future use only Default: 0 MRX_FRAM Frame Check Sequence error indicates that the receiver has detected an FCS (CRC) error on the acknowledgment frame. MRX_FCS is valid while MRX_ENABLE is set to 0. MRX_FCS is cleared by H_RESET. Default: 0 Read only, write has no effect. Framing error indicates that the acknowledgment frame contains a non-integer multiple of eight bits and that there was an FCS error. If there was no FCS error on the acknowledgment frame, then MRX_FRAM will not be set even if there was a non-integer multiples of eight bits in the frame. MRX_FRAM is valid while MRX_ENABLE is set to 0. MTX_MRX_FRAM is cleared by H_RESET. 0 Read only, write has no effect. MRX_ERR Default: 0 Read only, write has no effect. Receive Error is the OR of the MRX_FRAM and MRX_FCS error. MRX_ERR is valid while MRX_ENABLE is set to 0. MRX_ERR is cleared by H_RESET. Am79C973/Am79C975 263 P R E L I M I N A R Y Register Summary MReg Address 0 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 32 32 33 34 35 36 37 38 39 40 41 42 Register Name Vendor ID 0 Vendor ID 1 Device ID 0 Device ID 1 Revision ID Subsystem Vendor ID 0 Subsystem Vendor ID 1 Subsystem ID 0 Subsystem ID 1 Node IEEE Address 0 Node IEEE Address 1 Node IEEE Address 2 Node IEEE Address 3 Node IEEE Address 4 Node IEEE Address 5 Node IP Address 0 Node IP Address 1 Node IP Address 2 Node IP Address 3 Management Station IEEE Address 0 Management Station IEEE Address 1 Management Station IEEE Address 2 Management Station IEEE Address 3 Management Station IEEE Address 4 Management Station IEEE Address 5 Management Station IP Address 0 Management Station IP Address 1 Management Station IP Address 2 Management Station IP Address 3 Am79C975 Status Transceiver Status Command Interrupt Receive Pattern RAM Address Receive Pattern RAM Data Transmit Address Transmit Data Transmit Message Length Transmit Status Receive Address Receive Data Receive Message Length Receive Status Access Mode RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RW RC RC,W RW RW WO RW RW RW RO RO RW Access Command Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read Byte Read/Write Byte Read Byte Read/Write Byte Block Write Read/Write Byte Block Write Read/Write Byte Read/Write Byte Read/Write Byte Block Read Read Byte Read/Write Byte Default Value 22h 10h 00h 20h 40h 00h 00h 00h 00 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 00h 02h 00h 00h 00h 00h undefined 00h undefined 00h 00h 00h undefined undefined 00h Note: RO = Ready Only, RC = Read/Auto-Clear, RW = Read/Write, W = Write, WO = Write Only Am79C975 EEPROM Map The Am79C975 PCnet-FAST III controller uses an extended EEPROM map compared to the Am79C973 device (locations reserved in Am79C973 EEPROM map), 264 since there are some new registers in the SMIU that are loaded from the EEPROM. Am79C973/Am79C975 P R E L I M I N A R Y Am79C975 EEPROM Map The Am79C975 PCnet-FAST III controller uses an extended EEPROM map compared to the Am79C973 device (locations reserved in Am79C973 EEPROM map), Word Addr. Byte Addr. 00h* 01h 01h 02h 03h 03h 05h 07h 04h 09h 05h 0Bh 06h 0Dh 07h 0Fh 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 21h 22h 23h 24h 25h 26h 27h 11h 13h 15h 17h 19h 1Bh 1Dh 1Fh 21h 23h 25h 27h 29h 2Bh 2Dh 2Fh 31h 33h 35h 37h 39h 3Bh 3Dh 3Fh 41h 43h 45h 47h 49h 4Bh 4Dh 4Fh 28h 51h 3Eh 3Fh 7Dh 7Fh since there are some new registers in the SMIU that are loaded from the EEPROM. Most Significant Byte 2nd byte of the ISO 8802-3 (IEEE/ANSI 802.3) station physical address for this node 4th byte of the node address 6th byte of the node address CSR116[15:8] (OnNow Misc. Config). Hardware ID: must be 11h if compatibility to AMD drivers is desired User programmable space MSB of two-byte checksum, which is the sum of bytes 00h-0Bh and bytes 0Eh and 0Fh Must be ASCII "W" (57h) if compatibility to AMD driver software is desired BCR2[15:8] (Miscellaneous Configuration) BCR4[15:8] (Link Status LED) BCR5[15:8] (LED1 Status) BCR6[15:8] (LED2 Status) BCR7[15:8] (LED3 Status) BCR9[15:8] (Full-Duplex Control) BCR18[15:8] (Burst and Bus Control) BCR22[15:8] (PCI Latency) BCR23[15:8] (PCI Subsystem Vendor ID) BCR24[15:8] (PCI Subsystem ID) BCR25[15:8] (SRAM Size) BCR26[15:8] (SRAM Boundary) BCR27[15:8] (SRAM Interface Control) BCR32[15:8] (MII Control and Status) BCR33[15:8] (MII Address) BCR35[15:8] (PCI Vendor ID) BCR36[15:8] (Conf. Sp. byte 43h alias) BCR37[15:8] (DATA_SCALE alias0) BCR38[15:8] (DATA_SCALE alias 1) BCR39[15:8] (DATA_SCALE alias 2) BCR40[15:8] (DATA_SCALE alias 3) BCR41[15:8] (DATA_SCALE alias 4) BCR42[15:8] (DATA_SCALE alias 5) BCR43[15:8] (DATA_SCALE alias 6) BCR44[15:8] (DATA_SCALE alias 7) BCR48[15:8] N_IP_ADR[15:8] BCR49[15:8] N_IP_ADR[31:24] BCR50[15:8] M_IEEE_ADR[15:8] BCR51[15:8] M_IEEE_ADR[31:24] BCR52[15:8] M_IEEE_ADR[47:40] BCR53[15:8] M_IP_ADR[15:8] BCR54[15:8] M_IP_ADR[31:24] Checksum adjust byte for the 82 bytes of the EEPROM contents, checksum of the 82 bytes of the EEPROM should total to FFh Reserved for Boot ROM usage Reserved for Boot ROM usage Byte Addr. Least Significant Byte 02h 04h 06h 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 3rd byte of the node address 5th byte of the node address CSR116[7:0] (OnNow Misc. Config.) 08h Reserved location: must be 00h 0Ah 10h 12h 14h 16h 18h 1Ah 1Ch 1Eh 20h 22h 24h 26h 28h 2Ah 2Ch 2Eh 30h 32h 34h 36h 38h 3Ah 3Ch 3Eh 40h 42h 44h 46h 48h 4Ah 4Ch 4Eh User programmable space LSB of two-byte checksum, which is the sum of bytes 00h-0Bh and bytes 0Eh and 0Fh Must be ASCII "W" (57h) if compatibility to AMD driver software is desired BCR2[7:0] (Miscellaneous Configuration) BCR4[7:0] (Link Status LED) BCR5[7:0] (LED1 Status) BCR6[7:0] (LED2 Status) BCR7[7:0] (LED3 Status) BCR9[7:0] (Full-Duplex Control) BCR18[7:0] (Burst and Bus Control) BCR22[7:0] (PCI Latency) BCR23[7:0] (PCI Subsystem Vendor ID) BCR22[7:0] (PCI Subsystem ID) BCR25[7:0] (SRAM Size) BCR26[7:0] (SRAM Boundary) BCR27[7:0] (SRAM Interface Control) BCR32[7:0] (MII Control and Status) BCR33[7:0] (MII Address) BCR35[7:0] (PCI Vendor ID) BCR36[7:0] (Conf. Sp. byte 42h alias) BCR37[7:0] (Conf. Sp. byte 47h0 alias) BCR38[7:0] (Conf. Sp. byte 47h1 alias) BCR39[7:0] (Conf. Sp. byte 47h2 alias) BCR40[7:0] (Conf. Sp. byte 47h3 alias) BCR41[7:0] (Conf. Sp. byte 47h4 alias) BCR42[7:0] (Conf. Sp. byte 47h5 alias) BCR43[7:0] (Conf. Sp. byte 47h6 alias) BCR44[7:0] (Conf. Sp. byte 47h7 alias) BCR48[7:0] N_IP_ADR[7:0] BCR49[7:0] N_IP_ADR[23:16] BCR50[7:0] M_IEEE_ADR[7:0] BCR51[7:0] M_IEEE_ADR[23:16] BCR52[7:0] M_IEEE_ADR[39:32] BCR53[7:0] M_IP_ADR[7:0] BCR54[7:0] M_IP_ADR[23:16] 50h BCR55[7:0] SMIU Slave Address 7Ch 7Eh Reserved for Boot ROM usage Reserved for Boot ROM usage 00h 0Ch 0Eh Note: * Lowest EEPROM address. Am79C973/Am79C975 265 P R E L I M I N A R Y Absolute Maximum Ratings Operating Ranges Storage Temperature . . . . . . . . . . . . -65C to +150C Ambient Temperature. . . . . . . . . . . . . -65C to +70C Supply voltage with respect to VSSB, VSS, DVSSD, DVSSP, and DVSSX . . . . . . . . . . . . . . -0.3 V to 3.63 V Commercial (C) Devices Supply Voltages (VDD, VDDB, VDD_PCI, DVDDD, DVDDA, DVDDP, DVDDTX, DVDDRX, and DVDDCO). . . . . +3.3 V 10% 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. All inputs within the range: . . . . . . VSS - 0.5 V to 5.5 V Operating ranges define those limits between which the functionality of the device is guaranteed. Temperature (TA) . . . . . . . . . . . . . . . . . .0C to +70C DC Characteristics Parameter Parameter Description Symbol SMIU Input Voltage VIL Input LOW Voltage VIH Input HIGH Voltage SMIU Output Voltage VOL Output LOW Voltage SMIU Input Leakage Current IIX Input Leakage Test Conditions Min Max Units 0.6 V V 0.4 V -10 10 A Min Max Unit 10 4.0 4.7 --- 100 50 -300 1000 KHz s s ns ns 250 300 --300 1000 ns ns ns ns 1.4 IOL = 6 mA VIN = 0 V; VDD = 3.3 V Switching Characteristics Parameter Symbol Parameter Name Clock Timing (Serial Management Interface) FMCLOCK MCLOCK Frequency tHIGH MCLOCK High Time tLOW MCLOCK Low Time tFALL MCLOCK Fall Time tRISE MCLOCK Rise Time Data Timing (Serial Management Interface) tSU MDATA Setup Time tHD MDATA Hold Time tFALL MDATA Fall Time tRISE MDATA Rise Time 266 Test Condition @VIHmin @VILmax From VIHmin to VILmax From VILmax to VIHmin @VILmax @VILmax From VIHmin to VILmax From VILmax to VIHmin Am79C973/Am79C975 P R E L I M I N A R Y Switching Waveforms tHIGH tLOW tRISE tFALL MDATA tSU tHD MCLOCK tRISE tFALL 21510D-76B Figure 76. System Management Interface Timing Am79C973/Am79C975 267 APPENDIX C Media Independent Interface (MII) APPENDIX C: MEDIA INDEPENDENT INTERFACE (MII) Introduction to the connection diagram showing how the pins are multiplexed. The Am79C973/Am79C975 controller fully supports the MII according to the IEEE 802.3 standard. This Reconciliation Sublayer interface allows a variety of PHYs (100BASE-TX, 100BASE-FX, 100BASE-T4, 100BASE-T2, 10BASE-T, etc.) to be attached to the Am79C973/Am79C975 MAC engine without future upgrade problems. The MII interface is a 4-bit (nibble) wide data path interface that runs at 25 MHz for 100Mbps networks or 2.5 MHz for 10-Mbps networks. The interface consists of two independent data paths, receive (RXD(3:0)) and transmit (TXD(3:0)), control signals for each data path (RX_ER, RX_DV, TX_ER, TX_EN), network status signals (COL, CRS), clocks (RX_CLK, TX_CLK) for each data path, and a two-wire management interface (MDC and MDIO). See Figure C-77. MII Transmit Interface The MII transmit clock is generated by the external PHY and is sent to the Am79C973/Am79C975 controller on the TX_CLK input pin. The clock can run at 25 MHz or 2.5 MHz, depending on the speed of the network to which the external PHY is attached. The data is a nibble-wide (4 bits) data path, TXD(3:0), from the Am79C973/Am79C975 controller to the external PHY and is synchronous to the rising edge of TX_CLK. The transmit process star ts when the Am79C973/ Am79C975 controller asserts the TX_EN, which indicates to the external PHY that the data on TXD(3:0) is valid. Normally, unrecoverable errors are signaled through the MII to the external PHY with the TX_ER output pin. The external PHY will respond to this error by generating a TX coding error on the current transmitted frame. The Am79C973/Am79C975 controller does not use this method of signaling errors on the transmit side. The Am79C973/Am79C975 controller will invert the FCS on the last byte generating an invalid FCS. The TX_ER pin is reserved for future use and is actively driven to 0. Note: The MII interface is disabled by default. It is enabled by setting PHYSELEN (BCR2 bit 13) = 1 and PHYSEL (BCR18 bit 4, 3) =10. Enabling the MII interface automatically disables the internal 10/100 PHY and the Expansion Bus. When in this mode, the Am79C973/Am79C975 MII interface pins are multiplexed with the expansion bus pins. Refer 4 RXD(3:0) RX_DV Receive Signals RX_ER Am79C973/Am79C975 MII Interface RX_CLK CRS COL Network Status Signals 4 TXD(3:0) TX_EN Transmit Signals TX_CLK MDC Management Port Signals MDIO 21510C-77 Figure 77. Media Independent Interface Am79C973/Am79C975 268 P R E L I M I N A R Y MII Receive Interface MII Management Interface The MII receive clock is also generated by the external PHY and is sent to the Am79C973/Am79C975 controller on the RX_CLK input pin. The clock will be the same frequency as the TX_CLK but will be out of phase and can run at 25 MHz or 2.5 MHz, depending on the speed of the network to which the external PHY is attached. The MII provides a two-wire management interface so that the Am79C973/Am79C975 controller can control and receive status from external PHY devices. The RX_CLK is a continuous clock during the reception of the frame, but can be stopped for up to two RX_CLK periods at the beginning and the end of frames, so that the external PHY can sync up to the network data traffic necessary to recover the receive clock. During this time, the external PHY may switch to the TX_CLK to maintain a stable clock on the receive interface. The Am79C973/Am79C975 controller will handle this situation with no loss of data. The data is a nibble-wide (4 bits) data path, RXD(3:0), from the external PHY to the Am79C973/Am79C975 controller and is synchronous to the rising edge of RX_CLK. The receive process starts when RX_DV is asserted. RX_DV will remain asserted until the end of the receive frame. The Am79C973/Am79C975 controller requires CRS (Carrier Sense) to toggle in between frames in order to receive them properly. Errors in the currently received frame are signaled across the MII by the RX_ER pin. RX_ER can be used to signal special conditions out of band when RX_DV is not asserted. Two defined out-of-band conditions for this are the 100BASE-TX signaling of bad Start of Frame Delimiter and the 100BASE-T4 indication of illegal code group before the receiver has synched to the incoming data. The Am79C973/Am79C975 controller will not respond to these conditions. All out of band conditions are currently treated as NULL events. Certain in band nonIEEE 802.3u-compliant flow control sequences may cause erratic behavior for the Am79C973/Am79C975 controller. Consult the switch/bridge/router/hub manual to disable the in-band flow control sequences if they are being used. MII Network Status Interface The MII also provides signals that are consistent and necessary for IEEE 802.3 and IEEE 802.3u operation. These signals are CRS (Carrier Sense) and COL (Collision Sense). Carrier Sense is used to detect non-idle activity on the network. Collision Sense is used to indicate that simultaneous transmission has occurred in a half-duplex network. The Am79C973/Am79C975 controller can support up to 31 external PHYs attached to the MII Management Interface with software support and only one such device without software support. The Network Port Manager copies the PHYADD after the Am79C973/Am79C975 controller reads the EEPROM and uses it to communicate with the external PHY. The PHY address must be programmed into the EEPROM prior to starting the Am79C973/Am79C975 controller. This is necessary so that the internal management controller can work autonomously from the software driver and can always know where to access the external PHY. The Am79C973/Am79C975 controller is unique by offering direct hardware support of the external PHY device without software support. The PHY address of 1Fh is reserved and should not be used. To access the 31 external PHYs, the software driver must have knowledge of the external PHY's address when multiple PHYs are present before attempting to address it. The MII Management Interface uses the MII Control, Address, and Data registers (BCR32, 33, 34) to control an d c om mu ni c at e to th e ex te r n al P H Ys. Th e Am79C973/Am79C975 controller generates MII management frames to the external PHY through the MDIO pin synchronous to the rising edge of the Management Data Clock (MDC) based on a combination of writes and reads to these registers. MII Management Frames MII management frames are automatically generated by the Am79C973/Am79C975 controller and conform to the MII clause in the IEEE 802.3u standard. The start of the frame is a preamble of 32 ones and guarantees that all of the external PHYs are synchronized on the same interface. See Figure C-78. Loss of synchronization is possible due to the hot-plugging capability of the exposed MII. The IEEE 802.3 specification allows you to drop the preamble, if after reading the MII Status Register from the external PHY you can determine that the external PHY will support Preamble Suppression (BCR34, bit 6). After having a valid MII Status Register read, the Am79C973/Am79C975 controller will then drop the creation of the preamble stream until a reset occurs, receives a read error, or the external PHY is disconnected. Am79C973/Am79C975 269 P R E L I M I N A R Y Preamble 1111....1111 32 Bits ST 01 OP 10 Rd 01 Wr PHY Address Register Address TA Z0 Rd 10 Wr Data Idle Z 2 Bits 2 Bits 5 Bits 5 Bits 2 Bits 16 Bits 1 Bit 21510C-78 Figure 78. Frame Format at the MII Interface Connection This is followed by a start field (ST) and an operation field (OP). The operation field (OP) indicates whether the Am79C973/Am79C975 controller is initiating a read or write operation. This is followed by the external PHY address (PHYADD) and the register address (REGAD) programmed in BCR33. The PHY address of 1Fh is reserved and should not be used. The external PHY may have a larger address space starting at 10h - 1Fh. This is the address range set aside by the IEEE as vendor usable address space and will vary from vendor to vendor. This field is followed by a bus turnaround field. During a read operation, the bus turnaround field is used to determine if the external PHY is responding correctly to the read request or not. The Am79C973/Am79C975 controller will tri-state the MDIO for both MDC cycles. During the second cycle, if the external PHY is synchronized to the Am79C973/Am79C975 controller, the external PHY will drive a 0. If the external PHY does not drive a 0, the Am79C973/Am79C975 controller will signal a MREINT (CSR7, bit 9) interrupt, if MREINTE (CSR7, bit 8) is set to a 1, indicating the Am79C973/ Am79C975 controller had an MII management frame read error and that the data in BCR34 is not valid. The data field to/from the external PHY is read or written into the BCR34 register. The last field is an IDLE field that is necessary to give ample time for drivers to turn off before the next access. The Am79C973/Am79C975 controller will drive the MDC to 0 and tri-state the MDIO anytime the MII Management Port is not active. To help to speed up the reading and of writing the MII management frames to the external PHY, the MDC can be sped up to 10 MHz by setting the FMDC bits in BCR32. The IEEE 802.3 specification requires use of the 2.5-MHz clock rate, but 5 MHz and 10 MHz are available for the user. The intended applications are that the 10-MHz clock rate can be used for a single external PHY on an adapter card or motherboard. The 5MHz clock rate can be used for an exposed MII with one external PHY attached. The 2.5-MHz clock rate is intended to be used when multiple external PHYs are connected to the MII Management Port or if compliance to the IEEE 802.3u standard is required. 270 Auto-Poll External PHY Status Polling As defined in the IEEE 802.3 standard, the external PHY attached to the Am79C973/Am79C975 controller's MII has no way of communicating important timely status information back to Am79C973/Am79C975 controller. The Am79C973/Am79C975 controller has no way of knowing that an external PHY has undergone a change in status without polling the MII status register. To prevent problems from occurring with inadequate host or software polling, the Am79C973/Am79C975 controller will Auto-Poll when APEP (BCR32, bit 11) is set to 1 to insure that the most current information is available. See MII Management Registers section for the bit descriptions of the MII Status Register. The contents of the latest read from the external PHY will be stored in a shadow register in the Auto-Poll block. The first read of the MII Status Register will just be stored, but subsequent reads will be compared to the contents already stored in the shadow register. If there has been a change in the contents of the MII Status Register, a MAPINT (CSR7, bit 5) interrupt will be generated on INTA if the MAPINTE (CSR7, bit 4) is set to 1. The Auto-Poll features can be disabled if software driver polling is required. The Auto-Poll's frequency of generating MII management frames can be adjusted by setting of the APDW bits (BCR32, bits 10-8). The delay can be adjusted from 0 MDC periods to 2048 MDC periods. Auto-Poll by default will only read the MII Status register in the external PHY. Network Port Manager The Am79C973/Am79C975 controller is unique in that is does not require software intervention to control and configure an external PHY attached to the MII. This was done to ensure backwards compatibility with existing software drivers. To the current software drivers, the Am79C973/Am79C975 controller will look and act like the PCnet-PCI II and will interoperate with existing PCnet drivers from revision 2.5 upward. The heart of this system is the Network Port Manager. If the external PHY is present and is active, the Network Port Manager will request status from the external Am79C973/Am79C975 P R E L I M I N A R Y PHY by generating MII management frames. These frames will be sent roughly every 900 ms. These frames are necessary so that the Network Port Manager can monitor the current active link and can select a different network port if the current link goes down. Auto-Negotiation Through the external PHY, the following capabilities are possible: 100BASE-T4, 100BASE-TX Full-/Half-Duplex, and 10BASE-T Full-/Half-Duplex. The capabilities are then sent to a link partner that will also send its capabilities. Both sides look to see what is possible and then they will connect at the greatest possible speed and capability as defined in the IEEE 802.3u standard and according to Table C-68. By default, the link partner must be at least 10BASE-T half-duplex capable. The Am79C973/Am79C975 controller can automatically negotiate with the network and yield the highest performance possible without software support. See the section on Network Port Manager for more details. Table 68. Auto-Negotiation Capabilities Network Speed Physical Network Type driver. When The ASEL is set to 0, the software driver should then configure the por ts with PORTSEL (CSR15, bits 7-8). Note: It is highly recommended that ASEL and PORTSEL be used when trying to manually configure a specific network port. In order to manually configure the External PHY, the recommended procedure is to force the PHY configurations when Auto-Negotiation is not enabled. Set the DANAS bit (BCR32, bit 7) to turn off the Network Port Manager. Then clear the XPHYANE (BCR32, bit 5) and set either XPHYFD (BCR32, bit 4) or XPHYSP (BCR32, bit 3) or both. The Network Port Manager will send a few MII frames to the PHY to validate the configuration. CAUTION: The Network Port Manager utilizes the PHYADD (BCR33, bits 9-5) to communicate with the external PHY during the automatic port selection process. The PHYADD is copied into a shadow register after the Am79C973/Am79C975 controller has read the configuration information from the EEPROM. Extreme care must be exercised by the host software not to access BCR33 during this time. A read of PVALID (BCR19, bit 15) before accessing BCR33 will guarantee that the PHYADD has been shadowed. 200 Mbps 100BASE-X, Full Duplex 100 Mbps 100BASE-T4, Half Duplex 100 Mbps 100BASE-X, Half Duplex 20 Mbps 10BASE-T, Full Duplex n External PHY Auto-Negotiable 10 Mbps 10BASE-T, Half Duplex Automatic Network Selection: External PHY Not Auto-Negotiable Auto-Negotiation goes further by providing a messagebased communication scheme called, Next Pages, before connecting to the Link Partner. This feature is not suppor ted in Am79C973/Am79C975 unless the DANAS (BCR32, bit 10) is selected and the software driver is capable of controlling the external PHY. A complete bit description of the MII and Auto-Negotiation registers can be found in the MII Management Registers section. Automatic Network Port Selection If ASEL (BCR2, bit 0) is set to 1 and DANAS (BCR 32, bit 7) is set to 0, then the Network Port Manager will start to configure the external PHY if it detects the external PHY on the MII Interface. Automatic Network Selection: Exceptions If ASEL (BCR2, bit 0) is set to 0 or DANAS (BCR 32, bit 7) is set to 1, then the Network Port Manager will discontinue actively trying to establish the connections. It is assumed that the software driver is attempting to configure the network por t and the Am79C973/ Am79C975 controller will always defer to the software Am79C973/Am79C975's Automatic Network Port selection mechanism falls within the following general categories: n External PHY Not Auto-Negotiable This case occurs when the MIIPD (BCR32, bit 14) bit is 1. This indicates that there is an external PHY attached to Am79C973/Am79C975 controller's MII. If more than one external PHY is attached to the MII Management Interface, then the DANAS (BCR32, bit 7) bit must be set to 1 and then all configuration control should revert to software. The Am79C973/Am79C975 controller will read the register of the external PHY to determine its status and network capabilities. See the MII Management Registers section for the bit descriptions of the MII Status register. If the external PHY is not Auto-Negotiation capable and/or the XPHYANE (BCR32, bit 5) bit is set to 0, then the Network Port Manager will match up the external PHY capabilities with the XPHYFD (BCR 32, bit 4) and the XPHYSP (BCR32, bit 3) bits programmed from the EEPROM. The Am79C973/ Am79C975 controller will then program the external PHY with those values. A new read of the external PHYs MII Status register will be made to see if the link is up. If the link does not come up as programmed after a specific time, the Am79C973/Am79C975 controller will fail the external PHY link. The Network Port Man- Am79C973/Am79C975 271 P R E L I M I N A R Y ager will periodically query the external PHY for active links. Automatic Network Selection: External PHY Auto-Negotiable This case occurs when the MIIPD (BCR32, bit 14) bit is 1. This indicates that there is an external PHY attached to Am79C973/Am79C975 controller's MII. If more than one external PHY is attached to the MII Management Interface, then the DANAS (BCR32, bit 7) bit must be set to 1 and then all configuration control should revert to software. The Am79C973/Am79C975 controller will read the MII Status register of the external PHY to determine its status and network capabilities. If the external PHY is Auto-Negotiation capable and/or the XPHYANE (BCR32, bit 5) bit is set to 1, then the Am79C973/Am79C975 controller will start the external PHY's Auto-Negotiation process. The Am79C973/ Am79C975 controller will write to the external PHY's Advertisement register with the following conditions set: turn off the Next Pages support, set the Technology Ability Field from the external PHY MII Status register read, and set the Type Selector field to the IEEE 802.3 standard. The Am79C973/Am79C975 controller will then write to the external PHY's MII Control register instructing the external PHY to negotiate the link. The Am79C973/Am79C975 controller will poll the external PHY's MII Status register until the Auto-Negotiation Complete bit is set to 1and the Link Status bit is set to 1. The Am79C973/Am79C975 controller will then wait a specific time and then again read the external PHY's MII Status register. If the Am79C973/Am79C975 controller sees that the external PHY's link is down, it will try to bring up the external PHY's link manually as described above. A new read of the external PHY's MII Status register will be made to see if the link is up. If the link does not come up as programmed after a specific time, the Am79C973/Am79C975 controller will fail the external PHY link and start the process again. Automatic Network Selection: Force External Reset If the XPHYRST bit (BCR32, bit 6) is set to 1, then the flow changes slightly. The Am79C973/Am79C975 controller will write to the external PHY's MII Control register wi th the RE SE T bi t s et to 1 (S e e th e MI I Management Registers section for the MII register bit descriptions). This will force a complete reset of the external PHY. The Am79C973/Am79C975 controller after a specific time will poll the external PHY's MII Control register to see if the RESET bit is 0. After the RESET bit is cleared, then the normal flow continues. External Address Detection Interface The EADI is provided to allow external address filtering and to provide a Receive Frame Tag word for proprietary routing information. It is selected by setting the EADISEL bit in BCR2 to 1. This feature is typically utilized by terminal servers, bridges and/or router prod- 272 ucts. The EADI interface can be used in conjunction with external logic to capture the packet destination address from the nibble as it arrives at the Am79C973/ Am79C975 controller, to compare the captured address with a table of stored addresses or identifiers, and then to determine whether or not the Am79C973/ Am79C975 controller should accept the packet. If an address match is detected by comparison with either the Physical Address or Logical Address Filter registers contained within the Am79C973/Am79C975 controller or the frame is of the type 'Broadcast', then the frame will be accepted regardless of the condition of EAR. When the EADISEL bit of BCR2 is set to 1 and the Am79C973/Am79C975 controller is programmed to promiscuous mode (PROM bit of the Mode Register is set to 1), then all incoming frames will be accepted, regardless of any activity on the EAR pin. Internal address match is disabled when PROM (CSR15, bit 15) is cleared to 0, DRCVBC (CSR15, bit 14) and DRCVPA (CSR15, bit 13) are set to 1, and the Logical Address Filter registers (CSR8 to CSR11) are programmed to all zeros. When the EADISEL bit of BCR2 is set to 1 and internal address match is disabled, then all incoming frames will be accepted by the Am79C973/Am79C975 controller, unless the EAR pin becomes active during the first 64 bytes of the frame (excluding preamble and SFD). This allows external address lookup logic approximately 58 byte times after the last destination address bit is available to generate the EAR signal, assuming that the Am79C973/Am79C975 controller is not configured to accept runt packets. The EADI logic only samples EAR from 2 bit times after SFD until 512 bit times (64 bytes) after SFD. The frame will be accepted if EAR has not been asserted during this window. In order for the EAR pin to be functional in full-duplex mode, FDRPAD bit (BCR9, bit 2) needs to be set. If Runt Packet Accept (CSR124, bit 3) is enabled, then the EAR signal must be generated prior to the 8 bytes received, if frame rejection is to be guaranteed. Runt packet sizes could be as short as 12 byte times (assuming 6 bytes for source address, 2 bytes for length, no data, 4 bytes for FCS) after the last bit of the destination address is available. EAR must have a pulse width of at least 110 ns. The EADI outputs continue to provide data throughout the reception of a frame. This allows the external logic to capture frame header information to determine protocol type, internetworking information, and other useful data. The EADI interface will operate as long as the STRT bit in CSR0 is set, even if the receiver and/or transmitter are disabled by software (DTX and DRX bits in CSR15 are set). This configuration is useful as a semi-powerdown mode in that the Am79C973/Am79C975 control- Am79C973/Am79C975 P R E L I M I N A R Y ler will not perform any power-consuming DMA operations. However, external circuitry can still respond to control frames on the network to facilitate remote node control. Table C-69 summarizes the operation of the EADI interface. Table 69. EADI Operations PROM EAR 1 X 0 1 0 0 Required Timing No timing requirements No timing requirements Received Frames All received frames Low for two bit times plus 10 ns Frame rejected if in address match mode All received frames When using the MII, the data arrives in nibbles and can be at a rate of 25 MHz or 2.5 MHz. The MII provides all necessary data and clock signals needed for the EADI interface. Data for the EADI is the RXD(3:0) receive data provided to the MII. RX_CLK is provided to allow clocking of the RXD(3:0) receive nibble stream into the external address detection logic. The RXD(3:0) data is synchronous to the rising edge of the RX_CLK. The assertion of SFBD is a signal to the external address detection logic that the SFD has been detected and that the first valid data nibble is on the RXD(3:0) data bus. The SFBD signal is delayed one RX_CLK cycle from the above definition and actually signals the start of valid data. In order to reduce the amount of logic external to the Am79C973/Am79C975 controller for multiple address decoding systems, the SFBD signal will go HIGH at each new byte boundary within the packet, subsequent to the SFD. This eliminates the need for externally supplying byte framing logic. The EAR pin should be driven LOW by the external address comparison logic to reject a frame. External Address Detection Interface: Receive Frame Tagging tagging implementation will be a two--wire chip interface, respectively, added to the existing EADI. The Am79C973/Am79C975 controller supports up to 15 bits of receive frame tagging per frame in the receive frame status (RFRTAG). The RFRTAG bits are in the receive frame status field in RMD2 (bits 30-16) in 32-bit software mode. The receive frame tagging is not supported in the 16-bit software mode. The RFRTAG field are all zeros when either the EADISEL (BCR2, bit3) or the RXFRTAG (CSR7, bit 14) are set to 0. When EADISEL (BCR2, bit 3) and RXFRTAG (CSR7, bit 14) are set to 1, then the RFRTAG reflects the tag word shifted in during that receive frame. In the MII mode, the two-wire interface will use the MIIRXFRTGD and MIIRXFRTGE pins from the EADI interface. These pins will provide the data input and data input enable for the receive frame tagging, respectively. These pins are normally not used during the MII operation. The receive frame tag register is a shift register that shifts data in MSB first, so that less than the 15 bits allocated may be utilized by the user. The upper bits not utilized will return zeros. The receive frame tag register is set to 0 in between reception of frames. After receiving SFBD indication on the EADI, the user can start shifting data into the receive tag register until one network clock period before the Am79C973/Am79C975 controller receives the end of the current receive frame. In the MII mode, the user must see the RX_CLK to drive the synchronous receive frame tag data interface. After receiving the SFBD indication, sampled by the rising edge of the RX_CLK, the user will drive the data input and the data input enable synchronous with the rising edge of the RX_CLK. The user has until one network clock period before the deassertion of the RX_DV to input the data into the receive frame tag register. At the deassertion of the RX_DV, the receive frame tag register will no longer accept data from the two-wire interface. If the user is still driving the data input enable pin, erroneous or corrupted data may reside in the receive frame tag register. See Figure C-79. The Am79C973/Am79C975 controller supports receive frame tagging in the MII mode. The receive frame RX_CLK RX_DV SFBD MIIRXFRTGE 21510C-79 MIIRXFRTGD Figure 79. MII Receive Frame Tagging Am79C973/Am79C975 273 P R E L I M I N A R Y MII management registers Table 70. MII Management Register Set As specified in the IEEE standard, the basic register set consists of the Control Register (Register 0) and the Status Register (Register 1). The extended register set consists of Registers 2 to 31 (decimal). All PHYs that provide an MII shall incorporate the basic register set. Both sets of registers are accessible through the MII Management Interface. Register Address Register Name Basic/ Extended 0 MII Control B 1 MII Status B 2-3 PHY Identifier E 4 Auto-Negotiation Advertisement E 5 Auto-Negotiation Link Partner Ability E Table C-70 lists the most interesting registers. Control Register (Register 0) Table C-71 shows the MII Management Control Register (Register 0). Table 71. MII Management Control Register (Register 0) Bits Name Description Read/Write (Note 1) When write: 1 = PHY software reset 15 Soft Reset 0 = normal operation. When read: R/W, SC 1 = reset in process 14 Loopback 13 Speed Selection 12 Auto-Negotiation Enable 11 Power Down 10 Isolate 9 Restart Auto-Negotiation 8 Duplex Mode 7 Collision Test 6-0 Reserved 0 = reset done. 1 = enables Loopback mode 0 = disables Loopback mode 1 = 100 Mbps 0 = 10 Mbps 1 = enable Auto-Negotiation 0 = disable Auto-Negotiation 1 = power down, 0 = normal operation 1 = electrically isolate PHY from MII 0 = normal operation 1 = restart Auto-Negotiation 0 = normal operation 1 = full duplex 0 = half duplex 1 = enable COL signal test 0 = disable COL signal test Write as 0, ignore on read Note: 1. R/W = Read/Write, SC = Self Clearing, RO = Read only. 274 Am79C973/Am79C975 R/W R/W R/W R/W R/W R/W, SC R/W R/W RO P R E L I M I N A R Y Status Register (Register 1) This register is read only; a write will have no effect. See Table C-72. The MII Management Status Register identifies the physical and auto-negotiation capabilities of the PHY. Table 72. MII Management Status Register (Register 1) Bits Name 15 100BASE-T4 14 100BASE-X Full Duplex 13 100BASE-X Half Duplex 12 10 Mbps Full Duplex 11 10 Mbps Half Duplex 10-7 Reserved 6 MF Preamble Suppression 5 Auto-Negotiation Complete 4 Remote Fault 3 Auto-Negotiation Ability 2 Link Status 1 Jabber Detect 0 Extended Capability Description 1 = PHY able to perform 100BASE-T4 0 = PHY not able to perform 100BASE-T4 1 = PHY able to perform full-duplex 100BASE-X 0 = PHY not able to perform full-duplex 100BASE-X 1 = PHY able to perform half-duplex 100BASE-X 0 = PHY not able to perform half-duplex 100BASE-X 1 = PHY able to operate at 10 Mbps full-duplex mode 0 = PHY not able to operate at 10 Mbps full-duplex mode 1 = PHY able to operate at 10 Mbps full-duplex mode 0 = PHY not able to operate at 10 Mbps full-duplex mode Ignore when read 1 = PHY will accept management frames with preamble suppressed 0 = PHY not able to accept management frames with preamble suppressed 1 = Auto-Negotiation process completed 0 = Auto-Negotiation process not completed 1 = remote fault condition detected 0 = no remote fault condition detected 1 = PHY is able to perform Auto-Negotiation 0 = PHY is not able to perform Auto-Negotiation 1 = link is up 0 = link is down 1 = jabber condition detected, 0 = no jabber condition detected 1 = extended register capabilities, 0 = basic register set capabilities only Read/Write (Note 1) RO RO RO RO RO RO RO RO RO, LH RO RO, LL RO RO Note: 1. RO = Read Only, LH = Latching High, LL = Latching Low. Am79C973/Am79C975 275 P R E L I M I N A R Y Auto-Negotiation Advertisement Register (Register 4) When this register is modified, Restart Auto-Negotiation (Register 0, bit 9) must be enabled to guarantee the change is implemented. The purpose of this register is to advertise the technology ability to the link partner device. See Table C-73. Table 73. Auto-Negotiation Advertisement Register (Register 4) Bit(s) Name Description 15 Next Page When set, the device wishes to engage in next page exchange. If clear, the device does not wish to engage in next page exchange. 14 Reserved 13 Remote Fault 12:5 Technology Ability 4:0 Selector Field When set, a remote fault bit is inserted into the base link code word during the Auto Negotiation process. When cleared, the base link code word will have the bit position for remote fault as cleared. R/W Link partner technology ability field. RO Link partner selector field. RO The technology bit field consists of bits A0-A7 in the IEEE 802.3 Selector Base Page. Table C-74 summarizes the bit assignments. Table 74. Technology Ability Field Bit Assignments 276 R/W RO Technology Ability Field Bit Assignments Bit Read/ Write Technology A0 10BASE-T A1 10BASE-T Full Duplex A2 100BASE-TX A3 100BASE-TX Full Duplex A4 100BASE-T4 A5 Reserved for future technology A6 Reserved for future technology A7 Reserved for future technology Am79C973/Am79C975 P R E L I M I N A R Y Auto-Negotiation Link Partner Ability Register (Register 5) of the link partner. The bit definitions represent the received link code word. This register contains either the base page or the link partner's next pages. See Table C-75. The Auto-Negotiation Link Partner Ability Register is Read Only. The register contains the advertised ability Table 75. Auto-Negotiation Link Partner Ability Register (Register 5) - Base Page Format Bit(s) Name 15 Next Page 14 Description Read/ Write Link partner next page request. RO Acknowledge Link partner acknowledgment RO 13 Remote Fault Link partner remote fault request RO 12:5 Technology Ability Link partner technology ability field RO 4:0 Selector Field Link partner selector field. RO Am79C973/Am79C975 277 P R E L I M I N A R Y Switching Characteristics: Media Independent Interface Parameter Symbol Transmit Timing tTVAL Parameter Name TX_EN, TX_ER, TXD valid from TX_CLK Test Condition Min Max Unit measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V 0 25 ns (Note 1) Receive Timing tRSU tRH RX_DV, RX_ER, RXD setup to RX_CLK RX_DV, RX_ER, RXD hold to RX_CLK Management Cycle Timing tMHIGH MDC Pulse Width HIGH Time tMLOW MDC Pulse Width LOW Time tMCYC MDC Cycle Period tMSU MDIO setup to MDC measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V 10 ns 10 ns 160 160 400 ns ns ns 10 ns 10 ns tMCYC tMSU ns (Note 1) measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V (Note 1) CLOAD = 390 pf CLOAD = 390 pf CLOAD = 390 pf CLOAD = 470 pf, measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V (Note 1) CLOAD = 470 pf, tMH MDIO hold to MDC measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V (Note 1) CLOAD = 470 pf, tMVAL MDIO valid from MDC measured from Vilmax = 0.8 V or measured from Vihmin = 2.0V, (Note 1) Notes: 1. MDIO valid measured at the exposed mechanical Media Independent Interface. 2. TXCLK and RXCLK frequency and timing parameters are defined for the external physical layer transceiver as defined in the IEEE 802.3u standard. They are not replicated here. 278 Am79C973/Am79C975 P R E L I M I N A R Y Switching Waveforms: Media Independent Interface Vihmin Vilmax TX_CLK tTVAL Vihmin Vilmax TXD[3:0], TX_EN, TX_ER 21510C-80 Figure 80. Transmit Timing Vihmin Vilmax RX_CLK tRSU RXD[3:0], RX_ER, RX_DV tRH Vihmin Vilmax 21510C-81 Figure 81. Receive Timing tMHIGH 2.4 MDC 2.0 V 1.5 V 0.8 V tMLOW 0.4 tMCYC 2.0 V 1.5 V 0.8 V 21510C-82 Figure 82. MDC Waveform Am79C973/Am79C975 279 P R E L I M I N A R Y Switching Waveforms: Media Independent Interface (Concluded) Vihmin Vilmax MDC tMSU tMH Vihmin Vilmax MDIO 21510C-83 Figure 83. Management Data Setup and Hold Timing Vihmin Vilmax MDC tTMVAL Vihmin Vilmax MDIO 21510C-84 Figure 84. Management Data Output Valid Delay Timing 280 Am79C973/Am79C975 P R E L I M I N A R Y Switching Waveforms: External Address Detection Interface RX_CLK Preamble RXD[3:0] SFD DA DA DA tEAD8 RX_DV tEAD10 tEAD9 EAR tEAD7 SFBD 21510C-85 Figure 85. Reject Timing - External PHY MII @ 25 MHz RX_CLK Preamble RXD[3:0] SFD DA DA DA tEAD11 RX_DV tEAD12 tEAD13 EAR SFBD 21510C-86 Figure 86. Reject Timing - External PHY MII @ 2.5 MHz Am79C973/Am79C975 281 P R E L I M I N A R Y Switching Waveforms: Receive Frame Tag RX_CLK RXD[3:0] Preamble SFD DA DA DA RX_DV EAR SFBD tEAD14 tEAD17 RXFRTGE tEAD15 RXFRTGD tEAD16 21510C-87 Figure 87. Receive Frame Tag Timing with Media Independent Interface 282 Am79C973/Am79C975 APPENDIX D Alternative Method for Initialization APPENDIX D: Alternative Method for Initialization The Am79C973/Am79C975 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 Table D-76. These register writes are followed by writing the START bit in CSR0. Table 76. Registers for Alternative Initialization Method (Note 1) Control and Status Register Comment CSR2 IADR[31:16] (Note 2) CSR8 LADRF[15:0] CSR9 LADRF[31:16] CSR10 LADRF[47:32] CSR11 LADRF[63:48] CSR12 PADR[15:0] (Note 3) CSR13 PADR[31:16] (Note 3) CSR14 PADR[47:32] (Note 3) CSR15 Mode CSR24-25 BADR CSR30-31 BADX CSR47 TXPOLLINT CSR49 RXPOLLINT CSR76 RCVRL CSR78 XMTRL Note: 1. The INIT bit must not be set or the initialization block will be accessed instead. 2. Needed only if SSIZE32 =0. 3. Needed only if the physical address is different from the one stored in EEPROM or if there is no EEPROM present. Am79C973/Am79C975 283 APPENDIX E Look-Ahead Packet Processing (LAPP) Concept APPENDIX E: LOOK-AHEAD PACKET PROCESSING (LAPP) CONCEPT Introduction A driver for the Am79C973 controller would normally require that the CPU copy receive frame data from the controllers buffer space to the applications buffer space after the entire frame has been received by the controller. For applications that use a ping-pong windowing style, the traffic on the network will be halted until the current frame has been completely processed by the entire application stack. This means that the time between last byte of a receive frame arriving at the client's Ethernet controller and the client's transmission of the first byte of the next outgoing frame will be separated by: 1. The time that it takes the client's CPU interrupt procedure to pass software control from the current task to the driver, 2. Plus the time that it takes the client driver to pass the header data to the application and request an application buffer, 3. Plus the time that it takes the application to generate the buffer pointer and then return the buffer pointer to the driver, 4. Plus the time that it takes the client driver to transfer all of the frame data from the controller's buffer space into the application's buffer space and then call the application again to process the complete frame, 5. Plus the time that it takes the application to process the frame and generate the next outgoing frame, and 6. Plus the time that it takes the client driver to set up the descriptor for the controller and then write a TDMD bit to CSR0. The sum of these times can often be about the same as the time taken to actually transmit the frames on the wire, thereby, yielding a network utilization rate of less than 50 percent. An important thing to note is that the Am79C973 controller's data transfers to its buffer space are such that the system bus is needed by the Am79C973 controller for approximately 4 percent of the time. This leaves 96 percent of the system bus bandwidth for the CPU to perform some of the interframe operations in advance of the completion of network receive activity, if possible. The question then becomes: how much of the tasks that need to be performed between reception of a frame and transmission of the next frame can be performed before the reception of the frame actually ends at the network, and how can the CPU be instructed to perform these tasks during the network reception time? The answer depends upon exactly what is happening in the driver and application code, but the steps that can be performed at the same time as the receive data are arriving include as much as the first three steps and part of the fourth step shown in the sequence above. By performing these steps before the entire frame has arrived, the frame throughput can be substantially increased. A good increase in performance can be expected when the first three steps are performed before the end of the network receive operation. A much more significant perfor mance increase could be realized if the Am79C973 controller could place the frame data directly into the application's buffer space; (i.e., eliminate the need for step 4.) In order to make this work, it is necessary that the application buffer pointer be determined before the frame has completely arrived, then the buffer pointer in the next descriptor for the receive frame would need to be modified in order to direct the Am79C973 controller to write directly to the application buffer. More details on this operation will be given later. An alternative modification to the existing system can gain a smaller but still significant improvement in performance. This alternative leaves step 4 unchanged in that the CPU is still required to perform the copy operation, but is allows a large portion of the copy operation to be done before the frame has been completely received by the controller, i.e., the CPU can perform the copy operation of the receive data from the Am79C973 controller's buffer space into the application buffer space before the frame data has completely arrived from the network. This allows the copy operation of step 4 to be performed concurrently with the arrival of network data, rather than sequentially, following the end of network receive activity. Am79C973/Am79C975 284 P R E L I M I N A R Y Outline of LAPP Flow C4 This section gives a suggested outline for a driver that utilizes the LAPP feature of the Am79C973 controller. Note: The labels in the following text are used as references in the timeline diagram that follows (Figure B-1). Setup The driver should set up descriptors in groups of three, with the OWN and STP bits of each set of three descriptors to read as follows: 11b, 10b, 00b. An option bit (LAPPEN) exists in CSR3, bit position 5; the software should set this bit. When set, the LAPPEN bit directs the Am79C973 controller to generate an INTERRUPT when STP has been written to a receive descriptor by the Am79C973 controller. Note: Even though the third buffer is not owned by the Am79C973 controller, existing AMD Ethernet controllers will continue to perform data DMA into the buffer space that the controller already owns (i.e., buffer number 2). The controller does not know if buffer space in buffer number 2 will be sufficient or not for this frame, but it has no way to tell except by trying to move the entire message into that space. Only when the message does not fit will it signal a buffer error condition--there is no need to panic at this point that it discovers that it does not yet own descriptor number 3. S2 The first task of the drivers interrupt service routing is to collect the header information from the Am79C973 controller's first buffer and pass it to the application. S3 The application will return an application buffer pointer to the driver. The driver will add an offset to the application data buffer pointer, since the Am79C973 controller will be placing the first portion of the message into the first and second buffers. (the modified application data buffer pointer will only be directly used by the Am79C973 controller when it reaches the third buffer.) The driver will place the modified data buffer pointer into the final descriptor of the group (#3) and will grant ownership of this descriptor to the Am79C973 controller. C5 Interleaved with S2, S3, and S4 driver activity, the Am79C973 controller will write frame data to buffer number 2. S4 The driver will next proceed to copy the contents of the Am79C973 controller's first buffer to the beginning of the application space. This copy will be to the exact (unmodified) buffer pointer that was passed by the application. S5 After copying all of the data from the first buffer into the beginning of the application data buffer, the driver will begin to poll the ownership bit of the second descriptor. The driver is waiting for the Am79C973 controller to finish filling the second buffer. C6 At this point, knowing that it had not previously owned the third descriptor and knowing that the current message has not ended (there is more data in the FIFO), the Am79C973 controller will make a last ditch lookahead to the final (third) descriptor. This time the ownership will be TRUE (i.e., the descriptor belongs tot he controller), because the driver wrote the appli- Flow The Am79C973 controller polls the current receive descriptor at some point in time before a message arrives. The Am79C973 controller determines that this receive buffer is OWNed by the Am79C973 controller and it stores the descriptor information to be used when a message does arrive. N0 Frame preamble appears on the wire, followed by SFD and destination address. N1 The 64th byte of frame data arrives from the wire. This causes the Am79C973 controller to begin frame data DMA operations to the first buffer. C0 When the 64th byte of the message arrives, the Am79C973 controller performs a lookahead operation to the next receive descriptor. This descriptor should be owned by the Am79C973 controller. C1 The Am79C973 controller intermittently requests the bus to transfer frame data to the first buffer as it arrives on the wire. S1 The driver remains idle. C2 When the Am79C973 controller has completely filled the first buffer, it writes status to the first descriptor. C3 When the first descriptor for the frame has been written, changing ownership from the A m 7 9 C 9 7 3 c o n t r o l l e r t o t h e C P U, th e Am79C973 controller will generate an SRP INTERRUPT. (This interrupt appears as a RINT interrupt in CSR0). S1 The SRP INTERRUPT causes the CPU to switch tasks to allow the Am79C973 controller's driver to run. During the CPU interrupt-generated task switching, the Am79C973 controller is performing a lookahead operation to the third descr iptor. At this point in time, the third descriptor is owned by the CPU. Am79C973/Am79C975 285 P R E L I M I N A R Y cation pointer into this descriptor and then changed the ownership to give the descriptor to the Am79C973 controller back at S3. Note that if steps S1, S2, and S3 have not completed at this time, a BUFF error will result. C7 S6 C8 286 After filling the second buffer and performing the last chance lookahead to the next descriptor, the Am79C973 controller will write the status and change the ownership bit of descriptor number 2. After the ownership of descriptor number 2 has been changed by the Am79C973 controller, the next driver poll of the second descriptor will show ownership granted to the CPU. The driver now copies the data from buffer number 2 into the middle section of the application buffer space. This operation is interleaved with the C7 and C8 operations. The Am79C973 controller will perform data DMA to the last buffer, whose pointer is pointing to application space. Data entering the least buffer will not need the infamous double copy that is required by existing drivers, since it is being placed directly into the application buffer space. N2 The message on the wire ends. S7 When the driver completes the copy of buffer number 2 data to the application buffer space, it begins polling descriptor number 3. C9 When the Am79C973 controller has finished all data DMA operations, it writes status and changes ownership of descriptor number 3. S8 The driver sees that the ownership of descriptor number 3 has changed, and it calls the application to tell the application that a frame has arrived. S9 The application processes the received frame and generates the next TX frame, placing it into a TX buffer. S10 The driver sets up the TX descriptor for the Am79C973 controller. Am79C973/Am79C975 P R E L I M I N A R Y Ethernet Wire activity: Ethernet Controller activity: Software activity: S10: Driver sets up TX descriptor. S9: Application processes packet, generates TX packet. S8: Driver calls application to tell application that packethas arrived. } C9: Controller writes descriptor #3. S7: Driver polls descriptor of buffer #3. N2:EOM C8: Controller is performing intermittent bursts of DMA to fill data buffer #3. S6: Driver copies data from buffer #2 to the application buffer. Buffer #3 C6: "Last chance" lookahead to descriptor #3 (OWN). S4: Driver copies data from buffer #1 to the application buffer. S3: Driver writes modified application pointer to descriptor #3. Packet data arriving C5: Controller is performing intermittent bursts of DMA to fill data buffer #2 C4: Lookahead to descriptor #3 (OWN). C3: SRP interrupt is generated. S5: Driver polls descriptor #2. } Buffer #2 } C7: Controller writes descriptor #2. S2: Driver call to application to get application buffer pointer. S1: Interrupt latency. } C2: Controller writes descriptor #1. C1: Controller is performing intermittent bursts of DMA to fill data buffer #1. Buffer #1 S0: Driver is idle. C0: Lookahead to descriptor #2. { N1: 64th byte of packet data arrives. N0: Packet preamble, SFD and destination address are arriving. 21510B-B1 Figure 88. LAPP Timeline Am79C973/Am79C975 287 P R E L I M I N A R Y LAPP Software Requirements Software needs to set up a receive ring with descriptors formed into groups of three. The first descriptor of each group should have OWN = 1 and STP = 1, the second descriptor of each group should have OWN = 1 and STP = 0. The third descriptor of each group should have OWN = 0 and STP = 0. The size of the first buffer (as indicated in the first descriptor) should be at least equal to the largest expected header size; however, for maximum efficiency of CPU utilization, the first buffer size should be larger than the header size. It should be equal to the expected number of message bytes, minus the time needed for interrupt latency and minus the application call latency, minus the time needed for the driver to write to the third descriptor, minus the time Descriptor #1 OWN = 1 STP = 1 SIZE = A-(S1+S2+S3+S4+S6) Descriptor #2 OWN = 1 STP = 0 SIZE = S1+S2+S3+S4 Descriptor #3 OWN = 0 STP = 0 SIZE = S6 Descriptor #4 OWN = 1 STP = 1 SIZE = A-(S1+S2+S3+S4+S6) Descriptor #5 OWN = 1 STP = 0 SIZE = S1+S2+S3+S4 Descriptor #6 OWN = 0 STP = 0 SIZE = S6 Descriptor #7 OWN = 1 STP = 1 SIZE = A-(S1+S2+S3+S4+S6) Descriptor #8 OWN = 1 STP = 0 SIZE = S1+S2+S3+S4 Descriptor #9 OWN = 0 STP = 0 SIZE = S6 needed for the drive to copy data from buffer number 2 to the application buffer space. Note that the time needed for the copies performed by the driver depends upon the sizes of the second and third buffers, and that the sizes of the second and third buffers need to be set according to the time needed for the data copy operations. This means that an iterative self-adjusting mechanism needs to be placed into the software to determine the correct buffer sizing for optimal operation. Fixed values for buffer sizes may be used; in such a case, the LAPP method will still provide a significant performance increase, but the performance increase will not be maximized. Figure B-2 illustrates this setup for a receive ring size of 9. A = Expected message size in bytes S1 = Interrupt latency S2 = Application call latency S3 = Time needed for driver to write to third descriptor S4 = Time needed for driver to copy data from buffer #1 to application buffer space S6 = Time needed for driver to copy data from buffer #2 to application buffer space Note that the times needed for tasks S1, S2, S3, S4, and S6 should be divided by 0.8 microseconds to yield an equivalent number of network byte times before subtracting these quantities from the expected message size A. 21510B-B2 Figure 89. LAPP 3 Buffer Grouping LAPP Rules for Parsing Descriptors When using the LAPP method, software must use a modified form of descriptor parsing as follows: n Software will examine OWN and STP to determine where an RCV frame begins. RCV frames will only begin in buffers that have OWN = 0 and STP = 1. n Software shall assume that a frame continues until it finds either ENP = 1 or ERR = 1. 288 n Software must discard all descriptors with OWN = 0 and STP = 0 and move to the next descriptor when searching for the beginning of a new frame; ENP and ERR should be ignored by software during this search. n Software cannot change an STP value in the receive descriptor ring after the initial setup of the ring is complete, even if software has ownership of the STP Am79C973/Am79C975 P R E L I M I N A R Y descriptor, unless the previous STP descriptor in the ring is also OWNED by the software. When LAPPEN = 1, then hardware will use a modified form of descriptor parsing as follows: n The controller will examine OWN and STP to determine where to begin placing an RCV frame. A new RCV frame will only begin in a buffer that has OWN = 1 and STP =1. n The controller will always obey the OWN bit for determining whether or not it may use the next buffer for a chain. n The controller will always mark the end of a frame with either ENP = 1 or ERR = 1. The controller will discard all descriptors with OWN = 1 and STP = 0 and move to the next descriptor when searching for a place to begin a new frame. It discards these descriptors by simply changing the ownership bit from OWN = 1 to OWN = 0. Such a descriptor is unused for receive purposes by the controller, and the driver must recognize this. (The driver will recognize this if it follows the software rules.) The controller will ignore all descriptors with OWN = 0 and STP = 0 and move to the next descriptor when searching for a place to begin a new frame. In other words, the controller is allowed to skip entries in the ring that it does not own, but only when it is looking for a place to begin a new frame. Some Examples of LAPP Descriptor Interaction Choose an expected frame size of 1060 bytes. Choose buffer sizes of 800, 200, and 200 bytes. n Example 1: Assume that a 1060 byte frame arrives correctly, and that the timing of the early interrupt and the software is smooth. The descriptors will have changed from: Before the Frame Arrives After the Frame Arrives Descriptor Number OWN STP ENP OWN STP ENPb Comments (After Frame Arrival) 1 1 1 x 0 1 0 Bytes 1-800 2 1 0 X 0 0 0 Bytes 801-1000 3 0 0 X 0 0 1 Bytes 1001-1060 4 1 1 X 1 1 X Controller's current location 5 1 0 X 1 0 X Not yet used 6 0 0 X 0 0 X Not yet used etc. 1 1 X 1 1 X Net yet used a a. & b. ENP or ERR. n Example 2: Assume that instead of the expected 1060 byte frame, a 900 byte frame arrives, either because there was an error in the network, or be- cause this is the last frame in a file transmission sequence. Before the Frame Arrives Descriptor Number OWN STP 1 1 2 1 3 0 After the Frame Arrives Comments (After Frame Arrival) ENPa OWN STP ENPb 1 x 0 1 0 Bytes 1-800 0 X 0 0 0 Bytes 801-1000 0 X 0 0 ?* Discarded buffer 4 1 1 X 1 1 X Controller's current location 5 1 0 X 1 0 X Not yet used 6 0 0 X 0 0 X Not yet used etc. 1 1 X 1 1 X Net yet used a. & b. ENP or ERR. Note: The Am79C973 controller might write a ZERO to ENP location in the third descriptor. Here are the two possibilities: modified buffer pointer into the third descriptor, then the controller will write a ZERO to ENP for this buffer and will write a ZERO to OWN and STP. 1. If the controller finishes the data transfers into buffer number 2 after the driver writes the application 2. If the controller finishes the data transfers into buffer number 2 before the driver writes the applications Am79C973/Am79C975 289 P R E L I M I N A R Y modified buffer point into the third descriptor, then the controller will complete the frame in buffer number 2 and then skip the then unowned third buffer. In this case, the Am79C973 controller will not have had the opportunity to RESET the ENP bit in this descriptor, and it is possible that the software left this bit as ENP = 1 from the last time through the ring. Therefore, the software must treat the location as a don't care. The rule is, after finding ENP = 1 (or ERR = 1) in descriptor number 2, the software must ignore ENP bits until it finds the next STP = 1. n Example 3: Assume that instead of the expected 1060 byte frame, a 100 byte frame arrives, because there was an error in the network, or because this is the last frame in a file transmission sequence, or perhaps because it is an acknowledge frame. *Same as note in example 2 above, except that in this case, it is very unlikely that the driver can respond to the interrupt and get the pointer from the application before the Am79C973 controller has completed its poll of the next descriptors. This means that for almost all occurrences of this case, the Am79C973 controller will not find the OWN bit set for this descriptor and, therefore, the ENP bit will almost always contain the old value, since the Am79C973 controller will not have had an opportunity to modify it. **Note that even though the Am79C973 controller will write a ZERO to this ENP location, the software should treat the location as a don't care, since after finding the ENP = 1 in descriptor number 2, the software should ignore ENP bits until it finds the next STP = 1. Before the Frame Arrives Descriptor Number OWN STP 1 1 2 1 3 0 After the Frame Arrives ENPb Comments (After Frame Arrival) ENPa OWN STP 1 x 0 1 0 Bytes 1-800 0 X 0 0 0** Discarded buffer 0 X 0 0 ? Discarded buffer 4 1 1 X 1 1 X Controller's current location 5 1 0 X 1 0 X Not yet used 6 0 0 X 0 0 X Not yet used etc. 1 1 X 1 1 X Net yet used a. & b.ENP or ERR. Buffer Size Tuning For maximum performance, buffer sizes should be adjusted depending upon the expected frame size and the values of the interrupt latency and application call latency. The best driver code will minimize the CPU utilization while also minimizing the latency from frame end on the network to the frame sent to application from driver (frame latency). These objectives are aimed at increasing throughput on the network while decreasing CPU utilization. Note: The buffer sizes in the ring may be altered at any time that the CPU has ownership of the corresponding descriptor. The best choice for buffer sizes will maximize the time that the driver is swapped out, while minimizing the time from the last byte written by the Am79C973 controller to the time that the data is passed from the driver to the application. In the diagram, this corresponds to maximizing S0, while minimizing the time between C9 and S8. (the timeline happens to show a minimal time from C9 to S8.) Note: By increasing the size of buffer number 1, we increase the value of S0. However, when we increase the size of buffer number 1, we also increase the value of S4. If the size of buffer number 1 is too large, then the driver will not have enough time to perform tasks S2, 290 S3, S4, S5, and S6. The result is that there will be delay from the execution of task C9 until the execution of task S8. A perfectly timed system will have the values for S5 and S7 at a minimum. An average increase in performance can be achieved, if the general guidelines of buffer sizes in Figure 2 is followed. However, as was noted earlier, the correct sizing for buffers will depend upon the expected message size. There are two problems with relating expected message size with the correct buffer sizing: 1. Message sizes cannot always be accurately predicted, since a single application may expect different message sizes at different times. Therefore, the buffer sizes chosen will not always maximize throughput. 2. Within a single application, message sizes might be somewhat predictable, but when the same driver is to be shared with multiple applications, there may not be a common predictable message size. Additional problems occur when trying to define the correct sizing because the correct size also depends upon the interrupt latency, which may vary from system to system, depending upon both the hardware and the software installed in each system. Am79C973/Am79C975 P R E L I M I N A R Y In order to deal with the unpredictable nature of the message size, the driver can implement a self-tuning mechanism that examines the amount of time spent in tasks S5 and S7. As such, while the driver is polling for each descriptor, it could count the number of poll operations performed and then adjust the number 1 buffer size to a larger value, by adding "t" bytes to the buffer count, if the number of poll operations was greater than "x." If fewer than "x" poll operations were needed for each of S5 and S7, then software should adjust the buffer size to a smaller value by subtracting "y" bytes from the buffer count. Experiments with such a tuning mechanism must be performed to determine the best values for "x" and "y." Note: Whenever the size of buffer number 1 is adjusted, buffer sizes for buffer number 2 and buffer number 3 should also be adjusted. In some systems, the typical mix of receive frames on a network for a client application consists mostly of large data frames, with very few small frames. In this case, for maximum efficiency of buffer sizing, when a frame arrives under a certain size limit, the driver should not adjust the buffer sizes in response to the short frame. An Alternative LAPP Flow: TwoInterrupt Method An alternative to the above suggested flow is to use two interrupts, one at the start of the receive frame and the other at the end of the receive frame, instead of just looking for the SRP interrupt as described above. This alternative attempts to reduce the amount of time that the software wastes while polling for descriptor own bits. This time would then be available for other CPU tasks. It also minimizes the amount of time the CPU needs for data copying. This savings can be applied to other CPU tasks. The time from the end of frame arrival on the wire to delivery of the frame to the application is labeled as frame latency. For the one-interrupt method, frame latency is minimized, while CPU utilization increases. For the two-interrupt method, frame latency becomes greater, while CPU utilization decreases. See Figure B-3. Note: Some of the CPU time that can be applied to non-Ethernet tasks is used for task switching in the CPU. One task switch is required to swap a non-Ethernet task into the CPU (after S7A) and a second task switch is needed to swap the Ethernet driver back in again (at S8A). If the time needed to perform these task switches exceeds the time saved by not polling descriptors, then there is a net loss in performance with this method. Therefore, the LAPP method implemented should be carefully chosen. Figure B-4 shows the buffer sizing for the two-interrupt method. Note that the second buffer size will be about the same for each method. There is another alternative which is a marriage of the two previous methods. This third possibility would use the buffer sizes set by the two-interrupt method, but would use the polling method of determining frame end. This will give good frame latency but at the price of very high CPU utilization. And still, there are even more compromise positions that use various fixed buffer sizes and, effectively, the flow of the one-interrupt method. All of these compromises will reduce the complexity of the one-interrupt method by removing the heuristic buffer sizing code, but they all become less efficient than heuristic code would allow. Am79C973/Am79C975 291 P R E L I M I N A R Y Ethernet Wire activity: Ethernet Controller activity: Software activity: S10: Driver sets up TX descriptor. S9: Application processes packet, generates TX packet. S8: Driver calls application to tell application that packethas arrived. S8A: Interrupt latency. } C10: ERP interrupt is generated. } C9: Controller writes descriptor #3. } C8: Controller is performing intermittent bursts of DMA to fill data buffer #3. N2:EOM C7: Controller writes descriptor #2. S7: Driver is swapped out, allowing a non-Ethernet application to run. S7A: Driver Interrupt Service Routine executes RETURN. S6: Driver copies data from buffer #2 to the application buffer. Buffer #3 S5: Driver polls descriptor #2. C6: "Last chance" lookahead to descriptor #3 (OWN). S4: Driver copies data from buffer #1 to the application buffer. S3: Driver writes modified application pointer to descriptor #3. Packet data arriving C4: Lookahead to descriptor #3 (OWN). C3: SRP interrupt is generated. } Buffer #2 } C5: Controller is performing intermittent bursts of DMA to fill data buffer #2 S2: Driver call to application to get application buffer pointer. S1: Interrupt latency. } C2: Controller writes descriptor #1. C1: Controller is performing intermittent bursts of DMA to fill data buffer #1. Buffer #1 S0: Driver is idle. C0: Lookahead to descriptor #2. { N1: 64th byte of packet data arrives. N0: Packet preamble, SFD and destination address are arriving. 21510B-B3 Figure 90. LAPP Timeline for Two-Interrupt Method 292 Am79C973/Am79C975 P R E L I M I N A R Y Descriptor #1 Descriptor #2 OWN = 1 STP = 1 SIZE = HEADER_SIZE (minimum 64 bytes) OWN = 1 SIZE = S1+S2+S3+S4 STP = 0 Descriptor #3 OWN = 0 STP = 0 SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE) Descriptor #4 OWN = 1 STP = 1 SIZE = HEADER_SIZE (minimum 64 bytes) Descriptor #5 OWN = 1 SIZE = S1+S2+S3+S4 Descriptor #6 OWN = 0 STP = 0 SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE) Descriptor #7 OWN = 1 STP = 1 SIZE = HEADER_SIZE (minimum 64 bytes) Descriptor #8 OWN = 1 SIZE = S1+S2+S3+S4 Descriptor #9 OWN = 0 STP = 0 SIZE = 1518 - (S1+S2+S3+S4+HEADER_SIZE) STP = 0 STP = 0 A = Expected message size in bytes S1 = Interrupt latency S2 = Application call latency S3 = Time needed for driver to write to third descriptor S4 = Time needed for driver to copy data from buffer #1 to application buffer space S6 = Time needed for driver to copy data from buffer #2 to application buffer space Note that the times needed for tasks S1, S2, S3, S4, and S6 should be divided by 0.8 microseconds to yield an equivalent number of network byte times before subtracting these quantities from the expected message size A. 21510B-B4 Figure 91. LAPP 3 Buffer Grouping for Two-interrupt Method Am79C973/Am79C975 293 P R E L I M I N A R Y INDEX Numerics 10 Mbps Receive (RX) Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . .233 10 Mbps Transmit (TX) Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . .233 10/100 Media Access Control . . . . . . . . . . .70 10/100 PHY Unit Overview . . . . . . . . . . . .79 100BASE-FX (Fiber Interface) . . . . . . . . . .79 100BASE-X Physical Layer . . . . . . . . . . . .79 100BASE-X Transmit and Receive Data Paths of the Internal PHY . . . . . . . . .81 10BASE-T Block . . . . . . . . . . . . . . . . . . . . .86 10BASE-T Physical Layer . . . . . . . . . . . . . .79 EBDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Expansion Bus Data/Address . . . . . . . . . . . .34 16-Bit Software Model . . . . . . . . . . . . . . . .66 C/BE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 RXD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 TXD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 AD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 32-Bit Software Model . . . . . . . . . . . . . . . .67 EBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 EBUA_EBA . . . . . . . . . . . . . . . . . . . . . . . . .33 Expansion Bus Data . . . . . . . . . . . . . . . . . . .34 Expansion Bus Upper Address/ Expansion Bus Address . . . . . . .33 A Absolute Maximum Ratings . . . . . . .224, 266 Address and Data . . . . . . . . . . . . . . . . . . . . .29 Address Match Logic . . . . . . . . . . . . . . . . .205 Address Matching . . . . . . . . . . . . . . . . . . . .75 Address Parity Error Response . . . . . . . . . .45 Address PROM Space . . . . . . . . . . . . . . . .109 Address Strobe/Expansion Bus Output Enable . . . . . . . . . . . . . . . . . . . . . .34 Advanced Parity Error Handling . . . . . . . . .56 Alternative Method for Initialization . . . . .283 Am79C972 Bus Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . .222 Am79C972 Programmable Registers . . . .220 Am79C973 EEPROM Map . . . . . . . . . . . .100 Am79C975 EEPROM Map . . . . . . . . . . . .101 Am79C975 PIN DESIGNATIONS . . . . . .245 AMD Flash Programming . . . . . . . . . . . . . .95 294 An Alternative LAPP Flow Two-Interrupt Method . . . . . . . . . . . . .291 APDW Values . . . . . . . . . . . . . . . . . . . . . .186 APP 3 Buffer Grouping for Two-interrupt Method . . . . . . . . . . . . . .293 AS_EBOE . . . . . . . . . . . . . . . . . . . . . . . . . .34 Automatic EEPROM Read Operation . . . . .98 Automatic Network Port Selection . . . . . .271 Automatic Network Selection Exceptions . . . . . . . . . . . . . . . . . . . . . .271 External PHY Auto-Negotiable . . . . . .272 External PHY Not Auto-Negotiable . .271 Force External Reset . . . . . . . . . . . . . .272 Automatic Pad Generation . . . . . . . . . . . . . .74 Automatic Pad Stripping . . . . . . . . . . . . . . .76 Automatic PREAD EEPROM Timing . . .238 Auto-Negotiation . . . . . . . . . . . . . . . . .87, 271 Auto-Negotiation Advertisement Register (Register 4) . . . . . . . . . . . . . . . .276 Auto-Negotiation Capabilities . . . . . . .88, 271 Auto-Negotiation Link Partner Ability Register (Register 5) . . . . . . . . . . . . . . . .277 Auto-Poll External PHY Status Polling . . .270 Auxiliary Power . . . . . . . . . . . . . . . . . . . . .102 B Basic Burst Read Transfer . . . . . . . . . . . . . .47 Basic Burst Write Transfer . . . . . . . . . . . . .49 BASIC FUNCTIONS . . . . . . . . . . . . . . . . .39 Basic Non-Burst Read Transfer . . . . . . . . . .47 Basic Non-Burst Write Transfer . . . . . . . . .49 Basic Operation . . . . . . . . . . . . . . . . . . . . .246 BCR Registers . . . . . . . . . . . . . . . . . .159, 161 BCR0 Master Mode Read Active . . . . . . . . . .157 BCR1 Master Mode Write Active . . . . . . . . .158 BCR16 I/O Base Address Lower . . . . . . . . . . .172 BCR19 EEPROM Control and Status . . . . . . .175 BCR20 Software Style . . . . . . . . . . . . . . . . . . .178 BCR28 Expansion Bus Port Address Lower (Used for Flash/EPROM and SRAM Accesses) . . . . . . . . . . . . . .183 Am79C973/Am79C975 P R E L I M I N A R Y BCR29 Expansion Port Address Upper (Used for Flash/EPROM Accesses) . . . . . . . . . . . . . . . . . . . .183 BCR30 Expansion Bus Data Port Register . . . .184 BCR31 Software Timer Register . . . . . . . . . . .184 BCR32 PHY Control and Status Register .185 BCR33 PHY Address Register . . . . . . . . . . . . .187 BCR34 PHY Management Data Register . . . . .187 BCR35 PCI Vendor ID Register . . . . . . . . . . . .187 BCR36 PCI Power Management Capabilities (PMC) Alias Register . . . . . . . . . . .188 BCR37 PCI DATA Register Zero (DATA0) Alias Register . . . . . . . . . . . . . . . . .188 BCR38 PCI DATA Register One (DATA1) Alias Register . . . . . . . . . . . . . . . . .188 BCR39 PCI DATA Register Two (DATA2) Alias Register . . . . . . . . . . . . . . . . .189 PCI DATA Register Zero (DATA2) Alias Register . . . . . . . . . . . . . . . . .189 BCR4 LED 0 Status . . . . . . . . . . . . . . . . . . . .164 BCR40 PCI Data Register Three (DATA3) Alias Register . . . . . . . . . . . . . . . . .189 BCR41 PCI DATA Register Four (DATA4) Alias Register . . . . . . . . . . . . . . . . .189 BCR42 PCI DATA Register Five (DATA5) Alias Register . . . . . . . . . . . . . . . . .190 BCR43 PCI DATA Register Six (DATA6) Alias Register . . . . . . . . . . . . . . . . .190 BCR44 PCI DATA Register Seven (DATA7) Alias Register . . . . . . . . . . . . . . . . .191 BCR45 OnNow Pattern Matching Register #1 . . . . . . . . . . . . . . . . . . .191 BCR46 OnNow Pattern Matching Register #2 . . . . . . . . . . . . . . . . . . .191 BCR47 OnNow Pattern Matching Register #3 . . . . . . . . . . . . . . . . . . .192 BCR5 LED1 Status . . . . . . . . . . . . . . . . . . . . .166 BCR6 LED2 Status . . . . . . . . . . . . . . . . . . . . .168 BCR7 LED3 Status . . . . . . . . . . . . . . . . . . . . .169 BCR9 Full-Duplex Control . . . . . . . . . . . . . . .171 BLOCK DIAGRAM . . . . . . . . . . . . . . . . . . .4 Block Diagram Low Latency Receive Configuration . . . . . . . . . . . . . . .97 Block Diagram No SRAM Configuration . . . . . . . . . . . . . . . . . . . . . .97 Board Interface . . . . . . . . . . . . . . . . . . . . . .31 Boundary Scan Circuit . . . . . . . . . . . . . . . .106 Boundary Scan Register . . . . . . . . . . . . . .106 BSR Mode Of Operation . . . . . . . . . . . . . .107 Buffer Management . . . . . . . . . . . . . . . . . . .64 Buffer Management Unit . . . . . . . . . . . . . . .63 Buffer Size Tuning . . . . . . . . . . . . . . . . . .290 Burst FIFO DMA Transfers . . . . . . . . . . . . .62 Burst Write Transfer . . . . . . . . . . . . . . . . . .50 Bus Acquisition . . . . . . . . . . . . . . . . . . .46, 47 Bus Command and Byte Enables . . . . . . . .29 Bus Configuration Registers . . . . . . .157, 218 Bus Grant . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Bus Master DMA Transfers . . . . . . . . . . . . .47 Bus Request . . . . . . . . . . . . . . . . . . . . . . . . .31 C Carrier Sense . . . . . . . . . . . . . . . . . . . . . . . .35 CLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 CLK Waveform for 3.3 V Signaling . . . . .236 CLK Waveform for 5 V Signaling . . . . . .236 CLK_FAC Values . . . . . . . . . . . . . . . . . . .183 Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Clock Interface . . . . . . . . . . . . . . . . . . . . . . .37 Clock Timing . . . . . . . . . . . . . . .227, 231, 266 COL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Collision . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Collision Detect Function . . . . . . . . . . . . . .87 Collision Handling . . . . . . . . . . . . . . . . . . . .73 Am79C973/Am79C975 295 P R E L I M I N A R Y CONNECTION DIAGRAM (PQL176) Am79C973 . . . . . . . . . . . . . . . . . . . . . . . .19 CONNECTION DIAGRAM (PQL176) Am79C975 . . . . . . . . . . . . . . . . . . . . . . . .21 CONNECTION DIAGRAM (PQR160) . . .18 CONNECTION DIAGRAM (PQR160) Am79C975 . . . . . . . . . . . . . . . . . . . . . . . .20 Control and Status Registers . . .123, 214, 259 Control Register (Register 0) . . . . . . . . . . .274 CRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 CSR0 Am79C972 Controller Status and Control Register . . . . . . . . . . . . . . .123 CSR1 Initialization Block Address 0 . . . . . . .126 CSR10 Logical Address Filter 2 . . . . . . . . . . .137 CSR100 Bus Timeout . . . . . . . . . . . . . . . . . . . . .153 CSR11 Logical Address Filter 3 . . . . . . . . . . .137 CSR112 Missed Frame Count . . . . . . . . . . . . . .154 CSR114 Receive Collision Count . . . . . . . . . . .154 CSR116 OnNow Power Mode Register . . . . . . .154 CSR12 Physical Address Register 0 . . . . . . . .137 CSR122 Advanced Feature Control . . . . . . . . . .156 CSR124 Test Register 1 . . . . . . . . . . . . . . . . . . .156 CSR125 MAC Enhanced Configuration Control . . . . . . . . . . . . . . . . . . . . . .156 CSR13 Physical Address Register 1 . . . . . . . .137 CSR14 Physical Address Register 2 . . . . . . . .137 CSR15 Mode . . . . . . . . . . . . . . . . . . . . . . . . . .138 CSR16 Initialization Block Address Lower . . . . . . . . . . . . . . . . . . . . . . .139 CSR17 Initialization Block Address 296 Upper . . . . . . . . . . . . . . . . . . . . . . .140 CSR18 Current Receive Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . . . . .140 CSR19 Current Receive Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . .140 CSR2 Initialization Block Address 1 . . . . . . .126 CSR20 Current Transmit Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . .140 CSR21 Current Transmit Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . .140 CSR22 Next Receive Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . .140 CSR23 Next Receive Buffer Address Upper . . . . . . . . . . . . . . . . . . . . . . .140 CSR24 Base Address of Receive Ring Lower . . . . . . . . . . . . . . . . . . . . . . .141 CSR25 Base Address of Receive Ring Upper . . . . . . . . . . . . . . . . . . . . . . .141 CSR26 Next Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .141 CSR27 Next Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .141 CSR28 Current Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .141 CSR29 Current Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .141 CSR3 Interrupt Masks and Deferral Control . . . . . . . . . . . . . . . . . . . . . .126 CSR30 Base Address of Transmit Ring Lower . . . . . . . . . . . . . . . . . . . . . . .141 CSR31 Base Address of Transmit Ring Am79C973/Am79C975 P R E L I M I N A R Y CSR32 Next Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .142 CSR33 Next Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .142 CSR34 Current Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .142 CSR35 Current Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .142 CSR36 Next Next Receive Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .142 CSR37 Next Next Receive Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .142 CSR38 Next Next Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .143 CSR39 Next Next Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . . . . . .143 CSR4 Test and Features Control . . . . . . . . . .129 CSR40 Current Receive Byte Count . . . . . . . .143 CSR41 Current Receive Status . . . . . . . . . . . . .143 CSR42 Current Transmit Byte Count . . . . . . .143 CSR43 Current Transmit Status . . . . . . . . . . . .143 CSR44 Next Receive Byte Count . . . . . . . . . .143 CSR45 Next Receive Status . . . . . . . . . . . . . . .144 CSR46 Transmit Poll Time Counter . . . . . . . .144 CSR47 Transmit Polling Interval . . . . . . . . . . .144 CSR48 Receive Poll Time Counter . . . . . . . . .145 CSR49 Receive Polling Interval . . . . . . . . . . . .145 CSR5 Extended Control and Interrupt 1 . . . .130 CSR58 Software Style . . . . . . . . . . . . . . . . . . .145 CSR6 RX/TX Descriptor Table Length . . . . .133 CSR60 Previous Transmit Descriptor Address Lower . . . . . . . . . . . . . . . . . . . . . . .147 CSR61 Previous Transmit Descriptor Address Upper . . . . . . . . . . . . . . . . . . .147, 148 CSR62 Previous Transmit Byte Count . . . . . . .148 CSR63 Previous Transmit Status . . . . . . . . . . .148 CSR64 Next Transmit Buffer Address Lower . . . . . . . . . . . . . . . . . . . . . . .148 CSR65 Next Transmit Buffer Address Upper . . . . . . . . . . . . . . . . . . .148, 149 CSR66 Next Transmit Byte Count . . . . . .148, 149 CSR67 . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 Next Transmit Status . . . . . . . . . . . . . .149 CSR7 Extended Control and Interrupt 2 . . . .133 CSR72 Receive Ring Counter . . . . . . . . . . . . .149 CSR74 Transmit Ring Counter . . . . . . . . . . . .149 CSR76 Receive Ring Length . . . . . . . . . . . . . .149 CSR78 Transmit Ring Length . . . . . . . . . . . . .149 CSR8 Logical Address Filter 0 . . . . . . . . . . .136 CSR80 DMA Transfer Counter and FIFO Threshold Control . . . . . . . . . . . . .150 CSR82 Transmit Descriptor Address Pointer Lower . . . . . . . . . . . . . . . . . . . . . . .152 CSR84 DMA Address Register Lower . . . . . .152 CSR85 DMA Address Register Upper . . . . . . .152 CSR86 Buffer Byte Counter . . . . . . . . . . . . . .152 Am79C973/Am79C975 297 P R E L I M I N A R Y CSR88 Chip ID Register Lower . . . . . . . . . . . .152 CSR89 Chip ID Register Upper . . . . . . . . . . . .153 CSR9 Logical Address Filter 1 . . . . . . . . . . .136 CSR92 Ring Length Conversion . . . . . . . . . . .153 Cycle Frame . . . . . . . . . . . . . . . . . . . . . . . . .29 D DC CHARACTERISTICS OVER COMMERCIAL OPERATING RANGES . . . . . . . . . . . . . . . . . . . .225, 266 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . .83 Descriptor DMA Transfers . . . . . . . . . . . . .58 Descriptor Ring Read In Burst Mode . . . . .59 Descriptor Ring Write In Burst Mode . . . . .61 Descriptor Ring Write In Non-Burst Mode . . . . . . . . . . . . . . . . . . . .61 Descriptor Rings . . . . . . . . . . . . . . . . . . . . .64 Destination Address Handling . . . . . . . . . . .71 DETAILED FUNCTIONS . . . . . . . . . . . . .40 Device . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 Device ID Register . . . . . . . . . . . . . . . . . . .107 Device Select . . . . . . . . . . . . . . . . . . . . . . . .29 DEVSEL . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Digital Ground (8 Pins) . . . . . . . . . . . . . . . .38 Digital I/O (Non-PCI Pins) . . . . . . . . . . . .225 Digital Power (6 Pins) . . . . . . . . . . . . . . . . .38 Direct Access to the Interface . . . . . . . . . . .98 Direct Flash Access . . . . . . . . . . . . . . . . . . .93 Direct SRAM Access . . . . . . . . . . . . . . . . . .96 Disconnect Of Burst Transfer . . . . . . . . . . .44 Disconnect Of Slave Burst Transfer - Host Inserts Wait States . . . . . . . . . . . . .45 Disconnect Of Slave Burst Transfer - No Host Wait States . . . . . . . . . . . . . . . .44 Disconnect Of Slave Cycle When Busy . . .44 Disconnect When Busy . . . . . . . . . . . . . . . .44 Disconnect With Data Transfer . . . . . . .50, 51 Disconnect Without Data Transfer . . . .51, 52 DISTINCTIVE CHARACTERISTICS . . . . .1 Double Word I/O Mode . . . . . . . . . . . . . . .110 DVDDA Analog PLL Power . . . . . . . . . . . .38 DVDDCO Crystal . . . . . . . . . . . . . . . . . . . .38 DVDDD, DVDDP PDX Block Power . . . .38 DVDDRX, DVDDTX I/O Buffer Power . . .38 DVSSD, DVSSP PDX Ground . . . . . . . . . .38 298 DVSSX All Blocks . . . . . . . . . . . . . . . . . . .38 E EADI Operations . . . . . . . . . . . . . . . . .89, 273 EAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 EBCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 EBCLK Waveform . . . . . . . . . . . . . . . . . .240 EBCS Values . . . . . . . . . . . . . . . . . . . . . . .182 EBWE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 EECS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 EEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 EEDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 EEPROM Auto-Detection . . . . . . . . . . . . . .98 EEPROM Chip Select . . . . . . . . . . . . . . . . .33 EEPROM Data In . . . . . . . . . . . . . . . . . . . .33 EEPROM Data Out . . . . . . . . . . . . . . . . . . .33 EEPROM Interface . . . . . . . . . . . . .33, 97, 98 EEPROM MAP . . . . . . . . . . . . . . . . . . . . . .99 EEPROM Read Functional Timing . . . . . .237 EEPROM Serial clock . . . . . . . . . . . . . . . . .33 EEPROM Timing . . . . . . . . . . . . . . . . . . .228 EEPROM-Programmable Registers . . . . . .98 EESK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 EPROM Only Configuration for the Expansion Bus (64K EPROM) . . . . . . . . .93 EPROM Only Configuration for the Expansion Bus (64K EPROM) . . . . . . . . .92 EROMCS . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Error Detection . . . . . . . . . . . . . . . . . . . . . .71 escriptor Ring Read In Non-Burst Mode . . .59 Expansion Bus Clock . . . . . . . . . . . . . . . . . .34 Expansion Bus Interface . . . . . . . . . . . .33, 90 Expansion Bus Read Timing . . . . . . . . . . .240 Expansion Bus Write Enable . . . . . . . . . . . .34 Expansion Bus Write Timing . . . . . . . . . .241 Expansion ROM - Boot Device Access . . . .90 Expansion ROM Bus Read Sequence . . . . .94 Expansion ROM Read . . . . . . . . . . . . . . . . .43 Expansion ROM Transfers . . . . . . . . . . . . .43 External Address Detection Interface . . . . . . . . . . . . . . . . . . .36, 88, 272 External PHY . . . . . . . . . . . . . . . . .89, 273 External PHY - MII @ 2.5 MHz . . . . .229 External PHY - MII @ 25 MHz . . . . .229 MII Snoop Mode and External PHY Mode . . . . . . . . . . . . . . . . . . . .89 Receive Frame Tagging . . . . . . . . .89, 273 Am79C973/Am79C975 P R E L I M I N A R Y External Address Reject Low . . . . . . . . . . .36 External Clock . . . . . . . . . . . . . . . . . . . . . .231 F Far End Fault Generation and Detection . . .84 FIFO Burst Write At End Of Unaligned Buffer . . . . . . . . . . . . . . . . . . .63 FIFO Burst Write At Start Of Unaligned Buffer . . . . . . . . . . . . . . . . . . .62 FIFO DMA Transfers . . . . . . . . . . . . . . . . .60 Flash Read from Expansion Bus Data Port . . . . . . . . . . . . . . . . . . . . . . . . . .94 Flash Write from Expansion Bus Data Port . . . . . . . . . . . . . . . . . . . . . . . . . .95 Flash/EPROM Read . . . . . . . . . . . . . . . . . . .93 Flow, LAPP . . . . . . . . . . . . . . . . . . . . . . . .285 FMDC Values . . . . . . . . . . . . . . . . . . . . . .185 FRAME . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Frame Format at the MII Interface Connection . . . . . . . . . . . . . . . . . . . . . . .270 Framing . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Full-Duplex Link Status LED Support . . . .79 Full-Duplex Operation . . . . . . . . . . . . . . . . .78 G GENERAL DESCRIPTION . . . . . . . . . . . . .2 GNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 H Initialization Block (SSIZE32 = 1) . . . . . .204 Initialization Block DMA Transfers . . . . . .56 Initialization Block Read In Burst Mode . . . . . . . . . . . . . . . . . . . . . . . .57 Initialization Block Read In Non-Burst Mode . . . . . . . . . . . . . . . . . . . .57 Initialization Device Select . . . . . . . . . . . . .29 Initiator Ready . . . . . . . . . . . . . . . . . . . . . . .30 Input Setup and Hold Timing . . . . . . . . . .236 Instruction Register and Decoding Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 INTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Interface Pin Assignment . . . . . . . . . . . . . .177 Internal Loopback Paths . . . . . . . . . . . . . . .80 Internal SRAM Configuration . . . . . . . . . . .96 Interrupt Request . . . . . . . . . . . . . . . . . . . . .30 Introduction . . . . . . . . . . . . . . . . . . . . . . . .284 IRDY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 IREF Internal Current Reference . . . . . . . . .37 J Jabber Function . . . . . . . . . . . . . . . . . . . . . .87 JTAG (IEEE 1149.1) TCK Waveform for 5 V Signalin . . . . . . . . . . . . . . . . . . .238 JTAG (IEEE 1149.1) Test Signal Timing . . . . . . . . . . . . . . . . . . . . . . .228, 239 K Key to Switching Waveforms . . . . . . . . . .234 H_RESET . . . . . . . . . . . . . . . . . . . . . . . . .107 I I/O Buffer Ground (17 Pins) . . . . . . . . . . . .38 I/O Map In DWord I/O Mode (DWIO = 1) . . . . . . . . . . . . . . . . . . . . . . .111 I/O Map In Word I/O Mode (DWIO = 0) . . . . . . . . . . . . . . . . . . . . . . .110 I/O Registers . . . . . . . . . . . . . . . . . . . . . . .109 I/O Resources . . . . . . . . . . . . . . . . . . . . . . .109 IDSEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 IEEE 1149.1 (1990) Test Access Port Interface . . . . . . . . . . . . . . . . . . . . . .36, 106 IEEE 1149.1 Supported Instruction Summary . . . . . . . . . . . . . . . . . . . . . . . . .106 IEEE 802.3 Frame And Length Field Transmission Order . . . . . . . . . . . . . . . . . .77 Initialization . . . . . . . . . . . . . . . . . . . . . . . . .63 Initialization Block . . . . . . . . . . . . . . . . . .203 Initialization Block (SSIZE32 = 0) . . . . . .203 L LAPP 3 Buffer Grouping . . . . . . . . . . . . . .288 LAPP Timeline . . . . . . . . . . . . . . . . . . . . .287 LAPP Timeline for Two-Interrupt Method . . . . . . . . . . . . . . . . . . . . . . . . . .292 Late Collision . . . . . . . . . . . . . . . . . . . . . . . .75 LED Control Logic . . . . . . . . . . . . . . . . . .102 LED Default Configuration . . . . . . . . . . . .102 LED Support . . . . . . . . . . . . . . . . . . . . . . . .99 LED0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 LED1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 LED2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 LED3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Legal I/O Accesses in Double Word I/O Mode (DWIO =1) . . . . . . . . . .111 Legal I/O Accesses in Word I/O Mode (DWIO = 0) . . . . . . . . . . . . . . . . . . . . . . .111 Link Change Detect . . . . . . . . . . . . . . . . . .103 Link Monitor . . . . . . . . . . . . . . . . . . . . . . . .84 Am79C973/Am79C975 299 P R E L I M I N A R Y Listed By Function . . . . . . . . . . . . . . . . . . .246 Listed By Group . . . . . . . . . . . . . . . . . . . . .246 Look-Ahead Packet Processing (LAPP) Concept . . . . . . . . . . . . . . . . . . .284 Loopback Configuration . . . . . . . . . . . . . .139 Loopback Operation . . . . . . . . . . . . . . . . . .78 Loss of Carrier . . . . . . . . . . . . . . . . . . . . . . .75 Low Latency Receive Configuration . . . . . .96 M MAC . . . . . . . . . . . . . . . . . . . . . . . .70, 71, 72 Magic Packet Mode . . . . . . . . . . . . . . . . . .104 Management Cycle Timing . . . . . . . . . . . .278 Management Data Clock . . . . . . . . . . . . . . .35 Management Data I/O . . . . . . . . . . . . . . . . .35 Management Data Output Valid Delay Timing . . . . . . . . . . . . . . . . . . . . .280 Management Data Setup and Hold Timing . . . . . . . . . . . . . . . . . . . . . . . . . . .280 Management Interrupt (SMI) Line . . . . . . .102 Management Station IP Address 1 (MReg Address 26) . . . . . . . . . . . . . . . . .258 Manual PHY Configuration . . . . . . . . . . . .271 Master Abort . . . . . . . . . . . . . . . . . . . . .53, 55 Master Bus Interface Unit . . . . . . . . . . . . . .46 Master Cycle Data Parity Error Response . . . . . . . . . . . . . . . . . . . . . . . . . .55 Master Initiated Termination . . . . . . . . . . . .52 MCLOCK SMI Clock . . . . . . . . . . . . . . . . .37 MDATA SMI Data . . . . . . . . . . . . . . . . . . .37 MDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 MDC Waveform . . . . . . . . . . . . . . . . . . . .279 MDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Media Access Management . . . . . . . . . . . . .71 Media Independent Interface . . . . . . . . . . . .80 Media Independent Interface (MII) . . . . . . . . . . . . . . . . . . . . . . . . .34, 268 Medium Allocation . . . . . . . . . . . . . . . . . . .71 Medium Dependent Interface . . . . . . . . . . .85 MII Interface . . . . . . . . . . . . . . . . . . . . . . . .39 MII Management Control Register (Register 0) . . . . . . . . . . . . . . . . . . . . . . .274 MII Management Frames . . . . . . . . . . . . . .269 MII Management Interface . . . . . . . . . . . .269 MII management registers . . . . . . . . . . . . .274 MII Network Status Interface . . . . . . . . . .269 MII Receive Frame Tag Enable . . . . . . . . . .36 MII Receive Interface . . . . . . . . . . . . . . . .269 MII Transmit Interface . . . . . . . . . . . . . . . .268 300 MIIRXFRTGD . . . . . . . . . . . . . . . . . . . . . .36 MIIRXFRTGE . . . . . . . . . . . . . . . . . . . . . . .36 MIRQ SMI Interrupt . . . . . . . . . . . . . . . . . .37 Miscellaneous Loopback Features . . . . . . . .78 MIU Receive Pattern RAM Data Port (MReg Address 34) . . . . . . . . . . . . . . . . .261 MIU Transceiver Status (MReg Address 30) . . . . . . . . . . . . . . . . .259 MLT-3 and Adaptive Equalization . . . . . . .84 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 N Network Interfaces . . . . . . . . . . . . . . . . .36, 39 Network Port Manager . . . . . . . . . . . . . . .270 No SRAM Configuration . . . . . . . . . . . . . . .96 Non-Burst FIFO DMA Transfers . . . . . . . .60 Non-Burst Read Transfer . . . . . . . . . . . . . . .48 Non-Burst Write Transfer . . . . . . . . . . . . . .49 Normal and Tri-State Outputs . . . . . . . . . .235 O Offset 00h . . . . . . . . . . . . . . . . . . . . . . . . .113 Offset 02h . . . . . . . . . . . . . . . . . . . . . . . . .113 Offset 04h . . . . . . . . . . . . . . . . . . . . . . . . .114 Offset 06h . . . . . . . . . . . . . . . . . . . . . . . . .115 Offset 08h . . . . . . . . . . . . . . . . . . . . . . . . .116 Offset 09h . . . . . . . . . . . . . . . . . . . . . . . . .116 Offset 0Ah . . . . . . . . . . . . . . . . . . . . . . . . .117 Offset 0Bh . . . . . . . . . . . . . . . . . . . . . . . . .117 Offset 0Dh . . . . . . . . . . . . . . . . . . . . . . . . .117 Offset 0Eh . . . . . . . . . . . . . . . . . . . . . . . . .117 Offset 10h . . . . . . . . . . . . . . . . . . . . . . . . .117 Offset 14h . . . . . . . . . . . . . . . . . . . . . . . . .118 Offset 2Ch . . . . . . . . . . . . . . . . . . . . . . . . .119 Offset 2Eh . . . . . . . . . . . . . . . . . . . . . . . . .119 Offset 30h . . . . . . . . . . . . . . . . . . . . . . . . .119 Offset 34h . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 3Ch . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 3Dh . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 3Eh . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 3Fh . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 40h . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 41h . . . . . . . . . . . . . . . . . . . . . . . . .120 Offset 42h . . . . . . . . . . . . . . . . . . . . . . . . .121 Offset 44h . . . . . . . . . . . . . . . . . . . . . . . . .121 Offset 46h . . . . . . . . . . . . . . . . . . . . . . . . .122 Offset 47h . . . . . . . . . . . . . . . . . . . . . . . . .122 OnNow Functional Diagram . . . . . . . . . . .103 OnNow Pattern Match Mode . . . . . . . . . . .104 Am79C973/Am79C975 P R E L I M I N A R Y OnNow Wake-Up Sequence . . . . . . . . . . .103 Operating Ranges . . . . . . . . . . . . . . . .224, 266 Ordering Information . . . . . . . . . . . . . . . . . .28 Other Data Registers . . . . . . . . . . . . . . . . .107 Outline of LAPP Flow . . . . . . . . . . . . . . . .285 Output and Float Delay Timing . . . . . . . . .227 Output Tri-state Delay Timing . . . . . . . . .237 Output Valid Delay Timing . . . . . . . . . . . .237 P PADR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 PAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Parity Error . . . . . . . . . . . . . . . . . . . . . . . . .30 Parity Error Response . . . . . . . . . . . . . .45, 53 Pattern Match RAM . . . . . . . . . . . . . . . . . .105 Pattern Match RAM (PMR) . . . . . . . . . . . .104 PCI Base-Class Register Offset 0Bh . . . . .117 PCI Bus Interface Pins - 3.3 V Signaling . . . . . . . . . . . . . . . . . . .225 PCI Bus Interface Pins - 5 V Signaling . . . . . . . . . . . . . . . . . . . .225 PCI Capabilities Pointer Register Offset 34h . . . . . . . . . . . . . . . . . . . . . . . .120 PCI Capability Identifier Register Offset 40h . . . . . . . . . . . . . . . . . . . . . . . .120 PCI Command Register . . . . . . . . . . . . . . .114 PCI Command Register Offset 04h . . . . . .114 PCI Configuration Registers . . . . . . . . . . . . .108, 112, 113, 213 PCI Configuration Space Layout . . . . . . . .108 PCI Data Register . . . . . . . . . . . . . . . . . . .122 PCI Data Register Offset 47h . . . . . . . . . .122 PCI Device ID Register Offset 02h . . . . . .113 PCI Expansion ROM Base Address Register . . . . . . . . . . . . . . . . . . . . . . . . . .119 PCI Header Type Register Offset 0Eh . . . . . . . . . . . . . . . . . . . . . . . .117 PCI I/O Base Address Register Offset 10h . . . . . . . . . . . . . . . . . . . . . . . .117 PCI I/O Buffer Power (9 Pins) . . . . . . . . . . .38 PCI Interface . . . . . . . . . . . . . . . . . . . . . . . .29 PCI Interrupt Line Register Offset 3Ch . . . . . . . . . . . . . . . . . . . . . . . .120 PCI Interrupt Pin Register . . . . . . . . . . . . .120 PCI Latency Timer Register Offset 0Dh . . . . . . . . . . . . . . . . . . . . . . . .117 PCI MAX_LAT Register Offset 3Fh . . . . .120 PCI Memory Mapped I/O Base Address Register . . . . . . . . . . . . . . . . . . .118 PCI MIN_GNT Register . . . . . . . . . . . . . .120 PCI Next Item Pointer Register Offset 41h . . . . . . . . . . . . . . . . . . . . . . . .120 PCI PMCSR Bridge Support Extensions Register . . . . . . . . . . . . . . . . . . . . . . . . . .122 PCI PMCSR Bridge Support Extensions Register Offset 46h . . . . . . . . . . . . . . . . .122 PCI Power Management Capabilities Register (PMC) . . . . . . . . . . . . . . . . . . . .121 PCI Power Management Control/Status Register (PMCSR) . . . . . . . . . . . . . . . . .121 PCI Programming Interface Register Offset 09h . . . . . . . . . . . . . . . . . . . . . . . .116 PCI Revision ID Register Offset 08h . . . .116 PCI Status Register Offset 06h . . . . . . . . .115 PCI Sub-Class Register Offset 0Ah . . . . . .117 PCI Subsystem ID Register . . . . . . . . . . . .119 PCI Subsystem Vendor ID Register . . . . .119 PCI Vendor ID Register . . . . . . . . . . . . . . .113 PCI Vendor ID Register Offset 00h . . . . . .113 PCI-to-Wire Fast Ethernet system solution . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 PCnetTM-FAST III Recommended Magnetics . . . . . . . . . . . . . . . . . . . . . . . .244 PERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 PHY Control and Management Block (PCM Block) . . . . . . . . . . . . . . . . . . . . . .192 PHY Management Registers . . . . . . . . . . .219 PHY Management Registers (ANRs) . . . .192 PHY_RST Physical Layer Reset . . . . . . . . .35 PHYSICAL DIMENSIONS . . . . . . . . . . .242 Pin Capacitance . . . . . . . . . . . . . . . . . . . . .226 PIN DESCRIPTIONS . . . . . . . . . . . . . . . . .29 PIN DESIGNATIONS (PQL176) (Am79C973/Am79C975) Listed By Pin Number . . . . . . . . . . . . . . . . . . . . . . . .23 PIN DESIGNATIONS (PQR160) (Am79C973/Am79C975) . . . . . . . . . . . . .22 PIN DESIGNATIONS (PQR160) (Am79C973/Am79C975) Listed By Pin Number . . . . . . . . . . . . . . . . . . . . .22 PIN DESIGNATIONS (PQR160, PQL176) Listed By Group . . . . . . . . . . . . . . . . . . . .24 PIN DESIGNATIONS Listed By Driver Type . . . . . . . . . . . . . . . . . . . . . . . .27 Am79C973/Am79C975 301 P R E L I M I N A R Y PIN DESIGNATIONS Listed By Group . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 PIN DESIGNATIONS Listed by Group . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 PMD Interface Timing (MLT-3) . . . . . . . .232 PMD Interface Timing (PECL) . . . . . . . . .232 PME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 Power Good . . . . . . . . . . . . . . . . . . . . . . . . .32 Power Management Event . . . . . . . . . . . . . .31 Power Management Support . . . . . . . . . . .102 Power on Reset . . . . . . . . . . . . . . . . . . . . .108 Power Savings Mode . . . . . . . . . . . . . . . . .102 Power Supply . . . . . . . . . . . . . . . . . . . . . . . .38 Power Supply Current . . . . . . . . . . . . . . . .226 PQL176 Thin Quad Flat Pack (measured in millimeters) . . . . . . . . . . . .243 PQR160 Plastic Quad Flat Pack (measured in millimeters) . . . . . . . . . . . .242 Preemption During Burst Transaction . . . . . . . . . . . . . . . . . . . . .52, 54 Preemption During Non-Burst Transaction . . . . . . . . . . . . . . . . . . . . .52, 54 R RAP Register Address Port . . . . . . . . . . . . .123 RAP Register . . . . . . . . . . . . . . . . . . . . . . .122 RDRA and TDRA . . . . . . . . . . . . . . . . . . .204 Receive Address Match . . . . . . . . . . . . . . . .76 Receive Clock . . . . . . . . . . . . . . . . . . . . . . .35 Receive Data . . . . . . . . . . . . . . . . . . . . . . . .35 Receive Data Valid . . . . . . . . . . . . . . . . . . .35 Receive Descriptor (SWSTYLE = 0) . . . .205 Receive Descriptor (SWSTYLE = 2) . . . .206 Receive Descriptor (SWSTYLE = 3) . . . .206 Receive Descriptor Table Entry . . . . . . . . . .68 Receive Descriptors . . . . . . . . . . . . . . . . . .205 Receive Error . . . . . . . . . . . . . . . . . . . . . . . .35 Receive Exception Conditions . . . . . . . . . . .77 Receive FCS Checking . . . . . . . . . . . . . . . .77 Receive Frame Queuing . . . . . . . . . . . . . . . .69 Receive Frame Tag Timing with Media Independent Interface . . . . .229, 282 Receive Frame Tagging . . . . . . . . . . . . . . . .90 Receive Function Programming . . . . . . . . .75 Receive Operation . . . . . . . . . . . . . . . . . . . .75 Receive Process . . . . . . . . . . . . . . . . . . . . . .80 Receive Timing . . . . . . . . . . . . . . . . .278, 279 302 Receive Watermark Programming . . . . . .150 Recommended Magnetics Vendors . . . . . .244 REGISTER PROGRAMMING SUMMARY . . . . . . . . . . . . . . . . . . . . . .220 Register Summary . . . . . . . . . . . . . . .213, 264 Registers . . . . . . . . . . . . . . . . . . . . . . . . . .283 Re-Initialization . . . . . . . . . . . . . . . . . . . . . .63 Reject Timing - External PHY MII @ 2.5 MHz . . . . . . . . . . . . . . . . . . . . . . .281 Reject Timing - External PHY MII @ 25 MHz . . . . . . . . . . . . . . . . . . . . . . .281 RELATED AMD PRODUCTS . . . . . . . . . .17 Remote Wake Up . . . . . . . . . . . . . . . . . . . . .32 REQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Reset Register . . . . . . . . . . . . . . . . . . . . . .109 Reverse Polarity Detect . . . . . . . . . . . . . . . .87 RLEN and TLEN . . . . . . . . . . . . . . . . . . . .204 RMD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 RMD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 RMD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 RMD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Running Registers . . . . . . . . . . . . . . . . . . .113 RWU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 RX+, RX- Serial Receive Data MLT-3/PECL . . . . . . . . . . . . . . . . . . . . . .37 RX_CLK . . . . . . . . . . . . . . . . . . . . . . . . . . .35 RX_DV . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 RX_ER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 S S_RESET . . . . . . . . . . . . . . . . . . . . . . . . . .107 SDI+, SDI- Signal Detect . . . . . . . . . . . . . .37 Serial Management Interface (Am79C975) . . . . . . . . . . . . . . . . . . . . . . .39 Serial Management Interface (SMI) (Am79C975 only) . . . . . . . . . . . . . . . . . . .37 Serial Management Interface Unit (Am79C975 only) . . . . . . . . . . . . . . . . . .245 Serializer/Deserializer and Clock Recovery . . . . . . . . . . . . . . . . . . . . . . . . . .85 SERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 Setup and Hold Timing . . . . . . . . . . . . . . .227 Setup Registers . . . . . . . . . . . . . . . . . . . . .112 SFBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Slave Bus Interface Unit . . . . . . . . . . . . . . .40 Slave Commands . . . . . . . . . . . . . . . . . . . . .40 Am79C973/Am79C975 P R E L I M I N A R Y Slave Configuration Read . . . . . . . . . . . . . .41 Slave Configuration Transfers . . . . . . . . . . .40 Slave Configuration Write . . . . . . . . . . . . . .41 Slave Cycle Data Parity Error Response . . .46 Slave Cycle Termination . . . . . . . . . . . . . . .44 Slave I/O Transfers . . . . . . . . . . . . . . . . . . .40 Slave Read Using I/O Command . . . . . . . . .42 Slave Write Using Memory Command . . . .42 SMIU Command Register (MReg Address 31) . . . . . . . . . . . . . . . . .260 SMIU Interrupt Register (MReg Address 32) . . . . . . . . . . . . . . . . .260 SMIU Receive Address Register (MReg Address 39) . . . . . . . . . . . . . . . . .262 SMIU Receive Data Port (MReg Address 40) . . . . . . . . . . . . . . . . .262 SMIU Receive Message Length Register (MReg Address 41) . . . . . . . . . . . . . . . . .262 SMIU Receive Status Register (MReg Address 42) . . . . . . . . . . . . . . . . .262 SMIU Transmit Address Register (MReg Address 35) . . . . . . . . . . . . . . . . .261 SMIU Transmit Data Port (MReg Address 36) . . . . . . . . . . . . . . . . .261 SMIU Transmit Message Length Register (MReg Address 37) . . . . . . . . . . . . . . . . .261 SMIU Transmit Status Register (MReg Address 38) . . . . . . . . . . . . . . . . .261 Soft Reset Function . . . . . . . . . . . . . . . . . . .88 Software . . . . . . . . . . . . . . . . . . . . . . . . . . .179 Software Access . . . . . . . . . . . . . . . . . . . . .108 Software Interface . . . . . . . . . . . . . . . . . . . .39 Software Interrupt Timer . . . . . . . . . . . . . . .69 Some Examples of LAPP Descriptor Interaction . . . . . . . . . . . . . . . . . . . . . . . .289 SQE Test Error . . . . . . . . . . . . . . . . . . . . . . .75 SR2 Initialization Block Address 1 . . . . . . .126 SRAM Configuration . . . . . . . . . . . . . . . . . .96 Standard Products . . . . . . . . . . . . . . . . . . . .28 Start Frame-Byte Delimiter . . . . . . . . . . . . .36 Status Register (Register 1) . . . . . . . . . . . .275 STOP . . . . . . . . . . . . . . . . . . . . . . . . . .31, 107 Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Supported Instructions . . . . . . . . . . . . . . . .106 Suspend . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 SWITCHING CHARACTERISTICS . . . .266 Switching Characteristics Bus Interface . . . . . . . . . . . . . . . . . . . .227 External Address Detection Interface .229 Media Independent Interface . . . . . . . .278 Switching Test Circuits . . . . . . . . . . . . . . .235 SWITCHING WAVEFORMS . . . . . . . . .228 SWICHING WAVEFORMS Receive Frame Tag . . . . . . . . . . . . . . .282 Switching Waveforms . . . . . . . . . . . . . . . .267 Expansion Bus Interface . . . . . . . . . . .240 External Address Detection Interface . . . . . . . . . . . . . . . . . . . . .281 General-Purpose Serial Interface . . . . .242 Media Independent Interface . . . .242, 279 System Bus Interface . . . . . . . . . . . . . .236 Symbol Interface (PDT/PDR mode) . . . . .192 System Bus Interface . . . . . . . . . . . . . . . . . .39 System Error . . . . . . . . . . . . . . . . . . . . . . . .31 T TAP Finite State Machine . . . . . . . . . . . . .106 Target Abort . . . . . . . . . . . . . . . . . . . . . .51, 53 Target Initiated Termination . . . . . . . . . . . .50 Target Ready . . . . . . . . . . . . . . . . . . . . . . . .31 TCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 TDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 TDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Technology Ability Field Bit Assignments . . . . . . . . . . . . . . . . . . . . . .276 Test Clock . . . . . . . . . . . . . . . . . . . . . . . . . .36 Test Data In . . . . . . . . . . . . . . . . . . . . . . . . .36 Test Data Out . . . . . . . . . . . . . . . . . . . . . . . .36 Test Mode Select . . . . . . . . . . . . . . . . . . . . .36 Test Registers . . . . . . . . . . . . . . . . . . . . . . .113 TMD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 TMD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 TMD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 TMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Transferring Data . . . . . . . . . . . . . . . . . . . .246 Transmit and Receive Message Data Encapsulation . . . . . . . . . . . . . . . . . . . . . .70 Transmit Clock . . . . . . . . . . . . . . . . . . . . . .34 Transmit Data . . . . . . . . . . . . . . . . . . . . . . .34 Transmit Descriptor Table Entry . . . . . . . . .67 Transmit Descriptors . . . . . . . . . . . . . . . . .209 Transmit Enable . . . . . . . . . . . . . . . . . . . . . .34 Transmit Error . . . . . . . . . . . . . . . . . . . . . . .34 Transmit Exception Conditions . . . . . . . . . .74 Transmit FCS Generation . . . . . . . . . . . . . .74 Transmit Function Programming . . . . . . . . .73 Transmit Operation . . . . . . . . . . . . . . . . . . .73 Am79C973/Am79C975 303 P R E L I M I N A R Y Transmit Process . . . . . . . . . . . . . . . . . . . . .80 Transmit Start Point Programming . . . . . .151 Transmit Timin . . . . . . . . . . . . . . . . . . . . .279 Transmit Timing . . . . . . . . . . . . . . . . . . . .278 Transmit Watermark Programming . . . . . .151 TRDY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Twisted Pair Interface Status . . . . . . . . . . . .87 Twisted Pair Receive Function . . . . . . . . . .86 Twisted Pair Transmit Function . . . . . . . . .86 TX+, TX- Serial Transmit Data MLT-3/PECL . . . . . . . . . . . . . . . . . . . . . .36 TX_CLK . . . . . . . . . . . . . . . . . . . . . . . . . . .34 TX_EN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 TX_ER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 U USER ACCESSIBLE REGISTERS . . . . .112 304 V VAUXDET Auxiliary Power Detect . . . . . .31 VDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 VDDB I/O Buffer Power . . . . . . . . . . . . . . .38 VSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 VSSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 W Wake-Up Mode Indicator . . . . . . . . . . . . . .33 Word I/O Mode . . . . . . . . . . . . . . . . . . . . .109 WUMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 X XCLK/XTAL External Clock/Crystal Select . . . . . . . . . . . . . . . . .37 XTAL1 Crystal Input . . . . . . . . . . . . . . . . . .37 XTAL2 Crystal Output . . . . . . . . . . . . . . . .37 Am79C973/Am79C975