82596DX AND 82596SX HIGH-PERFORMANCE 32-BIT LOCAL AREA NETWORK COPROCESSOR Y Performs Complete CSMA/CD Medium Access Control (MAC) FunctionsÐ Independently of CPU Ð IEEE 802.3 (EOC) Frame Delimiting Y Supports Industry Standard LANs Ð IEEE TYPE 10BASE-T (TPE), IEEE TYPE 10BASE5 (Ethernet*), IEEE TYPE 10BASE2 (Cheapernet), IEEE TYPE 1BASE5 (StarLAN), and the Proposed Standard TYPE 10BASE-F Ð Proprietary CSMA/CD Networks Up to 20 Mb/s Y On-Chip Memory Management Ð Automatic Buffer Chaining Ð Buffer Reclamation after Receipt of Bad Frames; Optional Save Bad Frames Ð 32-Bit Segmented or Linear (Flat) Memory Addressing Formats Y 82586 Software Compatible Y Optimized CPU Interface Ð 82596DX Bus Interface Optimized to Intel’s 32-Bit i386 TM DX Ð 82596SX Bus Interface Optimized to Intel’s 16-Bit i386 TM SX Ð Supports Big Endian and Little Endian Byte Ordering Y High-Performance 16-/32-Bit Bus Master Interface Ð 66-MB/s Bus Bandwidth Ð 33-MHz Clock, Two Clocks Per Transfer Ð Bus Throttle Timers Ð Transfers Data at 100% of Serial Bandwidth Ð 128-Byte Receive FIFO, 64-Byte Transmit FIFO Y Network Management and Diagnostics Ð Monitor Mode Ð 32-Bit Statistical Counters Y Self-Test Diagnostics Y Configurable Initialization Root for Data Structures Y High-Speed, 5-V, CHMOS** IV Technology Y 132-Pin Plastic Quad Flat Pack (PQFP) and PGA Package (See Packaging Specifications Order Number: 240800-001, Package Type KU and A) i386 TM is a trademark of Intel Corporation *Ethernet is a registered trademark of Xerox Corporation. **CHMOS is a patented process of Intel Corporation. 290219 – 1 Figure 1. 82596DX/SX Block Diagram *Other brands and names are the property of their respective owners. Information in this document is provided in connection with Intel products. Intel assumes no liability whatsoever, including infringement of any patent or copyright, for sale and use of Intel products except as provided in Intel’s Terms and Conditions of Sale for such products. Intel retains the right to make changes to these specifications at any time, without notice. Microcomputer Products may have minor variations to this specification known as errata. COPYRIGHT © INTEL CORPORATION, 1996 November 1995 Order Number: 290219-006 82596DX/SX 82596DX and 82596SX High-Performance 32-Bit Local Area Network Coprocessor CONTENTS PAGE INTRODUCTION ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 3 PIN DESCRIPTIONS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 10 CONTENTS PAGE CBL Offset (Address) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 33 RFA Offset (Address) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 34 82596 AND HOST CPU INTERACTION ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 14 SCB STATISTICAL COUNTERS ÀÀÀÀÀÀÀÀÀÀ 34 Statistical Counter Operation ÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 34 82596 BUS INTERFACE ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 14 ACTION COMMANDS AND OPERATING MODES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 35 NOP ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 35 Individual Address Setup ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 36 Configure ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 37 Multicast-Setup ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 43 Transmit ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 44 Jamming Rules ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 46 TDR ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 47 Dump ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 49 Diagnose ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 52 82596 MEMORY ADDRESSING ÀÀÀÀÀÀÀÀÀÀ 14 82596 SYSTEM MEMORY STRUCTURE ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 16 TRANSMIT AND RECEIVE MEMORY STRUCTURES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 17 TRANSMITTING FRAMES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 20 RECEIVING FRAMES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 21 82596 NETWORK MANAGEMENT AND DIAGNOSTICS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 21 NETWORK PLANNING AND MAINTENANCE ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 23 STATION DIAGNOSTICS AND SELFTEST ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 24 82586 SOFTWARE COMPATIBILITY ÀÀÀÀÀ 24 INITIALIZING THE 82596 ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 24 SYSTEM CONFIGURATION POINTER (SCP) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 24 Writing the Sysbus ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 25 INTERMEDIATE SYSTEM CONFIGURATION POINTER (ISCP) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 26 INITIALIZATION PROCESS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 26 CONTROLLING THE 82596DX/SX ÀÀÀÀÀÀÀ 27 82596 CPU ACCESS INTERFACE (PORTÝ) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 27 MEMORY ADDRESSING FORMATS ÀÀÀÀÀ 28 RECEIVE FRAME DESCRIPTOR ÀÀÀÀÀÀÀÀÀ 52 Simplified Memory Structure ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 53 Flexible Memory Structure ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 54 Receive Buffer Descriptor (RBD) ÀÀÀÀÀÀÀ 55 PGA PACKAGE THERMAL SPECIFICATION ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 60 ELECTRICAL AND TIMING CHARACTERISTICS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 60 Absolute Maximum Ratings ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 60 DC Characteristics ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 60 AC Characteristics ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 61 82596DX Input/Output System Timings ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 61 82596SX Input/Output System Timings ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 63 Transmit/Receive Clock Parameters ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 66 RECEIVE UNIT (RU) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 30 82596DX/SX BUS OPERATION ÀÀÀÀÀÀÀÀÀÀ 68 System Interface A.C. Timing Characteristics ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 69 Input Waveforms ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 70 Serial A.C. Timing Characteristics ÀÀÀÀÀÀÀÀÀÀ 72 SYSTEM CONTROL BLOCK (SCB) ÀÀÀÀÀÀ 30 OUTLINE DIAGRAMS ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 74 SCB OFFSET ADDRESSES ÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 33 REVISION SUMMARY ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 77 LITTLE ENDIAN AND BIG ENDIAN BYTE ORDERING ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 28 COMMAND UNIT (CU) ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 29 2 82596DX/SX INTRODUCTION The 82596DX/SX is an intelligent, high-performance 32-bit Local Area Network coprocessor. The 82596DX/SX implements the CSMA/CD access method and can be configured to support all existing IEEE 802.3 standardsÐTYPEs 10BASE-T, 10BASE5, 10BASE2, 1BASE5, and 10BROAD36. It can also be used to implement the proposed standard TYPE 10BASE-F. The 82596DX/SX performs high-level commands, command chaining, and interprocessor communications via shared memory, thus relieving the host CPU of many tasks associated with network control. All time-critical functions are performed independently of the CPU, this increases network performance and efficiency. The 82596DX/SX bus interface is optimized for Intel’s i386 TM DX and i386 TM SX microprocessors. The 82596DX/SX implements all IEEE 802.3 Medium Access Control and channel interface functions, these include framing, preamble generation and stripping, source address generation, destination address checking, short-frame detection, and automatic length-field handling. Data rates up to 20 Mb/s are supported. The 82596DX/SX provides a powerful host system interface. It manages memory structures automatically, with command chaining and bidirectional data chaining. An on-chip DMA controller manages four channels, this allows autonomous transfer of data blocks (buffers and frames) and relieves the CPU of byte transfer overhead. Buffers containing errored or collided frames can be automatically recovered without CPU intervention. The 82596DX/SX provides an upgrade path for existing 82586 software drivers by providing an 82586-software-compatible mode that supports the current 82586 memory structure. The 82596DX/SX also has a Flexible memory structure and a Simplified memory structure. The 82596DX/ SX can address up to 4 gigabytes of memory. The 82596DX/SX supports Little Endian and Big Endian byte ordering. The 82596DX/SX bus interface is optimized to Intel’s i386 TM DX and i386 SX microprocessors, providing a bus transfer rate of up to 66 MB/s at 33 MHz. The bus interface employs bus throttle timers to regulate 82596DX/SX bus use. Two large, independent FIFOsÐ128 bytes for Receive and 64 bytes for TransmitÐtolerate long bus latencies and provide programmable thresholds that allow the user to optimize bus overhead for any worst-case bus latency. The 82596DX/SX provides a wide range of diagnostics and network management functions, these include internal and external loopback, exception condition tallies, channel activity indicators, optional capture of all frames regardless of destination ad- dress (promiscuous mode), optional capture of errored or collided frames, and time domain reflectometry for locating fault points on the network cable. The statistical counters, in 32-bit segmented and linear modes, are 32-bits each and include CRC errors, alignment errors, overrun errors, resource errors, short frames, and received collisions. The 82596DX/SX also features a monitor mode for network analysis. In this mode the 82596DX/SX can capture status bytes, and update statistical counters, of frames monitored on the link without transferring the contents of the frames to memory. This can be done concurrently while transmitting and receiving frames destined for that station. The 82596DX/SX can be used in both baseband and broadband networks. It can be configured for maximum network efficiency (minimum contention overhead) with networks of any length. Its highly flexible CSMA/CD unit supports address field lengths of zero through six bytes for IEEE 802.3/ Ethernet frame delimitation. It also supports 16- or 32-bit cyclic redundancy checks. The CRC can be transferred directly to memory for receive, operations or dynamically inserted for transmit operations. The CSMA/CD unit can also be configured for full duplex operation for high throughput in point-to-point connections. The 82596 C-Step incorporates several new features not found in previous steppings. The following is a summary of the 82596 C-step’s new features. # The 82596 C-step fixes Errata found in the A1 and B steppings. # The 82596 C-step has improved AC timings over both the A and B steppings. # The 82596 C-step has a New Enhanced Big Endian Mode where in Linear Addressing mode, true 32-bit Big Endian functionality is achieved. New Enhanced Big Endian Mode is enabled by setting bit 7 of the SYSBUS byte. This mode is software compatible with the big endian mode of the Bstep with one exceptionÐno 32-bit addresses need to be swapped by software in the C-step. In this new mode, the 82596 C-step treats 32-bit address pointers as true 32-bit entities and the SCB absolute address and statistical counters are still treated as two 16-bit big endian entities. Not setting this mode will configure the 82596 C-step to be 100% compatible to the A1-step bit endian mode. # The 82596 C-step is hardware and software compatible to both the A1 and B steppings allowing for easy ‘‘drop-in’’ to current designs. Pinout and control structures remain unchanged. The 82596DX/SX is fabricated with Intel’s reliable, 5-V, CHMOS IV (Process 648.8) technology. It is available in a 132-pin PQFP or PGA package. 3 82596DX/SX 290219 – 2 Figure 2a. 82596DX PQFP Pin Configuration 4 82596DX/SX 290219 – 34 Figure 2b. 82596SX PQFP Pin Configuration 5 82596DX/SX 290219 – 3 Figure 3a. 82596DX PGA Pin View Side 6 82596DX/SX 82596DX PGA Cross Reference by Pin Name Address Data Control Serial Interface N/C VCC VSS Signal Pin No. Signal Pin No. Signal Pin No. Signal Pin No. Pin No. Pin No. Pin No. A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31 N9 M9 M10 P11 N11 P12 M11 N12 M12 P13 L12 N13 M13 P14 K12 N14 J12 K13 M14 H12 K14 G12 F14 F12 F13 D14 E12 D13 D12 C14 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 J2 H3 G2 G3 G1 D1 C1 F3 D2 C2 E3 D3 B2 B1 C3 A1 B3 C4 A2 C5 A3 B4 A4 C6 B5 C7 A5 B8 C8 A9 C9 B9 ADS BE0 BE1 BE2 BE3 BREQ BS16 CA CLK2 HLDA HOLD INT/INT LE/BE LOCK PORT READY RESET W/R M5 M7 P5 M8 P9 P4 N1 P3 J3 M6 P2 N3 B14 M4 M2 M3 B13 N4 CDT CRS CTS LPBK RTS RxC RxD TxC TxD A13 A14 C11 A12 C10 B11 B12 C12 A11 K3 L1 L2 L3 N2 P1 B6 B7 B10 E2 E13 F2 G13 H2 H13 J13 K2 L13 M1 N6 N7 N8 N10 A6 A7 A8 A10 C13 E1 E14 F1 G14 H1 H14 J1 J14 K1 L14 N5 P6 P7 P8 P10 7 82596DX/SX 290219 – 35 Figure 3b. 82596SX PGA Pin View Side 8 82596DX/SX 82596SX PGA Cross Reference by Pin Name Address Data Control Serial Interface N/C VCC VSS Signal Pin No. Signal Pin No. Signal Pin No. Signal Pin No. Pin No. Pin No. Pin No. A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31 N9 M9 M10 P11 N11 P12 M11 N12 M12 P13 L12 N13 M13 P14 K12 N14 J12 K13 M14 H12 K14 G12 F14 F12 F13 D14 E12 D13 D12 C14 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 J2 H3 G2 G3 G1 D1 C1 F3 D2 C2 E3 D3 B2 B1 C3 A1 ADS BLE BHE BON BREQ CA CLK2 HLDA HOLD INT/INT LE/BE LOCK PORT RDY RESET W/R M5 M7 P5 P9 P4 P3 J3 M6 P2 N3 B14 M4 M2 M3 B13 N04 CDT CRS CTS LPBK RTS RxC RxD TxC TxD A13 A14 C11 A12 C10 B11 B12 C12 A11 A2 A3 A4 A5 A9 B3 B4 B5 B8 B9 C4 C5 C6 C7 C8 C9 K3 L1 L2 L3 N2 P1 B6 B7 B10 E2 E13 F2 G13 H2 H13 J13 K2 L13 M1 N5 N6 N7 N8 N10 A6 A7 A8 A10 C13 E1 E14 F1 G14 H1 H14 J1 J14 K1 L14 N1 P6 P7 P8 P10 9 82596DX/SX PIN DESCRIPTIONS Symbol CLK2 D31–D0 PQFP Pin No. Type 9 I 14–53 I/O Name and Function CLOCK. The system clock input provides the fundamental timing for the 82596. It is internally divided by two to generate the 82596 clock. All external timing parameters are specified in reference to the rising edge of CLK2. For clock levels see D.C. Characteristics. DATA BUS. The 32 Data Bus lines are bidirectional, tri-state lines that provide the general purpose data path between the 82596 and memory. With the 82596DX the bus can be either 16 or 32 bits wide; this is determined by the BS16 signal which is static. The 82596 always drives all 32 data lines during Write operations, even with a 16-bit bus. D0 – D31 are floated after a Reset or when the bus is not acquired. These lines are inputs during a CPU Port access; in this mode the CPU writes the next address to the 82596 through the Data lines. During PORT commands (Relocatable SCP, Self-Test, and Dump) the address must be aligned to a 16 byte boundary. This frees the D3 –D0 lines so they can be used to distinguish the commands. The following is a summary of the decoding data. D0 D1 D2 D3 D4 – D31 Function 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0000 ADDR ADDR ADDR Reset Relocatable SCP Self-Test Dump Command (D15–D0) 14–32 I/O These 16 Data Bus lines are bidirectional, tri-state lines that provide the entire data path for the 82596SX. In the 82596SX D16 – D31 are not connected (NC). A31–A2 70–108 O ADDRESS LINES. These 30 tri-stated Address lines output the address bits required for memory operation. These lines are floated after a Reset or when the bus is not acquired. 112 O The 82596SX requires this additional address line to output the address bits required for memory operation. BE3 –BE0 109–114 O BYTE ENABLE. (82596DX only.) These tri-stated signals are used to indicate which bytes are involved with the current memory access. The number of Byte Enable signals asserted indicates the physical size of the data being transferred (1, 2, 3, or 4 bytes). # BE0 indicates D0 – D7 # BE1 indicates D8 – D15 # BE2 indicates D16 – D23 # BE3 indicates D24 – D31 These lines are floated after a Reset or when the bus is not acquired. BHE, BLE 113–114 O (82596SX only.) These signals are the Byte High Enable and Byte Low Enable signals for the 82596SX. 109 O BUS ON. (82596SX only.) This signal is driven high when the 82596 is holding the bus. This signal is tri-stated when the bus is relinquished. BON has the same timing as the Byte Enables. A1 BON 10 82596DX/SX PIN DESCRIPTIONS (Continued) PQFP Pin No. Type W/R 120 O WRITE/READ. This dual-function pin is used to distinguish Write and Read cycles. This line is floated after a Reset or when the bus is not acquired. ADS 124 O ADDRESS STATUS. This tri-state pin is used by the 82596 to indicate that a valid bus cycle has begun and that A31 – A2, BE3 – BE0, and W/R are being driven. It is asserted during t1 bus states. This line is floated after a Reset or when the bus is not acquired. RDY 130 I READY. Active low. This signal is the acknowledgment from addressed memory that the transfer cycle can be completed. When high, it causes wait states to be inserted. It is ignored at the end of the first clock of the bus cycle’s data cycle. This active-low signal does not have an internal pull-up resistor. This signal must meet the setup and hold times to operate correctly. LOCK 126 O LOCK. This tri-state pin is used to distinguish locked and unlocked bus cycles. LOCK generates a semaphore handshake to the CPU. LOCK can be active for several memory cycles, it goes active during the first locked memory cycle (t1) and goes inactive at the last locked cycle (t2). This line is floated after a Reset or when the bus is not acquired. LOCK can be disabled via the sysbus byte in software. BS16 129 I BUS SIZE. This signal allows the 82596DX to work with either 16- or 32-bit bytes. This signal is static and should be tied high for 32-bit operation or low for 16-bit operation. In Little Endian mode the D0 – D15 lines are driven when BS16 is inserted, in Big Endian mode the D16–D31 lines are driven. HOLD 123 O HOLD. The HOLD signal is active high, the 82596 uses it to request local bus mastership. In normal operation HOLD goes inactive before HLDA. The 82596 can be forced off the bus by deasserting HLDA or if the bus throttle timers expire. HLDA 118 I HOLD ACKNOWLEDGE. The HLDA signal is active high, it indicates that bus mastership has been given to the 82596. HLDA is internally synchronized; after HOLD is detected low, the CPU drives HLDA low. NOTE Do not connect HLDA to VCCÐit will cause a deadlock. A user wanting to give the 82596 permanent access to the bus should connect HLDA to HOLD. If HLDA goes inactive before HOLD, the 82596 will release the bus (by deasserting HOLD) within a specified number of system clocks. BREQ 115 I BUS REQUEST. This signal, when configured to an externally activated mode, is used to trigger the bus throttle timers. Symbol Name and Function 11 82596DX/SX PIN DESCRIPTIONS (Continued) PQFP Pin No. Type Name and Function PORT 3 I PORT. When this signal is received, the 82596 latches the data on the data bus into an internal 32-bit register. When the CPU is asserting this signal it can write into the 82596 (via the data bus). This pin must be activated twice during all CPU Port access commands. RESET 69 I RESET. This active high, internally synchronized signal causes the 82596 to terminate current activity. The signal must be high for at least five system clock cycles. After five system clock cycles and four TxC clock cycles the 82596 will execute a Reset when it receives a high RESET signal. When RESET returns to low, the 82596 waits for the first CA signal and then begins the initialization sequence. LE/BE 65 I LITTLE ENDIAN/BIG ENDIAN. This dual-function pin is used to select byte ordering. When LE/BE is high, little endian byte ordering is used; when low, big endian byte ordering is used for data in frames (bytes) and for control (SCB, RFD, CBL, etc.). CA 119 I CHANNEL ATTENTION. The CPU uses this pin to force the 82596 to begin executing memory resident Command blocks. The CA signal is internally synchronized. The signal must be high for at least one system clock. It is latched internally on the high to low edge and then detected by the 82596. The first CA after a Reset forces the 82596 into the initialization sequence beginning at location 00FFFFF6h or an SCP address written to the 82596 using CPU Port access. All subsequent CA signals cause the 82596 to begin executing new command sequences from the SCB. INT/INT 125 O INTERRUPT. A high signal on this pin notifies the CPU that the 82596 is requesting an interrupt. This signal is an edge triggered interrupt signal, and can be configured to be active high or low. Symbol VCC 18 Pins (DX) 19 Pins (SX) POWER. a 5V g 10%. VSS 19 Pins (DX and SX) GROUND. 0V. TxD 54 O TRANSMIT DATA. This pin transmits data to the serial link. It is high when not transmitting. TxC 64 I TRANSMIT CLOCK. This signal provides the fundamental timing for the serial subsystem. The clock is also used to transmit data synchronously on the TxD pin. For NRZ encoding, data is transferred to the TxD pin on the high to low clock transition. For Manchester encoding, the transmitted bit center is aligned with the low to high transition. Transmit clock should always be running for proper device operation. 12 82596DX/SX PIN DESCRIPTIONS (Continued) PQFP Pin No. Type Name and Function LPBK 58 O LOOPBACK. This TTL-level control signal enables the loopback mode. In this mode serial data on the TxD input is routed through the 82C501 internal circuits and back to the RxD output without driving the transceiver cable. To enable this signal, both internal and external loopback need to be set with the Configure command. RxD 60 I RECEIVE DATA. This pin receives NRZ serial data only. It must be high when not receiving. RxC 59 I RECEIVE CLOCK. This signal provides timing information to the internal shifting logic. For NRZ data the state of the RxD pin is sampled on the high to low transition of the clock. RTS 57 O REQUEST TO SEND. When this signal is low the 82596 informs the external interface that it has data to transmit. It is forced high after a Reset or when transmission is stopped. CTS 62 I CLEAR TO SEND. An active-low signal that enables the 82596 to send data. It is normally used as an interface handshake to RTS. Asserting CTS high stops transmission. CTS is internally synchronized. If CTS goes inactive, meeting the setup time to the TxC negative edge, the transmission will stop and RTS will go inactive within, at most, two TxC cycles. CRS 63 I CARRIER SENSE. This signal is active low, it is used to notify the 82596 that traffic is on the serial link. It is only used if the 82596 is configured for external Carrier Sense. In this configuration external circuitry is required for detecting traffic on the serial link. CRS is internally synchronized. To be accepted, the signal must remain active for at least two serial clock cycles (for CRSF e 0). CDT 61 I COLLISION DETECT. This active-low signal informs the 82596 that a collision has occurred. It is only used if the 82596 is configured for external Collision Detect. External circuitry is required for collision detection. CDT is internally synchronized. To be accepted, the signal must remain active for at least two serial clock cycles (for CDTF e 0). Symbol 13 82596DX/SX 82596 AND HOST CPU INTERACTION # The CPU can reset the 82596 via software with- The 82596DX/SX and the host CPU communicate through shared memory. Because of its on-chip DMA capability, the 82596 can make data block transfers (buffers and frames) independently of the CPU; this greatly reduces the CPU byte transfer overhead. # A self-test can be used for board testing; the NOTE: The 82596DX and 82596SX differ in their address pin definitions and their data bus sizes. Information in this data sheet applies to both versions unless otherwise stated. The 82596 is a multitasking coprocessor that comprises two independent logical unitsÐthe Command Unit (CU) and the Receive Unit (RU). The CU executes commands from shared memory. The RU handles all activities related to frame reception. The independence of the CU and RU enables the 82596 to engage in both activities simultaneouslyÐthe CU can fetch and execute commands from memory while the RU is storing received frames in memory. The CPU is only involved with this process after the CU has executed a sequence of commands or the RU has finished storing a sequence of frames. The CPU and the 82596 use the hardware signals Interrupt (INT) and Channel Attention (CA) to initiate communication with the System Control Block (SCB), see Figure 4. The 82596 uses INT to alert the CPU of a change in the contents of the SCB, the CPU uses CA to alert the 82596. The 82596 has a CPU Port Access state that allows the CPU to execute certain functions without accessing memory. The 82596 PORT pin and data bus pins are used to enable this feature. The CPU can directly activate four operations when the 82596 is in this state. # Write an alternative System Configuration Pointer (SCP). This can be used when the 82596 cannot use the default SCP address space. # Write a different Dump Command Pointer and execute Dump. This can be used for troubleshooting No Response problems. 14 out disturbing the rest of the system. 82596 will execute a self-test and write the results to memory. 82596 BUS INTERFACE The 82596DX/SX has bus interface timings and pin definitions that are compatible with Intel’s 32-bit i386 DX and i386 SX microprocessors. This eliminates the need for additional bus interface logic. Operating at 33 MHz, the 82596’s bus bandwidth can be as high as 66 MB/s. Since Ethernet only requires 1.25 MB/s, this leaves a considerable amount of bandwidth for the CPU. The 82596 also has a bus throttle to regulate its use of the bus. Two timers can be programmed through the SCB: one controls the maximum time the 82596 can remain on the bus, the other controls the time the 82596 must stay off the bus (see Figure 5). The bus throttle can be programmed to trigger internally with HLDA or externally with BREQ. These timers can restrict the 82596 HOLD activation time and improve bus utilization. 82596 MEMORY ADDRESSING The 82596 has a 32-bit memory address range, which allows addressing up to four gigabytes of memory. The 82596 has three memory addressing modes (see Table 1). # 82586 Mode. The 82596 has a 24-bit memory address range. The System Control Block, Command List, Receive Descriptor List, and Buffer Descriptors must reside in one 64-kB memory segment. Transmit and Receive buffers can reside in a 24-bit address space. # 32-Bit Segmented Mode. The 82596 has a 32bit memory address range. The System Control Block, Command List, Receive Descriptor List, and Buffer Descriptors must reside in one 64-kB memory segment. Transmit and Receive buffers can reside in a 32-bit address space. # Linear Mode. The 82596 has a 32-bit memory address range. Any memory structure can reside anywhere within the 32-bit memory address range. 82596DX/SX 290219 – 4 Figure 4. 82596 and Host CPU Intervention 290219 – 5 Figure 5. Bus Throttle Timers Table 1. 82596 Memory Addressing Formats Operation Mode Pointer or Offset 82586 32-Bit Segmented Linear ISCP ADDRESS 24-Bit Linear 32-Bit Linear 32-Bit Linear SCB ADDRESS Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Command Block Pointers Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Rx Frame Descriptors Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Tx Frame Descriptors Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Rx Buffer Descriptors Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Tx Buffer Descriptors Base (24) a Offset (16) Base (32) a Offset (16) 32-Bit Linear Rx Buffers 24-Bit Linear 32-Bit Linear 32-Bit Linear Tx Buffers 24-Bit Linear 32-Bit Linear 32-Bit Linear 15 82596DX/SX 290219 – 6 Figure 6. 82596 Shared Memory Structure 82596 SYSTEM MEMORY STRUCTURE The Shared Memory structure consists of four parts: the Initialization Root, the System Control Block, the Command List, and the Receive Frame Area (see Figure 6). The Initialization Root is in an established location known to the host CPU and the 82596 (00FFFFF6h). However, the CPU can establish the Initialization Root in another location by using the CPU Port access. This root is accessed during initialization, and points to the System Control Block. 16 The System Control Block serves as a bidirectional mail drop for the host CPU and the 82596 CU and RU. It is the central point through which the CPU and the 82596 exchange control and status information. The SCB has two areas. The first contains instructions from the CPU to the 82596. These include: control of the CU and RU (Start, Abort, Suspend, and Resume), a pointer to the list of CU commands, a pointer to the Receive Frame Area, a set of Interrupt Acknowledge bits, and the T-ON and T-OFF timers for the bus throttle. The second area contains status information the 82596 is sending to the CPU. Such as, the CU and RU states (Idle, Active 82596DX/SX Ready, Suspended, No Receive Resources, etc.), interrupt bits (Command Completed, Frame Received, CU Not Ready, and RU Not Ready), and statistical counters. The Command List functions as a program for the CU; individual commands are placed in memory units called Command Blocks (CBs). These CBs contain the parameters and status of specific highlevel commands called Action Commands; e.g., Transmit or Configure. Transmit causes the 82596 to transmit a frame. The Transmit CB contains the destination address, the length field, and a pointer to a list of linked buffers holding the frame that is to be constructed from several buffers scattered throughout memory. The Command Unit operates without CPU intervention; the DMA for each buffer, and the prefetching of references to new buffers, is performed in parallel. The CPU is notified only after a transmission is complete. The Receive Frame Area is a list of Free Frame Descriptors (descriptors not yet used) and a list of userprepared buffers. Frames arrive at the 82596 unsolicited; the 82596 must always be ready to receive and store them in the Free Frame Area. The Receive Unit fills the buffers when it receives frames, and reformats the Free Buffer List into receivedframe structures. The frame structure is, for all practical purposes, identical to the format of the frame to be transmitted. The first Frame descriptor is referenced by the SCB. Unless the 82596 is configured to Save Bad Frames, the frame descriptor, and the associated buffer descriptor, which is wasted when a bad frame is received, are automatically reclaimed and returned to the Free Buffer List. Receive buffer chaining (storing incoming frames in a linked buffer list) significantly improves memory utilization. Without buffer chaining, the user must allocate consecutive blocks of memory, each capable of containing a maximum frame (for Ethernet, 1518 bytes). Since an average frame is about 200 bytes, this is very inefficient. With buffer chaining, the user can allocate small buffers and the 82596 will only use those that are needed. Figure 7 A–D illustrates how the 82596 uses the Receive Frame Area. Figure 7A shows an unused Receive Frame Area composed of Free Frame Descriptors and Free Receive Buffers prepared by the user. The SCB points to the first Frame Descriptor of the Frame Descriptor List. Figure 7B shows the same Receive Frame Area after receiving one frame. This first frame occupies two Receive Buffers and one Frame DescriptorÐa valid received frame will only occupy one Frame Descriptor. After receiving this frame the 82596 sets the next Free Frame Descriptor RBD pointer to the next Free RBD. Figure 7C shows the RFA after receiving a second frame. In this example the second frame occupies only one Receive Buffer and one RFD. The 82596 again sets the RBD pointer. This process is repeated again in Figure 7D, showing the reception of another frame using one Receive Buffer; in this example there is an extra Frame Descriptor. TRANSMIT AND RECEIVE MEMORY STRUCTURES There are three memory structures for reception and transmission. The 82586 memory structure, the Flexible memory structure, and the Simplified memory structure. The 82586 mode is selected by configuring the 82596 during initialization. In this mode all the 82596 memory structures are compatible with the 82586 memory structures. When the 82596 is not configured to the 82586 mode, the other two memory structures, Simplified and Flexible, are available for transmitting and receiving. These structures are selected by setting the S/F bit in the Transmit Command and/or the Receive Frame Descriptor (see Figures 29, 30, 41, and 42). It is recommended that any linked list of buffers be relegated to a single typeÐeither simplified or flexible. The Simplified memory structure offers a simple structure for ease of programming (see Figure 8). All information about a frame is contained in one structure; for example, during reception the RFD and data field are contained in one structure. The Flexible memory structure (see Figure 9) has a control field that allows the programmer to specify the amount of receive data the RFD will contain for receive operations and the amount of transmit data the Transmit Command Block will contain for transmit operations. For example, when the control field in the RFD is set to 20 bytes during a reception, the first 20 bytes of the data field are stored in the RFD (6 Bytes of Destination Address, 6 Bytes of Source Address, 2 Bytes of Length Field, and 6 Bytes of Data), and the remainder of the data field is stored in the Receive Data Buffers. This is useful for capturing frame headers when header information is contained in the data field. The header information can then be automatically stored in the RFD partitioned from the Receive Data Buffer. The control field can also be used for the Transmit Command when the Flexible memory structure is used. The quantity of data field bytes to be transmitted from the Transmit Command Block is specified by the variable control field. 17 82596DX/SX 290219 – 7 Figure 7. Frame Reception in the RFA 18 82596DX/SX 290219 – 8 Figure 8. Simplified Memory Structure 290219 – 9 Figure 9. Flexible Memory Structure 19 82596DX/SX TRANSMITTING FRAMES The 82596 executes high-level Action Commands from the Command List in system memory. Action Commands are fetched and executed in parallel with the host CPU operation, thereby significantly improving system performance. The format of the Action Commands is shown in Figure 10. Figure 28 shows the 82586 mode, and Figures 29 and 30 shows the command formats of the Linear and 32-bit Segmented modes. A single Transmit command contains, as part of the command-specific parameters, the destination address and length field of the transmitted frame and a pointer to buffer area in memory containing the data portion of the frame. The data field is contained in a memory data structure consisting of a buffer descriptor (BD) and a data bufferÐor a linked list of buffer descriptors and buffersÐas shown in Figure 11. Multiple data buffers can be chained together using the BDs. Thus, a frame with a long data field can be transmitted using several (shorter) data buffers chained together. This chaining technique allows the system designer to develop efficient buffer management. The 82596 automatically generates the preamble (alternating 1s and 0s) and start frame delimiter, fetches the destination address and length field from the Transmit command, inserts its unique address as the source address, fetches the data field specified by the Transmit command, and computes and appends the CRC to the end of the frame (see Figure 12). In the Linear and 32-bit Segmented mode the CRC can be optionally inserted on a frame-byframe basis by setting the NC bit in the Transmit Command Block (see Figures 29 and 30). The 82596 generates the standard End Of Carrier (EOC) start and end frame delimiters. In EOC, the 20 start frame delimiter is 10101011 and the end frame delimiter is indicated by the lack of a signal after the last bit of the frame check sequence field has been transmitted. In EOC, the 82596 can be configured to extend short frames by adding pad bytes (7Eh) during transmission, according to the length field. When a collision occurs, the 82596 manages the jam, random wait, and retry processes, reinitializing DMA pointers without CPU intervention. Multiple frames can be sent by linking the appropriate number of Transmit commands together. This is particularly useful when transmitting a message larger than the maximum frame size (1518 bytes for Ethernet). 290219 – 10 Figure 10. Action Command Format 290219 – 11 Figure 11. Data Buffer Descriptor and Data Buffer Structure 82596DX/SX PREAMBLE START FRAME DELIMITER DESTINATION ADDRESS SOURCE ADDRESS LENGTH FIELD DATA FIELD FRAME CHECK SEQUENCE END FRAME DELIMITER Figure 12. Frame Format RECEIVING FRAMES To reduce CPU overhead, the 82596 is designed to receive frames without CPU supervision. The host CPU first sets aside an adequate receive buffer space and then enables the 82596 Receive Unit. Once enabled, the RU watches for arriving frames and automatically stores them in the Receive Frame Area (RFA). The RFA contains Receive Frame Descriptors, Receive Buffer Descriptors, and Data Buffers (see Figure 13). The individual Receive Frame Descriptors make up a Receive Descriptor List (RDL) used by the 82596 to store the destination and source addresses, the length field, and the status of each frame received (see Figure 14). Once enabled, the 82596 checks each passing frame for an address match. The 82596 will recognize its own unique address, one or more multicast addresses, or the broadcast address. If a match is found the 82596 stores the destination and source addresses and the length field in the next available RFD. It then begins filling the next available Data Buffer on the FBL, which is pointed to by the current RFD, with the data portion of the incoming frame. As one Data Buffer is filled, the 82596 automatically fetches the next DB on the FBL until the entire frame is received. This buffer chaining technique is particularly memory efficient because it allows the system designer to set aside buffers to fit frames much shorter than the maximum allowable frame length. If AL-LOC e 1, or if the flexible memory structure is used, the addresses and length field can be placed in the receive buffer. Once the entire frame is received without error, the 82596 does the following housekeeping tasks. # The actual count field of the last Buffer Descriptor used to hold the frame just received is updated with the number of bytes stored in the associated Data Buffer. # The next available Receive Frame Descriptor is fetched. # The address of the next available Buffer Descriptor is written to the next available Receive Frame Descriptor. # A frame received interrupt status bit is posted in the SCB. # An interrupt is sent to the CPU. If a frame error occurs, for example a CRC error, the 82596 automatically reinitializes its DMA pointers and reclaims any data buffers containing the bad frame. The 82596 will continue to receive frames without CPU help as long as Receive Frame Descriptors and Data Buffers are available. 82596 NETWORK MANAGEMENT AND DIAGNOSTICS The behavior of data communication networks is normally very complex because of their distributed and asynchronous nature. It is particularly difficult to pinpoint a failure when it occurs. The 82596 has extensive diagnostic and network management functions that help improve reliability and testability. The 82596 reports on the following events after each frame is transmitted. # # # # Transmission successful. Transmission unsuccessful. Lost Carrier Sense. Transmission unsuccessful. Lost Clear to Send. Transmission unsuccessful. A DMA underrun occurred because the system bus did not keep up with the transmission. # Transmission unsuccessful. The number of collisions exceeded the maximum allowed. # Number of Collisions. The number of collisions experienced during transmission of the frame. # Heartbeat Indicator. This indicates the presence of a heartbeat during the last Interframe Spacing (IFS) after transmission. When configured to Save Bad Frames the 82596 checks each incoming frame and reports the following errors. # CRC error. Incorrect CRC in a properly aligned frame. # Alignment error. Incorrect CRC in a misaligned frame. # Frame too short. The frame is shorter than the value configured for minimum frame length. # Overrun. Part of the frame was not placed in memory because the system bus did not keep up with incoming data. # Out of buffer. Part of the frame was discarded because of insufficient memory storage space. # Receive collision. A collision was detected during reception and the destination address of the incoming frame passes 82596 address filtering. Collisions in the preamble are not counted. # Length error. A frame not matching the frame length parameter was detected. 21 82596DX/SX 290219 – 12 Figure 13. Receive Frame Area Diagram 290219 – 13 Figure 14. Receive Frame Descriptor 22 82596DX/SX NETWORK PLANNING AND MAINTENANCE To properly plan, operate, and maintain a communication network, the network management entity must accumulate information on network behavior. The 82596 provides a rich set of network-wide diagnostics that can serve as the basis for a network management entity. Information on network activity is provided in the status of each frame transmitted. The 82596 reports the following activity indicators after each frame. # Number of collisions. The number of collisions the 82596 experienced while attempting to transmit the frame. # Deferred transmission. During the first transmission attempt the 82596 had to defer to traffic on the link. The 82596 updates its 32-bit statistical counters after each received frame that both passes address filtering and is longer than the Minimum Frame Length configuration parameter. The 82596 reports the following statistics. # CRC errors. The number of well-aligned frames that experienced a CRC error. # Alignment errors. The number of misaligned frames that experienced a CRC error. # No resources. The number of frames that were discarded because of insufficient resources for reception. # Overrun errors. The number of frames that were not completely stored in memory because the system bus did not keep up with incoming data. # Receive Collision counter. The number of collisions detected during receive. Collisions occurring before the minimum frame length will be counted as short frames. Collisions in the preamble will not be counted at all. # Short Frame counter. The number of frames that were discarded because they were shorter than the configured minimum frame length. Once again, these counters are not updated until the 82596 decodes a destination address match. The 82596 can be configured to Promiscuous mode. In this mode it captures all frames transmitted on the network without checking the Destination Address. This is useful when implementing a monitoring station to capture all frames for analysis. 82596 to Save Bad Frames, and configure the 82596 to Promiscuous mode with space in the RFD allocated for specific number of receive data bytes. The 82596 will receive all frames and put them in the RFD. Frames that exceed the available space in the RFD will be truncated, the status will be updated, and the 82596 will retrieve the next RFD. This allows the user to capture the initial data bytes of each frame (for instance, the header) and discard the remainder of the frame. The 82596 also has a monitor mode for network analysis. During normal operation the receive function enables the 82596 to receive frames which pass address filtering. These frames must have the Start of Frame Delimiter (SFD) field and must be longer than the absolute minimum frame length of 5 bytes (6 bytes in case of Multicast address filtering). Contents and status of the received frames are transferred to memory. The monitor function enables the 82596 to simply evaluate the incoming frames. The 82596 can monitor the frames that pass or do not pass the address filtering. It can also monitor frames which do not have the SFD fields. The 82596 can be configured to only keep statistical information about monitor frames. Three options are available in the Monitor mode. These modes are selectable by the two monitor mode configuration bits available in the configuration command. When the first option is selected, the 82596 receives good frames that pass address filtering and transfers them to memory while monitoring frames that do not pass address filtering or are shorter than the minimum frame size (these frames are not transferred to memory). When this option is used the 82596 updates six counters: CRC errors, alignment errors, no resource errors, overrun errors, short frames, and total good frames received. When the second option is selected, the receive function is completely disabled. The 82596 monitors only those frames that pass address filterings and meet the minimum frame length requirement. When this option is used the 82596 updates six counters: CRC errors, alignment errors, total frames (good and bad), short frames, collisions detected, and total good frames. When the third option is selected, the receive function is completely disabled. The 82596 monitors all frames, including frames that do not have a Start Frame Delimiter. When this option is used the 82596 updates six counter (CRC errors, alignment errors, total frames (good and bad), short frames, collisions detected, and total good frames. A useful method of capturing frame headers is to use the Simplified memory mode, configure the 23 82596DX/SX STATION DIAGNOSTICS AND SELF-TEST The 82596 provides a large set of diagnostic and network management functions. These include internal and external loopback and time domain reflectometry for locating fault points in the network cable. The 82596 ensures software reliability by dumping the contents of the 82596 internal registers into system memory. The 82596 has a self-test mode that enables it to run an internal self-test and place the results in system memory. 82586 SOFTWARE COMPATIBILITY The 82596 has a software-compatible state in which all its memory structures are compatible with the 82586 memory structure. This includes all the Action Commands, the Receive Frame Area (including the RFD, Buffer Descriptors, and Data Buffers), the System Control Block, and the initialization procedures. There are two minor differences between the 82596 in the 82586-Compatible memory structure and the 82586. # When the internal and external loopback bits in the Configure command are set to 11 the 82596 is in external loopback and the LPBK pin is activated; in the 82586 this situation would produce internal loopback. # During a Dump command both the 82596 and 82586 dump the same number of bytes; however, the data format is different. INITIALIZING THE 82596 A Reset command is issued to the 82596 to prepare it for normal operation. The 82596 is initialized through two data structures that are addressed by 24 two pointers, the System Configuration Pointer (SCP) and the Intermediate System Configuration Pointer (ISCP). The initialization procedure begins when a Channel Attention signal is asserted after RESET. The 82596 uses the address of the double word that contains the SCP as a defaultÐ 00FFFFF4h. Before the CA signal is asserted this default address can be changed to any other available address by asserting the PORT pin and providing the desired address over the D31 –D4 pins of the address bus. Pins D3 –D0 must be 0010; i.e., any alternative address must be aligned to 16 byte boundaries. All addresses sent to the 82596 must be word aligned, which means that all pointers and memory structures must start on an even address (A0 e zero). SYSTEM CONFIGURATION POINTER (SCP) The SCP contains the SYSBUS byte and the location of the next structure of the initialization process, the ISCP. The following parameters are selected in the SYSBUS. # # # # # The 82596 operation mode. The Bus Throttle timer triggering method. Lock enabled. Interrupt polarity. Big Endian 32-bit entity mode. Byte ordering is determined by the LE/BE pin. LE/BE e 1 selects little endian byte ordering and LE/BE e 0 selects big endian byte ordering. NOTE: In the following, X indicates a bit not checked in 82586 mode. This bit must be set to 0 in all other modes. 82596DX/SX The following diagram illustrates the format of the SCP. 31 ODD WORD X X X X X X X X 16 15 SYSBUS EVEN WORD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0FFFFF4h X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0FFFFF8h A31ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀA24 A23 ISCP ADDRESS A0 0FFFFFCh A31ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀA24 are not checked in 82586 mode. XÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀX areas are not checked in 82586 mode; they must be 0 in all other modes. 290219 – 14 ISCP ADDRESSÐ The physical address of the ISCP. In the 82586 mode, bits A31 – A24 are considered to be zero. Figure 15. The System Configuration Pointer Writing the Sysbus When writing the Sysbus byte it is important to pay attention to the byte order. # When a Little Endian processor is used, the Sysbus byte is located at byte address 00FFFFF6h (or address n a 2 if an alternative SCP address n was programmed). # When a processor using Big Endian byte ordering is used, the SYSBUS, alternative SCP, and ISCP addresses will be different. # The Sysbus byte is located at 00FFFFF7h. # If an alternative SCP address is programmed, the SYSBUS byte should be at byte address n a 1. 25 82596DX/SX INTERMEDIATE SYSTEM CONFIGURATION POINTER (ISCP) The ISCP indicates the location of the System Control Block. Often the SCP is in ROM and the ISCP is in RAM. The CPU loads the SCB address (or an equivalent data structure) into the ISCP and asserts CA. This Channel Attention signal causes the 82596 to begin its initialization procedure and to get the SCB address from the ISCP and SCP. In 82586 and 32-bit Segmented modes the SCP base address is also the base address of all Command Blocks, Frame Descriptors, and Buffer Descriptors (but not buffers). All these data structures must reside in one 64-kB segment; however, in Linear mode no such limitation is imposed. The following diagram illustrates the ISCP format. ODD WORD 31 16 15 A15 SCB OFFSET EVEN WORD 8 7 A0 A23 0 BUSY SCB BASE ADDRESS ISCP A0 ISCP a 4 u x x x x x x x x Ð in 82586 mode A31 ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀA24 Ð in 32-bit segmented mode BUSY Ð Indicates that the 82596 is being initialized. The CPU sets the ISCP to 01h before it gives the first CA to the 82596. The ISCP is cleared by the 82596 after the SCB base and offset are read. Note that the most significant byte of the first word of the ISCP is not modified when BUSY is cleared. SCB OFFSETÐ This 16-bit quantity specifies the offset portion of the address of the SCB. SCB BASE Ð Specifies the base portion of the address of the SCB. The base of SCB is also the base of all 82596 Command Blocks, Frame Descriptors and Buffer Descriptors. In the 82586 mode, bits A31–A24 are considered to be zero. Figure 16. The Intermediate System Configuration PointerÐ82586 and 32-Bit Segmented Modes ODD WORD 31 16 15 EVEN WORD 8 7 0 0 0 ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ 0 0 0 A31 0 BUSY SCB ABSOLUTE ADDRESS ISCP A0 ISCP a 4 BUSY Ð Indicates that the 82596 is being initialized. The ISCP is set to 01h by the CPU before its first CA to the 82596. It is cleared by the 82596 after the SCB address is read. SCB ADDRESSÐ This 32-bit quantity specifies the physical address of the SCB. Figure 17. The Intermediate System Configuration PointerÐLinear Mode. INITIALIZATION PROCESS The CPU sets up the SCP, ISCP, and the SCB structures, and, if desired, an alternative SCP address. It also sets BUSY to 01h. The 82596 is initialized when a Channel Attention signal follows a Reset signal, causing the 82596 to access the System Configuration Pointer. The sysbus byte, the operational mode, the bus throttle timer triggering method, the interrupt polarity, and the state of LOCK are read. After reset the bus throttle 26 82596DX/SX timers are essentially disabledÐthe T-ON value is infinite, the T-OFF value is zero. After the SCP is read, the 82596 reads the ISCP and saves the SCB address. In 82586 and 32-bit Segmented modes this address is represented as a base address plus the offset (this base address is also the base address of all the control blocks). In Linear mode the base address is also an absolute address. The 82596 clears BUSY, sets CX and CNR to equal 1 in the SCB, clears the SCB command word, sends an interrupt to the CPU, and awaits another Channel Attention signal. RESET configures the 82596 to its default state before CA is asserted. CONTROLLING THE 82596DX/SX The host CPU controls the 82596 with the commands, data structures, and methods described in this section. The CPU and the 82596 communicate through shared memory structures. The 82596 contains two independent units: the Command Unit and the Receive Unit. The Command Unit executes commands from the CPU, and the Receive Unit handles frame reception. These two units are controlled and monitored by the CPU through a shared memory structure called the System Control Block (SCB). The CPU and the 82596 use the CA and INT signals to communicate with the SCB. 82596 CPU ACCESS INTERFACE (PORT) The 82596 has a CPU access interface that allows the host CPU to do four things. # # # # Write an alternative System Configuration Pointer address. Write an alternative Dump area pointer and perform Dump. Execute a software reset. Execute a self-test. The following events initiate the CPU access state. # Presence of an address on the D31 –D4 data bus pins. # The D3 –D0 pins are used to select one of the four functions. # The PORT input pin is asserted, as in a regular write cycle. NOTE The SCP Dump and Self-Test addresses must be 16-byte aligned. The 82596 requires two 16-bit write cycles for a port command. The first write holds the internal machines and reads the first 16 bits, the second activates the PORT command and reads the second 16 bits. The PORT Reset is useful when only the 82596 needs to be reset. The CPU must wait for 10-system and 5-serial clocks before issuing another CA to the 82596; this new CA begins a new initialization process. The Dump function is useful for troubleshooting No Response problems. If the chip is in a No Response state, the PORT Dump operation can be executed and a PORT Reset can be used to reinitialize the 82596 without disturbing the rest of the system. The Self-Test function can be used for board testing; the 82596 will execute a self-test and write the results to memory. Table 2. PORT Function Selection D31 ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀD4 ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀD0 Function Addresses and Results D3 D2 D1 D0 Reset A31 Don’t Care A4 0 0 0 0 Self-Test A31 Self-Test Results Address A4 0 0 0 1 SCP A31 Alternative SCP Address A4 0 0 1 0 Dump A31 Dump Area Pointer A4 0 0 1 1 27 82596DX/SX MEMORY ADDRESSING FORMATS The 82596 accesses memory by 32-bit addresses. There are two types of 32-bit addresses: linear and segmented. The type of address used depends on the 82596 operating mode and the type of memory structure it is addressing. The 82596 has three operating modes. # 82586 Mode # A Linear address is a single 24-bit entity. Address pins A31 –A24 are always zero. # A Segmented address uses a 24-bit base and a 16-bit offset. # 32-bit Segmented Mode # A Linear address is a single 32-bit entity. # A Segmented address uses a 32-bit base and a 16-bit offset. NOTE: In the previous two memory addressing modes, each command header (CB, TBD, RFD, RBD, and SCB) must wholly reside within one segment. If the 82596 encounters a memory structure that does not follow this restriction, the 82596 will fetch the next contiguous location in memory (beyond the segment). # Linear Mode # A Linear address is a single 32-bit entity. # There are no Segmented addresses. Linear addresses are primarily used to address transmit and receive data buffers. In the 82586 and 32-bit Segmented modes, segmented addresses (base plus offset) are used for all Command Blocks, Buffer Descriptors, Frame Descriptors, and System Control Blocks. When using Segmented addresses, only the offset portion of the entity being addressed is specified in the block. The base for all offsets is the sameÐthat of the SCB. See Table A. LITTLE ENDIAN AND BIG ENDIAN BYTE ORDERING The 82596 supports both Little Endian and Big Endian byte ordering for its memory structures. The 82596A1 stepping supports Big Endian byte ordering for word and byte entities. Dword entities are not supported with 82596A1 Big Endian byte ordering. This results in slightly different 82596 memory structures for Big Endian operation. These structures are defined in the 32-Bit LAN Components A1 Manual. 28 82596DX/SX The 82596 B stepping supports Big Endian byte ordering for dword, word, and byte entities in Linear mode only. All 82596 B 32-bit address pointers are treated as 32-bit Big Endian entities, however, the SCB absolute address and statistical counters are treated as two 16-bit Big Endian entities. This 32-bit Big Endian entity support is configured via bit 7 in the SYSBUS byte. The 82596 C-step has a New Enhanced Big Endian Mode where in Linear Addressing mode, true 32-bit Big Endian functionality is achieved. New Enhanced Big Endian Mode is enabled exactly the same as the B-step, by setting bit 7 of the SYSBUS byte. This mode is software compatible with the big endian mode of the B-step with one exceptionÐno 32-bit addresses need to be swapped by software in the C-step. In this new mode, the 82596 C-step treats 32-bit address pointers as true 32-bit entities and the SCB absolute address and statistical counters are still treated as two 16-bit big endian entities. Not setting this mode will configure the 82596 C-step to be 100% compatible to the A1-step big endian mode. NOTE: All 82596 memory entities must be word or dword aligned, except the transmit buffers can be byte aligned for the 82596 B or C steppings. An example of a double word entity is a frame descriptor command/status dword, whereas the raw data of the frame are byte entities. Both 32- and 16-bit buses are supported. When a 16-bit bus is used with Big Endian memory organization, data lines D15 –D0 are used. The 82596 has an internal crossover that handles these swap operations. COMMAND UNIT (CU) The Command Unit is the logical unit that executes Action Commands from a list of commands very similar to a CPU program. A Command Block is associated with each Action Command. The CU is modeled as a logical machine that takes, at any given time, one of the following states. # Idle. The CU is not executing a command and is not associated with a CB on the list. This is the initial state. # Suspended. The CU is not executing a command; however, it is associated with a CB on the list. The suspend state can only be reached if the CPU forces it through the SCB or sets the suspend bit in the RFD. # Active. The CU is executing an Action Command and pointing to its CB. The CPU can affect CU operation in two ways: by issuing a CU Control Command or by setting bits in the Command word of the Action Command. When programming the 82596 CU, it is important to consider the asynchronous way the 82596 processes commands. If a command is issued to the 82596 CU, it may be busy processing other commands. In order to avoid asynchronous race conditions, the following guidelines are recommended to the 82596 programmer: # If the CU is already in the Active state, and another command needs to be executed, it is unwise to immediately issue another CU Start command. If a new command (or list of commands) needs to be started, first issue a CU Suspend command, wait for the CU to become Suspended, then issue the new CU Start. This will insure that all commands are processed correctly. # In general, it is a good idea to make sure any CU command has been accepted and executed before issuing a new control command to the CU. 29 82596DX/SX RECEIVE UNIT (RU) The Receive Unit is the logical unit that receives frames and stores them in memory. The RU is modeled as a logical machine that takes, at any given time, one of the following states. # Idle. The RU has no memory resources and is discarding incoming frames. This is the initial state. # No Resources. The RU has no memory resources and is discarding incoming frames. This state differs from Idle in that the RU accumulates statistics on the number of discarded frames. # Suspended. The RU has memory available for storing frames, but is discarding them. The suspend state can only be reached if the CPU forces it through the SCB or sets the suspend bit in the RFD. # Ready. The RU has memory available and is storing incoming frames. The CPU can affect RU operation in three ways: by issuing a RU Control Command, by setting bits in the Frame Descriptor Command word of the frame being received, or by setting the EL bit of the current buffer’s Buffer Descriptor. When programming the 82596 RU, it is important to consider the asynchronous way the 82596 processes receive frames. If an RU Start is issued to the 82596 RU, it may be busy processing other incoming packets. In order to avoid asynchronous race conditions, the following guidelines are recommended to the 82596 programmer: # If the RU is already in the Ready state, and a new RFA is required to be started, it is unwise to immediately issue another RU Start command. If the new RFA needs to be started, first issue an RU Suspend command, wait for the RU to become Suspended, then issue the new RU Start. This will insure that all incoming frames are received correctly. # In general, it is a good idea to make sure any RU command has been accepted and executed before issuing a new control command to the RU. SYSTEM CONTROL BLOCK (SCB) The SCB is a memory block that plays a major role in communications between the CPU and the 82596. Such communications include the following. # Commands issued by the CPU # Status reported by the 82596 Control commands are sent to the 82596 by writing them into the SCB and then asserting CA. The 82596 examines the command, performs the required action, and then clears the SCB command word. Control commands perform the following types of tasks. # Operation of the Command Unit (CU). The SCB controls the CU by specifying the address of the Command Block List (CBL) and by starting, suspending, resuming, or aborting execution of CBL commands. 30 82596DX/SX # Operation of the Bus Throttle. The SCB controls the Bus Throttle timers by providing them with new values and sending the Load and Start timer commands. The timers can be operated in both the 32-bit Segmented and Linear modes. # Reception of frames by the Receive Unit (RU). The SCB controls the RU by specifying the address of the Receive Frame Area and by starting, suspending, resuming, or aborting frame reception. # Acknowledgment of events that cause interrupts. # Resetting the chip. The 82596 sends status reports to the CPU via the System Control Block. The SCB contains four types of status reports. # The cause of the current interrupts. These interrupts are caused by one or more of the following 82596 events. # # # # The Command Unit completes an Action Command that has its I bit set. The Receive Unit receives a frame. The Command Unit becomes inactive. The Receive Unit becomes not ready. # The status of the Command Unit. # The status of the Receive Unit. # Status reports from the 82596 regarding reception of corrupted frames. Events can be cleared only by CPU acknowledgment. If some events are not acknowledged by the ACK field the Interrupt signal (INT) will be reissued after Channel Attention (CA) is processed. Furthermore, if a new event occurs while an interrupt is set, the interrupt is temporarily cleared to trigger edge-triggered interrupt controllers. The CPU uses the Channel Attention line to cause the 82596 to examine the SCB. This signal is trailing-edge triggeredÐthe 82596 latches CA on the trailing edge. The latch is cleared by the 82596 before the SCB control command is read. 31 ODD WORD ACK X CUC R 16 15 RUC X X X X EVEN WORD STAT 0 CUS 0 RUS 0 0 0 0 0 SCB RFA OFFSET CBL OFFSET SCB a 4 ALIGNMENT ERRORS CRC ERRORS SCB a 8 OVERRUN ERRORS RESOURCE ERRORS SCB a 12 Figure 18. SCBÐ82586 Mode 31 ODD WORD ACK 0 CUC R 16 15 RUC 0 0 0 0 EVEN WORD STAT RFA OFFSET 0 CUS RUS CBL OFFSET 0 T 0 0 0 SCB SCB a 4 CRC ERRORS SCB a 8 ALIGNMENT ERRORS SCB a 12 RESOURCE ERRORS (*) SCB a 16 OVERRUN ERRORS (*) SCB a 20 RCVCDT ERRORS (*) SCB a 24 SHORT FRAME ERRORS T-ON TIMER SCB a 28 T-OFF TIMER SCB a 32 *In MONITOR mode these counters change function Figure 19. SCBÐ32-Bit Segmented Mode 31 82596DX/SX 31 ODD WORD ACK 0 CUC R 16 15 RUC 0 0 0 0 EVEN WORD STAT 0 CUS 0 RUS T 0 0 0 SCB COMMAND BLOCK ADDRESS SCB a 4 RECEIVE FRAME AREA ADDRESS SCB a 8 CRC ERRORS SCB a 12 ALIGNMENT ERRORS SCB a 16 RESOURCE ERRORS (*) SCB a 20 OVERRUN ERRORS (*) SCB a 24 RCVCDT ERRORS (*) SCB a 28 SHORT FRAME ERRORS SCB a 32 T-ON TIMER T-OFF TIMER SCB a 36 *In MONITOR mode these counters change function Figure 20. SCBÐLinear Mode Command Word 31 16 ACK 0 CUC R RUC 0 0 0 0 SCB a 2 These bits specifiy the action to be performed as a result of a CA. This word is set by the CPU and cleared by the 82596. Defined bits are: Bit 31 ACK-CX Ð Acknowledges that the CU completed an Action Command. Bit 30 ACK-FR Bit 29 ACK-CNA Bit 28 ACK-RNR Ð Acknowledges that the RU received a frame. Ð Acknowledges that the Command Unit became not active. Ð Acknowledges that the Receive Unit became not ready. Bits 24–26 CUC Ð (3 bits) This field contains the command to the Command Unit. Valid values are: 0 Ð NOP (does not affect current state of the unit). 1 Ð Start execution of the first command on the CBL. If a command is executing, complete it before starting the new CBL. The beginning of the CBL is in CBL OFFSET (address). 2 Ð Resume the operation of the Command Unit by executing the next command. This operation assumes that the Command Unit has been previously suspended. 3 Ð Suspend execution of commands on CBL after current command is complete. 4 5 6 7 32 Ð Abort current command immediately. Ð Loads the Bus Throttle timers so they will be initialized with their new values after the active timer (T-ON or T-OFF) reaches Terminal Count. If no timer is active new values will be loaded immediately. This command is not valid in 82586 mode. Ð Loads and immediately restarts the Bus Throttle timers with their new values. This command is not valid in 82586 mode. Ð Reserved. 82596DX/SX Bits 20–22 RUC Ð (3 bits) This field contains the command to the Receive Unit. Valid values are: 0 1 Ð NOP (does not alter current state of unit). Ð Start reception of frames. The beginning of the RFA is contained in the RFA OFFSET (address). If a frame is being received complete reception before starting. 2 Ð Resume frame reception (only when in suspended state). 3 Ð Suspend frame reception. If a frame is being received complete its reception before suspending. 4 Ð Abort receiver operation immediately. 5–7 Ð Reserved. Bit 23 RESET Ð Reset chip (logically the same as hardware RESET). Status Word 15 0 STAT 0 CUS 0 CUS 0 RUS 0 0 0 0 T 0 0 0 SCB 82586 Mode 15 0 STAT RUS SCB 32-Bit Segmented and Linear Modes Indicates the status of the 82596. This word is modified only by the 82596. Defined bits are: Bit 15 CX Ð The CU finished executing a command with its I (interrupt) bit set. Bit 14 FR Ð The RU finished receiving a frame. Bit 13 CNA Bit 12 RNR Bits 8–10 CUS Ð The Command Unit left the Active state. Ð The Receive Unit left the Ready state. Ð (3 bits) This field contains the status of the command unit. Valid values are: 0 1 2 Bits 4–7 RUS Bit 3 T Ð Idle Ð Suspended Ð Active 3–7 Ð Not used Ð This field contains the status of the receive unit. Valid values are: 0h (0000) Ð Idle 1h (0001) Ð Suspended 2h (0010) Ð No resources. This bit indicates both no resources due to lack of RFDs in the RDL and no resources due to lack of RBDs in the FBL. 4h (0100) Ð Ready Ah (1010) Ð No resources due to no more RBDs. (Not in the 82586 mode.) Ch (1100) Ð No more RBDs (not in the 82586 mode). No other combinations are allowed. Ð Bus Throttle timers loaded (not in 82586 mode). SCB OFFSET ADDRESSES CBL Offset (Address) In 82586 and 32-bit Segmented modes this 16-bit quantity indicates the offset portion of the address for the first Command Block on the CBL. In Linear mode it is a 32-bit linear address for the first Command Block on the CBL. It is accessed only if CUC equals Start. 33 82596DX/SX RFA Offset (Address) In 82586 and 32-bit Segmented modes this 16-bit quantity indicates the offset portion of the address for the Receive Frame Area. In Linear mode it is a 32-bit linear address for the Receive Frame Area. It is accessed only if RUC equals Start. SCB STATISTICAL COUNTERS Statistical Counter Operation # The CPU is responsible for clearing all error counters before initializing the 82596. The 82596 updates these counters by reading them, adding 1, and then writing them back to the SCB. # The counters are wraparound counters. After reaching FFFFFFFFh the counters wrap around to zero. # The 82596 updates the required counters for each frame. It is possible for more than one counter to be updated; multiple errors will result in all affected counters being updated. # The 82596 executes the read-counter/increment/write-counter operation without relinquishing the bus (locked operation). This is to ensure that no logical contention exists between the 82596 and the CPU due to both attempting to write to the counters simultaneously. In the dual-port memory configuration the CPU should not execute any write operation to a counter if LOCK is asserted. # The counters are 32-bits wide and their behavior is fully compatible with the IEEE 802.3 standard. The 82596 supports all relevant statistics (mandatory, optional, and desired) through the status of the transmit and receive header and directly through SCB statistics. CRCERRS This 32-bit quantity contains the number of aligned frames discarded because of a CRC error. This counter is updated, if needed, regardless of the RU state. ALNERRS This 32-bit quantity contains the number of frames that both are misaligned (i.e., where CRS deasserts on a nonoctet boundary) and contain a CRC error. The counter is updated, if needed, regardless of the RU state. SHRTFRM This 32-bit quantity contains the number of received frames shorter than the minimum frame length. The last three counters change function in monitor mode. RSCERRS This 32-bit quantity contains the number of good frames discarded because there were no resources to contain them. Frames intended for a host whose RU is in the No Receive Resources state, fall into this category. This counter is updated only if the RU is in the No Resources state. When in Moniitor mode, this counter counts the total number of frames. OVRNERRS This 32-bit quantity contains the number of frames known to be lost because the local system bus was not available. If the traffic problem lasts longer than the duration of one frame, the frames that follow the first are lost without an indicator, and they are not counted. This counter is updated, if needed, regardless of the RU state. RCVCDT This 32-bit counter contains the number of collisions detected during frame reception. This counter will only be updated if at least 64 bytes of data are received before the collision occurs. If a collision occurs before 64 bytes of data are received, the frame is counted as a short frame. If the collisions occurs in the preamble, no counters are incremented. 34 82596DX/SX ACTION COMMANDS AND OPERATING MODES This section lists all the Action Commands of the Command Unit Command Block List (CBL). Each command contains the Command field, the Status and Control fields, the link to the next Action Command, and any command-specific parameters. There are three basic types of action commands: 82596 Configuration and Setup, Transmission, and Diagnostics. The following is a list of the actual commands. # # # # # # # # NOP Individual Address Setup Configure MC Setup Transmit TDR Dump Diagnose The 82596 has three addressing modes. In the 82586 mode all the Action Commands look exactly like those of the 82586. # 82586 Mode. The 82596 software and memory structure is compatible with the 82586. # 32-Bit Segmented Mode. The 82596 can access the entire system memory and use the two new memory structuresÐSimplified and FlexibleÐwhile still using the segmented approach. This does not require any significant changes to existing software. # Linear Mode. The 82596 operates in a flat, linear, 4 gigabyte memory space without segmentation. It can also use the two new memory structures. In the 32-bit Segmented mode there are some differences between the 82596 and 82586 action commands, mainly in programming and activating new 82596 features. Those bits marked ‘‘don’t care’’ in the compatible mode are not checked; however, we strongly recommend that those bits all be zeroes; this will allow future enchancements and extensions. In the Linear mode all of the address offsets become 32-bit address pointers. All new 82596 features are accessible in this mode, and all bits previously marked ‘‘don’t care’’ must be zeroes. The Action Commands, and all other 82596 memory structures, must begin on even byte boundaries, i.e., they must be word aligned. NOP This command results in no action by the 82596 except for those performed in the normal command processing. It is used to manipulate the CBL manipulation. The format of the NOP command is shown in Figure 21. NOPÐ82586 and 32-Bit Segmented Modes 31 ODD WORD 16 15 EL S I X X X X X X X X X X 0 0 0 X X X X X X X X X X X X X X X A15 X C B OK 0 EVEN WORD 0 0 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 0 A0 4 NOPÐLinear Mode 31 EL S A31 ODD WORD I 0 0 0 0 0 0 0 16 15 0 0 0 0 0 0 C B OK 0 LINK ADDRESS EVEN WORD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A0 4 Figure 21 35 82596DX/SX where: LINK POINTER Ð In the 82586 or 32-bit Segmented modes this is a 16-bit offset to the next Command Block. In the Linear mode this is the 32-bit address of the next Command Block. EL S Ð If set, this bit indicates that this command block is the last on the CBL. Ð If set to one, suspend the CU upon completion of this CB. I Ð If set to one, the 82596 will generate an interrupt after execution of the command is complete. If I is not set to one, the CX bit will not be set. CMD (bits 16–18) Ð The NOP command. Value: 0h. Bits 19–28 Ð Reserved (zero in the 32-bit Segmented and Linear modes). C Ð This bit indicates the execution status of the command. The CPU initially resets it to zero when the Command Block is placed on the CBL. Following a command Completion, the 82596 will set it to one. B Ð This bit indicates that the 82596 is currently executing the NOP command. It is initially reset to zero by the CPU. The 82596 sets it to one when execution begins and to zero when execution is completed. This bit is also set when the 82596 prefetches the command. NOTE: The C and B bits are modified in one operation. OK Ð Indicates that the command was executed without error. If set to one no error occurred (command executed OK). If zero an error occur. INDIVIDUAL ADDRESS SETUP This command is used to load the 82596 with the Individual Address. This address is used by the 82596 for inserting the Source Address during transmission and recognizing the Destination Address during reception. After RESET, and prior to Individual Address Setup Command execution, the 82596 assumes the Broadcast Address is the Individual Address in all aspects, i.e.: # This will be the Individual Address Match reference. # This will be the Source Address of a transmitted frame (for AL-LOC e 0 mode only). The format of the Individual Address Setup command is shown in Figure 22. IA SetupÐ82586 and 32-Bit Segmented Modes 31 EL S ODD WORD I X X X X X X X 16 15 X X X INDIVIDUAL ADDRESS 0 0 1 EVEN WORD C B OK A 0 0 1st byte A15 6th byte 5th byte 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 0 A0 4 4th byte 3rd byte 8 IA SetupÐLinear Mode 31 EL S ODD WORD I 0 0 0 0 0 0 0 16 15 0 0 0 A31 0 0 1 EVEN WORD C B OK A 0 0 0 0 0 0 0 0 0 0 0 LINK ADDRESS 4th byte 3rd byte 0 0 0 A0 4 INDIVIDUAL ADDRESS 1st byte 8 6th byte 5th byte C Figure 22 where: LINK ADDRESS, EL, B, C, I, S A 36 Ð As per standard Command Block (see the NOP command for details) Ð Indicates that the command was abnormally terminated due to CU Abort control command. If one, then the command was aborted, and if necessary it should be repeated. If this bit is zero, the command was not aborted. 82596DX/SX Bits 19–28 Ð Reserved (zero in the 32-bit Segmented and Linear modes). CMD (bits 16–18) Ð The Address Setup command. Value: 1h. INDIVIDUAL ADDRESS Ð The individual address of the node, 0 to 6 bytes long. The least significant bit of the Individual Address must be zero for Ethernet (see the Command Structure). However, no enforcement of 0 is provided by the 82596. Thus, an Individual Address with 1 as its least significant bit is a valid Individual Address in all aspects. The default address length is 6 bytes long, as in 802.3. If a different length is used the IA Setup command should be executed after the Configure command. CONFIGURE The Configure command loads the 82596 with its operating parameters. It allows changing some of the parameters by specifying a byte count less than the maximum number of configuration bytes (11 in the 82586 mode, 14 in the 32-Bit Segmented and Linear modes). The 82596 configuration depends on its mode of operation. # In the 82586 mode the maximum number of configuration bytes is 12. Any number larger than 12 will be reduced to 12 and any number less than 4 will be increased to 4. When configuring the 12th byte (Byte 11 undefined) in 82586 mode this byte should be all ones. # The additional features of the serial side are disabled in the 82586 mode. # In both the 32-Bit Segmented and Linear modes there are four additional configuration bytes, which hold parameters for additional 82596 features. If these parameters are not accessed, the 82596 will follow their default values. # For more detailed information refer to the 32-Bit LAN Components User’s Manual. The format of the Configure command is shown in Figures 23, 24, and 25. 31 ODD WORD EL S X X I X X X X X X X X 16 15 X X X 0 1 0 EVEN WORD C B OK A 0 0 0 0 0 0 0 0 0 0 0 Byte 0 Byte 5 Byte 4 Byte 3 Byte 2 Byte 9 Byte 8 Byte 7 Byte 6 12 Byte 10 16 X X X X X X X X X X X X X LINK OFFSET 0 0 Byte 1 X A15 0 X X X X X X A0 4 X 8 Figure 23. CONFIGUREÐ82586 Mode 31 EL S ODD WORD I 0 0 0 0 0 0 0 16 15 0 0 0 0 1 0 EVEN WORD C B OK A 0 A15 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 0 0 0 Byte 1 Byte 0 Byte 5 Byte 4 Byte 3 Byte 2 A0 4 Byte 9 Byte 8 Byte 7 Byte 6 12 Byte 13 Byte 12 Byte 11 Byte10 16 8 Figure 24. CONFIGUREÐ32-Bit Segmented Mode 37 82596DX/SX 31 ODD WORD EL S I 0 0 0 0 0 0 16 15 0 0 0 0 0 A31 X 1 0 EVEN WORD C B OK A 0 0 0 0 0 0 0 0 0 0 0 LINK ADDRESS X X 0 0 0 A0 4 Byte 3 Byte 2 Byte 1 Byte 0 Byte 7 Byte 6 Byte 5 Byte 4 12 Byte 11 Byte 10 Byte 9 Byte 8 16 Byte 13 Byte 12 20 X X X X X X X X X X X X X 8 Figure 25. CONFIGUREÐLinear Mode LINK ADDRESS, Ð As per standard Command Block (see the NOP command for details) EL, B, C, I, S A Ð Indicates that the command was abnormally terminated due to a CU Abort control command. If 1, then the command was aborted and if necessary it should be repeated. If this bit is 0, the command was not aborted. Ð Reserved (zero in the 32-Bit Segmented and Linear Modes) Bits 19–28 CMD (bits 16–18) Ð The CONFIGURE command. Value: 2h. The interpretation of the fields follows: 7 6 5 4 P X X X BYTE 0 BYTE CNT (Bits 0–3) 3 2 1 0 BYTE COUNT Byte Count. Number of bytes, including this one, that hold parameters to be configured. PREFETCHED (Bit 7) Enable the 82596 to write the prefetched bit in all prefetch RBDs. NOTE: The P bit is valid only in the new memory structure modes. In 82586 mode this bit is disabled (i.e., no prefetched mark). 7 0 MONITOR X BYTE 1 FIFO Limit (Bits 0–3) MONITORÝ (Bits 6–7) X FIFO LIMIT FIFO limit. Receive monitor options. If the Byte Count of the configure command is less than 12 bytes then these Monitor bits are ignored. DEFAULT: C8h 7 0 SAV BF 1 BYTE 2 RESUMEÐRD (Bit 1) SAV BF (Bit 7) DEFAULT: 40h 38 0 0 0 0 RESUMEÐRD 0 0Ð The 82596 does not reread the next CB on the list when a CU RESUME Control Command is issued. 1Ð The 82596 will reread the next CB on the list when a CU RESUME Control Command is issued. This is available only on the 82596B stepping. 0Ð Received bad frames are not saved in the memory. 1Ð Received bad frames are saved in the memory. 82596DX/SX 7 0 LOOP BACK MODE PREAMBLE LENGTH NO SRC ADD INS ADDRESS LENGTH BYTE 3 ADR LEN (Bits 0–2) NO SCR ADD INS (Bit 3) PREAM LEN (Bits 4–5) Address length (any kind). No Source Address Insertion. In the 82586 this bit is called AL LOC. Preamble length. LP BCK MODE (Bits 6–7) Loopback mode. DEFAULT: 26h 7 0 BOF METD EXPONENTIAL PRIORITY 0 LINEAR PRIORITY BYTE 4 LIN PRIO (Bits 0–2) EXP PRIO (Bits 4–6) Linear Priority. Exponential Priority. BOF METD (Bit 7) DEFAULT: 00h Exponential Backoff method. 7 0 INTER FRAME SPACING BYTE 5 INTERFRAME SPACING Interframe spacing. DEFAULT: 60h 7 0 SLOT TIME - LOW BYTE 6 SLOT TIME (L) Slot time, low byte. DEFAULT: 00h 7 0 MAXIMUM RETRY NUMBER BYTE 7 SLOT TIME (H) (Bits 0–2) RETRY NUM (Bits 4–7) DEFAULT: F2h 0 SLOT TIME - HIGH Slot time, high part. Number of transmission retries on collision. 39 82596DX/SX 7 0 PAD BIT STUFF CRC16/ CRC32 NO CRC INSER Tx ON NO CRS MAN/ NRZ BC DIS PRM MODE BYTE 8 PRM (Bit 0) BC DIS (Bit 1) Promiscuous mode. Broadcast disable. MANCH/NRZ (Bit 2) Manchester or NRZ encoding. See specific timing requirements for TxC in Manchester mode. TONO CRS (Bit 3) Transmit on no CRS. NOCRC INS (Bit 4) CRC-16/CRC-32 (Bit 5) No CRC insertion. CRC type. BIT STF (Bit 6) Bit stuffing. PAD (Bit 7) DEFAULT: 00h Padding. 7 0 CDT SRC COLLISION DETECT FILTER BYTE 9 CRSF (Bits 0–2) CRS SRC (Bit 3) CDTF (Bits 4–6) CDT SRC (Bit 7) CRS SRC CARRIER SENSE FILTER Carrier Sense filter (length). Carrier Sense source. Collision Detect filter (length). Collision Detect source. DEFAULT: 00h 7 0 MINIMUM FRAME LENGTH BYTE 10 MIN FRAME LEN Minimum frame length. DEFAULT: 40h 7 0 MONITOR BYTE 11 PRECRS (Bit 0) LNGFLD (Bit 1) CRCINM (Bit 2) AUTOTX (Bit 3) CDBSAC (Bit 4) MCÐALL (Bit 5) MONITOR (Bits 6–7) DEFAULT: FFH 40 MCÐALL CDBSAC AUTOTX CRCINM LNGFLD PRECRS Preamble until Carrier Sense Length field. Enables padding at the End-of-Carrier framing (802.3). Rx CRC appended to the frame in memory. Auto retransmit. Collision Detect by source address recognition. Enable to receive all MC frames. Receive monitor options. 82596DX/SX 7 0 0 FDX 0 0 0 0 0 0 1 1 1 BYTE 12 FDX (Bit 6) DEFAULT: 00h Enables Full Duplex operation. DISÐBOF 1 7 0 MULTÐIA 1 1 BYTE 13 MULTÐIA (Bit 6) DISÐBOF (Bit 7) Multiple individual address. Disable the backoff algorithm. DEFAULT: 3Fh 41 82596DX/SX A reset (hardware or software) configures the 82596 according to the following defaults. Table 4. Configuration Defaults Parameter * * * * * * * * * * ADDRESS LENGTH A/L FIELD LOCATION AUTO RETRANSMIT BITSTUFFING/EOC BROADCAST DISABLE CDBSAC CDT FILTER CDT SRC CRC IN MEMORY CRC-16/CRC-32 CRS FILTER CRS SRC DISBOF EXT LOOPBACK EXPONENTIAL PRIORITY EXPONENTIAL BACKOFF METHOD FULL DUPLEX (FDX) FIFO THRESHOLD INT LOOPBACK INTERFRAME SPACING LINEAR PRIORITY LENGTH FIELD MIN FRAME LENGTH MC ALL MONITOR MANCHESTER/NRZ MULTI IA NUMBER OF RETRIES NO CRC INSERTION PREFETCH BIT IN RBD PREAMBLE LENGTH Preamble Until CRS PROMISCUOUS MODE PADDING SLOT TIME SAVE BAD FRAME TRANSMIT ON NO CRS Default Value **6 0 1 0 0 1 0 0 1 **0 0 0 0 0 **0 **0 0 8 0 **96 **0 1 **64 1 11 0 0 **15 0 0 **7 1 0 0 **512 0 0 Units/Meaning Bytes Located in FD Auto Retransmit Enable EOC Broadcast Reception Enabled Disabled Bit Times External Collision Detection CRC Not Transferred to Memory CRC-32 0 Bit Times External CRS Backoff Enabled Disabled 802.3 Algorithm 802.3 Algorithm CSMA/CD Protocol (No FDX) TX: 32 Bytes, RX: 64 Bytes Disabled Bit Times 802.3 Algorithm Padding Disabled Bytes Disabled Disabled NRZ Disabled Maximum Number of Retries CRC Appended to Frame Disabled (Valid Only in New Modes) Bytes Disabled Address Filter On No Padding Bit Times Discards Bad Frames Disabled NOTES: 1. This configuration setup is compatible with the IEEE 802.3 specification. 2. The Asterisk ‘‘*’’ signifies a new configuration parameter not available in the 82586. 3. The default value of the Auto retransmit configuration parameter is enabled (1). 4. Double Asterisk ‘‘**’’ signifies IEEE 802.3 requirements. 42 82596DX/SX MULTICAST-SETUP This command is used to load the 82596 with the Multicast-IDs that should be accepted. As noted previously, the filtering done on the Multicast-IDs is not perfect and some unwanted frames may be accepted. This command resets the current filter and reloads it with the specified Multicast-IDs. The format of the Multicastaddresses setup command is: 31 ODD WORD EL S X I X X X X X X X X 16 15 X X X 0 1 1 MC COUNT C EVEN WORD B OK A 0 0 A15 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 A0 4th byte 1st byte MULTICAST ADDRESSES LIST Nth byte Figure 26. MC SetupÐ82586 and 32-Bit Segmented Modes 31 EL S ODD WORD I 0 0 A31 2nd byte 0 0 0 0 0 16 15 0 0 0 0 1 1 C EVEN WORD B OK A 0 0 0 0 0 0 0 0 0 0 LINK ADDRESS 1st byte X X 0 0 0 A0 MC COUNT MULTICAST ADDRESSES LIST Nth byte Figure 27. MC SetupÐLinear Mode where: LINK ADDRESS, EL, B, C, I, S A Bits 19–28 CMD (bits 16–18) MC-CNT MC LIST Ð As per standard Command Block (see the NOP command for details) Ð Indicates that the command was abnormally terminated due to a CU Abort control command. If one, then the command was aborted and if necessary it should be repeated. If this bit is zero, the command was not aborted. Ð Reserved (0 in both the 32-Bit Segmented and Linear Modes). Ð The MC SETUP command value: 3h. This 14-bit field indicates the number of bytes in the MC LIST field. The MC CNT must be a multiple of the ADDR LEN; otherwise, the 82596 reduces the MC CNT to the nearest ADDR LEN multiple. MC CNT e 0 implies resetting the Hash table which is equivalent to disabling the Multicast filtering mechanism. Ð A list of Multicast Addresses to be accepted by the 82596. The least significant bit of each MC address must be 1. NOTE: The list is sequential; i.e., the most significant byte of an address is immediately followed by the least significant byte of the next address. Ð When the 82596 is configured to recognize multiple Individual Address (Multi-IA), the MC-Setup command is also used to set up the Hash table for the individual address. The least significant bit in the first byte of each IA address must be 0. 43 82596DX/SX TRANSMIT This command is used to transmit a frame of user data onto the serial link. The format of a Transmit command is as follows. 31 ODD WORD EL S I 16 15 X X X X X X X X A15 X X 1 0 TBD OFFSET 0 C EVEN WORD B A0 A15 4th byte STATUS BITS LINK OFFSET DESTINATION ADDRESS LENGTH FIELD 0 MAXCOLL 0 A0 4 1st byte 8 6th byte 12 Figure 28. TRANSMITÐ82586 Mode 31 ODD WORD EL S I 0 0 0 A15 0 0 0 0 0 0 16 15 0 NC SF 1 0 TBD OFFSET 0 0 0 0 0 0 0 0 0 C EVEN WORD B A0 A15 0 0 0 0 0 STATUS BITS LINK OFFSET 0 EOF 0 4th byte 0 A0 4 TCB COUNT DESTINATION ADDRESS LENGTH FIELD 0 MAXCOLL 8 1st byte 12 6th byte 16 OPTIONAL DATA Figure 29. TRANSMITÐ32-Bit Segmented Mode 31 ODD WORD EL S I 0 0 0 0 0 0 0 16 15 0 NC SF 1 0 A31 0 C EVEN WORD B STATUS BITS LINK ADDRESS A31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EOF 0 4th byte 20 6th byte OPTIONAL DATA Figure 30. TRANSMITÐLinear Mode 31 COMMAND WORD EL S I 0 0 0 0 0 0 0 16 0 NC SF 1 uu 0 0 2 0: No CRC Insertion disable; when the 0: Simplified Mode, all the Tx data is in configure command is configured to the Transmit Command Block. The not insert the CRC during Transmit Buffer Descriptor Address transmission the NC has no effect. field is all 1s. 1: No CRC Insertion enable; when the 1: Flexible Mode. Data is in the TCB and configure command is configured to in a linked list of TBDs. insert the CRC during transmission the CRC will not be inserted when NC e 1. 44 A0 8 TCB COUNT DESTINATION ADDRESS LENGTH FIELD 0 A0 4 TRANSMIT BUFFER DESCRIPTOR ADDRESS 0 0 MAXCOLL 12 1st byte 16 82596DX/SX where: EL, B, C, I, S OK (Bit 13) Ð As per standard Command Block (see the NOP command for details). Ð Error free completion. A (Bit 12) Ð Indicates that the command was abnormally terminated due to CU Abort control command. If 1, then the command was aborted, and if necessary it should be repeated. If this bit is 0, the command was not aborted. Bits 19–28 CMD (Bits 16–18) Ð Reserved (0 in the 32-bit Segmented and Linear modes). Ð The transmit command: 4h. Status Bit 11 Ð Late collision. A late collision (a collision after the slot time is elapsed) is detected. Status Bit 10 Ð No Carrier Sense signal during transmission. Carrier Sense signal is monitored from the end of Preamble transmission until the end of the Frame Check Sequence for TONOCRS e 1 (Transmit On No Carrier Sense mode) it indicates that transmission has been executed despite a lack of CRS. For TONOCRS e 0 (Ethernet mode), this bit also indicates unsuccessful transmission (transmission stopped when lack of Carrier Sense has been detected). Status Bit 9 Ð Transmission unsuccessful (stopped) due to Loss of CTS. Status Bit 8 Ð Transmission unsuccessful (stopped) due to DMA Underrun; i.e., the system did not supply data for transmission. Status Bit 7 Ð Transmission Deferred, i.e., transmission was not immediate due to previous link activity. Status Bit 6 Ð Heartbeat Indicator, Indicates that after a previously performed transmission, and before the most recently performed transmission, (Interframe Spacing) the CDT signal was monitored as active. This indicates that the Ethernet Transceiver Collision Detect logic is performing properly. The Heartbeat is monitored during the Interframe Spacing period. Ð Transmission attempt was stopped because the number of collisions exceeded the maximum allowable number of retries. Ð 0 (Reserved). Ð The number of Collisions experienced during this frame. Max Col e 0 plus S5 e 1 indicates 16 collisions. Ð As per standard Command Block (see the NOP for details). Status Bit 5 Status Bit 4 MAX-COL (Bits 3–0) LINK OFFSET TBD POINTER DEST ADDRESS Ð In the 82586 and 32-bit Segmented modes this is the offset of the first Tx Buffer Descriptor containing the data to be transmitted. In the Linear mode this is the 32bit address of the first Tx Buffer Descriptor on the list. If the TBD POINTER is all 1s it indicates that no TBD is used. Ð Contains the Destination Address of the frame. The least significant bit (MC) indicates the address type. MC e 0: Individual Address. MC e 1: Multicast or Broadcast Address. If the Destination Address bits are all 1s this is a Broadcast Address. LENGTH FIELD TCB COUNT EOF Bit Ð The contents of this 2-byte field are user defined. In 802.3 it contains the length of the data field. It is placed in memory in the same order it is transmitted; i.e., most significant byte first, least significant byte second. Ð This 14-bit counter indicates the number of bytes that will be transmitted from the Transmit Command Block, starting from the third byte after the TCB COUNT field (address n a 12 in the 32-bit Segmented mode, N a 16 in the Linear mode). The TCB COUNT field can be any number of bytes (including an odd byte), this allows the user to transmit a frame with a header having an odd number of bytes. The TCB COUNT field is not used in the 82586 mode. Ð Indicates that the whole frame is kept in the Transmit Command Block. In the Simplified memory model it must be always asserted. 45 82596DX/SX The interpretation of what is transmitted depends on the No Source Address insertion configuration bit and the memory model being used. NOTES 1. The Destination Address and the Length Field are sequential of the Length Field immediately follows the most significant byte of the Destination Address. 2. In case the 82596 is configured with No Source Address insertion bit equal to 0, the 82596 inserts its configured Source Address in the transmitted frame. # In the 82586 mode, or when the Simplified memory model is used, the Destination and Length fields of the transmitted frame are taken from the Transmit Command Block. # If the FLEXIBLE memory model is used, the Destination and Length fields of the transmitted frame can be found either in the TCB or TBD, depending on the TCB COUNT. 3. If the 82596 is configured with the Address/Length Field Location equal to 1, the 82596 does not insert its configured Source Address in the transmitted frame. The first (2 c Address Length) a 2 bytes of the transmitted frame are interpreted as Destination Address, Source Address, and Length fields respectively. The location of the first transmitted byte depends on the operational mode of the 82596: # In the 82586 mode, it is always the first byte of the first Tx Buffer. # In both the 32-bit Segmented and Linear modes it depends on the SF bit and TCB COUNT: Ð In the Simplified memory mode the first transmitted byte is always the third byte after the TCB COUNT field. Ð In the Flexible mode, if the TCB COUNT is greater than 0 then it is the third byte after the TCB COUNT field. If TCB COUNT equals 0 then it is first byte of the first Tx Buffer. # Transmit frames shorter than six bytes are invalid. The transmission will be aborted (only in 82586 mode) because of a DMA Underrun. 4. Frames which are aborted during transmission are jammed. Such an interruption of transmission can be caused by any reason indicated by any of the status bits 8, 9, 10 and 12. JAMMING RULES 1. Jamming will not start before completion of preamble transmission. 2. Collisions detected during transmission of the last 11 bits will not result in jamming. The format of a Transmit Buffer Descriptor is: 82586 Mode 31 ODD WORD 16 15 NEXT TBD OFFSET X X X X X X X 13 EOF X X EVEN WORD 0 SIZE (ACT COUNT) 0 TRANSMIT BUFFER ADDRESS 4 32-Bit Segmented Mode 31 ODD WORD 16 15 NEXT TBD OFFSET 13 EOF 0 EVEN WORD 0 SIZE (ACT COUNT) 0 TRANSMIT BUFFER ADDRESS 4 Linear Mode 31 0 ODD WORD 0 0 0 0 0 0 0 0 0 16 15 0 0 0 0 0 EVEN WORD SIZE (ACT COUNT) 0 0 NEXT TBD ADDRESS 4 TRANSMIT BUFFER ADDRESS 8 Figure 31 46 13 0 EOF 0 82596DX/SX where: EOF Ð This bit indicates that this TBD is the last one associated with the frame being transmitted. It is set by the CPU before transmit. SIZE (ACT COUNT) Ð This 14-bit quantity specifies the number of bytes that hold information for the current buffer. It is set by the CPU before transmission. NEXT TBD ADDRESS Ð In the 82586 and 32-bit Segmented modes, it is the offset of the next TBD on the list. In the Linear mode this is the 32-bit address of the next TBD on the list. It is meaningless if EOF e 1. BUFFER ADDRESS Ð The starting address of the memory area that contains the data to be sent. In the 82586 mode, this is a 24-bit address (A31 – A24 are considered to be zero). In the 32-bit Segmented and Linear modes this is a 32-bit address. This buffer can be byte aligned for the 82596 B-step. TDR This operation activates Time Domain Reflectometry, which is a mechanism to detect open or short circuits on the link and their distance from the diagnosing station. The TDR command has no parameters. The TDR transmit sequence was changed, compared to the 82586, to form a regular transmission. The TDR command is designed to be used statically. Make sure that both the CU and RU are idle before attempting a TDR command. The TDR bit stream is as follows. Ð Preamble Ð Source address Ð Another Source address (the TDR frame is transmitted back to the sending station, so DEST ADR e SRC ADR). Ð Data field containing 7Eh patterns. Ð Jam Pattern, which is the inverse CRC of the transmitted frame. Maximum length of the TDR frame is 2048 bits. If the 82596 senses collision while transmitting the TDR frame it transmits the jam pattern and stops the transmission. The 82596 then triggers an internal timer (STC); the timer is reset at the beginning of transmission and reset if CRS is returned. The timer measures the time elapsed from the start of transmission until an echo is returned. The echo is indicated by Collision Detect going active or a drop in the Carrier Sense signal. The following table lists the possible cases that the 82596 is able to analyze. Conditions of TDR as Interpreted by the 82596 Transceiver Type Condition Ethernet Non Ethernet Carrier Sense was inactive for 2048-bit-time periods Short or Open on the Transceiver Cable NA Carrier Sense signal dropped Short on the Ethernet cable NA Collision Detect went active Open on the Ethernet cable Open on the Serial Link The Carrier Sense Signal did not drop or the Collision Detect did not go active within 2048-bit time period No Problem No Problem An Ethernet transceiver is defined as one that returns transmitted data on the receive pair and activates the Carrier Sense Signal while transmitting. A Non-Ethernet Transceiver is defined as one that does not do so. 47 82596DX/SX The format of the Time Domain Reflectometer command is: 82586 and 32-Bit Segmented Modes 31 ODD WORD EL S I X 16 15 X X X X X X X X X 1 LNK XVR ET ET X OK PRB OPN SRT 0 EVEN WORD 1 C B OK 0 TIME (11 bits) 0 0 A15 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 A0 Linear Mode 31 ODD WORD EL S 16 15 I 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 A31 0 0 1 C EVEN WORD B OK 0 0 0 0 0 0 ET SRT X 0 0 0 0 0 0 LINK ADDRESS 0 0 0 LNK OK 0 0 A0 XVR PRB ET OPN TIME (11 bits) Figure 32. TDR where: LINK ADDRESS, EL, B, C, I, S A Bits 19–28 CMD (Bits 16–18) TIME LNK OK (Bit 15) Ð As per standard Command Block (see the NOP command for details). Ð Indicates that the command was abnormally terminated due to CU Abort control command. If one, then the command was aborted, and if necessary it should be repeated. If this bit is zero, the command was not aborted. Ð Reserved (0 in the 32-bit Segmented and Linear Modes). Ð The TDR command. Value: 5h. Ð An 11-bit field that specifies the number of TxC cycles that elapsed before an echo was observed. No echo is indicated by a reception consisting of ‘‘1s’’ only. Because the network contains various elements such as transceiver links, transceivers, Ethernet, repeaters etc., the TIME is not exactly proportional to the problems distance. Ð No link problem identified. TIME e 7FFh. XCVR PRB (Bit 14) Ð Indicates a Transceiver problem. Carrier Sense was inactive for 2048-bit time period. LNK OK e 0. TIME e 7FFh. ET OPN (Bit 13) Ð The transmission line is not properly terminated. Collision Detect went active and LNK OK e 0. ET SRT (Bit 12) Ð There is a short circuit on the transmission line. Carrier Sense Signal dropped and LNK OK e 0. 48 82596DX/SX DUMP This command causes the contents of various 82596 registers to be placed in a memory area specified by the user. It is supplied as a 82596 self-diagnostic tool, and to provide registers of interest to the user. The format of the DUMP command is: 82586 and 32-Bit Segmented Modes 31 EL S ODD WORD I X X X A15 X X X X 16 15 X X X 1 1 BUFFER OFFSET 0 C EVEN WORD B OK 0 0 0 A0 A15 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 A0 Linear Mode 31 EL S ODD WORD I X X X X X X X 16 15 X X X 1 1 0 C EVEN WORD B OK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A31 LINK ADDRESS A0 A31 BUFFER ADDRESS A0 Figure 33. Dump where: LINK ADDRESS, EL, B, C, I, S Ð As per standard Command Block (see the NOP command for details). OK Bits 19–28 CMD (Bits 16–18) Ð Indicates error free completion. Ð Reserved (0 in the 32-bit Segmented and Linear Modes). Ð The Dump command. Value: 6h. BUFFER POINTER Ð In the 82586 and 32-bit Segmented modes this is the 16-bit-offset portion of the dump area address. In the Linear mode this is the 32-bit linear address of the dump area. Dump Area Information Format # The 82596 is not Dump compatible with the 82586 because of the 32-bit internal architecture. In 82586 mode the 82596 will dump the same number of bytes as the 82586. The compatible data will be marked with an asterisk. # # # # In 82586 mode the dump area is 170 bytes. The dump area format of the 32-bit Segmented and Linear modes is described in Figure 35. The size of the dump area of the 32-bit Segmented and Linear modes is 304 bytes. When the dump is executed by the Port command an extra word will be appended to the Dump Area. The extra word is a copy of the Dump Area status word (containing the C, B, and OK bits). The C and OK bits are set when the 82596 has completed the Port Dump command. 49 82596DX/SX 15 14 13 12 11 10 9 8 7 6 5 4 DMA CONTROL REGISTER* CONFIGURE BYTES 3, 2 CONFIGURE BYTES 5, 4 CONFIGURE BYTES 7, 6 CONFIGURE BYTES 9, 8 3 2 1 0 00 02 04 06 08 CONFIGURE BYTES 10 I.A. BYTES 1, 0* I.A. BYTES 3, 2* 0A 0C 0E I.A. BYTES 5, 4* LAST T.X. STATUS* T.X. CRC BYTES 1, 0* T.X. CRC BYTES 3, 2* R.X. CRC BYTES 1, 0* R.X. CRC BYTES 3, 2* R.X. TEMP MEMORY 1, 0* R.X. TEMP MEMORY 3, 2* R.X. TEMP MEMORY 5, 4* LAST RECEIVED STATUS* HASH REGISTER BYTES 1, 0* HASH REGISTER BYTES 3, 2* HASH REGISTER BYTES 5, 4* HASH REGISTER BYTES 7, 6* SLOT TIME COUNTER* WAIT TIME COUNTER* MICRO MACHINE** CU PORT 8 BYTES MICRO MACHINE ALU** RESERVED** M.M. TEMP A ROTATE R** 10 12 14 16 18 1A 1C 1E 20 22 24 26 28 2A 2C 2E 30 . . . 6A 6C 6E . . . 7A 7C . . 82 84 86 88 M.M. TEMP A** T.X. DMA BYTE COUNT** M.M. INPUT PORT ADDRESS** T.X. DMA ADDRESS** M.M. OUTPUT PORT** R.X. DMA BYTE COUNT** M.M. OUTPUT PORT ADDRESS REGISTER** R.X. DMA ADDRESS** RESERVED** BUS THROTTLE TIMERS DIU CONTROL REGISTER** RESERVED** DMA CONTROL REGISTER** BIU CONTROL REGISTER** M.M. DISPATCHER REGISTER** M.M. STATUS REGISTER** 8A 8C 8E 90 92 94 96 98 9A 9C 9E A0 A2 A4 A6 A8 REGISTER FILE 60 BYTES MICRO MACHINE LFSR** MICRO MACHINE FLAG ARRAY 14 BYTES QUEUE MEMORY** NOTE: *The 82596 is not Dump compatible with the 82586 because of the 32-bit internal architecture. In 82586 mode the 82596 will dump the same number of bytes as the 82586. The compatible data will be marked with an asterisk. **These bytes are not user defined, results may vary from Dump command to Dump command. Figure 34. Dump Area FormatÐ82586 Mode 50 82596DX/SX 31 0 CONFIGURE BYTES 5, 4, 3, 2 00 CONFIGURE BYTES 9, 8, 7, 6 04 CONFIGURE BYTES 13, 12, 11, 10 I.A. BYTES 1, 0 X X X X 08 X X X I.A. BYTES 5, 2 X 0C 10 TX CRC BYTES 0, 1 LAST T.X. STATUS RX CRC BYTES 0, 1 TX CRC BYTES 3, 2 18 RX TEMP MEMORY 1, 0 RX CRC BYTES 3, 2 1C R.X. TEMP MEMORY 5, 2 HASH REGISTERS 1, 0 LAST R.X. STATUS HASH REGISTER BYTES 5, 2 14 20 24 28 SLOT TIME COUNTER HASH REGISTERS 7, 6 2C RECEIVE FRAME LENGTH WAIT-TIME COUNTER 30 MICRO MACHINE** 128 BYTES 34 . . . B0 MICRO MACHINE LFSR** B4 MICRO MACHINE** 28 BYTES B8 . . . D0 M.M. INPUT PORT** 16 BYTES D4 E0 REGISTER FILE FLAG ARRAY NOTE: The 82596 is not Dump compatible with the 82586 because of the 32-bit internal architecture. In 82586 mode the 82596 will dump the same number of bytes as the 82586. The compatible data will be marked with an asterisk. **These bytes are not user defined, results may vary from Dump command to Dump command. MICRO MACHINE ALU** E4 RESERVED** E8 M.M. TEMP A ROTATE R.** EC M.M. TEMP A** F0 T.X. DMA BYTE COUNT** F4 M.M. INPUT PORT ADDRESS REGISTER** F8 T.X. DMA ADDRESS** FC M.M. OUTPUT PORT REGISTER** 100 R.X. DMA BYTE COUNT** 104 M.M. OUTPUT PORT ADDRESS REGISTER** 108 R.X. DMA ADDRESS REGISTER** 10C RESERVED** 110 BUS THROTTLE TIMERS 114 DIU CONTROL REGISTER** 118 RESERVED** 11C DMA CONTROL REGISTER** 120 BIU CONTROL REGISTER** 124 M.M. DISPATCHER REG.** 128 M.M. STATUS REGISTER** 12C Figure 35. Dump Area FormatÐLinear and 32-Bit Segmented Mode 51 82596DX/SX DIAGNOSE The Diagnose Command triggers an internal self-test procedure that checks internal 82596 hardware, which includes: # # # # # # # Exponential Backoff Random Number Generator (Linear Feedback Shift Register). Exponential Backoff Timeout Counter. Slot Time Period Counter. Collision Number Counter. Exponential Backoff Shift Register. Exponential Backoff Mask Logic. Timer Trigger Logic. This procedure checks the operation of the Backoff block, which resides in the serial side and is not easily controlled. The Diagnose command is performed in two phases. The format of the 82596 Diagnose command is: 82586 and 32-Bit Segmented Modes 31 ODD WORD 16 15 EL S I X X X X X X X X X X 1 1 1 X X X X X X X X X X X X X X X A15 X C EVEN WORD B OK 0 F 0 0 0 0 0 0 0 0 0 0 0 LINK OFFSET 0 A0 Linear Mode 31 EL S ODD WORD I 0 0 0 0 0 0 0 16 15 0 0 0 A31 1 1 1 C EVEN WORD B OK 0 F 0 0 0 0 0 0 0 0 0 LINK ADDRESS 0 0 0 A0 Figure 36. Diagnose where: LINK ADDRESS, EL, B, C, I, S Bits 19–28 CMD (bits 16–18) OK (bit 13) F (bit 11) Ð As per standard Command Block (see the NOP command for details). Ð Reserved (0 in the 32-bit Segmented and Linear Modes). Ð The Diagnose command. Value: 7h. Ð Indicates error free completion. Ð Indicates that the self-test procedure has failed. RECEIVE FRAME DESCRIPTOR Each received frame is described by one Receive Frame Descriptor (see Figure 37). Two new memory structures are available for the received frames. The structures are available only in the Linear and 32-bit Segmented modes. 52 82596DX/SX 290219 – 15 Figure 37. The Receive Frame Area Simplified Memory Structure The first is the Simplified memory structure, the data section of the received frame is part of the RFD and is located immediately after the Length Field. Receive Buffer Descriptors are not used with the Simplified structure, it is primarily used to make programming easier. If the length of the data area described in the Size Field is smaller than the incoming frame, the following happens. 1. The received frame is truncated. 2. The No Resource error counter is updated. 3. If the 82596 is configured to Save Bad Frames the RFD is not reused; otherwise, the same RFD is used to hold the next received frame, and the only action taken regarding the truncated frame is to update the counter. 4. The 82596 continues to receive the next frame in the next RFD. 53 82596DX/SX Note that this sequence is very useful for monitoring. If the 82596 is configured to Save Bad Frames, to receive in Promiscuous mode, and to use the Simplified memory structure, any programmed length of received data can be saved in memory. The Simplified memory structure is shown in Figure 38. 290219 – 16 Figure 38. RFA Simplified Memory Structure Flexible Memory Structure The second structure is the Flexible memory structure, the data structure of the received frame is stored in both the RFD and in a linked list of Receive BuffersÐReceive Buffer Descriptors. The received frame is placed in the RFD as configured in the Size field. Any remaining data is placed in a linked list of RBDs. The Flexible memory structure is shown in Figure 39. 54 82596DX/SX Buffers on the receive side can be different lengths. The 82596 will not place more bytes into a buffer than indicated in the associated RBD. The 82596 will fetch the next RBD before it is needed. The 82596 will attempt to receive frames as long as the FBL is not exhausted. If there are no more buffers, the 82596 Receive Unit will enter the No Resources state. Before starting the RU, the CPU must place the FBL pointer in the RBD pointer field of the first RFD. All remaining RBD pointer fields for subsequent RFDs should be ‘‘1s.’’ If the Receive Frame Descriptor and the associated Receive Buffers are not reused (e.g., the frame is properly received or the 82596 is configured to Save Bad Frames), the 82596 writes the address of the next free RBD to the RBD pointer field of the next RFD. RECEIVE BUFFER DESCRIPTOR (RBD) The RBDs are used to store received data in a flexible set of linked buffers. The portion of the frame’s data field that is outside the RFD is placed in a set of buffers chained by a sequence of RBDs. The RFD points to the first RBD, and the last RBD is flagged with an EOF bit set to 1. Each buffer in the linked list of buffers related to a particular frame can be any size up to 214 bytes but must be word aligned (begin on an even numbered byte). This ensures optimum use of the memory resources while maintaining low overhead. All buffers in a frame are filled with the received data except for the last, in which the actual count can be smaller than the allocated buffer space. 290219 – 17 Figure 39. RFA Flexible Memory Structure 55 82596DX/SX 31 ODD WORD EL S X X X X A15 X X X X 16 15 X X X X X RBD OFFSET A0 A15 4th byte X 0 0 0 LINK OFFSET 0 0 0 0 0 A0 4 1st byte 8 1st byte 6th byte 6th byte X STATUS BITS DESTINATION ADDRESS SOURCE ADDRESS X EVEN WORD X C B OK 0 12 4th byte X X X X X X X X X X X X X 16 LENGTH FIELD 20 Figure 40. Receive Frame DescriptorÐ82586 Mode 31 ODD WORD EL S 0 0 0 0 A15 0 0 0 0 0 16 15 0 0 SF 0 0 RBD OFFSET 0 0 C EVEN WORD B OK A0 A15 SIZE LINK OFFSET EOF F 4th byte 0 A0 4 ACTUAL COUNT DESTINATION ADDRESS SOURCE ADDRESS 0 STATUS BITS 8 1st byte 12 1st byte 6th byte 16 4th byte 20 6th byte LENGTH FIELD 24 OPTIONAL DATA AREA Figure 41. Receive Frame DescriptorÐ32-Bit Segmented Mode 31 ODD WORD EL S 0 0 0 0 0 0 0 0 A31 0 SF 0 0 0 C EVEN WORD B OK STATUS BITS LINK ADDRESS A31 0 16 15 0 SIZE EOF F 4th byte SOURCE ADDRESS 6th byte A0 8 ACTUAL COUNT DESTINATION ADDRESS 1st byte 12 1st byte 16 6th byte 20 4th byte 24 LENGTH FIELD OPTIONAL DATA AREA Figure 42. Receive Frame DescriptorÐLinear Mode 56 0 A0 4 RECEIVE BUFFER DESCRIPTOR ADDRESS 0 0 28 82596DX/SX where: EL S Ð When set, this bit indicates that this RFD is the last one on the RDL. Ð When set, this bit suspends the RU after receiving the frame. SF Ð This bit selects between the Simplified or the Flexible mode. 0 Ð Simplified mode, all the RX data is in the RFD. RBD ADDRESS field is all ‘‘1s.’’ 1 Ð Flexible mode. Data is in the RFD and in a linked list of Receive Buffer Descriptors. C Ð This bit indicates the completion of frame reception. It is set by the 82596. B Ð This bit indicates that the 82596 is currently receiving this frame, or that the 82596 is ready to receive the frame. It is initially set to 0 by the CPU. The 82596 sets it to 1 when reception set up begins, and to 0 upon completion. The C and B bits are set during the same operation. OK (bit 13) Ð Frame received successfully, without errors. RFDs with bit 13 equal to 0 are possible only if the save bad frames configuration option is selected. Otherwise all frames with errors will be discarded, although statistics will be collected on them. STATUS Ð The results of the Receive operation. Defined bits are, Bit 12: Bit 11: Bit 10: Length error if configured to check length CRC error in an aligned frame Alignment error (CRC error in misaligned frame) Bit 9: Bit 8: Bit 7: Ran out of buffer spaceÐno resources DMA Overrun failure to acquire the system bus. Frame too short. Bit 6: Bit 5: No EOP flag (for Bit stuffing only) When the SF bit equals zero, and the 82596 is configured to save bad frames, this bit signals that the received frame was truncated. Otherwise it is zero. Bits 2–4: Zeros Bit 1: When it is zero, the destination address of the received frame matches the IA address. When it is 1, the destination address of the received frame does not match the individual address. For example, a multicast address or broadcast address will set this bit to a 1. Bit 0: LINK ADDRESS RBD POINTER EOF F SIZE ACT COUNT MC DESTINATION ADDRESS SOURCE ADDRESS Receive collision. A collision is detected during reception, and the collision occurred after the destination address was received. Ð A 16-bit offset (32-bit address in the Linear mode) to the next Receive Frame Descriptor. The Link Address of the last frame can be used to form a cyclical list. Ð The offset (address in the Linear mode) of the first RBD containing the received frame data. An RBD pointer of all ones indicates no RBD. Ð These fields are for the Simplified and Flexible memory models. They are exactly the same as the respective fields in the Receive Buffer Descriptor. See the next section for detailed explanation of their functions. Ð Multicast bit. Ð The contents of the destination address of the receive frame. The field is 0 to 6 bytes long. Ð The contents of the Source Address field of the received frame. It is 0 to 6 bytes long. 57 82596DX/SX LENGTH FIELD Ð The contents of this 2-byte field are user defined. In 802.3 it contains the length of the data field. It is placed in memory in the same order it is received, i.e., most significant byte first, least significant byte second. NOTES 1. The Destination address, Source address and Length fields are packed, i.e., one field immediately follows the next. 2. The affect of Address/Length Location (No Source Address Insertion) configuration parameter while receiving is as follows: Ð 82586 Mode: The Destination address, Source address and Length field are not used, they are placed in the RX data buffers. Ð 32-Bit Segmented and Linear Modes: when the Simplified memory model is used, the Destination address, Source address and Length fields reside in their respective fields in the RFD. When the Flexible memory strucrture is used the Destination address, Source address, and Length field locations depend on the SIZE field of the RFD. They can be placed in the RFD, in the RX data buffers, or partially in the RFD and the rest in the RX data buffers, depending on the SIZE field value. 82586 Mode 31 ODD WORD A15 16 15 NEXT RBD OFFSET X X X X X X X X A23 X X X X X X X X X EVEN WORD A0 EOF F RECEIVE BUFFER ADDRESS X X X X X X X EL 0 ACTUAL COUNT X 0 A0 4 SIZE 8 32-Bit Segmented Mode 31 ODD WORD A15 16 15 NEXT RBD OFFSET A31 0 EVEN WORD A0 EOF F RECEIVE BUFFER ADDRESS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EL 0 ACTUAL COUNT 0 A0 4 P SIZE 8 Linear Mode 31 0 ODD WORD 0 0 0 0 0 0 0 0 0 16 15 0 0 0 A31 0 EVEN WORD 0 EOF F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EL P 0 0 A0 4 RECEIVE BUFFER ADDRESS 0 Figure 43. Receive Buffer Descriptor 58 ACTUAL COUNT NEXT RBD ADDRESS A31 0 0 A0 8 SIZE 82596DX/SX where: EOF F ACT COUNT Ð Indicates that this is the last buffer related to the frame. It is cleared by the CPU before starting the RU, and is written by the 82596 at the end of reception of the frame. Ð Indicates that this buffer has already been used. The Actual Count has no meaning unless the F bit equals one. This bit is cleared by the CPU before starting the RU, and is set by the 82596 after the associated buffer has been. This bit has the same meaning as the Complete bit in the RFD and CB. Ð This 14-bit quantity indicates the number of meaningful bytes in the buffer. It is cleared by the CPU before starting the RU, and is written by the 82596 after the associated buffer has already been used. In general, after the buffer is full, the Actual Count value equals the size field of the same buffer. For the last buffer of the frame, Actual Count can be less than the buffer size. NEXT BD ADDRESS Ð The offset (absolute address in the Linear mode) of the next RBD on the list. It is meaningless if EL e 1. BUFFER ADDRESS Ð The starting address of the memory area that contains the received data. In the 82586 mode, this is a 24-bit address (with pins A24 – A31 e 0). In the 32-bit Segmented and Linear modes this is a 32-bit address. EL Ð Indicates that the buffer associated with this RBD is last in the FBL. P Ð This bit indicates that the 82596 has already prefetched the RBDs and any change in the RBD data will be ignored. This bit is valid only in the new 82596 memory modes, and if this feature has been enabled during configure command. The 82596 Prefetches the RBDs in locked cycles; after prefetching the RBD the 82596 performs a write cycle where the P bit is set to one and the rest of the data remains unchanged. The CPU is responsible for resetting it in all RBDs. The 82596 will not check this bit before setting it. Ð This 14-bit quantity indicates the size, in bytes, of the associated buffer. This quantity must be an even number. SIZE 59 82596DX/SX PGA PACKAGE THERMAL SPECIFICATION ELECTRICAL AND TIMING CHARACTERISTICS Parameter Thermal Resistance iJC 3§ C/W ABSOLUTE MAXIMUM RATINGS iJA 24§ C/W Storage Temperature ÀÀÀÀÀÀÀÀÀÀ b 65§ C to a 150§ C Case Temperature under Bias ÀÀÀ b 65§ C to a 110§ C Supply Voltage with Respect to VSS ÀÀÀÀÀÀÀÀÀÀÀ b 0.5V to a 6.5V Voltage on Other Pins ÀÀÀÀÀÀÀ b 0.5V to VCC a 0.5V D.C. CHARACTERISTICS TC e 0§ C to a 85§ C, VCC e 5V g 10% CLK2 and LE/BE have MOS levels (see VMIL, VMIH). All other signals have TTL levels (see VIL, VIH, VOL, VOH). Min Max Units VIL Symbol Input Low Voltage (TTL) Parameter b 0.3 a 0.8 V VIH Input High Voltage (TTL) 2.0 VCC a 0.3 V VMIL Input Low Voltage (MOS) b 0.3 a 0.8 V VMIH Input High Voltage (MOS) 3.7 VCC a 0.3 V VOL Output Low Voltage (TTL) 0.45 V 0.6 V VCC a 0.5 V Notes IOL e 4.0 mA VCIL RxC, TxC Input Low Voltage b 0.5 VCIH RxC, TxC Input High Voltage 3.3 VOH Output High Voltage (TTL) 2.4 ILI Input Leakage Current g 15 mA 0 s VIN s VCC ILO Output Leakage Current g 15 mA 0.45 k VOUT k VCC CIN Capacitance of Input Buffer 10 pF FC e 1 MHz COUT Capacitance of Input/Output Buffer 12 pF FC e 1 MHz CCLK CLK Capacitance 20 pF FC e 1 MHz ICC Power Supply 150 mA At 20 MHz for the 82596SX ICC Typical e 90 mA ICC Power Supply 200 mA At 25 MHz ICC Typical e 100 mA ICC Power Supply 300 mA At 33 MHz ICC Typical e 150 mA 60 V IOH e 0.9mA – 1 mA 82596DX/SX A.C. CHARACTERISTICS 82596DX C-STEP INPUT/OUTPUT SYSTEM TIMINGS TC e 0§ C to a 85§ , VCC e 5V g 10% These timings assume the CL on all outputs is 50 pF unless otherwise specified. CL can be 20 pF to 120 pF, however, timings must be derated. All timing requirements are given in nanoseconds. Symbol 25 MHz Parameter Operating Frequency Notes Min Max 12.5 MHz 25 MHz 40 CLK2/2 T1 CLK2 Period 20 T2 CLK2 High 4 T3 CLK2 Low 5 T4 CLK2 Rise Time Ð 7 0.8V to 3.7V T5 CLK2 Fall Time Ð 7 3.7V to 0.8V T13 CA and BREQ Setup Time 7 1, 2, 3 T14 BREQ Hold Time 3 1, 2, 3 T14a CA Hold Time 5 1, 2, 3 T26 CA and BREQ, PORT Pulse Width T25 INT Valid Delay 1 26 T6 BEx Valid Delay 3 17 T6b LOCK Valid Delay 3 21 T6c A2–A31 Valid Delay 3 18 T7 BEx, LOCK, and A2–A31 Float Delay 4 30 T8 W/R and ADS Valid Delay 3 21 T9 W/R and ADS Float Delay 4 30 T10 D0–D31 Write Data Valid Delay 3 19 T11 D0–D31 Write Data Float Delay 4 22 T27 D0–D31 CPU PORT Access Setup Time 7 T28 D0–D31 CPU PORT Access Hold Time 5 2 T29 PORT Setup Time 7 2 T30 PORT Hold Time 3 2 T17 RDY Setup Time 9 2 T18 RDY Hold Time 3 2 T19 D0–D31 READ Setup Time 7 2 T20 D0–D31 READ Hold Time 5 T12 HOLD Valid Delay 3 T21 HLDA Setup Time 10 1, 2 T22a HLDA Hold Time 3 1, 2 T23 RESET Setup Time 10 2 T24 RESET Hold Time 3 2 3.7V 0.8V 4 T1 3 2 2 22 NOTE: Timings shown are for the 82596CA C-Stepping. For information regarding timings for the 82596CA A1 or B-Step, contact your local Intel representative. 61 82596DX/SX A.C. CHARACTERISTICS (Continued) 82596DX C-STEP INPUT/OUTPUT SYSTEM TIMINGS TC e 0§ C to a 85§ C, VCC e 5V g 5% These timings assume the CL on all outputs is 50 pF unless otherwise specified. CL can be 20 pF to 120 pF, however, timings must be derated. All timing requirements are given in nanoseconds. Symbol 33 MHz Parameter Operating Frequency Notes Min Max 12.5 MHz 33 MHz T1 CLK2 Period 15 40 CLK2/2 T2 CLK2 High 4.5 T3 CLK2 Low 4.5 T4 CLK2 Rise Time Ð 4 3.7V to 0.8V T5 CLK2 Fall Time Ð 4 0.8V to 3.7V T13 CA and BREQ Setup Time 7 1, 2, 3 T14 BREQ Hold Time 3 1, 2, 3 T14a CA Hold Time 5 1, 2, 3 T26 CA and BREQ, PORT Pulse Width T25 INT Valid Delay 1 20 T6 BEx Valid Delay 3 17 T6b LOCK Valid Delay 3 16 T6c A2–A31 Valid Delay 3 18 T7 BEx, LOCK, and A2–A31 Float Delay 4 20 T8 W/R and ADS Valid Delay 3 16 3.7V 0.8V 4 T1 3 T9 W/R and ADS Float Delay 4 20 T10 D0–D31 Write Data Valid Delay 3 19 T11 D0–D31 Write Data Float Delay 4 17 T27 D0–D31 CPU PORT Access Setup Time 5 T28 D0–D31 CPU PORT Access Hold Time 3 2 T29 PORT Setup Time 7 2 T30 PORT Hold Time 3 2 T17 RDY Setup Time 8 2 T18 RDY Hold Time T19 D0–D31 READ Setup Time T20 D0–D31 READ Hold Time 4 T12 HOLD Valid Delay 3 T21 HLDA Setup Time 8 1, 2 T22a HLDA Hold Time 3 1, 2 T23 RESET Setup Time 9 2 T24 RESET Hold Time 3 2 2 3 2 5.5 2 2 19 NOTE: Timings shown are for the 82596CA C-Stepping. For information regarding timings for the 82596CA A1 or B-Step, contact your local Intel representative. 62 82596DX/SX A.C. CHARACTERISTICS (Continued) 82596SX C-STEP INPUT/OUTPUT SYSTEM TIMINGS TC e 0§ C to a 85§ C, VCC e 5V g 10% These timings assume the CL on all outputs is 50 pF unless otherwise specified. CL can be 20 pF to 120 pF, however, timings must be derated. All timing requirements are given in nanoseconds. Symbol 20 MHz Parameter Operating Frequency Notes Min Max 12.5 MHz 20 MHz T1 CLK2 Period 25 40 CLK2/2 T2 CLK2 High 8 T3 CLK2 Low 8 T4 CLK2 Rise Time Ð 8 0.8V to 3.7V 8 3.7V to 0.8V at 2.0V at 2.0V T5 CLK2 Fall Time Ð T13 CA and BREQ Setup Time 10 1, 2, 3 T14 BREQ Hold Time 7 1, 2, 3 T14a CA Hold Time 8 1, 2, 3 T26 CA and BREQ, PORT Pulse Width T25 INT Valid Delay 1 35 T6 BHE, BLE, LOCK, BON, and A1 – A31 Valid Delay 3 30 T7 BHE, BLE, LOCK, BON, and A1 – A31 Float Delay 4 30 T8 W/R and ADS Valid Delay 3 26 T9 W/R and ADS Float Delay 4 30 T10 D0–D15 Write Data Valid Delay 3 38 T11 D0–D15 Write Data Float Delay 4 27 T27 D0–D15 CPU PORT Access Setup Time 9 T28 D0–D15 CPU PORT Access Hold Time 6 2 T29 PORT Setup Time 10 2 T30 PORT Hold Time 7 2 T17 RDY Setup Time 12 2 T18 RDY Hold Time 4 2 T19 D0–D15 READ Setup Time 9 2 T20 D0–D15 READ Hold Time 5 T12 HOLD Valid Delay 3 T21 HLDA Setup Time 15 T22a HLDA Hold Time 7 1, 2 T23 RESET Setup Time 12 1, 2 T24 RESET Hold Time 4 1, 2 4 T1 3 2 2 28 1, 2 NOTE: Timings shown are for the 82596CA C-Stepping. For information regarding timings for the 82596CA A1 or B-Step, contact your local Intel representative. 63 82596DX/SX A.C. CHARACTERISTICS (Continued) 82596SX C-STEP INPUT/OUTPUT SYSTEM TIMINGS TC e 0§ C to a 85§ C, VCC e 5V g 10% These timings assume the CL on all outputs is 50 pF unless otherwise specified. CL can be 20 pF to 120 pF, however, timings must be derated. All timing requirements are given in nanoseconds. Symbol 16 MHz Parameter Operating Frequency Notes Min Max 12.5 MHz 16 MHz T1 CLK2 Period 31 40 T2 CLK2 High 9 2.0V T3 CLK2 Low 9 2.0V T4 CLK2 Rise Time Ð 8 0.8V to 3.7V T5 CLK2 Fall Time Ð 8 3.7V to 0.8V T13 CA and BREQ Setup Time 11 1, 2, 3 T14 CA and BREQ Hold Time 8 1, 2, 3 T26 CA and BREQ, PORT Pulse Width T25 INT Valid Delay 4 T1 1 CLK2/2 3 40 T6 BHE, BLE, BON, and A1–A31 Valid Delay 3 36 T6b LOCKÝ Valid Delay 1 33 T7 BHE, BLE, LOCK, BON, and A1– A31 Float Delay 4 40 T8 W/R and ADS Valid Delay 1 33 T9 W/R and ADS Float Delay 4 35 T10 D0–D15 Write Data Valid Delay 3 40 T11 D0–D15 Write Data Float Delay 4 35 T27 D0–D15 CPU PORT Access Setup Time 9 2 T28 D0–D15 CPU PORT Access Hold Time 6 2 T29 PORT Setup Time 11 2 T30 PORT Hold Time 8 2 T17 RDY Setup Time 19 2 T18 RDY Hold Time 6 2 T19 D0–D15 READ Setup Time 9 2 T20 D0–D15 READ Hold Time 6 2 T12 HOLD Valid Delay 2 64 33 82596DX/SX A.C. CHARACTERISTICS (Continued) 82596SX C-STEP INPUT/OUTPUT SYSTEM TIMINGS TC e 0§ C to a 85§ C, VCC e 5V g 10% (Continued) These timings assume the CL on all outputs is 50 pF unless otherwise specified. CL can be 20 pF to 120 pF, however, timings must be derated. All timing requirements are given in nanoseconds. Symbol 16 MHz Parameter Min T21 HLDA Setup Time 15 Notes Max 1, 2 T22a HLDA Hold Time 7 1, 2 T23 RESET Setup Time 13 1, 2 T24 RESET Hold Time 4 1, 2 NOTES: Timings shown are for the 82596CA C-Stepping. For information regarding timings for the 82596CA A1 or B-Step, contact your local Intel representative. 1. RESET, HLDA, and CA are internally synchronized. This timing is to guarantee recognition at next clock for RESET, HLDA, and CA. 2. All set-up, hold, and delay timings are at the maximum frequency specification Fmax, and must be derated according to the following equation for operation at lower frequencies: Tderated e (Fmax/Fopr) c T where: Tderated e Specifies the value to derate the specification. Fmax e Maximum operating frequency. Fopr e Actual operating frequency. T e Specification at maximum frequency. This calculation only provides a rough estimate for derating the frequency. For more detailed information contact your Intel sales office for the data sheet supplement. 3. CA is internally synchronized; if the setup and hold times are met then CA needs to be only 2 T1. BREQ and PORT are not internally synchronized. BREQ must meet setup and hold times and need only be 2 T1 wide. 65 82596DX/SX TRANSMIT/RECEIVE CLOCK PARAMETERS Symbol 20 MHz Parameter Min Notes Max T36 TxC Cycle 50 1, 3 T38 TxC Rise Time 5 1 T39 TxC Fall Time 5 1 T40 TxC High Time 19 1, 3 T41 TxC Low Time 18 1, 3 T42 TxD Rise Time 10 4 T43 TxD Fall Time 10 4 T44 TxD Transition T45 TxC Low to TxD Valid 25 4, 6 T46 TxC Low to TxD Transition 25 2, 4 T47 TxC High to TxD Transition 25 2, 4 T48 TxC Low to TxD High (At End of Transition) 25 4 5 20 2, 4 RTS AND CTS PARAMETERS T49 TxC Low to RTS Low, Time to Activate RTS 25 T50 CTS Low to TxC Low, CTS Setup Time 20 T51 TxC Low to CTS Invalid, CTS Hold Time T52 TxC Low to RTS High 10 7 25 5 RECEIVE CLOCK PARAMETERS T53 RxC Cycle 50 1, 3 T54 RxC Rise Time 5 1 T55 RxC Fall Time 5 1 T56 RxC High Time 19 1 T57 RxC Low Time 18 1 RECEIVED DATA PARAMETERS 66 T58 RxD Setup Time 20 6 T59 RxD Hold Time 10 6 82596DX/SX TRANSMIT/RECEIVE CLOCK PARAMETERS (Continued) Symbol 20 MHz Parameter Min Notes Max RECEIVED DATA PARAMETERS (Continued) T60 RxD Rise Time 10 T61 RxD Fall Time 10 CRS AND CDT PARAMETERS T62 CDT Low to TxC HIGH External Collision Detect Setup Time 20 T63 TxC High to CDT Inactive, CDT Hold Time 10 T64 CDT Low to Jam Start T65 CRS Low to TxC High, Carrier Sense Setup Time 20 T66 TxC High to CRS Inactive, CRS Hold Time 10 T67 CRS High to Jamming Start, (Internal Collision Detect) 12 T68 Jamming Period 11 T69 CRS High to RxC High, CRS Inactive Setup Time 30 T70 RxC High to CRS High, CRS Inactive Hold Time 10 10 INTERFRAME SPACING PARAMETERS T71 Interframe Delay 9 EXTERNAL LOOPBACK-PIN PARAMETERS T72 TxC Low to LPBK Low T36 4 T73 TxC Low to LPBK High T36 4 NOTES: 1. Special MOS levels, VCIL e 0.9V and VCIH e 3.0V. 2. Manchester only. 3. Manchester. Needs 50% duty cycle. 4. 1 TTL load a 50 pF. 5. 1 TTL load a 100 pF. 6. NRZ only. 7. Abnormal end of transmissionÐCTS expires before RTS. 8. Normal end to transmission. 9. Programmable value: T71 e NIFS # T36 where: NIFS e the IFS configuration value (if NIFS is less than 12 then NIFS is forced to 12). 10. Programmable value: T64 e (NCDF # T36) a x # T36 (If the collision occurs after the preamble) where: NCDF e the collision detect filter configuration value, and x e 12, 13, 14, or 15 11. T68 e 32 # T36 12. Programmable value: T67 e (NCSF # T36) a x # T36 where: NCSF e the Carrier Sense Filter configuration value, and x e 12, 13, 14, or 15 13. To guarantee recognition on the next clock. 67 82596DX/SX 82596DX/SX BUS OPERATION The following figures show thae basic bus cycles for the 82596DX and 82596SX. For more details refer to the 32-Bit LAN Components Manual. 290219 – 42 Figure 44. Basic 82596DX Bus Cycles 290219 – 43 Figure 45. Basic 82596SX Bus Cycles 68 82596DX/SX SYSTEM INTERFACE A.C. TIMING CHARACTERISTICS The measurements should be done at: # TC e 0§ C–85§ C, VCC e 5V g 10%, C e 50 pF unless otherwise specified. # A.C. testing inputs are driven at 2.4V for a logic ‘‘1’’ and 0.45V for a logic ‘‘0’’. # Timing measurements are made at 1.5V for both logic ‘‘1’’ and ‘‘0’’. # Rise and Fall time of inputs and outputs signals are measured between 0.8V and 2.0V respectively unless otherwise specified. # All timings are relative to CLK2 crossing the 1.5V level. # All A.C. parameters are valid only after 100 ms from power up. 290219 – 18 290219 – 19 Figure 46. CLK2 Timings Two types of timing specifications are presented below: 1. Input TimingÐminimum setup and hold times. 2. Output TimingsÐoutput delays and float times from CLK2 rising edge. Figure 45 defines how the measurements should be done: 290219 – 20 LEGEND: Ts e Input Setup Time Th e Input Hold Time Tn e Minimum output delay or Mininum float delay Tx e Maximum output delay or Maximum float delay Figure 47. Drive Levels and Measurements Points for A.C. Specifications 69 82596DX/SX INPUT WAVEFORMS Ts e T13, T15, T17, T19, T21, T23, T27, T29, T31 Th e T14, T16, T18, T20, T22, T22a, T24, T28, T30, T32 290219 – 21 Figure 48. CA and BREQ Input Timing 290219 – 22 Figure 49. INT/INT Output Timing 290219 – 23 Figure 50. HOLD/HLDA Timings 290219 – 24 Figure 51. Input Setup and Hold Time 70 82596DX/SX 290219 – 25 Figure 52. Output Valid Delay Timing 290219 – 26 Figure 53. Output Float Delay Timing 290219 – 27 Figure 54. PORT Setup and Hold Time 71 82596DX/SX 290219 – 28 Figure 55. RESET Input Timing SERIAL A.C. TIMING CHARACTERISTICS 290219 – 29 Figure 56. Serial Input Clock Timing 290219 – 30 Figure 57. Transmit Data Waveforms 72 82596DX/SX 290219 – 31 Figure 58. Transmit Data Waveforms 290219 – 33 290219 – 32 Figure 59. Receive Data Waveforms (NRZ) Figure 60. Receive Data Waveforms (CRS) 73 82596DX/SX OUTLINE DIAGRAMS 132 LEAD CERAMIC PIN GRID ARRAY PACKAGE INTEL TYPE A 290219 – 36 Family: Ceramic Pin Grid Array Package Millimeters Symbol Min Max A 3.56 4.57 A1 0.76 1.27 A2 2.67 3.43 Notes Min Max 0.140 0.180 Solid Lid 0.030 0.050 Solid Lid Solid Lid 0.105 0.135 Solid Lid A3 1.14 1.40 0.045 0.055 B 0.43 0.51 0.017 0.020 D 36.45 37.21 1.435 1.465 D1 32.89 33.15 1.295 1.305 e1 2.29 2.79 0.090 0.110 L 2.54 3.30 0.100 0.130 1.27 2.54 0.050 0.100 N S1 ISSUE 74 Inches 132 IWS 10/12/88 132 Notes 82596DX/SX Intel Case Outline Drawings Plastic Quad Flat Pack (PQFP) 0.025 Inch (0.635mm) Pitch Symbol Description Min Max Min Max Max Max Max 0.160 0.170 0.160 0.170 0.160 0.170 0.160 0.170 0.160 0.170 0.160 0.170 Standoff 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 D, E Terminal Dimension 0.675 0.685 0.775 0.785 0.875 0.885 1.075 1.085 1.275 1.285 1.475 1.485 D1, E1 Package Body 0.547 0.553 0.647 0.653 0.747 0.753 0.947 0.953 1.147 1.153 1.347 1.353 D2, E2 Bumper Distance 0.697 0.703 0.797 0.803 0.897 0.903 1.097 1.103 1.297 1.303 1.497 1.503 D3, E3 Lead Dimension D4, E4 Foot Radius Location 0.623 0.637 0.723 0.737 0.823 0.837 1.023 1.037 1.223 1.237 1.423 1.437 L1 Foot Length Issue IWS Preliminary 12/12/88 Description 0.800 REF 164 Min Package Height 0.600 REF 132 Min A1 0.500 REF 100 Min A 0.400 REF 84 Min Leadcount Symbol 68 Max N 1.000 REF 196 1.200 REF 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 0.020 0.030 Min INCH Max 68 Min Max 84 Min Max 100 Min Max 132 Min Max 164 Min Max N Leadcount A Package Height 196 A1 Standoff 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 D, E Terminal Dimension 17.15 17.40 19.69 19.94 22.23 22.48 27.31 27.56 32.39 32.64 37.47 37.72 D1, E1 Package Body 13.89 14.05 16.43 16.59 18.97 19.13 24.05 24.21 29.13 29.29 34.21 34.37 D2, E2 Bumper Distance 17.70 17.85 20.24 20.39 22.78 22.93 27.86 28.01 32.94 33.09 38.02 38.18 D3, E3 Lead Dimension D4, E4 Foot Radius Location 15.82 16.17 18.36 18.71 21.25 21.25 25.89 26.33 31.06 31.41 36.14 36.49 4.06 4.32 4.06 4.32 4.06 4.32 4.06 4.32 4.06 4.32 4.06 4.32 10.16 REF L1 Foot Length Issue IWS Preliminary 12/12/88 12.70 REF 15.24 REF 20.32 REF 25.40 REF 30.48 REF 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 0.51 0.76 mm 75 82596DX/SX mm (inch) 290219 – 37 Figure 61. Principal Dimensions and Datums mm (inch) 290219 – 38 Figure 62. Molded Details mm (inch) 290219 – 39 Figure 63. Terminal Details 76 82596DX/SX 290219 – 40 mm (inch) Detail J Detail L Figure 64. Typical Lead 290219 – 41 mm (inch) Figure 65. Detail M REVISION SUMMARY The following represents the key differences between version -005 and version -006 of the 82596CA Data Sheet. 1. A description of the 82596DX/SX C-stepping enhancements was added and the 82596DX/SX B-step information was removed. 2. Recommendation to use only one type of buffer (either Simplified or Flexible) in any given linked list. 3. Added detailed description regarding operation of RCVCDT counter. 4. Added New Enhanced Big Endian Mode section. The New Enhanced Big Endian Mode applies only to the 82596 C-stepping. 5. Added programming recommendations regarding RU and CU Start commands. These warn against Starting the CU while it is Active and Starting the RU while it is Ready. 6. Emphasized that the TDR command is a static command and should not be used in an active network. 7. Improved 82596DX/SX C-step timings were added for all speeds. 77