Intel(R) 82577 GbE PHY Datasheet Product Features General -- 10/100/1000 BASE-T IEEE 802.3 specification conformance -- Integrated MDI interface termination resistors to reduce BOM costs -- Supports up to 4 KB jumbo frames (full duplex)1 -- Supports carrier extension (half duplex) -- Energy detect low power modes -- Loopback modes for diagnostics -- Fully integrated digital adaptive equalizers, echo cancellers, and crosstalk cancellers -- Advanced digital baseline wander correction -- Automatic MDI/MDIX crossover at all speeds of operation -- Automatic polarity correction -- IEEE 802.3u auto-negotiation conformance -- MDC/MDIO management interface -- Flexible filters in PHY to reduce MAC power -- Shared NVM access through the MAC -- MACSec hardware ready (802.1AE), Intel(R) VPro, Intel(R) Viiv and Virtualization support with appropriate Intel(R) chipset(s) components -- Smart speed operation for automatic speed reduction on faulty cable plants -- PMA loopback capable (no echo cancel) Advanced cable diagnostics -- TDR -- Channel frequency response Extended configuration load sequence Power -- Reduced power consumption during normal operation and power down modes -- Integrated Intel(R) Auto Connect Battery Saver -- Single pin LAN Disable for easier BIOS implementation Dual interconnect between the Media Access Controller (MAC)2 and Physical Layer (PHY): -- PCIe-based interface for active state operation (S0 state) -- SMBus for host and management traffic (Sx low power state) Technology -- 48-pin package, 6 x 6 mm with a 0.4 mm lead pitch and an Exposed Pad* for ground -- Three configurable LED outputs -- Flexible power configuration: use either the Intel(R) 5 Series Express Chipset 1.05 Vdc shared voltage rail or the fully integrated 82577 1.0 Vdc linear regulation 1. Refer to the latest Intel(R) 82577 Specification Update for more details. 2. The MAC is incorporated into the Intel(R) 5 Series Express Chipset. February 2012 Revision 2.5 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-5484725, or go to: http://www.intel.com/design/literature.htm. Intel and Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright (c) 2012, Intel Corporation. All Rights Reserved. ii Datasheet--82577 GbE PHY Contents 1.0 Introduction ..............................................................................................................1 1.1 Scope ................................................................................................................1 1.2 Overview............................................................................................................1 1.3 Main Flows .........................................................................................................2 1.4 References .........................................................................................................3 1.5 Product Codes.....................................................................................................3 1.6 Product Matrix ....................................................................................................4 2.0 Interconnects ............................................................................................................5 2.1 Introduction .......................................................................................................5 2.2 PCIe-Based ........................................................................................................5 2.2.1 PCIe Interface Signals...............................................................................5 2.2.2 PCIe Operation and Channel Behavior .........................................................6 2.3 SMBus ...............................................................................................................6 2.3.1 Overview.................................................................................................6 2.4 Transitions between SMBus and PCIe interfaces.......................................................8 2.4.1 Switching from SMBus to PCIe ...................................................................8 2.4.2 Switching from PCIe to SMBus ...................................................................8 2.5 Intel(R) 5 Series Express Chipset/82577 - SMBus/PCIe Interconnects..........................9 3.0 Pin Interface ........................................................................................................... 11 3.1 Pin Assignment ................................................................................................. 11 3.1.1 Signal Type Definitions............................................................................ 11 3.1.2 PCIe Interface Pins (8) ............................................................................ 12 3.1.3 SMBus Interface Pins (2) ......................................................................... 12 3.1.4 Miscellaneous Pins (3)............................................................................. 12 3.1.5 PHY Pins (14) ........................................................................................ 13 3.1.6 Testability Pins (5) ................................................................................. 14 3.1.7 Power Pins (13)...................................................................................... 14 3.1.8 LVR Power and Control Pins (3) ................................................................ 14 4.0 Package................................................................................................................... 15 4.1 Package Type and Mechanical ............................................................................. 15 4.2 Package Electrical and Thermal Characteristics ...................................................... 16 4.3 Power and Ground Requirements......................................................................... 17 4.4 Pinouts (Top View, Pins Down) ............................................................................ 18 4.5 Ball Mapping ..................................................................................................... 19 5.0 Initialization............................................................................................................ 21 5.1 Power Up ......................................................................................................... 21 5.2 Reset Operation ................................................................................................ 23 5.3 Timing Parameters ............................................................................................ 24 5.3.1 Timing Requirements .............................................................................. 24 5.3.2 Timing Guarantees ................................................................................. 24 6.0 Power Management and Delivery............................................................................. 25 6.1 Power Targets................................................................................................... 25 6.2 Power Delivery.................................................................................................. 27 6.2.1 1.0 Vdc Supply....................................................................................... 27 6.3 Power Management ........................................................................................... 27 6.3.1 Global Power States................................................................................ 27 6.4 Power Saving Features ....................................................................................... 29 6.4.1 Intel(R) Auto Connect Battery Saver (ACBS) ................................................ 29 6.4.2 Automatic Link Downshift ........................................................................ 29 iii 82577 GbE PHY--Datasheet 7.0 Device Functionality................................................................................................ 7.1 Tx Flow ........................................................................................................... 7.2 Rx Flow ........................................................................................................... 7.3 Flow Control..................................................................................................... 7.3.1 MAC Control Frames and Reception of Flow Control Packets ......................... 7.3.2 Transmitting PAUSE Frames .................................................................... 7.4 Wake Up ......................................................................................................... 7.4.1 Host Wake Up ....................................................................................... 7.4.2 Accessing The 82577's Wake Up Register Using MDIC ................................. 7.5 PHY Loopback .................................................................................................. 33 33 33 33 34 35 35 36 44 45 8.0 Programmer's Visible State..................................................................................... 8.1 Terminology..................................................................................................... 8.2 MDIO Access .................................................................................................... 8.3 Addressing....................................................................................................... 8.4 Address Map .................................................................................................... 8.5 PHY Registers (Page 0) ...................................................................................... 8.5.1 Loopback Mode Settings ......................................................................... 8.6 Port Control Registers (Page 769) ....................................................................... 8.7 Statistics Registers............................................................................................ 8.8 PCIe Registers.................................................................................................. 8.9 General Registers ............................................................................................. 8.9.1 Interrupts ............................................................................................. 8.10 Wake Up Registers............................................................................................ 8.10.1 Accessing Wake Up Registers Using MDIC ................................................. 8.10.2 Host Wake Up Control Status Register Description...................................... 47 47 48 48 49 51 60 74 75 77 79 81 82 82 83 9.0 Non-Volatile Memory (NVM) ................................................................................... 93 9.1 Introduction ..................................................................................................... 93 9.2 NVM Programming Procedure Overview ............................................................... 93 9.3 LAN NVM Format and Contents ........................................................................... 95 9.3.1 Hardware Accessed Words ...................................................................... 96 9.3.2 Software Accessed Words ......................................................................106 9.3.3 Basic Configuration Software Words ........................................................111 9.4 Intel(R) 5 Series Express Chipset/82577 NVM Contents...........................................113 10.0 Intel(R) 5 Series Express Chipset MAC Programming Interface.................................115 10.1 Register Byte Ordering .....................................................................................115 10.2 Register Conventions........................................................................................116 10.2.1 PCI Configuration and Status Registers - CSR Space ..................................117 11.0 Electrical and Timing Specifications .......................................................................169 11.1 Introduction ....................................................................................................169 11.2 Operating Conditions........................................................................................169 11.2.1 Absolute Maximum Ratings ....................................................................169 11.2.2 Recommended Operating Conditions .......................................................170 11.2.3 ESD Specifications ................................................................................170 11.3 Power Delivery ................................................................................................170 11.3.1 Voltage Regulator Power Supply Specifications..........................................170 11.3.2 Power Detection Threshold .....................................................................172 11.4 I/O DC Parameters...........................................................................................172 11.4.1 3.3 Vdc I/O ..........................................................................................172 11.4.2 3.3 Vdc I/O ..........................................................................................173 11.4.3 Input Buffer Only ..................................................................................174 11.4.4 PCIe DC/AC Specifications......................................................................175 iv Datasheet--82577 GbE PHY 11.5 11.6 11.7 Discrete/Integrated Magnetics Specifications....................................................... 179 Mechanical ..................................................................................................... 179 Oscillator/Crystal Specifications ......................................................................... 180 12.0 Schematic and Board Layout Checklists ................................................................. 183 13.0 Reference Schematics............................................................................................ 185 14.0 Models................................................................................................................... 187 v 82577 GbE PHY--Datasheet Revision History Date Revision Description February 2012 2.5 * Revised Table 68 (bit 5 description). January 2011 2.4 * Changed the default value of word 0x13 (bits 15 and 7). * * * * * * * * Updated figure 1. Updated table 2. Updated section 7.4 and 10.3.1.2 (added Intel(R) 5 Series Express Chipset references). Added power sequencing note to section 5.3.2. Updated section 6.4.2.2 (added Windows* 7 reference). Updated sections 7.4.1.3.1.4 through 7.4.1.3.1.7 and 7.4.1.3.2.1 through 7.4.1.3.2.2 (swapped Possible VLAN Tag and Possible Len/LLC/SNAP Header in the tables). Added Port Control register (Page 769, Register 16). Updated section 10.3.1.15 (LED behaviour). Updated power consumption targets in section 6. Updated the NVM format and contents to match current NVM image. Added a PHY functionality section. Updated the recommended operating conditions in section 12. Changed the crystal Cload value from 27 pF to 33 pF. Updated oscillator specification table and added a note for the oscillator schematic. Updated table 6. February 2010 2.3 November 2009 2.2 * * * * * * October 2009 2.1 * June 2009 2.0 * Initial public release. May 2009 1.75 * Major revision (all sections). April 2009 1.2 * * * * * Updated title page (advanced cable diagnostics). Added new Section 2.5 (Intel(R) 5 Series Express Chipset/82577 - SMBus/PCIe Interconnects). Added new Appendix A, B, and C. Updated section 11 (crystal drive level). Update table 2. March 2009 1.1 * * * * Updated title page and product matrix in section 1. Corrected Epad size values (changed 3.80 mm to 4.3 mm). Removed 82574L references. Added notes to section 6.1 (power calculations). 1.0 * * * * * * * * Changed fully integrated linear regulator voltage from 1.1 Vdc to 1.0 Vdc (all sections). Added SMBus specification reference to section 1.5. Updated pad size in section 4.1. Added new power consumption targets in Table 7. Changed internal pin name from LAN_PWR_GOODn to LAN_DISABLE_N (all sections). Updated Section 6.3.1.1 (added power consumption value during power up). Added new Section "Device Functionality". Added new Section "MAC Programming Interface". 0.95 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Section 2.2.2 (Removed last paragraph and Table 2). Section 2.3 (changed SMBCLK to SMB_CLK and SMBDATA to SMB_DATA). Section 2.3.1 (updated paragraph). Section 2.3.1.6 (removed). Removed old sections 2.3.1.6.1, 2.3.1.6.2, and 2.3.1.7). Section 2.3.2.2.1 (updated table). Section 4.1 (added new mechanical drawing). Section 5.3.2 (changed TXTAL parameter to 35 ms). Section 6.1 (removed note 2 from Table 7). Section 6.3.1.1 (updated paragraph). Section 6.3.1.2 (removed all mode 1 references and updated register references). Section 6.3.1.3 (added K1 Idle State information). Section 6.3.1.5 (removed) Section 6.3.2 (changed KX to K0). Section 6.3.3 (updated register references). Section 7.3.1.1 (updated operational range values). Section 7.3.1.2 (updated operational range value). Removed Section 7.3.2 "Power On/Off Sequence". Section 7.3.1.4, Table 127 (updated power detection threshold values). Section 7.4.1 (updated Ipullup values). Section 7.4.2 (updated VOL, VOH, and Ipullup values). Section 7.4.3 (updated Ipullup values). Section 7.4.4.1 (Updated table and added transmitter eye diagram). Section 7.4.4.2 (Updated table and added receiver eye diagram). Removed old Section 7.4.4.3. Section 7.6.3 (updated paragraph). Section 7.7 (updated coupling capacitor values in Table 129. changed XTAL1 input value to 3.6 Vdc). Section 7.6.1 (updated input clock amplitude values). Feb 2009 Sept 2008 vi Datasheet--82577 GbE PHY Date Revision Description July 2008 0.9 * * * * * * Added new section 8.0 "Non-Volatile Memory (NVM)". Added section 6.4 "Power Saving Features". Updated section 6.1 "Power Targets". Updated section 3.1.7 "Power Pins". Updated section 3.1.5.2 "Analog Pins". Removed section 7.3.2 "Power On/Off Sequence". May 2008 0.8 * * * * Updated Updated Updated Updated April 2008 0.7 Mar 2008 0.6 Major revision (all sections). Feb 2008 0.5 Initial release (Intel Confidential). Sections 3.1.7 and 3.1.8 (clarified power, LVR, and control pins). Section 4.1 (added Epad size specifications). Figure 1 (removed ferrite beads). Section 1.2 (added note), 2.2 (added note), 2.3 (added note), and 7.2.2. Added a discrete/integrated magnetics specifications table to Section 7.0. vii 82577 GbE PHY--Introduction 1.0 Introduction 1.1 Scope This document describes the external architecture for the 82577. It's intended to be a reference for software developers of device drivers, board designers, test engineers, or anyone else who might need specific technical or programming information about the 82577. 1.2 Overview The 82577 is a single port Gigabit Ethernet Physical Layer Transceiver (PHY). It connects to the Intel(R) 5 Series Express Chipset integrated Media Access Controller (MAC) through a dedicated interconnect. The 82577 supports operation at 1000/100/ 10 Mb/s data rates. The PHY circuitry provides a standard IEEE 802.3 Ethernet interface for 1000BASE-T, 100BASE-TX, and 10BASE-T applications (802.3, 802.3u, and 802.3ab). The 82577 is packaged in a small footprint QFN package. Package size is 6 x 6 mm with a 0.4 mm lead pitch and a height of 0.85 mm, making it very attractive for small formfactor platforms. The 82577 interfaces with its MAC through two interfaces: PCIe-based and SMBus. The PCIe (main) interface is used for all link speeds when the system is in an active state (S0) while the SMBus is used only when the system is in a low power state (Sx). In SMBus mode, the link speed is reduced to 10 Mb/s (dependent on low power options). The PCIe interface incorporates two aspects: a PCIe SerDes (electrically) and a custom logic protocol. Note: 1 The 82577 PCIe interface is not PCIe compliant. It operates at half of the PCI Express* (PCIe*) Specification v1.1 (2.5 GT/s) speed. In this datasheet the term PCIe-based is interchangeable with PCIe. There is no design layout differences between normal PCIe and the 82577's PCIe-based interface. Introduction--82577 GbE PHY Figure 1. 82577 Block Diagram 1.3 Main Flows The 82577 main interfaces are PCIe and SMBus on the host side and the MDI interface on the link side. Transmit traffic is received from the MAC device through either PCIe or SMBus on the host interconnect and then transmitted on the MDI link. Receive traffic arrives on the MDI link and transferred to the MAC through either the PCIe or SMBus interconnects. The MAC and system software control the 82577 functionality through two mechanisms: * The 82577 configuration registers are mapped into the MDIO space and can be accessed by the MAC through the PCIe or SMBus interconnects. * The MDIO traffic is embedded in specific fields in SMBus packets or carried by special packets over the PCIe encoded interconnect as defined by the custom protocol. Specific flows are described in other sections of this document: * Power delivery options are described in Section 4.3. * Power management is described in Section 6.3. 2 82577 GbE PHY--Introduction 1.4 References * Information Technology - Telecommunication & Information Exchange Between Systems - LAN/MAN - Specific Requirements - Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, IEEE Standard No.: 802.3-2002 * Intel(R) Ethernet Controllers Loopback Modes, Intel Corporation * SMBus specification revision 2.0. * Intel(R) 5 Series Express Chipset Family External Design Specification (Intel(R) 5 Series Express Chipset EDS), Intel Corporation * Intel(R) 5 Series Express Chipset External Datasheet Specification, Intel Corporation * Intel(R) 5 Series Express Chipset SPI Flash Programming Guide - Application Note, Intel Corporation * Intel(R) 82577 Schematic and Layout Checklists, Intel Corporation * Intel(R) 82577 MDI Differential Trace and Power Loss Calculators, Intel Corporation 1.5 Product Codes Table 1 lists the product ordering codes for the 82577 GbE controller. Refer to the Intel(R) 82577 GbE PHY Specification Update for device ordering information. Table 1. Product Ordering Codes Device 3 Market Segment Product Code 82577LM Corporate mobile and workstation WG82577LM 82577LC Consumer mobile WG82577LC Introduction--82577 GbE PHY 1.6 Product Matrix Note: The 82577 does not support server operating systems such as Windows Server* 2008 and Windows Server* 2003. 4 82577 GbE PHY--Interconnects 2.0 Interconnects 2.1 Introduction The 82577 implements two interconnects to the MAC: * PCIe - A high-speed SerDes interface using PCIe electrical signaling at half speed while keeping the custom logical protocol for active state operation mode. * System Management Bus (SMBus) - A very low speed connection for low power state mode for manageability communication only. At this low power state mode the Ethernet link speed is reduced to 10 Mb/s. . Table 2. 82577 Interconnect Modes PHY System SMBus PCIe S0 and PHY Power Down Not used Idle S0 and Idle or Link Disc Not used Idle S0 and active Not used Active Sx Active Power down Sx and DMoff Active Power down The 82577 automatically switches the in-band traffic between PCIe and SMBus based on the system power state. 2.2 PCIe-Based Note: The 82577 PCIe interface is not PCIe compliant. It operates at half of the PCI Express* (PCIe*) Specification v1.1 (2.5 GT/s) speed. In this datasheet the term PCIe-based is interchangeable with PCIe. There is no design layout differences between normal PCIe and the 82577's PCIe-based interface. Standard PCIe validation tools cannot be used to validate this interface. 2.2.1 PCIe Interface Signals The signals used to connect between the MAC and the PHY in this mode are: * Serial differential pair running at 1.25 Gb/s for Rx * Serial differential pair running at 1.25 Gb/s for Tx * 100 MHz differential clock input to the PHY running at 100 MHz * Power and clock good indication to the PHY PE_RST_N pin * Clock control through CLK_REQ_N pin 5 Interconnects--82577 GbE PHY 2.2.2 PCIe Operation and Channel Behavior The 82577 only runs at 1250 Mb/s speed, which is 1/2 of the PCIe Specification v1.1, 2.5 Gb/s PCIe frequency. Each of the PCIe root ports in the Intel(R) 5 Series Express Chipset-integrated MAC have the ability to operate with the 82577. The port configuration is pre-loaded from the NVM. The selected port adjusts the transmitter to run at the 1.25 GHz rate and does not need to be PCIe compliant. Packets transmitted and received over the PCIe interface are full Ethernet packets and not PCIe transaction/link/physical layer packets. After the PCIe power-up sequence completes, each transmitter starts transmitting idle symbols and the receiver acquires synchronization as specified in 802.3z. 2.3 SMBus Note: The 82577 SMBus must only be connected to SMLink0 in the Intel(R) 5 Series Express Chipset. No other device (like an external BMC) can be connected to SMLink0 when the 82577 is connected to the Intel(R) 5 Series Express Chipset SMLink0. 2.3.1 Overview SMBus is used as an interface to pass traffic between the 82577 and the Intel(R) 5 Series Express Chipset when the system is in a low power state (Sx state). The interface is also used to enable the Intel(R) 5 Series Express Chipset to configure the 82577 as well as passing in-band information between them. The SMBus uses two primary signals: SMB_CLK and SMB_DATA to communicate. Both of these signals float high with board-level pull-ups. The SMBus specification has defined various types of message protocols composed of individual bytes. The message protocols supported by the 82577 are described in the relevant sections. For more details about SMBus, see the SMBus specification. 2.3.1.1 SMBus Channel Behavior The SMBus specification defines the maximum frequency of the SMBus as 100 KHz. 2.3.1.2 SMBus Addressing The 82577's address is assigned using SMBus ARP protocol. The default SMBus address is 0xC8. 6 82577 GbE PHY--Interconnects 2.3.1.3 Bus Timeouts The 82577 can detect (as a master or a slave) an SMB_CLK timeout on the main SMBus. If the SMBus clock line is held low for 25 ms, the 82577 aborts the transaction. As a slave, the 82577 detects the timeout and goes into an idle state. In idle, the slave releases the SMB_CLK and SMB_DATA lines. Any data that was received before the timeout might have been processed depending on the transaction. As a master, the 82577 detects a timeout and issues a STOP on the SMBus at the next convenient opportunity and then brings the SMBus back to idle (releases SMB_CLK and SMB_DATA). Any master transaction that the 82577 detects a timeout on is aborted. 2.3.1.4 Bus Hangs Although uncommon, SMBus bus hangs can happen in a system. The reason for the hang is typically an unexpected, asynchronous reset or noise coupled onto the SMBus. Slaves can contribute to SMBus hangs by not implementing the SMBus timeouts as specified in SMBus 2.0 specification. Masters or host masters can contribute to SMBus hangs by not detecting the failures and by not attempting to correct the bus hangs. Because of the potential bus hang scenario, the 82577 has the capability of detecting a hung bus. If SMB_CLK or SMB_DATA are stuck low for more than 35 ms, the 82577 forces the bus to idle (both SMB_CLK and SMB_DATA set) if it is the cause of the bus hang. 2.3.1.5 Packet Error Code (PEC) Support PEC is defined in the SMBus 2.0 specification. It is an extra byte at the end of the SMBus transaction, which is a CRC-8 calculated on all of the preceding bytes (not including ACKs, NACKs, STARTs, or STOPs) in the SMBus transaction. The polynomial for this CRC-8 is: x8 + x2 + x + 1 The PEC calculation is reset when any of the following occurs: * A STOP condition is detected on the host SMBus * An SMBus hang is detected on the host SMBus * The SMB_CLK is detected high for ~50 s 7 Interconnects--82577 GbE PHY 2.3.1.6 SMBus ARP Functionality The 82577 doesn't support ARP protocol. 2.4 Transitions between SMBus and PCIe interfaces 2.4.1 Switching from SMBus to PCIe Communication between the MAC and the 82577 is done through the SMBus each time the system is in a low power state (Sx); PE_RST_N signal is low. The MAC/PHY interface is needed to enable host wake up from the 82577. Possible states for activity over the SMBus: 1. After power on (G3 to S5). 2. On system standby (Sx). While in this state, the SMBus is used to transfer traffic, configuration, control and status between the MAC and the 82577. The switching from the SMBus to PCIe is done when the PE_RST_N signal is high. * Any transmit/receive packet that is not completed when PE_RST_N is asserted is discarded. * Any in-band message that was sent over the SMBus and was not acknowledged is re-transmitted over PCIe. 2.4.2 Switching from PCIe to SMBus The communication between the MAC and the 82577 is done through PCIe each time the system is in active power state (S0); PE_RST_N signal is high. Switching the communication to SMBus is only needed to enable host wake up in low power states and is controlled by the Intel(R) 5 Series Express Chipset. The switching from PCIe to SMBus is done when the PE_RST_N signal is low. * Any transmit/receive packet that is not completed when PE_RST_N goes to 0b is discarded. * Any in-band message that was sent over PCIe and was not acknowledged is retransmitted over SMBus. 8 82577 GbE PHY--Interconnects 2.5 Intel(R) 5 Series Express Chipset/82577 - SMBus/PCIe Interconnects The 82577 can be connected to any x1 PCIe port in Intel(R) 5 Series Express Chipset. The PCIe port that connects to the 82577 is selected by PCHSTRP9, bits [11:8] in the SPI Flash descriptor region. For more information on this setting, please refer to the Intel(R) 5 Series Express Chipset External Datasheet Specification. The Intel(R) 5 Series Express Chipset-to-82577 PCIe port connection in the reference schematic must match the previously mentioned Intel(R) 5 Series Express Chipset SPI strap setting. Choosing another port can result in unexpected system behavior. The SMBus/PCIe interface can be configured in as shown Figure 2. Figure 2. Intel(R) 5 Series Express Chipset/82577 Interconnects 3&,H ,QWHO6HULHV Q) 3(7S>@ 3(7Q>@ 3(5S>@ 3(5Q>@ Q) Q) Q) ,QWHO3+< 3(5S 3(5Q 3(7S 3(7Q 9$ N &/.287B3&,(>@3 &/.287B3&,(>@1 3&,(&/.54>@ 3(B&/.3 3(B&/.1 &/.B5(4B1 RKP 90B/$1 N /$1B3+ S5 LCD Configuration Image Value Table notes: * SW = Software: This is access from the network configuration tools and drivers. * PXE = PXE Boot Agent: This is access from the PXE option ROM code in BIOS. * HW-Shared = Hardware - Shared: This is read when the shared configuration is reset. * HW-PCI = Hardware - PCI: This is read when the PCI Configuration is reset. 9.3.1 Hardware Accessed Words This section describes the NVM words that are loaded by the MAC hardware. 9.3.1.1 Ethernet Address (Words 0x00-0x02) The Ethernet Individual Address (IA) is a 6-byte field that must be unique for each Network Interface Card (NIC) or LAN on Motherboard (LOM), and thus unique for each copy of the NVM image. The first three bytes are vendor specific - for example, the IA is equal to [00 AA 00] or [00 A0 C9] for Intel products. The value from this field is loaded into the Receive Address Register 0 (RAL0/RAH0). For the purpose of this section, the IA byte numbering convention is indicated as follows; byte 1, bit 0 is first on the wire and byte 6, bit 7 is last. Note that byte 1, bit 0 is the unicast/multicast address indication while zero means unicast address. Byte 1, bit 1 identifies the global/local indication while zero means a global address. IA Byte/Value Vendor 1 2 3 4 5 6 Intel Original 00 AA 00 variable variable variable Intel New 00 A0 C9 variable variable variable 96 82577 GbE PHY--Non-Volatile Memory (NVM) 9.3.1.2 PCI Init Control Word (Word 0x0A) This word contains initialization values that: * Sets defaults for some internal registers * Enables/disables specific features * Determines which PCI configuration space values are loaded from the NVM Bit Default Description 15:13 Reserved 000b This field is reserved and must be set to 000b. 12 Reserved 1b Reserved, must be set to 1b. 11:8 Reserved 0000b These bits are reserved and must be set to 0000b. 1b Auxiliary Power Indication If set and if PM Ena is set, D3cold wake-up is advertised in the Intel(R) 5 Series Express Chipset of the PCI function. 0b = No AUX power. 1b = AUX power. 1b Power Management Enable (PME-WoL) Enables asserting PME in the PCI function at any power state. This bit affects the advertised PME_Support indication in the Intel(R) 5 Series Express Chipset of the PCI function. 0b = Disable. 1b = Enable. 7 6 9.3.1.3 Name AUX PWR PM Enable 5:3 Reserved 0x0 These bits are reserved and must be set to 0x0. 2 Reserved 0b Reserved, set to 0b. 1 Load Subsystem IDs 1b Load Subsystem IDs from NVM When set to 1b, indicates that the device is to load its PCI Subsystem ID and Subsystem Vendor ID from the NVM (words 0Bh and 0Ch). 0 Load Device IDs 1b Load Device ID from NVM When set to 1b, indicates that the device is to load its PCI Device ID from the NVM (word 0Dh). Subsystem ID (Word 0x0B) If the Load Subsystem ID in word 0x0A is set, this word is read in to initialize the Subsystem ID. Default value is 0x0000. 9.3.1.4 Subsystem Vendor ID (Word 0x0C) If the Load Subsystem ID in word 0x0A is set, this word is read in to initialize the Subsystem Vendor ID. Default value is 0x8086. 9.3.1.5 Device ID (Word 0x0D) If the Load Device ID in word 0x0A is set, this word is read in to initialize the Device ID of the 82577 PHY. Default value is 0x10EA. 9.3.1.6 97 Reserved Words 0x0E and 0x0F Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.1.7 LAN Power Consumption (Word 0x10) This word is meaningful only if the power management is enabled. Bits The value in this field is reflected in the PCI Power Management Data register for D0 power consumption and dissipation (Data_Select = 0 or 4). Power is defined in 100 mW units. The power also includes the external logic required for the LAN function. 0x7 7:5 Reserved 000b Reserved, set to 000b. 0x2 The value in this field is reflected in the PCI Power Management Data register for D3 power consumption and dissipation (Data_Select = 3 or 7). Power is defined in 100 mW units. The power also includes the external logic required for the LAN function. The most significant bits in the Data register that reflects the power values are padded with zeros. LAN D3 Power Reserved (Word 0x11) 15:0 Name Reserved Default 0x0000 Description Reserved, set to 0x0000. Reserved (Word 0x12) Bits 15:0 9.3.1.10 Description LAN D0 Power Bits 9.3.1.9 Default 15:8 4:0 9.3.1.8 Name Name Reserved Default 0x0000 Description Reserved, set to 0x0000. Shared Init Control Word (Word 0x13) This word controls general initialization values. Bits Name Default Description 15:14 Sign 00b Valid Indication A 2-bit valid indication field indicates to the device that there is a valid NVM present. If the valid field does not equal 10b the MAC does not read the rest of the NVM data and default values are used for the device configuration. 13 Reserved 1b Reserved, set to 1b. 12:10 Reserved 001b Reserved, set to 001b. 9 PHY PD Ena 0b Enable PHY Power Down When set, enables PHY power down at DMoff/D3 or Dr and no WoL. This bit is loaded to the PHY Power Down Enable bit in the Extended Device Control (CTRL_EXT) register. 1b = Enable PHY power down. 0b = PHY always powered up. 8 Reserved 1b Reserved, should be set to 1b. 98 82577 GbE PHY--Non-Volatile Memory (NVM) Bits 99 Name Default Description PHY Device Type Indicates that the PHY is connected to the MAC and resulted mode of operation of the MAC/PHY link buses. 00b = 82577. 01b = Reserved. 10b = Reserved. 11b = Reserved. 7:6 PHYT 10b 5 Reserved 01 Reserved, should be set to 1b. 4 FRCSPD 0b Default setting for the Force Speed bit in the Device Control register (CTRL[11]). 3 FD 0b Default setting for the Full Duplex bit in the Device Control register (CTRL[0]). The hardware default value is 1b. 2 Reserved 1b Reserved, set to 0b. 1 CLK_CNT_1_4 0b When set, automatically reduces DMA frequency. Mapped to the Device Status register (STATUS[31]). 0 Dynamic Clock gating 1b When set, enables dynamic clock gating of the DMA and MAC units. This bit is loaded to the DynCK bit in the CTRL_EXT register. Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.1.11 Extended Configuration Word 1 (Word 0x14) Bits 15:14 13 9.3.1.12 Reserved LCD Write Enable 12 OEM Write Enable 11:0 Extended Configuration Pointer Default Description 00b Reserved, set to 00b. 0b When set, enables loading of the extended LAN connected device configuration area in the 82577. This configuration area also includes the PHY tuning (tuning for IEEE) in the NVM. Since this bit is set to 0b by default, PHY tuning does not take effect until the LAN driver and/or firmware loads. When disabled, the extended LAN connected device configuration area is ignored. Loaded to the EXTCNF_CTRL register. 0b When set, enables auto load of the OEM bits from the PHY_CTRL register to the PHY. OEM bits include any LED configuration. Since this bit is set to 0b by default, the auto-load of OEM bits do not take effect until the LAN driver and/or firmware loads. Loaded to the Extended Configuration Control register (EXTCNF_CTRL[3]). 1b = OEM bits written to the 82577. 0b = No OEM bits configuration. 0x28 Defines the base address (in Dwords) of the Extended Configuration area in the NVM. The base address defines an offset value relative to the beginning of the LAN space in the NVM. A value of 0x00 is not supported when operating with the 82577. Loaded to the Extended Configuration Control register (EXTCNF_CTRL[27:16]). Extended Configuration Word 2 (Word 0x15) Bits 9.3.1.13 Name Name Default Description 15:8 Extended PHY Length 0x00 Size (in Dwords) of the Extended PHY configuration area loaded to the Extended Configuration Size register (EXTCNF_SIZE[23:16]). If an extended configuration area is disabled by bit 13 in word 0x14, its length must be set to zero. 7:0 Reserved 0x00 Reserved, must be set to 0x00. Extended Configuration Word 3 (Word 0x16) Bits Name Default Description 15:8 Reserved 0x00 Reserved, set to 0x00. 7:0 Reserved 0x00 Reserved, set to 0x00. 100 82577 GbE PHY--Non-Volatile Memory (NVM) 9.3.1.14 OEM Configuration Defaults (Word 0x17) This word defines the OEM fields for the PHY power management parameters loaded to the PHY Control (PHY_CTRL) register. Bits 15 Reserved Default Description 0b Reserved, set to 0b. GbE Disable 0b When set, GbE operation is disabled in all power states (including D0a). 13:12 Reserved 00b Reserved, set to 00b. 11 GbE Disable in non-D0a 1b Disables GbE operation in non-D0a states. This bit must be set if GbE Disable (bit 14) is set. 10 LPLU Enable in non-D0a 1b Low Power Link Up Enables a decrease in link speed in non-D0a states when power policy and power management states dictate so. This bit must be set if LPLU Enable in D0a bit is set. 9 LPLU Enable in D0a 0b Low Power Link Up Enables a decrease in link speed in all power states. 8 Reserved 0b Reserved, set to 0b. 7:0 Reserved 0x0 Reserved. 14 101 Name Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.1.15 LED 0 - 2 Configuration Defaults (Word 0x18) This NVM word specifies the hardware defaults for the LED Control (LEDCTL) register fields controlling the LED1 (LINK_1000), LED0 (LINK/ACTIVITY) and LED2 (LINK_100) output behaviors. Refer to the Intel(R) 5 Series Family PDG and the 82577 Reference Schematics for LED connection details. Also, Table 12 lists mode encodings for LED outputs. Note: Due to the architecture of the 82577 the customized LEDs settings are written to the 82577 by the LAN driver. As a result, the default LEDs are written during the boot process and when resuming from power states S3, S4, and S5 to normal operation until the LAN driver writes any custom settings. This same behavior is also observed while in S3 and toggling from ac power (wall outlet) to dc power (battery). Once the LAN driver loads after a system boot or when resuming from sleep states, the LEDs function as defined in Word 0x18 of the GbE region of the NVM. Bits Name Default Description 15 Blink Rate 0b Blink Rate 0b = Blink at 200 ms on and 200 ms off. 1b = Blink at 83 ms on and 83 ms off. 14 LED2 Blink 0b Initial Value of LED2_BLINK Field 0b = Non-blinking. 1b = Blinking. 13 LED2 Invert 0b Initial Value of LED2_IVRT Field 0b = Active-low output. 12:10 LED2 Mode 110b LED2 Mode Specifies what event/state/pattern is displayed on the LED2 output. 0110b = 100 Mb/s link_up. 9 LED1 Blink 0b Initial Value of LED1_BLINK Field 0b = Non-blinking. 1b = Blinking. 8 LED1 Invert 0b Initial Value of LED1_IVRT Field 0b = Active-low output. 7:5 LED1 Mode 111b LED1 Mode Specifies what event/state/pattern is displayed on the LED1 output. 0111b = 1000 Mb/s link_up. 4 LED0 Blink 1b Initial Value of LED0_BLINK Field 0b = Non-blinking. 1b = Blinking. 3 LED0 Invert 0b Initial Value of LED0_IVRT Field 0b = Active-low output. 2:0 LED0 Mode 100b LED0 Mode Specifies what event/state/pattern is displayed on the LED0 output. 100b = Filter activity on. 102 82577 GbE PHY--Non-Volatile Memory (NVM) Table 12. Mode Encodings for LED Outputs Mode 9.3.1.16 LINK_10/1000 Asserted when either 10 or 1000 Mb/s link is established and maintained. 001b LINK_100/1000 Asserted when either 100 or 1000 Mb/s link is established and maintained. 010b LINK_UP Asserted when any speed link is established and maintained. 011b ACTIVITY Asserted when link is established and packets are being transmitted or received. 100b LINK/ACTIVITY Asserted when link is established and when there is no transmit or receive activity. 101b LINK_10 Asserted when a 10 Mb/s link is established and maintained. 110b LINK_100 Asserted when a 100 Mb/s link is established and maintained. 111b LINK_1000 Asserted when a 1000 Mb/s link is established and maintained. Reserved (Word 0x19) Name Default Description 15:14 Reserved 00b 13 Reserved 0b Reserved, set to 0b. 12:10 Reserved 010b Reserved, set to 010b. 9:8 Reserved 11b Reserved, set to 11b. 7 Reserved 0b Reserved, set to 0b. 6 Invalid image CSUM 0b When cleared this bit indicates to the NVM programming tools (EEUPDATE and LANConf) that the image checksum needs to be corrected. When set, the checksum is assumed to be correct. 5:0 Reserved 0x0 Reserved, set to 0x0. Reserved, set to 00b. Reserved (Word 0x1A) Bits Name Default Description 15:12 Reserved 0x000 Reserved, set to 0x000. 11 Reserved 1b Reserved, set to 1b. 10:7 Reserved 0000b Reserved, set to 0000b. 6 Reserved 1b Reserved, set to 1b. 5:2 Reserved 0000b Reserved, set to 0000b. 1 Reserved 1b Reserved, set to 1b. 1b APM Enable Initial value of Advanced Power Management Wake Up Enable in the Wake Up Control (WUC.APME) register. 1b = Advanced power management enabled. 0b = Advanced power management disabled. 0 103 State / Event Indicated 000b Bits 9.3.1.17 Mnemonic APM Enable Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.1.18 Reserved (Word 0x1B) Bits 9.3.1.19 0x0 Reserved, set to 0x0. 4 K1_PLL_ stop_en 0b Enable PLL stop in K1. 3 K0s_100_En 0b Enables K0s mode when PHY link speed is 10/100 Mb/s. 2 K0s_GbE_En 0b Enables K0s mode when PHY link speed is 1000 Mb/s. 1 Reserved 0b Reserved, set to 0b. 0 K1_En 0b When set to 1b enables K1 low power mode. Reserved (Word 0x1C) 15:0 15:0 0x10EA Description Reserved Name Reserved Default 0xBAAD Description Reserved Name Reserved Default 0x10EA Description Reserved Reserved (Word 0x1F) Bits 15:0 Name Reserved Default 0x10EB Description Reserved Reserved (Word 0x20) Bits 15:0 9.3.1.24 Reserved Default Reserved (Word 0x1E) Bits 9.3.1.23 Name Reserved (Word 0x1D) Bits 9.3.1.22 Description Reserved 15:0 9.3.1.21 Default 15:5 Bits 9.3.1.20 Name Name Reserved Default 0xBAAD Description Reserved Reserved (Word 0x21) Bits 15:0 Name Reserved Default 0xBAAD Description Reserved 104 82577 GbE PHY--Non-Volatile Memory (NVM) 9.3.1.25 Reserved (Word 0x22) Bits 15:0 9.3.1.26 Reserved Default 0xBAAD Description Reserved Reserved (Word 0x23) Bits 15:0 105 Name Name Reserved Default 0xBAAD Description Reserved Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.1.27 Reserved (Word 0x24) Bits 15 9.3.1.28 1b Description Reserved, set to 1b. Reserved 0b Reserved, set to 0b. 13:0 Reserved 0x0000 Reserved, set to 0x0000. Reserved (Word 0x25) Name Default Description 15 Reserved 1b Reserved, set to 1b. 14:8 Reserved 0x00 Reserved, set to 0x00. 7 Reserved 1b Reserved, set to 1b. 6:5 Reserved 00b Reserved, set to 00b. 4 Reserved 1b Reserved, set to 1b. 3:0 Reserved 0000b Reserved, set to 0000b. Reserved (Word 0x26) Bits 9.3.1.30 Reserved Default 14 Bits 9.3.1.29 Name Name Default Description 15 Reserved 0b Reserved 14 Reserved 1b Reserved 13:12 Reserved 00b Reserved 11 Reserved 1b Reserved 10 Reserved 0b Reserved 9 Reserved 1b Reserved 8:0 Reserved 0x00 Reserved Reserved (Word 0x27) Bits 15:0 Name Reserved Default 0x00 Description Reserved 9.3.2 Software Accessed Words 9.3.2.1 PXE Words (Words 0x30 Through 0x3E) Words 0x30 through 0x3E (bytes 0x60 through 0x7D) have been reserved for configuration and version values to be used by PXE code. 106 82577 GbE PHY--Non-Volatile Memory (NVM) 9.3.2.1.1 Boot Agent Main Setup Options (Word 0x30) The boot agent software configuration is controlled by the NVM with the main setup options stored in word 0x30. These options are those that can be changed by using the Control-S setup menu or by using the IBA Intel Boot Agent utility. Note that these settings only apply to Boot Agent software. Table 13. Boot Agent Main Setup Options Bit 107 Name Description 15:14 Reserved Reserved, set to 00b. 13 Reserved Reserved, must be set to 0b. 12 FDP Force Full Duplex. Set this bit to 0b for half duplex and 1b for full duplex. Note that this bit is a don't care unless bits 10 and 11 are set. 11:10 FSP Force Speed. These bits determine speed. 01b = 10 Mb/s. 10b = 100 Mb/s. 11b = Not allowed. All zeros indicate auto-negotiate (the current bit state). Note that bit 12 is a don't care unless these bits are set. 9 Reserved Reserved Set this bit to 0b. 8 DSM Display Setup Message. If this bit is set to 1b, the "Press Control-S" message appears after the title message. The default for this bit is 1b. 7:6 PT Prompt Time. These bits control how long the "Press Control-S" setup prompt message appears, if enabled by DIM. 00b = 2 seconds (default). 01b = 3 seconds. 10b = 5 seconds. 11b = 0 seconds. Note that the Ctrl-S message does not appear if 0 seconds prompt time is selected. 5 Reserved Reserved 4:3 DBS Default Boot Selection. These bits select which device is the default boot device. These bits are only used if the agent detects that the BIOS does not support boot order selection or if the MODE field of word 0x31 is set to MODE_LEGACY. 00b = Network boot, then local boot. 01b = Local boot, then network boot. 10b = Network boot only. 11b = Local boot only. 2 Reserved Reserved 1:0 PS Protocol Select. These bits select the boot protocol. 00b = PXE (default value). 01b = Reserved. Other values are undefined. Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.2.1.2 Boot Agent Configuration Customization Options (Word 0x31) Word 0x31 contains settings that can be programmed by an OEM or network administrator to customize the operation of the software. These settings cannot be changed from within the Control-S setup menu or the IBA Intel Boot Agent utility. The lower byte contains settings that would typically be configured by a network administrator using the Intel Boot Agent utility; these settings generally control which setup menu options are changeable. The upper byte are generally settings that would be used by an OEM to control the operation of the agent in a LOM environment, although there is nothing in the agent to prevent their use on a NIC implementation. Table 14. Boot Agent Configuration Customization Options (Word 0x31) Bit Name 15:14 SIG 13:12 Reserved Description Signature Set these bits to 11b to indicate valid data. Reserved, must be set to 00b. 11 Continuous Retry Disabled (0b default). 10:8 MODE Selects the agent's boot order setup mode. This field changes the agent's default behavior in order to make it compatible with systems that do not completely support the BBS and PnP Expansion ROM standards. Valid values and their meanings are: 000b = Normal behavior. The agent attempts to detect BBS and PnP Expansion ROM support as it normally does. 001b = Force Legacy mode. The agent does not attempt to detect BBS or PnP Expansion ROM supports in the BIOS and assumes the BIOS is not compliant. The BIOS boot order can be changed in the Setup Menu. 010b = Force BBS mode. The agent assumes the BIOS is BBScompliant, even though it might not be detected as such by the agent's detection code. The BIOS boot order CANNOT be changed in the Setup Menu. 011b = Force PnP Int18 mode. The agent assumes the BIOS allows boot order setup for PnP Expansion ROMs and hooks interrupt 18h (to inform the BIOS that the agent is a bootable device) in addition to registering as a BBS IPL device. The BIOS boot order CANNOT be changed in the Setup Menu. 100b = Force PnP Int19 mode. The agent assumes the BIOS allows boot order setup for PnP Expansion ROMs and hooks interrupt 0x19 (to inform the BIOS that the agent is a bootable device) in addition to registering as a BBS IPL device. The BIOS boot order CANNOT be changed in the Setup Menu. 101b = Reserved for future use. If specified, treated as value 000b. 110b = Reserved for future use. If specified, treated as value 000b. 111b = Reserved for future use. If specified, treated as value 000b. 7:6 Reserved Reserved, must be set to 00b. 5 DFU Disable Flash Update If set to 1b, no updates to the Flash image using PROSet is allowed. The default for this bit is 0b; allow Flash image updates using PROSet. 4 DLWS Disable Legacy Wakeup Support If set to 1b, no changes to the Legacy OS Wakeup Support menu option is allowed. The default for this bit is 0b; allow Legacy OS Wakeup Support menu option changes. 3 DBS Disable Boot Selection If set to 1b, no changes to the boot order menu option is allowed. The default for this bit is 0b; allow boot order menu option changes. 108 82577 GbE PHY--Non-Volatile Memory (NVM) Bit 2 1 0 109 Name Description DPS Disable Protocol Select If set to 1b, no changes to the boot protocol is allowed. The default for this bit is 0b; allow changes to the boot protocol. DTM Disable Title Message If set to 1b, the title message displaying the version of the boot agent is suppressed; the Control-S message is also suppressed. This is for OEMs who do not want the boot agent to display any messages at system boot. The default for this bit is 0b; allow the title message that displays the version of the boot agent and the Control-S message. DSM Disable Setup Menu If set to 1b, no invoking the setup menu by pressing Control-S is allowed. In this case, the EEPROM can only be changed via an external program. The default for this bit is 0b; allow invoking the setup menu by pressing Control-S. Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.2.1.3 Boot Agent Configuration Customization Options (Word 0x32) Word 0x32 is used to store the version of the boot agent that is stored in the Flash image. When the Boot Agent loads, it can check this value to determine if any first-time configuration needs to be performed. The agent then updates this word with its version. Some diagnostic tools to report the version of the Boot Agent in the Flash also read this word. This word is only valid if the PPB is set to 0b. Otherwise the contents might be undefined. Table 15. Boot Agent Configuration Customization Options (Word 0x32) Bit 9.3.2.1.4 Name Description 15:12 MAJOR PXE boot agent major version. The default for these bits is 0x1. 11:8 MINOR PXE boot agent minor version. The default for these bits is 0x2 7:0 BUILD PXE boot agent build number. The default for these bits is 0x28. IBA Capabilities (Word 0x33) Word 0x33 is used to enumerate the boot technologies that have been programmed into the Flash. It is updated by IBA configuration tools and is not updated or read by IBA. 110 82577 GbE PHY--Non-Volatile Memory (NVM) Table 16. IBA Capabilities Bit Name Description Signature These bits must be set to 01b to indicate that this word has been programmed by the agent or other configuration software. 15:14 SIG 13:5 Reserved Reserved, must be set to 0x00. 4 9.3.2.2 iSCSI boot capability not present (0b default). 3 EFI EFI EBC capability is present in Flash. 0b = The EFI code is not present (default). 1b = The EFI code is present. 2 Reserved Reserved, set to 1b. 1 UNDI PXE/UNDI capability is present in Flash. 1b = The PXE base code is present (default). 0b = The PXE base code is not present. 0 BC PXE base code is present in Flash. 0b = The PXE base code is present (default). 1b = The PXE base code is not present. Checksum Word Calculation (Word 0x3F) The Checksum word (Word 0x3F, NVM bytes 0x7E and 0x7F) is used to ensure that the base NVM image is a valid image. The value of this word should be calculated such that after adding all the words (0x00-0x3F) / bytes (0x00-0x7F), including the Checksum word itself, the sum should be 0xBABA. The initial value in the 16 bit summing register should be 0x0000 and the carry bit should be ignored after each addition. Note: Hardware does not calculate the word 0x3F checksum during NVM write; it must be calculated by software independently and included in the NVM write data. Hardware does not compute a checksum over words 0x00-0x3F during NVM reads in order to determine validity of the NVM image; this field is provided strictly for software verification of NVM validity. All hardware configuration based on word 0x00-0x3F content is based on the validity of the Signature field of the NVM. 9.3.3 Basic Configuration Software Words This section describes the meaningful NVM words in the basic configuration space that are used by software at word addresses 0x03-0x09. 9.3.3.1 Reserved (Word 0x3) Bits 111 Name Default Description 15:12 Reserved 0x0 Reserved, set to 0x0. 11 LOM 1b LOM Set to 1b. 10:0 Reserved 0x00 Reserved, set to 0x00. Non-Volatile Memory (NVM)--82577 GbE PHY 9.3.3.2 Reserved (Words 0x04, 0x06, and 0x07) Bits 15:0 Name Default Reserved 0xFFFF Description Reserved 9.3.3.3 Image Version Information (Word 0x05) Note: This is a reserved word and cannot be changed. Care should be taken to use the correct GbE NVM firmware revision for the stepping combination of the Intel(R) 5 Series Express Chipset and the 82577. The following table lists the NVM revision that is optimized for use with the silicon stepping combination. Note: Using a newer revision NVM with an older silicon stepping or older revision NVM with a newer silicon stepping could cause system instability and unpredictable behavior. Intel(R) 5 Series Express Chipset Stepping B1 82577 Stepping/PHY-Ver A3 LAN Switch Yes 0.71 No but support dock 0.71/0.73 No and No support for dock 9.3.3.4 NVM Version Comments Design with LAN switch. Design without LAN switch. 0.73 PBA Low and PBA High (Words 0x08 and 0x09) Bits Word Default Description 15:0 0x08 0xFFFF PBA low. 15:0 0x09 0xFFFF PBA high. The nine-digit Printed Board Assembly (PBA) number used for Intel manufactured Network Interface Cards (NICs) and Lan on Motherboard (LOMs) are stored in a fourbyte field. The dash itself is not stored, neither is the first digit of the 3-digit suffix, as it is always zero for the affected products. Note that through the course of hardware ECOs, the suffix field (byte 4) is incremented. The purpose of this information is to allow customer support (or any user) to identify the exact revision level of a product. Note: Network driver software should not rely on this field to identify the product or its capabilities. Example: PBA number = 123456-003 to Word 0x08 = 0x1234; Word 0x09 = 0x5603. 112 82577 GbE PHY--Non-Volatile Memory (NVM) 9.4 Intel(R) 5 Series Express Chipset/82577 NVM Contents This section lists the NVM contents for the Intel(R) 5 Series Express Chipset and the 82577. Table 17. LAN NVM Contents Word 0x00:0x02 113 Description Ethernet Individual Address 0x03:0x04 Reserved 0x05 Image Version Information 0x06:0x07 Reserved 0x08:0x09 PBA Bytes 0x0A PCI Init Control Word 0x0B Subsystem ID 0x0C Subsystem Vendor ID 0x0D Device ID 0x0E Reserved 0x0F Reserved 0x10 LAN Power Consumption 0x11 Reserved 0x12 Reserved 0x13 Shared Init Control Word 0x14:0x16 Extended Configuration Words 0x17 OEM Configuration Defaults 0x18 LED 0 - 2 0x19:0x2F Reserved 0x30:0x3E PXE Region 0x3F Software Checksum Non-Volatile Memory (NVM)--82577 GbE PHY Note: This page intentionally left blank. 114 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.0 Intel(R) 5 Series Express Chipset MAC Programming Interface 10.1 Register Byte Ordering This section defines the structure of registers that contain fields carried over the network. For example, L2, L3, L4 fields. The following example is used to describe byte ordering over the wire (hex notation): Last First ...,06, 05, 04, 03, 02, 01, 00 where each byte is sent with the LS bit first. That is, the bit order over the wire for this example is: Last First ..., 0000 0011, 0000 0010, 0000 0001, 0000 0000 The general rule for register ordering is to use host ordering (also called little endian). Using the previous example, a 6-byte fields (such as a MAC address) is stored in a CSR in the following manner: Byte 3 Byte 2 Byte 1 Byte 0 Dword address (N) 0x03 0x02 0x01 0x00 Dword address (N + 4) ... ... 0x05 0x04 The following listed exceptions use network ordering (also called big endian). Using the previous example, a 16-bit field (such as EtherType) is stored in a CSR in the following manner: 115 Byte 3 Byte 2 Byte 1 Byte 0 Dword aligned or Word aligned ... ... 0x00 0x01 DW address (N + 4) 0x00 0x01 ... ... Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY The following exceptions use network ordering: * All ETherType fields The normal notation as it appears in text books, etc. is to use network ordering. For example, the following MAC address: 00-A0-C9-00-00-00. The order on the network is 00, then A0, then C9, etc. However, the host ordering presentation would be: 10.2 Byte 3 Byte 2 Byte 1 Byte 0 Dword address (N) 00 C9 A0 00 Dword address (N + 4) ... ... 00 00 Register Conventions All registers in the MAC are defined to be 32 bits, so write cycles should be accessed as 32 bit double-words, There are some exceptions to this rule: * Register pairs where two 32-bit registers make up a larger logical size Reserved bit positions: Some registers contain certain bits that are marked as reserved. These bits should never be set to a value of 1b by software. Reads from registers containing reserved bits might return indeterminate values in the reserved bit positions unless read values are explicitly stated. When read, these reserved bits should be ignored by software. Reserved and/or undefined addresses: any register address not explicitly declared in this document should be considered to be reserved, and should not be written to. Writing to reserved or undefined register addresses might cause indeterminate behavior. Reads from reserved or undefined configuration register addresses might return indeterminate values unless read values are explicitly stated for specific addresses. Reserved fields within defined registers are defined as Read-Only (RO). When writing to these registers, the RO fields should be set to their initial value. Reading from reserved fields might return indeterminate values. Initial values: most registers define the initial hardware values prior to being programmed. In some cases, hardware initial values are undefined and are listed as such via the text undefined, unknown, or X. Some of these configuration values might need to be set via NVM configuration or via software in order for proper operation to occur. Note that this need is dependent on the function of the bit. Other registers might cite a hardware default that is overridden by a higher-precedence operation. Operations that might supersede hardware defaults might also include a valid NVM load, completion of a hardware operation (such as hardware auto-negotiation), or writing of a different register whose value is then reflected in another bit. For registers that should be accessed as 32-bit double words, partial writes (less than a 32-bit double word) does not take effect (the write is ignored). Partial reads return all 32 bits of data regardless of the byte enables. Note: Partial reads to read-on-clear registers (such as ICR) can have unexpected results since all 32 bits are actually read regardless of the byte enables. Partial reads should not be done. Note: All statistics registers are implemented as 32-bit registers. Though some logical statistics registers represent counters in excess of 32 bits in width, registers must be accessed using 32-bit operations (like independent access to each 32-bit field). 116 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1 PCI Configuration and Status Registers - CSR Space All configuration registers are listed in Table 18. These registers are ordered by grouping and are not necessarily listed in order that they appear in the address space. Register based legend: * RW - Read write register. * RO - Read only register. * RO/CR - Read only register, clear on read. * RO/V - Read only register, read status is not constant * RW/RO - Read write by firmware; read only by software. * RWC - Read write clear registers. Writing 0b has no affect. Writing 1b clears the appropriate fields (see detailed description of the specific registers). * RW/V - Read write register. This bit self-clears immediately. * RW/SN - Read write register initial value loaded from NVM. * RC/WC - Read write clear registers. Writing 0b has no affect. Writing 1b clears the appropriate fields. Note that a read might also clear the register depending on enablement (see appropriate registers). * RWC/CR/V - Read write register clear on read, clear on write. * WO - Write only registers. Reading from these registers does not reflect any meaningful data. Generally this would be all zero's (see detailed description of appropriate registers). Table 18. Register Summary Offset Abbreviation Name RW Paragraph General Register Descriptions 0x00000 CTRL Device Control Register RW 10.2.1.1.1 0x00008 STATUS Device Status Register RO 10.2.1.1.2 0x0000C STRAP Strapping Option Register RO 10.2.1.1.3 0x00018 CTRL_EXT Extended Device Control Register RW 10.2.1.1.4 0x00020 MDIC MDI Control Register RW 10.2.1.1.5 0x00028 FEXTNVM Future Extended NVM Register RW 10.2.1.1.6 0x0002C FEXT Future Extended Register RW 10.2.1.1.7 0x00038 BUSNUM Device and Bus Number RO 10.2.1.1.8 0x00170 FCTTV Flow Control Transmit Timer Value RW 10.2.1.1.9 0x05F40 FCRTV Flow Control Refresh Threshold Value RW 10.2.1.1.10 0x00F00 EXTCNF_CTRL Extended Configuration Control RW 10.2.1.1.11 0x00F08 EXTCNF_SIZE Extended Configuration Size RW 10.2.1.1.12 PHY_CTRL PHY Control Register RW 10.2.1.1.13 0x00F10 0x00F18 117 PCIEANACFG PCIE Analog Configuration RW 10.2.1.1.14 0x01000 PBA Packet Buffer Allocation RW 10.2.1.1.15 0x01008 PBS Packet Buffer Size RW 10.2.1.1.16 0x0100C PBECCSTS Packet Buffer ECC Status RW 10.2.1.1.17 0x01004 PBEEI Packet Buffer ECC Error Inject RW 10.2.1.1.18 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Offset Abbreviation Name RW Paragraph Interrupt Register Descriptions RC/ WC 10.2.1.2.1 Interrupt Throttling Register RW 10.2.1.2.2 Interrupt Cause Set Register WO 10.2.1.2.3 Interrupt Mask Set/Read Register RW 10.2.1.2.4 Interrupt Mask Clear Register WO 10.2.1.2.5 Interrupt Acknowledge Auto RW 10.2.1.2.6 0x000C0 ICR Interrupt Cause Read Register 0x000C4 ITR 0x000C8 ICS 0x000D0 IMS 0x000D8 IMC 0x000E0 Mask - IAM Receive Register Descriptions 0x00100 RCTL Receive Control Register RW 10.2.1.3.1 0x00104 RCTL1 Receive Control Register 1 RW 10.2.1.3.2 0x02008 ERT Early Receive Threshold RW 10.2.1.3.3 0x02170 PSRCTL Packet Split Receive Control Register RW 10.2.1.3.4 0x02160 FCRTL Flow Control Receive Threshold Low RW 10.2.1.3.5 0x02168 FCRTH Flow Control Receive Threshold High RW 10.2.1.3.6 0x02800 RDBAL Receive Descriptor Base Address Low Queue RW 10.2.1.3.7 0x02804 RDBAH Receive Descriptor Base Address High Queue RW 10.2.1.3.8 0x02808 RDLEN Receive Descriptor Length Queue RW 10.2.1.3.9 0x02810 RDH Receive Descriptor Head Queue RW 10.2.1.3.10 0x02818 RDT Receive Descriptor Tail Queue RW 10.2.1.3.11 0x02820 RDTR Interrupt Delay Timer (Packet Timer) RW 10.2.1.3.12 0x02828 RXDCTL Receive Descriptor Control RW 10.2.1.3.13 0x0282C RADV Receive Interrupt Absolute Delay Timer RW 10.2.1.3.14 0x02C00 RSRPD Receive Small Packet Detect Interrupt RW 10.2.1.3.15 0x02C08 RAID Receive ACK Interrupt Delay Register RW 10.2.1.3.16 0x05000 RXCSUM Receive Checksum Control RW 10.2.1.3.17 0x05008 RFCTL Receive Filter Control Register RW 10.2.1.3.18 0x05200-0x0527C MTA[31:0] Multicast Table Array RW 10.2.1.3.19 0x05400 + 8*n (n=0...6) RAL Receive Address Low RW 10.2.1.3.20 0x05404 + 8*n (n=0...6) RAH Receive Address High RW 10.2.1.3.21 0x05438 + 8*n (n=0...3) SRAL Shared Receive Address Low RW 10.2.1.3.22 0x0543C + 8*n (n=0...2) SRAH Shared Receive Address High 0...2 RW 10.2.1.3.23 0x05454 SHRAH[3] Shared Receive Address High 3 RW 10.2.1.3.24 0x05818 MRQC Multiple Receive Queues Command Register RW 10.2.1.3.25 0x05C00 + 4*n (n=0...31) RETA Redirection Table RW 10.2.1.3.26 0x05C80 + 4*n (n=0...9) RSSRK Random Key Register RW 10.2.1.3.27 118 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Offset Abbreviation Name RW Paragraph Transmit Register Descriptions 0x00400 TCTL Transmit Control Register RW 10.2.1.4.1 0x00410 TIPG Transmit IPG Register RW 10.2.1.4.2 0x00458 AIT Adaptive IFS Throttle RW 10.2.1.4.3 0x03800 TDBAL Transmit Descriptor Base Address Low RW 10.2.1.4.4 0x03804 TDBAH Transmit Descriptor Base Address High RW 10.2.1.4.5 0x03808 TDLEN Transmit Descriptor Length RW 10.2.1.4.6 0x03810 TDH Transmit Descriptor Head RW 10.2.1.4.7 0x03818 TDT Transmit Descriptor Tail RW 10.2.1.4.8 0x03840 TARC Transmit Arbitration Count RW 10.2.1.4.9 0x03820 TIDV Transmit Interrupt Delay Value RW 10.2.1.4.9 0x03828 TXDCTL Transmit Descriptor Control RW 10.2.1.4.10 Transmit Absolute Interrupt Delay Value RW 10.2.1.4.11 0x0382C TADV Management Register Descriptions 0x05800 Wake Up Control Register RW 10.2.1.5.1 WUFC Wake Up Filter Control Register RW 10.2.1.5.2 0x05810 WUS Wake Up Status Register RW 10.2.1.5.3 0x5838 IPAV IP Address Valid RW 10.2.1.5.4 0x05840 + 8*n (n=1...3) IP4AT IPv4 Address Table RW 10.2.1.5.5 0x05880 + 4*n (n=0...3) IP6AT IPv6 Address Table RW 10.2.1.5.6 0x05F00 + 8*n (n=0...35) FFLT Flexible Filter Length Table RW 10.2.1.5.7 0x09000 + 8*n (n=0...127) FFMT Flexible Filter Mask Table RW 10.2.1.5.8 0x09800 + 8*n (n=0...127) FFVT Flexible Filter Value Table RW 10.2.1.5.10 0x09804 + 8*n (n=0...127) FFVT2 Flexible Filter Value Table RW 10.2.1.5.10 0x05808 Note: 119 WUC Certain registers maintain an alias address designed for backward compatibility with software written for the previous devices. Registers that have an alias address can be accessed by software at either the new offset or the alias offset. It is recommended that software that is written solely for the Intel(R) 5 Series Express Chipset and the 82577 use the new address offset. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1 General Register Descriptions 10.2.1.1.1 Device Control Register - CTRL (0x00000; RW) Bit Type Reset Description 0 RW/SN 1b Full Duplex (FD). 0b = Half duplex. 1b = Full duplex. Controls the MAC duplex setting when explicitly set by software. Loaded from the NVM word 0x13. 1 RO 0b Reserved. Write as 0b for future compatibility 2 RW 0b Master Disable. When set, the MAC blocks new master requests on the PCI device. Once no master requests are pending by this function, the Master Enable Status bit is cleared. 5:3 RO 000b Reserved. Write as 0b for future compatibility. 6 RO 1b Reserved. 7 RO 0b Reserved. Must be set to 0b. 9:8 RW 10b Speed selection (SPEED). These bits might determine the speed configuration and are written by software after reading the PHY configuration through the MDIO interface. These signals are ignored when auto-speed detection is enabled. 0)b = 10 Mb/s. 0)b = 100 Mb/s. 10b = 1000 Mb/s. 11b = Not used. 10 RO 0b Reserved. Write as 0b for future compatibility. 0b Force Speed (FRCSPD). This bit is set when software needs to manually configure the MAC speed settings according to the Speed bits (bits 9:8). When using the 82577, note that it must resolve to the same speed configuration or software must manually set it to the same speed as the MAC. The value is loaded from word 0x13 in the NVM. Note that this bit is superseded by the CTRL_EXT.SPD_BYPS bit, which has a similar function. 11 RW/SN 12 RW 0b Force Duplex (FRCDPLX). When set to 1b, software might override the duplex indication from the 82577 that is indicated in the FDX to the MAC. Otherwise, the duplex setting is sampled from the 82577 FDX indication into the MAC on the asserting edge of the PHY link signal. When asserted, the CTRL.FD bit sets duplex. 13 RO 0b Reserved. 14 RW/SN 0b Reserved. 15 RO 0b Reserved. Reads as 0. 18:16 RW 0b0 Reserved. 0b Memory Error Handling Enable (MEHE). When set to 1b, the Intel(R) 5 Series Express Chipset reaction to correctable and uncorrectable memory errors detection are activated. 19 RW 20 1b Reserved. 24:21 RO 0x0 Reserved. 25 RW 0b Reserved. 26 RW/V 0b Host Software Reset (SWRST). This bit performs a reset to the PCI data path and the relevant shared logic. Writing 1b initiates the reset. This bit is self-clearing. 27 RW 0b Receive Flow Control Enable (RFCE). Indicates that the MAC responds to receiving flow control packets. If auto-negotiation is enabled, this bit is set to the negotiated duplex value. 120 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bit Reset Description 28 RW 0b Transmit Flow Control Enable (TFCE). Indicates that the MAC transmits flow control packets (XON and XOFF frames) based on receiver fullness. If auto-negotiation is enabled, this bit is set to the negotiated duplex value. 29 RO 0b Reserved. 0b VLAN Mode Enable (VME). When set to 1b, all packets transmitted from MAC that have VLE set is sent with an 802.1Q header added to the packet. The contents of the header come from the transmit descriptor and from the VLAN type register. On receive, VLAN information is stripped from 802.1Q packets. 0b LAN Connected Device Reset (LCD_RST). Controls an inband message to the 82577. 0b = Normal operation 1b = Reset to PHY is asserted. The LCD_RST functionality is gated by the FWSM.RSPCIPHY bit. If the FWSM.RSPCIPHY bit is not set to 1b, then setting the LCD_RST has no impact. For proper operation, software or firmware must also set the SWRST bit in the register at the same time. This bit is self-clearing. 30 31 Note: Type RW RW/V Fields loaded from the NVM are set by the NVM only if the signature bits of the NVM's Initialization Control Word match 01b. This register, as well as the Extended Device Control register (CTRL_EXT), controls the major operational modes for the MAC. While software writes to this register to control MAC settings, several bits (such as FD and SPEED) might be overridden depending on other bit settings and the resultant link configuration is determined by the 82577's auto-negotiation resolution. The FD (duplex) and SPEED configurations of the MAC are normally determined from the link configuration process. Software might specifically override/set these MAC settings via certain bits in a forced-link scenario; if so, the values used to configure the MAC must be consistent with the 82577 settings. Manual link configuration is controlled through the 82577's MII management interface. Host Software Reset (bit 26), might be used to globally reset the entire host data path and shared logic. This register is provided primarily as a last-ditch software mechanism to recover from an indeterminate or suspected hung hardware state. Most registers (receive, transmit, interrupt, statistics, etc.), and state machines are set to their power-on reset values, approximating the state following a power-on or PCI reset. One internal configuration register, the Packet Buffer Allocation (PBA) register, retains its value through a software reset. Note: To ensure that the global device reset has fully completed and that the MAC responds to subsequent accesses, programmers must wait approximately 1 ms after setting before attempting to check to see if the bit has cleared or to access (read or write) any other device register. Note: This register's address is also reflected at address 0x00004 for legacy reasons. Neither the software driver nor firmware should use it since it might be unsupported in next generations. 121 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1.2 Device Status Register - STATUS (0x00008; RO) Bits 0 1 Attribute RO/V RO/V Reset Description X Full Duplex (FD). 0b = Half duplex. 1b = Full duplex. Reflects duplex setting of the MAC and/or link. X Link up (LU). 0b = No link established. 1b = Link established. For this to be valid, the Set Link Up bit of the Device Control register (CTRL.SU) must be set. 3:2 RO/V 00b PHY Type Indication (PHYTYPE). Indicates that the 82577 attached to the MAC and resulted mode of operation of the MAC/82577 Link buses. 00 = 82577. 01 =Reserved. 10 = Reserved. 11 = Reserved. This field is loaded from the Shared Init control word in the NVM. 4 RO/V X Transmission Paused (TXOFF). Indication of pause state of the transmit function when symmetrical flow control is enabled. 1b PHY Power Up not (PHYPWR). RO bit that indicates the power state of the 82577. 0b = The 82577 is powered on in the active state. 1b = The 82577 is in the power down state. The PHYPWR bit is valid only after PHY reset is asserted. Note: The PHY power up indication reflects the status of the LANPHYPC signaling to the 82577. 5 RO/V 7:6 RO/V X Link speed setting (SPEED). This bit reflects the speed setting of the MAC and/or link. 00b = 10 Mb/s. 01b = 100 Mb/s. 10b = 1000 Mb/s. 11b = 1000 Mb/s. 8 RO/V X Master Read Completions Blocked. This bit is set when the MAC receives a completion with an error (EP = one or status!= successful). It is cleared on PCI reset. 9 RW/V/C 0b LAN Init Done. This bit is asserted following completion of the LAN initialization from the Flash. Software is expected to clear this field to make it usable for the next initialization done event. 10 RW/V/C 1b PHY Reset Asserted (PHYRA). This bit is R/W. Hardware sets this bit following the assertion of a 82577 reset (either hardware or in-band). The bit is cleared on writing 0b to it. 18:11 RO 0x0 Reserved. 19 RO/V 1b Master Enable Status. Cleared by the MAC when the Master Disable bit is set and no master requests are pending by this function, otherwise this bit is set. This bit indicates that no master requests are issued by this function as long as the Master Disable bit is set. 29:20 RO 0x0 Reserved. Reads as 0. 30 RO 0b Reserved. 31 RO/SN 1b Clock Control 1/4 (CLK_CNT_1_4). This bit is loaded from the NVM word 0x13 and indicates the MAC supports lowering its DMA clock to 1/4 of its value. 122 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface FD reflects the actual MAC duplex configuration. This normally reflects the duplex setting for the entire link, as it normally reflects the duplex configuration negotiated between the PHY and link partner (copper link) or MAC and link partner (fiber link). Link up provides a useful indication of whether something is attached to the port. Successful negotiation of features/link parameters results in link activity. The link startup process (and consequently the duration for this activity after reset) might be several 100's of ms. It reflects whether the PHY's link indication is present. TXOFF indicates the state of the transmit function when symmetrical flow control has been enabled and negotiated with the link partner. This bit is set to 1b when transmission is paused due to the reception of an XOFF frame. It is cleared upon expiration of the pause timer or the receipt of an XON frame. SPEED indicates the actual MAC speed configuration. These bits normally reflect the speed of the actual link, negotiated by the PHY and link partner, and reflected internally from the PHY to the MAC. These bits might represent the speed configuration of the MAC only, if the MAC speed setting has been forced via software (CTRL.SPEED). Speed indications are mapped as shown below: * 00b = 10 Mb/s * 01b = 100 Mb/s * 10b = 1000 Mb/s * 11b = 1000 Mb/s 123 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1.3 Strapping Option Register - STRAP (0x0000C; RO) This register reflects the values of the soft strapping options fetched from the NVM descriptor in the Intel(R) 5 Series Express Chipset space. These signals are sampled by the MAC following LAN_RST# or global reset (PCI reset assertion). Bit(s) 0 10.2.1.1.4 Type RO Reset Description 1b Reserved. LAN NVM Size (NVMS). LAN NVM space size is indicated in multiples of 4 KB. LAN NVM size might very from 4 KB to 128 KB (a zero value means 4 KB). 5:1 RO 0x0 10:6 RO 0x0 Reserved. 15:11 RO 0x0 Reserved. 16 RO 0b MAC SMBus address enable (LCSMBADDEN). 23:17 RO 0x0 MAC SMBus address (LCSMBADD). 24 RO 0b PHY SMBus address enable (LCDSMBADDEN). 31:25 RO 0x0 PHY SMBus address (LCDSMBADD). Extended Device Control Register - CTRL_EXT (0x00018; RW) Bits Type Reset Description 11:0 RO 0x0 Reserved. 12 RW/V 1b Reserved. 14:13 15 RW 18:16 00b Reserved. 0b Speed Select Bypass (SPD_BYPS). When set to 1, all speed detection mechanisms are bypassed, and the device is immediately set to the speed indicated by CTRL.SPEED. This provides a method for software to have full control of the speed settings of the device when the change takes place by overriding hardware clock switching circuitry. 000b Reserved. 19 RW/SN 0b Dynamic Clock Gating (DynCK). When set, this bit enables dynamic clock gating of the DMA and MAC units. Refer to the description of the DynWakeCK in this register. This bit is loaded from NVM word 0x13. 20 RW/SN 1b PHY Power Down Enable (PHYPDEN). When set, this bit enables the 82577 to enter a low-power state when the MAC is at the DMoff / D3 or Dr with no WoL. This bit is loaded from word 0x13 in the NVM. 0000b Reserved. 24:21 25 RW 0b DMA Clock Control (DMACKCTL). Controls the DMA clock source in nonGbE mode (10/100 and no Link). In GbE mode, the DMA clock source is always GLCI PLL divided by two. In normal operation, this bit should be in the default state in which the DMA clock source in non-GbE is mosc_clk. In test mode the DMACKCTL and PLLGateDis should be set to 1b and CLK_CNT_1_4 in the NVM should not be set. In this mode, the DMA clock source is GLCI PLL divided by two. 26 RW 0b Disable Static GLCI PLL Gating (PLLGateDis). By default the PLL is functional only when the GLCI link is required, and inactive when it is not required (at non-GbE mode if LCI is available). When set to 1b the GLCI PLL is always active. 27 RW 0b Interrupt Acknowledge Auto-Mask Enable (IAME). When this bit is set, a read or write to the ICR register has the side effect of writing the value in the IAM register to the IMC register. When this bit is 0b, this feature is disabled. 124 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bits Type Reset Description 28 RW 0b Driver loaded (DRV_LOAD). This bit should be set by the driver after it was loaded and cleared when the driver unloads or after a soft reset. The Manageability Controller (MC) loads this bit to indicate that the driver has loaded. 29 RW 0b INT_TIMERS_CLEAR_ENA. When set, this bit enables the clear of the interrupt timers following an IMS clear. In this state, successive interrupts occur only after the timers expire again. When cleared, successive interrupts following IMS clear might happen immediately. 0b Reserved. 0b Reserved. Reads as 0. 30 31 RO This register provides extended control of device functionality beyond that provided by the Device Control (CTRL) register. Note: If software uses the EE_RST function and needs to retain current configuration information, the contents of the control registers should be read and stored by software. Control register values are changed by a read of the NVM, which occurs after asserting the EE_RST bit. Note: The EEPROM reset function might read configuration information out of the NVM, which affects the configuration of PCI configuration space BAR settings. The changes to the BAR's are not visible unless the system is rebooted and the BIOS is allowed to re-map them. Note: The SPD_BYPS bit performs a similar function as the CTRL.FRCSPD bit in that the device's speed settings are determined by the value software writes to the CRTL.SPEED bits. However, with the SPD_BYPS bit asserted, the settings in CTRL.SPEED take effect immediately rather than waiting until after the device's clock switching circuitry performs the change. 125 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1.5 MDI Control Register - MDIC (0x00020; RW) Bits Type Reset Description 15:0 RW/V X Data (DATA). In a Write command, software places the data bits and the MAC shifts them out to the 82577. In a Read command, the MAC reads these bits serially from the 82577 and software can read them from this location. 20:16 RW/V 0x0 PHY Register address (REGADD). For example, register 0, 1, 2, ... 31. 25:21 RW/V 0x0 PHY Address (PHYADD). 27:26 RW/V 00b Op-code (OP). 01b = MDI write. 10b = MDI read. Other values are reserved. 28 RW/V 1b Ready bit (R). Set to 1b by the MAC at the end of the MDI transaction (for example, indicates a read or write completed). It should be reset to 0b by software at the same time the command is written. 29 RW/V 0b Interrupt Enable (I). When set to 1b by software, it causes an interrupt to be asserted to indicate the end of an MDI cycle. 30 RW/V 0b Error (E). This bit set is to 1b by hardware when it fails to complete an MDI read. Software should make sure this bit is clear (0b) before making a MDI read or write command. 31 RO 0b Reserved. Write as 0b for future compatibility. This register is used by software to read or write Management Data Interface (MDI) registers in the 82577. Note: Internal logic uses MDIC to communicate with the 82577. All fields in these registers are indicated as "/V" since the internal logic might use them to access the 82577. Since hardware uses this register, all hardware, software and firmware must use semaphore logic (the ownership flags) before accessing the MDIC. For an MDI read cycle the sequence of events is as follows: 1. The CPU performs a write cycle to the MII register with: -- Ready = 0b -- Interrupt Enable bit set to 1b or 0b -- Op-Code = 10b (read) -- PHYADD = The 82577 address from the MDI register -- REGADD = The register address of the specific register to be accessed (0 through 31) 2. The MAC applies the following sequence on the MDIO signal to the 82577: -- <01><10> where the Z stands for the MAC tri-stating the MDIO signal. 3. The 82577 returns the following sequence on the MDIO signal: -- <0> 4. The MAC discards the leading bit and places the following 16 data bits in the MII register. 5. The MAC asserts an Interrupt indicating MDI done, if the Interrupt Enable bit was set. 6. The MAC sets the Ready bit in the MII register indicating the read is complete. 126 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 7. The CPU might read the data from the MII register and issue a new MDI command. For an MDI Write cycle the sequence of events is as follows: 1. The CPU performs a write cycle to the MII register with: -- Ready = 0b -- Interrupt Enable bit set to 1b or 0b -- Op-Code = 01b (write) -- PHYADD = The 82577 address from the MDI register -- REGADD = The register address of the specific register to be accessed (0 through 31) -- Data = specific data for desired control of the 82577 2. The MAC applies the following sequence on the MDIO signal to the 82577: -- <01><01><10> 3. The MAC asserts an Interrupt indicating MDI done if the Interrupt Enable bit was set. 4. The MAC sets the Ready bit in the MII register to indicate step 2 has been completed. 5. The CPU might issue a new MDI command. Note: An MDI read or write might take as long as 64 ms from the CPU write to the Ready bit assertion. If an invalid opcode is written by software, the MAC does not execute any accesses to the 82577 registers. If the 82577 does not generate a zero as the second bit of the turnaround cycle for reads, the MAC aborts the access, sets the E (error) bit, writes 0xFFFF to the data field to indicate an error condition, and sets the ready bit. 10.2.1.1.6 Future Extended NVM Register - FEXTNVM (0x00028; RW) This register is initialized to a hardware default only at LAN_RST# reset. Software should not modify these fields to values other than their recommended values. Bits 15:0 of this register are loaded from the NVM word 0s19 and bits 31:16 are loaded from the NVM word 0x1A. Bits 127 Type Reset Description 0 RW/SN 0b Reserved 1 RW/SN 0b dma_clk_enable_d. Enable dynamic clock stop. When this bit is set to 1b, clk is always ticking. The default value is 0b (hardware and NVM). 2 RW/SN 0b wake_dma_clk_enable_d. Enable dynamic clock stop. When this bit is set to 1b, clk is always ticking. The default value is 0b (hardware and NVM) 3 RW/SN 0b gpt_clk_enable_d. Enable dynamic clock stop. When this bit is set to 1b, clk is always ticking. The default value is 0b (hardware and NVM) 4 RW/SN 0b mac_clk_enable_d. Enable dynamic clock stop. When this bit is set to 1b, clk is always ticking. The default value is 0b (hardware and NVM) 5 RW/SN 0b m2k_clk_enable_d. Enable dynamic clock stop. When this bit is set to 1b, clk is always ticking. The default value is 0b (hardware and NVM). 6 RW/SN 0b Invalid Image CSUM. When cleared, this bit indicates to the Intel NVM programming tools that the image CSUM needs to be corrected. When set the CSUM is assumed to be correct. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Bits 9:7 10 11 Type RW/SN RW/SN RW/SN Reset Description 0x0 Reserved. 0b Enable MDIO Watchdog Timer (MDIOWatchEna). When set to 0b, the 100 ms MDIO watchdog timer is enabled. Default NVM setting = 1b. 0b Update DMA PTR. 0b = The pointer to the packet header is updated at the start of the packet. 1b = The pointer to the packet header is updated at the end of the previous packet (legacy behavior). Default NVM setting = 0b. 12 RW/SN 0b MAC Synchronization. 1b = In GbE mode, the MAC does not need to wait for synchronization between clock domains (the clock domains are the same) and the synchronization stage is skipped. 0b = The synchronization stage is not skipped. When operating in 10/100 Mb/s, the synchronization is still needed, therefore it is never skipped. Default NVM setting = 0b. 13 RW/SN 0b Reserved. 14 RW/SN 0b Auto PHYINT Clear. 0b = Clears the interrupt indication from the 82577 immediately after the ICR is read. Default NVM setting = 0b. 15 RW/SN 0b Drop Rx Packet. 0b = Causes packet dropping when it comes, if no descriptors while early receive is enabled. Default NVM setting = 0b. 19:16 RW/SN 0x0 Reserved. 20 RW/SN 0b Disable CLK gate Enable Due to D3hot. When set, disables assertion of bb_clkgaten due to D3hot. Default NVM setting = 0b. 26:21 RW/SN 0x0 Reserved. 27 RW/SN 0b Software LCD Config Enable. This bit has no impact on hardware but rather influences the software flow. The software should initialize the 82577 using the extended configuration image in the NVM only when both the Software LCD Config Enable bit is set and the LCD Write Enable bit in the EXTCNF_CTRL register is cleared. 31:28 RW/SN 00b Reserved. 128 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.1.7 Future Extended Register - FEXT (0x0002C; RW) This register is initialized to a hardware default only at LAN_RST# reset. Software should not modify these fields to values other than their recommended values. C Bits Type 0 10.2.1.1.8 0b Reserved. 0b Reserved. RO 3:2 RO/V 00b Reserved. 7:4 RW 0x0 Reserved. 8 RW 0b Hardware/Software CRC Mismatch Trigger. When set to 1b the MAC generates a trigger signal each time there is a mismatch between the software calculated CRC and hardware calculated CRC. This feature is ignored when CRC calculation is off-loaded to hardware. 9 RW 0b Write Disable Ghost and DMA RAMs on CRC Mismatch. When set to 1b, disables any writes to the following RAMs in the event of CRC mismatch until reset: * Ghost read PCI descriptor * Ghost read PCI data * The four RAMs in the descriptor engine * The packet buffer 10 RW 0b When set to 1b, enables the data visibility of the ghost read PCI descriptor and PCI data RAMs to the NOA. 11 RW 0b Visibility in/out read data select. 1b = in. Bit 10 of the FEXT register must be set to 1b. 12 RW 0b Visibility data/desc read Ram select. 1b = data. Bit 10 of the FEXT register must be set to 1b. 13 RW 0b When set to 1b, the ghost read RAMs are readable by the slave bus. 17:14 RW 0x0 Must be set to 0x0. 31:18 RW 0x0 Future Extended. Reserved for future setting. Device and Bus Number - BUSNUM (0x00038; RO) Type Reset Description 7:0 RO 0x0 10:8 RO 000b Reserved. Function Number. The MAC is a single PCI function being function 0. 15:11 RO 0x19 Device Number. During normal operation, the MAC has a pre-defined device number equal to 25 (0x19). 23:16 RO 0x0 Bus Number. The MAC captures its bus number during host configuration write cycles type 0 aimed at the device. This field is initialized by LAN_RST# reset, PCI reset, and D3 to D0 transition. 31:24 RO 0x0 Reserved. Flow Control Transmit Timer Value - FCTTV (0x00170; RW) Bit 129 Description 1 Bit 10.2.1.1.9 Reset Type Reset Description 15:0 RW X Transmit Timer Value (TTV). Included in XOFF frame. 31:16 RO 0x0 Reserved. Read as 0b. Should be written to 0b for future compatibility. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY The 16-bit value in the TTV field is inserted into a transmitted frame (either XOFF frames or any PAUSE frame value in any software transmitted packets). It counts in units of slot time. If software needs to send an XON frame, it must set TTV to zero prior to initiating the PAUSE frame. Note: The MAC uses a fixed slot time value of 64 byte times. 10.2.1.1.10 Flow Control Refresh Threshold Value - FCRTV (0x05F40; RW) Bit Type Reset Description 15:0 RW X Flow Control Refresh Threshold (FCRT). This value indicates the threshold value of the flow control shadow counter. When the counter reaches this value, and the conditions for a pause state are still valid (buffer fullness above low threshold value), a pause (XOFF) frame is sent to the link partner. The FCRTV timer count interval is the same as other flow control timers and counts at slot times of 64 byte times. If this field contains a zero value, the flow control refresh is disabled. 31:16 RO 0x0 Reserved. Read as 0b. Should be written to 0b for future compatibility. 10.2.1.1.11 Extended Configuration Control - EXTCNF_CTRL (0x00F00; RW) Bit Type Reset Description 0 RW/SN 0b LCD Write Enable. When set, enables the extended PHY configuration area in the MAC. When disabled, the extended PHY configuration area is ignored. Loaded from NVM word 0x14. 2:1 RW/SN 00b Reserved 3 RW/SN 1b OEM Write Enable. When set, enables auto load of the OEM bits from the PHY_CTRL register to the PHY. Loaded from NVM word 0x14. 4 RO 0b Reserved. 5 RW/V 0b Software Semaphore FLAG (SWFLAG). This bit is set by the device driver to gain access permission to shared CSR registers with the firmware and hardware. The bit is initialized on power up PCI reset and software reset. 6 RO/V 0b MDIO Hardware Ownership. Hardware requests access to MDIO. Part of the arbitration scheme for MDIO access. This is a RO bit. 15:7 RO 0x0 Reserved. 27:16 RW/SN 0x001 Extended Configuration Pointer. Defines the base address (in Dwords) of the extended configuration area in the NVM. 31:28 RW 0b Reserved. 130 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.1.12 Extended Configuration Size - EXTCNF_SIZE (0x00F08; RW) Bit 31:24 Type RO Reset Description 0x0 Reserved. 23:16 RW/SN 0x0 Extended LCD Length. Size (in Dwords) of the extended PHY configuration area loaded from Extended Configuration word 2 in the NVM. If an extended configuration area is disabled by the LCD Write Enable field in word 0x14 in the NVM, this length must be set to zero. 15:0 RW/SN 0x0 Reserved 10.2.1.1.13 PHY Control Register - PHY_CTRL (0x00F10; RW) This register is initialized to a hardware default at LAN_RST# reset. Bit 31:29 RO Reset Description 0x0 Reserved RO 0x0 SKU Read Data. These four bits contain the SKU value read from the 82577 SKU register. Using these bits, the SKU mechanism determines the Device ID. 24 RO 0x0 Reserved. 23 RO 0x0 SKU done. This bit indicates the termination of SKU read. 22:20 RW 0x0 Reserved. 19:17 RW 0x2 Reserved. 16:7 RO 0x0 Reserved Global GbE Disable. Prevents the 82577 from auto negotiating 1000 Mb/s link in all power states (including D0a). This bit is initialized by word 0x17, bit 14 in the NVM. 28:25 131 Type 6 RW/SN 0b 5:4 RO 00b Reserved. 3 RW/SN 1b GbE Disable at Non D0a. Prevents the 82577 from auto negotiating 1000 Mb/s link in all power states except D0a (DR, D0u and D3). Bit is initialized by word 0x17, bit 11 in the NVM. This bit must be set since GbE is not supported in Sx by the platform. 2 RW/SN 1b LPLU in Non D0a. Enables the 82577 to negotiate for slowest possible link (reverse auto negotiate) in all power states except D0a (DR, D0u and D3). This bit is initialized by word 0x17, bit 10 in the NVM. 1 RW/SN 0b LPLU in D0a. Enables the 82577 to negotiate for the slowest possible link (reverse auto negotiate) in all power states (including D0a). This bit overrides the LPLU in non-D0abit. This bit is initialized by word 0x17, bit 9 in the NVM. 0 RW/SN 0b Reserved. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1.14 PCIE Analog Configuration - PCIEANACFG (0x00F18; RW) Bit 0 Type RW Reset Description 0b Invert Polarity. Indicates to the GP unit to invert bit polarity (only receiver). this bit is set from the NVM. 6:1 RW 0x20 Command Mode Voltage Select. 31:7 RO 0x0 Reserved. Read as 0b ignore on write. 10.2.1.1.15 Packet Buffer Allocation - PBA (0x01000; RW) Bit 4:0 Type RW Reset Description 0x Receive packet buffer allocation (RXA). Defines the size of the Rx buffer in K byte units. Default is KB. 15:5 RO X Reserved. 20:16 RO 0x Transmit Packet Buffer Allocation (TXA). Defines the size of the Tx buffer in KB units. This field is read only and equals to the Packet Buffer Size (PBS) minus RXA (the default value of the PBS is KB). 31:21 RO X Reserved. This register sets the on-chip receive and transmit storage allocation ratio. Note: Programming this register does not automatically re-load or initialize internal packetbuffer RAM pointers. Software must reset both transmit and receive operation (using the global device reset CTRL.SWRST bit) after changing this register in order for it to take effect. The PBA register itself is not reset by assertion of the software reset, but is only reset upon initial hardware power on. Note: If early receive functionality is not enabled (indicate field/register), the receive packet buffer should be larger than the maximum expected received packet + 32 bytes. Note: For best performance, the transmit buffer allocation should be set to accept two fullsized packets. Note: Transmit packet buffer size should be configured to be more than 4 KB. 10.2.1.1.16 Packet Buffer Size - PBS (0x01008; RW) Bit Type 5:0 31:6 RO Reset Description 0x0 Packet Buffer Size (PBS). Defines the total packet buffer size both for transmit and receive in 1 KB granularity. Software should keep this register at a value of decimal (equals KB). 0x0 Reserved. Read as zero. 132 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface This register sets the on-chip receive and transmit storage allocation size. The allocation value is read/write for the lower six bits. The division between transmit and receive is done according to the PBA register. Note: Programming this register does not automatically re-load or initialize internal packetbuffer RAM pointers. Software must reset both transmit and receive operation (using the global device reset CTRL.SWRST bit) after changing this register in order for it to take effect. The PBS register itself is not reset by assertion of the software reset, but is only reset upon initial hardware power on. Note: Programming this register should be aligned with programming the PBA register hardware operation, if PBA and PBS are not coordinated is not determined. 10.2.1.1.17 Packet Buffer ECC Status - PBECCSTS (0x0100C; RW) Bit Type Reset Description 7:0 RC 0x0 Correctable Error Count (Corr_err_cnt). This counter is incremented every time a correctable error is detected. The counter stops counting after reaching 0xFF. Cleared by read. 15:8 RC 0x0 Uncorrectable Error Count (uncorr_err_cnt). This counter is incremented every time an uncorrectable error is detected. The counter stops counting after reaching 0xFF. Cleared by read. 16 RW 0b ECC enable. Stop on First Error (SOFE). When set, the ECC test captures the failing address into Last Failure Address (LFA). 17 RW 0b 19:18 RO 0x0 Reserved. Read as zero. 0x0 Last Failure Address (LFA). When Stop on first Error (SOFE) bit is set to 1b, when there is ECC failure, the LFA register captures the failing address of the failure. 31:20 RO 10.2.1.1.18 Packet Buffer ECC Error Inject - PBEEI (0x01004; RW) Bit 133 Type Reset Description 0 RW 0b Inject an error on Tx Buffer on header line. When this bit is set, an error is injected in the next write cycle to a header line of the Tx buffer. Auto cleared by hardware when an error is injected if PBECCINJ.ENECCADD is clear (0b). 1 RW 0b Inject an error on Tx Buffer on data line. When this bit is set, an error is injected in the next write cycle to a data line of the Tx buffer. Auto cleared by hardware when an error is injected if PBECCINJ.ENECCADD is clear (0b). 2 RW 0b Inject an error on Rx Buffer on header line. When this bit is set, an error is injected in the next write cycle to a header line of the Rx buffer. Auto cleared by hardware when an error is injected if PBECCINJ.ENECCADD is clear (0b). 3 RW 0b Inject an error on Rx Buffer on data line. When this bit is set, an error is injected in the next write cycle to a data line of the Rx buffer. Auto cleared by hardware when an error is injected if PBECCINJ.ENECCADD is clear (0b). 15:4 RO 0x0 Reserved. 23:16 RW 0x0 Error 1 bit location (value of 0xFF - No error injection on this bit). 31:24 RW 0x0 Error 2 bit location (value of 0xFF - No error injection on this bit). Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.1.19 Packet Buffer ECC Injection - PBECCINJ (0x01010; RW) Bit Type Reset Description 11:0 RW 0x0 Address 0 Injection - Error injection first address in packet buffer. 23:12 RW 0x0 Address 1 Injection - Error injection second address in packet buffer. 24 RW 0b Enable ECC Injection to Address (ENACCADD). When set to 0b, the addresses for ECC injection from this register are ignored. 31:25 RO 0x0 Reserved. 10.2.1.2 Interrupt Register Descriptions 10.2.1.2.1 Interrupt Cause Read Register - ICR (0x000C0; RC/WC) This register is RC or WC. If enabled, read access also clears the ICR content after it is posted to software. Otherwise, a write cycle is required to clear the relevant bit fields. Write a 1b clears the written bit while writing 0b has no affect (with the exception of the INT_ASSERTED bit. Bit Type Reset Description 0 RWC/CR/V 0b Transmit Descriptor Written Back (TXDW). Set when hardware processes a descriptor with either RS set. If using delayed interrupts (IDE set), the interrupt is delayed until after one of the delayed-timers (TIDV or TADV) expires. 1 RWC/CR/V 0b Transmit Queue Empty (TXQE). Set when, the last descriptor block for a transmit queue has been used. When configured to use more than one transmit queue this interrupt indication is issued if one of the queues is empty and is not cleared until all the queues have valid descriptors. 2 RWC/CR/V 0b Link Status Change (LSC). This bit is set each time the link status changes (either from up to down, or from down to up). This bit is affected by the LINK indication from the 82577. 3 RO 0b Reserved. 4 RWC/CR/V 0b Receive Descriptor Minimum Threshold hit (RXDMT0). Indicates that the minimum number of receive descriptors RCTL.RDMTS are available and software should load more receive descriptors. 5 RWC/CR/V 0b Disable Software Write Access (DSW). The DSW bit indicates that firmware changed the status of the DISSW or the DISSWLNK bits in the FWSM register. 6 RWC/CR/V 0b Receiver Overrun (RXO). Set on receive data FIFO overrun. Could be caused either because there are no available buffers or because receive bandwidth is inadequate. 7 RWC/CR/V 0b Receiver Timer Interrupt (RXT0). Set when the timer expires. 8 RWC/CR/V 0b LCAPD Exit Interrupt (LCAPD). Set when the Intel(R) 5 Series Express Chipset takes the MAC out of LCAPD state. 9 RWC/CR/V 0b MDIO Access Complete (MDAC). Set when the MDIO access completes. 11:10 RO 00b Reserved. 12 RWC/CR/V 0b PHY Interrupt (PHYINT). Set when the 82577 generates an interrupt. 13 RO 0b Reserved. 14 RWC/CR/V 0b Reserved. 15 RWC/CR/V 0b Transmit Descriptor Low Threshold hit (TXD_LOW). Indicates that the descriptor ring has reached the threshold specified in the Transmit Descriptor Control register. 134 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bit Type Reset Description 16 RWC/CR/V 0b Small Receive Packet Detected (SRPD). Indicates that a packet size < RSRPD.SIZE register has been detected and transferred to host memory. The interrupt is only asserted if RSRPD.SIZE register has a nonzero value. 17 RWC/CR/V 0b Receive ACK Frame Detected (ACK). Indicates that an ACK frame has been received and the timer in RAID.ACK_DELAY has expired. 21:18 RWC/CR/V 0x0 Reserved. 22 RWC/CR/V 0b ECC Error (ECCER). Indicates an uncorrectable EEC error occurred. 30:23 RO 0x0 Reserved. Reads as 0b. 0b Interrupt Asserted (INT_ASSERTED). This bit is set when the LAN port has a pending interrupt. If the Interrupt is enabled in the PCI configuration space, an interrupt is asserted. 31 RWC/CR/V This register contains all interrupt conditions for the MAC. Each time an interrupt causing event occurs, the corresponding interrupt bit is set in this register. An interrupt is generated each time one of the bits in this register is set, and the corresponding interrupt is enabled via the Interrupt Mask Set/Read register (see Section 10.2.1.3.5). Each time an interrupt causing event occurs, all timers of delayed interrupts are cleared and their cause event is set in the ICR. * Read ICR register is affected differently in the following cases: -- Case 1 - Interrupt Mask register equals 0x0000 (mask all) - ICR content is cleared. -- Case 2 - Interrupt was asserted (ICR.INT_ASSERTED=1) - ICR content is cleared and auto mask is active, meaning, the IAM register is written to the IMC register. -- Case 3 - Interrupt was not asserted (ICR.INT_ASSERTED=0) - Read has no side affect. Writing a 1b to any bit in the register also clears that bit. Writing a 0b to any bit has no effect on that bit. The INT_ASSERTED bit is a special case. Writing a 1b or 0b to this bit has no affect. It is cleared only when all interrupt sources are cleared. 10.2.1.2.2 Interrupt Throttling Register - ITR (0x000C4; RW) Bit Type Reset Description 15:0 RW 0x0 INTERVAL. Minimum inter-interrupt interval. The interval is specified in 256 ns units. Zero disables interrupt throttling logic. 31:16 RO 0x0 Reserved. Should be written with 0b to ensure future compatibility. Software can use this register to pace (or even out) the delivery of interrupts to the host CPU. This register provides a guaranteed inter-interrupt delay between interrupts asserted by the network controller, regardless of network traffic conditions. To independently validate configuration settings, software can use the following algorithm to convert the inter-interrupt interval value to the common 'interrupts/sec' performance metric: Interrupts/sec = (256 x 10-9sec x interval)-1 For example, if the interval is programmed to 500d, the network controller guarantees the CPU is not interrupted by the network controller for 128 ms from the last interrupt. 135 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Inversely, inter-interrupt interval value can be calculated as: inter-interrupt interval = (256 x 10-9sec x interrupts/sec)-1 The optimal performance setting for this register is very system and configuration specific. An initial suggested range for the interval value is 65--5580 (28B - 15CC). Note: When working at 10/100 Mb/s and running at 1/4 clock the interval time is multiplied by four. 10.2.1.2.3 Interrupt Cause Set Register - ICS (0x000C8; WO) Bit Type Reset Description 0 WO X TXDW. Sets transmit descriptor written back. 1 WO X TXQE. Sets transmit queue empty. 2 WO X LSC. Sets link status change. 3 RO X Reserved. 4 WO X RXDMT. Sets receive descriptor minimum threshold hit. 5 WO X DSW. Sets block software write accesses. 6 WO X RXO. Sets receiver overrun. Set on receive data FIFO overrun. 7 WO X RXT. Sets receiver timer interrupt. 8 WO X LCAPD. Sets LCAPD interrupt. 9 WO X MDAC. Sets MDIO access complete interrupt. 11:10 RO X Reserved. 12 WO X PHYINT. Sets PHY interrupt. 13 RO X Reserved. 14 WO X Reserved. 15 WO X TXD_LOW. Transmit descriptor low threshold hit. 16 WO X Small Receive Packet Detected (SRPD) and transferred. 17 WO X ACK. Set receive ACK frame detected. 18 WO X MNG. Set the manageability event interrupt. 19 WO X Reserved. 20 WO X Reserved. 21 RO X Reserved. 22 WO X ECCER Set uncorrectable EEC error. 31:23 RO X Reserved. Should be written with 0b to ensure future compatibility. Software uses this register to set an interrupt condition. Any bit written with a 1b sets the corresponding interrupt. This results in the corresponding bit being set in the Interrupt Cause Read register (see Section 10.2.1.3), and an interrupt is generated if one of the bits in this register is set, and the corresponding interrupt is enabled via the Interrupt Mask Set/Read register (see Section 10.2.1.3.5). Bits written with 0b are unchanged. 136 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.2.4 Interrupt Mask Set/Read Register - IMS (0x000D0; RW) Bit Type Reset Description 0 RWS 0b TXDW. Sets transmit descriptor written back. 1 RWS 0b TXQE. Sets transmit queue empty. 2 RWS 0b LSC. Sets link status change. 3 RO 0b Reserved. 4 RWS 0b RXDMT0. Sets mask for receive descriptor minimum threshold hit. 5 RWS 0b DSW. Sets mask for block software write accesses. 6 RWS 0b RXO. Sets mask for receiver overrun. Set on receive data FIFO overrun. 7 RWS 0b RXT0. Sets mask for receiver timer interrupt. 8 RWS 0b LCAPD. Sets mask for LCAPD interrupt. LCAPD mask is set after reset to enable LCAPD interrupt (driven by Intel(R) 5 Series Express Chipset). 9 RWS 0b MDAC. Sets mask for MDIO access complete interrupt. 11:10 RO 00b Reserved. 12 RWS 0b PHYINT. Sets mask for PHY interrupt. 13 RO 0b Reserved. 14 RWS 0b Reserved. 15 RWS 0b TXD_LOW. Sets the mask for transmit descriptor low threshold hit. 16 RWS 0b SRPD. Sets mask for small receive packet detection. 17 RWS 0b ACK. Sets the mask for receive ACK frame detection. 18 RWS 0b MNG. Sets mask for manageability event interrupt. 19 RWS 0b Reserved. 20 RWS 0b Reserved. 21 RO 0b Reserved. 22 RWS 0b ECCER Sets mask for uncorrectable EEC error 31:23 RO 0x0 Reserved. Should be written with 0b to ensure future compatibility. Reading this register returns which bits have an interrupt mask set. An interrupt is enabled if its corresponding mask bit is set to 1b, and disabled if its corresponding mask bit is set to 0b. An interrupt is generated each time one of the bits in this register is set, and the corresponding interrupt condition occurs. The occurrence of an interrupt condition is reflected by having a bit set in the Interrupt Cause Read register (see Section 10.2.1.3). A particular interrupt might be enabled by writing a 1b to the corresponding mask bit in this register. Any bits written with a 0b are unchanged. Note: If software desires to disable a particular interrupt condition that had been previously enabled, it must write to the Interrupt Mask Clear register (see Section 10.2.1.3.6), rather than writing a 0b to a bit in this register. When the CTRL_EXT.INT_TIMERS_CLEAR_ENA bit is set, then following writing all 1b's to the IMS register (enable all interrupts) all interrupt timers are cleared to their initial value. This auto clear provides the required latency before the next INT event. 137 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.2.5 Interrupt Mask Clear Register - IMC (0x000D8; WO) Bit Type Reset Description 0 WO 0b TXDW. Sets transmit descriptor written back. 1 WO 0b TXQE. Sets transmit queue empty. 2 WO 0b LSC. Sets link status change. 3 RO 0b Reserved. 4 WO 0b RXDMT0. Clears mask for receive descriptor minimum threshold hit. 5 WO 0b DSW. Clears mask for block software Write accesses. 6 WO 0b RXO. Clears mask for receiver overrun. 7 WO 0b RXT0. Clears mask for receiver timer interrupt. 8 WO 0b LCAPD. Clears mask for LCAPD interrupt. 9 WO 0b MDAC. Clears mask for MDIO access complete interrupt. 11:10 RO 00b Reserved. Reads as 0b. 12 WO 0b PHYINT. Clears PHY interrupt. 13 RO 0b Reserved. 14 WO 0b Reserved. 15 WO 0b TXD_LOW. Clears the mask for transmit descriptor low threshold hit. 16 WO 0b SRPD. Clears mask for small receive packet detect interrupt. 17 WO 0b ACK. Clears the mask for receive ACK frame detect interrupt. 18 WO 0b MNG. Clears mask for the manageability event interrupt. 19 WO 0b Reserved. 20 WO 0b Reserved. 21 RO 0b Reserved. 22 WO 0b ECCER Clears the mask for uncorrectable EEC error. 31:23 RO 0x0 Reserved. Should be written with 0b to ensure future compatibility. Software uses this register to disable an interrupt. Interrupts are presented to the bus interface only when the mask bit is a 1b and the cause bit is a 1b. The status of the mask bit is reflected in the Interrupt Mask Set/Read register, and the status of the cause bit is reflected in the Interrupt Cause Read register (see Section 10.2.1.3). Software blocks interrupts by clearing the corresponding mask bit. This is accomplished by writing a 1b to the corresponding bit in this register. Bits written with 0b are unchanged (their mask status does not change). In summary, the sole purpose of this register is to enable software a way to disable certain, or all, interrupts. Software disables a given interrupt by writing a 1b to the corresponding bit in this register. 138 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.2.6 Interrupt Acknowledge Auto-Mask - IAM (0x000E0; RW) Bit 31:0 Type RW Reset 0x0 Description IAM_VALUE. When the CTRL_EXT.IAME bit is set and the ICR.INT_ASSERTED=1, an ICR read or write has the side effect of writing the contents of this register to the IMC register. 10.2.1.3 Receive Register Descriptions 10.2.1.3.1 Receive Control Register - RCTL (0x00100; RW) Bit 0 1 139 Type RO RW Reset Description 0b Reserved. This bit represents a hardware reset of the receive-related portion of the device in previous controllers, but is no longer applicable. Only a full device reset CTRL.SWRST is supported. Write as 0b for future compatibility. 0b Enable (EN). The receiver is enabled when this bit is 1b. Writing this bit to 0b stops reception after receipt of any in progress packets. All subsequent packets are then immediately dropped until this bit is set to 1b. Note that this bit controls only DMA functionality to the host. Packets are counted by the statistics even when this bit is cleared. 2 RW 0b Store bad packets (SBP). 0b = Do not store bad packets. 1b = Store bad packets. Note that CRC errors before the SFD are ignored. Any packet must have a valid SFD in order to be recognized by the MAC (even bad packets). Note: Packet errors are not routed to manageability even if this bit is set. 3 RW 0b Unicast promiscuous enable (UPE). 0b = Disabled. 1b = Enabled. 4 RW 0b Multicast promiscuous enable (MPE). 0b = Disabled. 1b = Enabled. 5 RW 0b Long packet enable (LPE). 0b = Disabled. 1b = Enabled. 7:6 RW 00b Reserved. 9:8 RW 0b Receive Descriptor Minimum Threshold Size (RDMTS). The corresponding interrupt is set each time the fractional number of free descriptors becomes equal to RDMTS. Table 85 lists which fractional values correspond to RDMTS values. See Section 10.2.1.4.8 for details regarding RDLEN. 11:10 RW 00b Descriptor Type (DTYP). 00b = Legacy or extended descriptor type. 01b = Packet split descriptor type. 10b and 11b = Reserved. 13:12 RW 00b Multicast Offset (MO). This determines which bits of the incoming multicast address are used in looking up the bit vector. 00b = 47:38. 01b = [46:37. 10b = 45:36. 11b = 43:34. 14 RW 0b Reserved. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Bit 15 17:16 Type RW RW Reset Description 0b Broadcast Accept Mode (BAM). 0b = Ignore broadcast (unless it matches through exact or imperfect filters). 1 = Accept broadcast packets. 00b Receive Buffer Size (BSIZE). RCTL.BSEX - zero: 00b = 2048 bytes. 01b = 1024 bytes. 10b = 512 bytes. 11b = 256 bytes. RCTL.BSEX - one: 00b = Reserved. 01b = 16384 bytes. 10b = 8192 bytes. 11b = 4096 bytes. BSIZE is only used when DTYP - 00b. When DTYP - 01b, the buffer sizes for the descriptor are controlled by fields in the PSRCTL register. BSIZE is not relevant when the FLXBUF is other than zero, in that case, FLXBUF determines the buffer size. 21:18 RO 0x0 Reserved. Should be written with 0b. 22 RW 0b Reserved. 23 RW 0b Pass MAC Control Frames (PMCF). 0b = Do not (specially) pass MAC control frames. 1 = Pass any MAC control frame (type field value of 0x8808) that does not contain the pause opcode of 0x0001. 24 RO 0b Reserved. Should be written with 0b to ensure future compatibility. 25 RW 0b Buffer Size Extension (BSEX). Modifies buffer size indication (BSIZE). 0b = Buffer size is as defined in BSIZE. 1b = Original BSIZE values are multiplied by 16. 26 RW 0b Strip Ethernet CRC from incoming packet (SECRC). 0b = Does not strip CRC. 1b = Strips CRC. The stripped CRC is not DMA'd to host memory and is not included in the length reported in the descriptor. 30:27 RW 0x0 FLXBUF. Determines a flexible buffer size. When this field is 0000b, the buffer size is determined by BSIZE. If this field is different from 0000b, the receive buffer size is the number represented in KB: For example, 0001 = 1 KB (1024 bytes). 31 RO 0b Reserved. Should be written with 0b to ensure future compatibility. 140 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface LPE controls whether long packet reception is permitted. Hardware discards long packets if LPE is 0b. A long packet is one longer than 1522 bytes. If LPE is 1b, the maximum packet size that the device can receive is bytes. RDMTS{1,0} determines the threshold value for free receive descriptors according to the following table: Table 85. RDMTS Values RDMTS Free Buffer Threshold 00b 1/2 01b 1/4 10b 1/8 11b Reserved BSIZE controls the size of the receive buffers and permits software to trade-off descriptor performance versus required storage space. Buffers that are 2048 bytes require only one descriptor per receive packet maximizing descriptor efficiency. Buffers that are 256 bytes maximize memory efficiency at a cost of multiple descriptors for packets longer than 256 bytes. PMCF controls the DMA function of the MAC control frames (other than flow control). A MAC control frame in this context must be addressed to either the MAC control frame multicast address or the station address, match the type field and NOT match the PAUSE opcode of 0x0001. If PMCF = 1b then frames meeting this criteria is DMA'd to host memory. The SECRC bit controls whether hardware strips the Ethernet CRC from the received packet. This stripping occurs prior to any checksum calculations. The stripped CRC is not DMA'd to host memory and is not included in the length reported in the descriptor. 141 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.3.2 Receive Control Register 1 - RCTL1 (0x00104; RW) Bit 7:0 9:8 Type RO RW Reset Description 0x0 Reserved. This bit represents a hardware reset of the receive-related portion of the device in previous controllers, but is no longer applicable. Only a full device reset CTRL.SWRST is supported. Write as 0b for future compatibility. 00b Receive Descriptor Minimum Threshold Size (RDMTS). The corresponding interrupt is set each time the fractional number of free descriptors becomes equal to RDMTS. Table 85 lists which fractional values correspond to RDMTS values. See Section 10.2.1.4.8 for details regarding RDLEN. 11:10 RW 00b Descriptor Type (DTYP). 00b = Legacy or Extended descriptor type. 01b = Packet Split descriptor type. 10b and 11b = Reserved. The value of RCTL1.DTYP should be the same as RCTL.DTYP 15:12 RO 0x0 Reserved. 17:16 RW 00b Receive Buffer Size (BSIZE). RCTL.BSEX - zero: 00b = 2048 Bytes. 01b = 1024 Bytes. 10b = 512 Bytes. 11b = 256 Bytes. RCTL.BSEX - one: 00b = Reserved. 01b = 16384 Bytes. 10b = 8192 Bytes. 11b = 4096 Bytes. BSIZE is only used when DTYP - 00b. When DTYP - 01b, the buffer sizes for the descriptor are controlled by fields in the PSRCTL register. BSIZE is not relevant when the FLXBUF is other than zero, in that case, FLXBUF determines the buffer size. 24:18 RO 0x0 Reserved. Should be written with 0b. Buffer Size Extension (BSEX). Modifies buffer size indication (BSIZE above). 0b = Buffer size is as defined in BSIZE. 1b = Original BSIZE values are multiplied by 16. 25 RW 0b 26 RW 0b Reserved. Should be written with 0b. 30:27 RW 0x0 FLXBUF. Determine a flexible buffer size. When this field is 0000b, the buffer size is determined by BSIZE. If this field is different from 0000b, the receive buffer size is the number represented in KB. For example, 0001b = 1 KB (1024 bytes). 31 RO 0b Reserved. Should be written with 0b to ensure future compatibility. 142 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.3.3 Early Receive Threshold - ERT (0x02008; RW) Bit Type Reset Description 12:0 RW 0x0 Receive Threshold Value (RxThreshold). This threshold is in units of eight bytes. 21:13 RO 0x0 Reserved. 31:22 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. This register contains the Rx threshold value. This threshold determines how many bytes of a given packet should be in the MAC's on-chip receive packet buffer before it attempts to begin transmission of the frame on the host bus. This register enables software to configure the early receive mode. This field has a granularity of eight bytes. So, if this field is written to 0x20, which corresponds to a threshold of 256 (decimal) bytes. If the size of a given packet is smaller than the threshold value, or if this register is set to 0b, then the MAC starts the PCI transfer only after the entire packet is contained in the MAC's receive packet buffer. the MAC examines this register on a cycle-by-cycle basis to determine if there is enough data to start a transfer for the given frame over the PCI bus. Once the MAC acquires the bus, it attempts to DMA all of the data collected in the internal receive packet buffer so far. The only negative affect of setting this value too low is that it causes additional PCI bursts for the packet. In other words, this register enables software to trade-off latency versus bus utilization. Too high a value effectively eliminates the early receive benefits (at least for short packets) and too low a value deteriorates PCI bus performance due to a large number of small bursts for each packet. The RUTEC statistic counts certain cases where the ERT has been set too low, and thus provides software a feedback mechanism to better tune the value of the ERT. It should also be noted that this register has an effect only when the receive packet buffer is nearly empty (the only data in the packet buffer is from the packet that is currently on the wire). Note: 143 When early receive is used in parallel to the packet split feature, the minimum value of the ERT register should be bigger than the header size to enable the actual packet split. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.3.4 Packet Split Receive Control Register - PSRCTL (0x02170) Bit Type Reset Description 6:0 RW 0x2 Receive Buffer Size for Buffer 0 (BSIZE0). The value is in 128-byte resolution. Value can be from 128 bytes to 16256 bytes (15.875 KB). Default buffer size is 256 bytes. Software should not program this field to a zero value. 7 RO 0b Reserved. Should be written with 0b to ensure future compatibility. 13:8 RW 0x4 Receive Buffer Size for Buffer 1 (BSIZE1). The value is in 1 KB resolution. Value can be from 1 KB to 63 KB. Default buffer size is 4 KB. Software should not program this field to a zero value. 15:14 RO 00b Reserved. Should be written with 0b to ensure future compatibility. 21:16 RW 0x4 Receive Buffer Size for Buffer 2 (BSIZE2). The value is in 1 KB resolution. Value can be from 1 KB to 63 KB. Default buffer size is 4 KB. Software might program this field to any value. 23:22 RO 00b Reserved. Should be written with 0b to ensure future compatibility. 29:24 RW 0x0 Receive Buffer Size for Buffer 3 (BSIZE3). The value is in 1 KB resolution. Value can be from 1 KB to 63 KB. Default buffer size is 0 KB. Software might program this field to any value. 31:30 RO 00b Reserved. Should be written with 0b to ensure future compatibility. Note: If software sets a buffer size to zero, all buffers following that one must be set to zero as well. Pointers in the receive descriptors to buffers with a zero size should be set to anything but NULL pointers. 10.2.1.3.5 Flow Control Receive Threshold Low - FCRTL (0x02160; RW) Bit Type Reset Description 2:0 RO 0x0 Reserved. The underlying bits might not be implemented in all versions of the chip. Must be written with 0b. 15:3 RW 0x0 Receive Threshold Low (RTL). FIFO low water mark for flow control transmission. 30:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. 31 RW 0b XON Enable (XONE). 0b = Disabled. 1b = Enabled. This register contains the receive threshold used to determine when to send an XON packet. It counts in units of bytes. The lower three bits must be programmed to zero (8-byte granularity). Software must set XONE to enable the transmission of XON frames. Each time hardware crosses the receive high threshold (becoming more full), and then crosses the receive low threshold and XONE is enabled (= 1b), hardware transmits an XON frame. Note that flow control reception/transmission are negotiated capabilities by the autonegotiation process. When the MAC is manually configured, flow control operation is determined by the RFCE and TFCE bits of the Device Control register. 144 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.3.6 Flow Control Receive Threshold High - FCRTH (0x02168; RW) Bit Type Reset Description 2:0 RO 0x0 Reserved. Must be written with 0. 15:3 RW 0x0 Receive Threshold High (RTH). FIFO high water mark for flow control transmission. 31:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. This register contains the receive threshold used to determine when to send an XOFF packet. It counts in units of bytes. This value must be at least eight bytes less than the maximum number of bytes allocated to the Receive Packet Buffer (PBA, RXA), and the lower three bits must be programmed to zero (8-byte granularity). Each time the receive FIFO reaches the fullness indicated by RTH, hardware transmits a PAUSE frame if the transmission of flow control frames is enabled. Note that flow control reception/transmission are negotiated capabilities by the autonegotiation process. When the MAC is manually configured, flow control operation is determined by the RFCE and TFCE bits of the Device Control register. 10.2.1.3.7 Receive Descriptor Base Address Low Queue - RDBAL (0x02800; RW) Bit Type Reset Description 3:0 RO 0x0 Reserved. Ignored on writes. Returns 0b on reads. 31:4 RW X Receive Descriptor Base Address Low (RDBAL). This register contains the lower bits of the 64-bit descriptor base address. The lower four bits are always ignored. The receive descriptor base address must point to a 16byte aligned block of data. 10.2.1.3.8 Receive Descriptor Base Address High Queue - RDBAH (0x02804; RW) Bits 31:0 Type RW Reset X Description Receive Descriptor Base Address [63:32] (RDBAH). This register contains the upper 32 bits of the 64-bit descriptor base address. 145 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.3.9 Receive Descriptor Length Queue- RDLEN (0x02808; RW) Bits Type Reset Description 6:0 RO 0x0 Reserved. Ignore on write. Reads back as 0b. 19:7 RW 0x0 Descriptor Length (LEN) 31:20 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. This register sets the number of bytes allocated for descriptors in the circular descriptor buffer. It must be 128-byte aligned. Note: The descriptor ring must be equal to or larger than eight descriptors. 10.2.1.3.10 Receive Descriptor Head Queue - RDH (0x02810; RW) Bits Type Reset Description 15:0 RW/V 0x0 Receive Descriptor Head (RDH). 31:16 RO 0x0 Reserved. Should be written with 0b. This register contains the head pointer for the receive descriptor buffer. The register points to a 16-byte datum. Hardware controls the pointer. The only time that software should write to this register is after a reset (hardware reset or CTRL.SWRST) and before enabling the receive function (RCTL.EN). If software were to write to this register while the receive function was enabled, the on-chip descriptor buffers might be invalidated and hardware could be become unstable. 10.2.1.3.11 Receive Descriptor Tail Queue - RDT (0x02818; RW) Bits Type Reset Description 15:0 RW 0x0 Receive Descriptor Tail (RDT). 31:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. This register contains the tail pointer for the receive descriptor buffer. The register points to a 16-byte datum. Software writes the tail register to add receive descriptors for hardware to process. 10.2.1.3.12 Interrupt Delay Timer (Packet Timer) - RDTR (0x02820; RW) Bits Type Reset Description 15:0 RW 0x0 Receive Delay Timer. Receive packet delay timer measured in increments of 1.024 ms. 30:16 RO 0x0 Reserved. Reads as 0b. 31 WO 0b Flush Partial Descriptor Block (FPD), when set to 1b, ignored otherwise. Reads 0b. This register is used to delay interrupt notification for the receive descriptor ring by coalescing interrupts for multiple received packets. Delaying interrupt notification helps maximize the number of receive packets serviced by a single interrupt. 146 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface This feature operates by initiating a countdown timer upon successfully receiving each packet to system memory. If a subsequent packet is received BEFORE the timer expires, the timer is re-initialized to the programmed value and re-starts its countdown. If the timer expires due to NOT having received a subsequent packet within the programmed interval, pending receive descriptor write backs are flushed and a receive timer interrupt is generated. Setting the value to 0b represents no delay from a receive packet to the interrupt notification, and results in immediate interrupt notification for each received packet. Writing this register with FPD set initiates an immediate expiration of the timer, causing a write back of any consumed receive descriptors pending write back, and results in a receive timer interrupt in the ICR. Receive interrupts due to a Receive Absolute Timer (RADV) expiration cancels a pending RDTR interrupt. The RDTR countdown timer is reloaded but stopped, so as to avoid generation of a spurious second interrupt after the RADV has been noted, but might be restarted by a subsequent received packet. Note: FPD is self-clearing. 10.2.1.3.13 Receive Descriptor Control - RXDCTL (0x02828; RW) Bits Note: Type Reset Description 5:0 RW 0x00 Prefetch Threshold (PTHRESH). 7:6 RO 0x00 Reserved. 13:8 RW 0x00 Host Threshold (HTHRESH). 14 RW 0b Reserved. 15 RW 0b Reserved. 21:16 RW 0x01 Write-Back Threshold (WTHRESH). 23:22 RO 0x00 Reserved. 24 RW 0b Granularity (GRAN). Units for the thresholds in this register. 0b = Cache lines. 1b = Descriptors. 31:25 RO 0x00 Reserved. This register was not fully validated. Software should set it to 0x0000 during normal operation. This register controls the fetching and write back of receive descriptors. The three threshold values are used to determine when descriptors is read from and written to host memory. The values might be in units of cache lines or descriptors (each descriptor is 16 bytes) based on the GRAN flag. If GRAN=zero (specifications are in cache-line granularity), the thresholds specified (based on the cache line size specified in the PCI configuration space CLS field) must not represent greater than 31 descriptors. Note: 147 When (WTHRESH = 0b) or (WTHRESH = 1b and GRAN = 1b) only descriptors with the RS bit set is written back. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY PTHRESH is used to control when a prefetch of descriptors is considered. This threshold refers to the number of valid, unprocessed receive descriptors the chip has in its onchip buffer. If this number drops below PTHRESH, the algorithm considers pre-fetching descriptors from host memory. This fetch does not happen however unless there are at least HTHRESH valid descriptors in host memory to fetch. Note: HTHRESH should be given a non-zero value when ever PTHRESH is used. WTHRESH controls the write back of processed receive descriptors. This threshold refers to the number of receive descriptors in the on-chip buffer which are ready to be written back to host memory. In the absence of external events (explicit flushes), the write back occurs only after at least WTHRESH descriptors are available for write back. Note: Possible values: GRAN = 1 (descriptor granularity): PTHRESH = 0...31 WTHRESH = 0...31 HTHRESH = 0...31 GRAN = 0 (cache line granularity): PTHRESH = 0...3 (for 16 descriptors cache line - 256 bytes) WTHRESH = 0...3 HTHRESH = 0...4 Note: For any WTHRESH value other than zero, the packet and absolute timers must get a non-zero value for WTHRESH feature to take affect. Note: Since the default value for write-back threshold is one, the descriptors are normally written back as soon as one cache line is available. WTHRESH must contain a non-zero value to take advantage of the write-back bursting capabilities of the MAC. 10.2.1.3.14 Receive Interrupt Absolute Delay Timer- RADV (0x0282C; RW) Bits Type Reset Description 15:0 RW 0x0 Receive Absolute Delay Timer. Receive absolute delay timer measured in increments of 1.024 ms (0b = disabled). 31:16 RO 0x0 Reserved. Reads as 0b. If the packet delay timer is used to coalesce receive interrupts, it ensures that when receive traffic abates, an interrupt is generated within a specified interval of no receives. During times when receive traffic is continuous, it might be necessary to ensure that no receive remains unnoticed for too long an interval. This register might be used to ENSURE that a receive interrupt occurs at some pre-defined interval after the first packet is received. When this timer is enabled, a separate absolute countdown timer is initiated upon successfully receiving each packet to system memory. When this absolute timer expires, pending receive descriptor write backs are flushed and a receive timer interrupt is generated. 148 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Setting this register to zero disables the absolute timer mechanism (the RDTR register should be used with a value of zero to cause immediate interrupts for all receive packets). Receive interrupts due to a Receive Packet Timer (RDTR) expiration cancels a pending RADV interrupt. If enabled, the RADV countdown timer is reloaded but halted, so as to avoid generation of a spurious second interrupt after the RDTR has been noted. 10.2.1.3.15 Receive Small Packet Detect Interrupt- RSRPD (0x02C00; RW) Bits Type Reset Description 11:0 RW 0x0 SIZE. If the interrupt is enabled any receive packet of size <= SIZE asserts an interrupt. SIZE is specified in bytes and includes the headers and the CRC. It does not include the VLAN header in size calculation if it is stripped. 31:12 RO X Reserved. 10.2.1.3.16 Receive ACK Interrupt Delay Register - RAID (0x02C08; RW) Bits Type Reset Description 15:0 RW 0x0 ACK_DELAY. ACK delay timer measured in increments of 1.024 ms. When the Receive ACK frame detect interrupt is enabled in the IMS register, ACK packets being received uses a unique delay timer to generate an interrupt. When an ACK is received, an absolute timer loads to the value of ACK_DELAY. The interrupt signal is set only when the timer expires. If another ACK packet is received while the timer is counting down, the timer is not reloaded to ACK_DELAY. 31:16 RO 0x0 Reserved. If an immediate (non-scheduled) interrupt is desired for any received ACK frame, the ACK_DELAY should be set to zero. 10.2.1.3.17 Receive Checksum Control - RXCSUM (0x05000; RW) Bits Type Reset Description 7:0 RW 0x00 Packet Checksum Start (PCSS). 8 RW 1b IP Checksum Offload Enable (IPOFL). 9 RW 1b TCP/UDP Checksum Offload Enable (TUOFL). 11:10 RO 00b Reserved. 12 RW 0b IP Payload Checksum Enable (IPPCSE). 13 RW 0b Packet Checksum Disable (PCSD). 14 RW 0b Reserved. 31:15 RO 0x0 Reserved. The Receive Checksum Control register controls the receive checksum offloading features of the MAC. The MAC supports the offloading of three receive checksum calculations: the packet checksum, the IP header checksum, and the TCP/UDP checksum. PCSD: The packet checksum and IP Identification fields are mutually exclusive with the RSS hash. Only one of the two options is reported in the Rx descriptor. The RXCSUM.PCSD affect is shown in the following table: 149 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY RXCSUM.PCSD 0 (Checksum Enable) 1 (Checksum Disable) Legacy Rx descriptor (RCTL.DTYP = 00b) Packet checksum is reported in the Rx descriptor Not supported Extended or header split Rx descriptor (RCTL.DTYP = 01b) Packet checksum and IP identification are reported in the Rx descriptor RSS hash value is reported in the Rx descriptor PCSS IPPCSE: The PCSS and the IPPCSE control the packet checksum calculation. As previously noted, the packet checksum shares the same location as the RSS field. The packet checksum is reported in the receive descriptor when the RXCSUM.PCSD bit is cleared. If RXCSUM.IPPCSE cleared (the default value), the checksum calculation that is reported in the Rx packet checksum field is the unadjusted 16 bit ones complement of the packet. The packet checksum starts from the byte indicated by RXCSUM.PCSS (zero corresponds to the first byte of the packet), after VLAN stripping if enabled (by CTRL.VME). For example, for an Ethernet II frame encapsulated as an 802.3ac VLAN packet and with RXCSUM.PCSS set to 14, the packet checksum would include the entire encapsulated frame, excluding the 14-byte Ethernet header (DA, SA, type/length) and the 4-byte VLAN tag. The packet checksum does not include the Ethernet CRC if the RCTL.SECRC bit is set. Software must make the required offsetting computation (to back out the bytes that should not have been included and to include the pseudoheader) prior to comparing the packet checksum against the TCP checksum stored in the packet. If the RXCSUM.IPPCSE is set, the packet checksum is aimed to accelerate checksum calculation of fragmented UDP packets. Note: The PCSS value should not exceed a pointer to IP header start or else it erroneously calculates IP header checksum or TCP/UDP checksum. RXCSUM.IPOFLD is used to enable the IP Checksum offloading feature. If RXCSUM.IPOFLD is set to one, the MAC calculates the IP checksum and indicate a pass/ fail indication to software via the IP Checksum Error bit (IPE) in the ERROR field of the receive descriptor. Similarly, if RXCSUM.TUOFLD is set to one, the MAC calculates the TCP or UDP checksum and indicate a pass/fail indication to software via the TCP/UDP Checksum Error bit (TCPE). Similarly, if RFCTL.IPv6_DIS and RFCTL.IP6Xsum_DIS are cleared to zero and RXCSUM.TUOFLD is set to one, the MAC calculates the TCP or UDP checksum for IPv6 packets. It then indicates a pass/fail condition in the TCP/UDP Checksum Error bit (RDESC.TCPE). This applies to checksum offloading only. Supported frame types: * Ethernet II * Ethernet SNAP This register should only be initialized (written) when the receiver is not enabled (only write this register when RCTL.EN = 0). 150 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.3.18 Receive Filter Control Register - RFCTL (0x05008; RW) Bits Type Reset Description 0 RW 0b iSCSI Disable (ISCSI_DIS). Disable the iSCSI filtering for header split functionality. 5:1 RW 0x0 iSCSI DWord Count (ISCSI_DWC). This field indicated the Dword count of the iSCSI header, which is used for packet split mechanism. 6 RW 0b NFS Write Disable (NFSW_DIS). Disable filtering of NFS write request headers for header split functionality. 7 RW 0b NFS Read Disable (NFSR_DIS). Disable filtering of NFS read reply headers for header split functionality. 9:8 RW 00b NFS Version (NFS_VER). 00b = NFS version 2. 01b = NFS version 3. 10b = NFS version 4. 11b = Reserved for future use. 10 RW 0b Reserved. 11 RW 0b Reserved. 0b ACK Accelerate Disable (ACKDIS). When this bit is set the MAC does not accelerate interrupt on TCP ACK packets. 12 RW 13 RW 0b ACK data Disable (ACKD_DIS). 1b = MAC recognizes ACK packets according to the ACK bit in the TCP header + No -CP data 0b = MAC recognizes ACK packets according to the ACK bit only. This bit is relevant only if the ACKDIS bit is not set. 14 RW 0b IP Fragment Split Disable (IPFRSP_DIS). When this bit is set the header of IP fragmented packets are not set. 15 RW 0b Extended Status Enable (EXSTEN). When the EXSTEN bit is set or when the packet split receive descriptor is used, the MAC writes the extended status to the Rx descriptor. 0x0 Reserved. RO 0x0 Reserved. Should be written with 0b to ensure future compatibility. 17:16 31:18 10.2.1.3.19 Multicast Table Array - MTA[31:0] (0x05200-0x0527C; RW) Bits 31:0 Type RW Reset X Description Bit Vector. Word wide bit vector specifying 32 bits in the multicast address filter table. There is one register per 32 bits of the Multicast Address Table for a total of 32 registers (thus the MTA[31:0] designation). The size of the word array depends on the number of bits implemented in the multicast address table. Software must mask to the desired bit on reads and supply a 32-bit word on writes. Note: All accesses to this table must be 32-bit. Figure 19 shows the multicast lookup algorithm. The destination address shown represents the internally stored ordering of the received DA. Note that Byte 1 bit 0 indicated in this diagram is the first on the wire. The bits that are directed to the multicast table array in this diagram match a Multicast offset in the CTRL equals 00b. The complete multicast offset options are: 151 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Multicast Offset Figure 19. Bits Directed to the Multicast Table Array 00b DA[47:38] = Byte 6 bits 7:0, Byte 5 bits 7:6 01b DA[46:37] = Byte 6 bits 6:0, Byte 5 bits 7:5 10b DA[45:36] = Byte 6 bits 5:0, Byte 5 bits 7:4 11b DA[43:34] = Byte 6 bits 3:0, Byte 5 bits 7:2 Multicast Table Array Algorithm 10.2.1.3.20 Receive Address Low - RAL (0x05400 + 8*n (n=0...6); RW) While "n" is the exact unicast/multicast address entry and it is equals to 0,1,...6. Bits 31:0 Type RW Reset X Description Receive Address Low (RAL). The lower 32 bits of the 48-bit Ethernet address n (n=0, 1...6). RAL 0 is loaded from words 0 and 1 in the NVM. 10.2.1.3.21 Receive Address High - RAH (0x05404 + 8*n (n=0...6); RW) While "n" is the exact unicast/multicast address entry and it is equals to 0,1,...6. 152 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bits 15:0 Type RW Reset Description X Receive Address High (RAH). The upper 16 bits of the 48-bit Ethernet address n (n=0, 1...6). RAH 0 is loaded from word 2 in the NVM. 17:16 RW X Address Select (ASEL). Selects how the address is to be used. Decoded as follows: 00b = Destination address (must be set to this in normal mode). 01b = Source address. 10b = Reserved. 11b = Reserved. 18 RW 0b VMDq output index (VIND). Defines the VMDq output index associated with a receive packet that matches this MAC address (RAH and RAL). 30:19 RO 0x0 Reserved. Reads as 0b. Ignored on write. 31 RW See as follows Address Valid (AV). Cleared after master reset. If the NVM is present, the Address Valid field of the Receive Address Register 0 is set to 1b after a software or PCI reset or NVM read. This bit is cleared by master (software) reset. AV determines whether this address is compared against the incoming packet. AV is cleared by a master (software) reset. ASEL enables the MAC to perform special filtering on receive packets. Note: The first receive address register (RAR0) is also used for exact match pause frame checking (DA matches the first register). Therefore RAR0 should always be used to store the individual Ethernet MAC address of the adapter. After reset, if the NVM is present, the first register (Receive Address register 0) is loaded from the IA field in the NVM, its Address Select field is 00b, and its Address Valid field is 1b. If no NVM is present the Address Valid field is 0b. The Address Valid field for all of the other registers is zero. 10.2.1.3.22 Shared Receive Address Low - SHRAL[n] (0x05438 + 8*n (n=0...3); RW) Bits 31:0 Type RW Reset X Description Receive Address Low (RAL). The lower 32 bits of the 48-bit Ethernet address n (n=0...3). 10.2.1.3.23 Shared Receive Address High 0...2 - SHRAH[n] (0x0543C + 8*n (n=0...2); RW) Bits 153 Type Reset Description 15:0 RW X Receive Address High (RAH). The upper 16 bits of the 48-bit Ethernet address n (n=0...3). 17:16 RO 00b Address Select (ASEL). Selects how the address is to be used. 00b means that it is used to decode the destination MAC address. 18 RW 0b VMDq output index (VIND). Defines the VMDq output index associated with a receive packet that matches this MAC address (RAH and RAL). 30:19 RO 0x0 Reserved. Reads as 0b. Ignored on write. 31 RW 0b Address valid (AV). When this bit is set, the relevant RAL,RAH are valid (compared against the incoming packet). Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.3.24 Shared Receive Address High 3 - SHRAH[3] (0x05454; RW) Bits Type Reset Description 15:0 RW X Receive Address High (RAH). The upper 16 bits of the 48-bit Ethernet address n (n=0...3). 17:16 RO 00b Address Select (ASEL). Selects how the address is to be used. 00b means that it is used to decode the destination MAC address. 18 RW 0b VMDq output index (VIND). Defines the VMDq output index associated with a receive packet that matches this MAC address (RAH and RAL). 29:19 RO 0x0 Reserved. Reads as 0b. Ignored on write. 30 RW 0b All Nodes Multicast Address valid (MAV). The all nodes multicast address (33:33:00:00:00:01) is valid when this bit is set. Note that 0x33 is the first byte on the wire. 31 RW 0b Address valid (AV). When this bit is set the relevant address 3 is valid (compared against the incoming packet). 10.2.1.3.25 Multiple Receive Queues Command register - MRQC (0x05818; RW) Bits 1:0 Type RW 15:2 Reset Description 0x00b Multiple Receive Queues Enable (MRxQueue). Enables support for multiple receive queues and defines the mechanism that controls queue allocation. This field can be modified only when receive to host is not enabled (RCTL.EN = 0). 00b = Multiple receive queues are disabled. 01b = Multiple receive queues as defined by Microsoft* RSS. The RSS field enable bits define the header fields used by the hash function. 10b = VMDq enable, enables VMDq operation as defined in section receive. queuing for virtual machine devices. 11b = Reserved. 0x0 Reserved. 21:16 RW 0x0 RSS Field Enable. Each bit, when set, enables a specific field selection to be used by the hash function. Several bits can be set at the same time. Bit[16] = Enable TcpIPv4 hash function. Bit[17] = Enable IPv4 hash function. Bit[18] = Enable TcpIPv6 hash function. Bit[19] = Enable IPv6Ex hash function. Bit[20] = Enable IPv6 hash function. Bit[21] = Reserved. 31:22 RO 0x0 Reserved. 154 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.3.26 Redirection Table - RETA (0x05C00 + 4*n (n=0...31); RW) The re-direction table is a 32 entry table. Each entry is composed of four tags each 8bits wide. Only the first or last six bits of each tag are used (five bits for the CPU index and 1 bit for queue index). Offset 0x05C00 + n*4 Bits Note: Type 31:24 Tag 4*n+3 23:16 Tag 4*n+2 Reset 15:8 Tag 4*n+1 7:0 Tag 4*n Description 4:0 RW X CPU INDX 0. CPU index for Tag 4*n (n=0,1,...31). 6:5 RO X Reserved. 7 RW X QUE INDX 0. Queue Index for Tag 4*n (n=0,1,...31). 12:8 RW X CPU INDX 1. CPU index for Tag 4*n+1 (n=0,1,...31). 14:13 RO X Reserved. 15 RW X QUE INDX 1. Queue Index for Tag 4*n+1 (n=0,1,...31). 20:16 RW X CPU INDX 2. CPU index for Tag 4*n+2 (n=0,1,...31). 22:21 RO X Reserved. 23 RW X QUE INDX 2. Queue Index for Tag 4*n+2 (n=0,1,...31). 28:24 RW X CPU INDX 3. CPU index for Tag 4*n+3 (n=0,1,...31). 30:29 RO X Reserved. 31 RW X QUE INDX 3. Queue Index for Tag 4*n+3 (n=0,1,...31). RETA cannot be read when RSS is enabled. 10.2.1.3.27 Random Key Register - RSSRK (0x05C80 + 4*n (n=0...9); RW) The RSS Random Key register stores a 40-byte key (10 Dword entry table) used by the RSS hash function. Bits 155 Type Reset Description 7:0 RW 0x0 K0. Byte n*4 of the RSS random key (n=0,1,...9). 15:8 RW 0x0 K1. Byte n*4+1 of the RSS random key (n=0,1,...9). 23:16 RW 0x0 K2. Byte n*4+2 of the RSS random key (n=0,1,...9). 31:24 RW 0x0 K3. Byte n*4+3 of the RSS random key (n=0,1,...9). Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.4 Transmit Register Descriptions 10.2.1.4.1 Transmit Control Register - TCTL (0x00400; RW) Bits Type Reset Description 0 RW 0b IP Identification 15 bit (IPID15). When set to 1b, the IP Identification field is incremented and wrapped around on 15-bit base. For example, if IP ID is equal to 0x7FFF then the next value is 0x0000; if IP ID is equal to 0xFFFF then the next value is 0x8000. When set to 0b, the IP Identification field is incremented and wrapped around on 16-bit base. In this case, the value following 0x7FFF is 0x8000, and the value following 0xFFFF is 0x0000. The purpose of this feature is to enable the software to manage two sub-groups of connections. 1 RW 0b Enable (EN). The transmitter is enabled when this bit is set to 1b. Writing this bit to 0b stops transmission after any in-progress packets are sent. Data remains in the transmit FIFO until the MAC is re-enabled. Software should combine this with reset if the packets in the FIFO should be flushed. 2 RO 0b Reserved. Reads as 0b. Should be written to 0b for future compatibility. 1b Pad Short Packets (PSP). With valid data, NOT padding symbols. 0b = Do not pad 1b = Pad. Padding makes the packet 64 bytes. This is not the same as the minimum collision distance. If padding of short packets is allowed, the value in Tx descriptor length field should be not less than 17 bytes. 3 RW 11:4 RW 0x0F Collision Threshold (CT). This determines the number of attempts at retransmission prior to giving up on the packet (not including the first transmission attempt). While this can be varied, it should be set to a value of 15 in order to comply with the IEEE specification requiring a total of 16 attempts. The Ethernet back-off algorithm is implemented and clamps to the maximum number of slottimes after 10 retries. This field only has meaning when in half-duplex operation. 21:12 RW 0x3F Collision Distance (COLD). Specifies the minimum number of byte times that must elapse for proper CSMA/CD operation. Packets are padded with special symbols, not valid data bytes. Hardware checks and pads to this value plus one byte even in full-duplex operation. Default value is 64-byte to 512-byte times. 22 RW/V 0b Software XOFF Transmission (SWXOFF). When set to a 1b, the MAC schedules the transmission of an XOFF (PAUSE) frame using the current value of the PAUSE timer. This bit self clears upon transmission of the XOFF frame. 23 RW 0b Reserved. 24 RW 0b Re-transmit on Late Collision (RTLC). Enables the MAC to re-transmit on a late collision event. 27:25 RW 0x0 Reserved. Used to be UNORTX and TXDSCMT in predecessors. 28 1b Reserved. 30:29 RW 01b Read Request Threshold (RRTHRESH). These bits define the threshold size for the intermediate buffer to determine when to send the read command to the packet buffer. Threshold is defined as follow: RRTHRESH - 00b Threshold - 2 lines of 16 bytes. RRTHRESH - 01b Threshold - 4 lines of 16 bytes. RRTHRESH - 10b Threshold - 8 lines of 16 bytes. RRTHRESH - 11b Threshold - No threshold (transfer data after all of the request is in the RFIFO). 31 RO 0b Reserved. Reads as 0. Should be written to 0 for future compatibility. Two fields deserve special mention: CT and COLD. Software might choose to abort packet transmission in less than the Ethernet mandated 16 collisions. For this reason, hardware provides CT. 156 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Wire speeds of 1000 Mb/s result in a very short collision radius with traditional minimum packet sizes. COLD specifies the minimum number of bytes in the packet to satisfy the desired collision distance. It is important to note that the resulting packet has special characters appended to the end. These are NOT regular data characters. Hardware strips special characters for packets that go from 1000 Mb/s environments to 100 Mb/s environments. Note that hardware evaluates this field against the packet size in full duplex as well. Note: While 802.3x flow control is only defined during full-duplex operation, the sending of PAUSE frames via the SWXOFF bit is not gated by the duplex settings within the MAC. Software should not write a 1b to this bit while the MAC is configured for half-duplex operation. RTLC configures the MAC to perform re-transmission of packets when a late collision is detected. Note that the collision window is speed dependent: 64 bytes for 10/100 Mb/s and 512 bytes for 1000 Mb/s operation. If a late collision is detected when this bit is disabled, the transmit function assumes the packet is successfully transmitted. This bit is ignored in full-duplex mode. 10.2.1.4.2 Transmit IPG Register - TIPG (0x00410; RW) Bits Type Reset Description 9:0 RW 0x8 IPG Transmit Time (IPGT). Specifies the IPG length for back-to-back transmissions equal to [(IPGT+4) x 8] bit time. 19:10 RW 0x8 IPG Receive Time 1 (IPGR1). Specifies the defer IPG part 1 (during which carrier sense is monitored). Equal to (IPGR1 x 8) when DJHDX=0 and equals to (IPGR1+2) x 8 when DJHDX=1. 29:20 RW 0x9 IPG Receive Time 2 (IPGR2). Specifies the defer IPG. Equal to (IPGR2+3) x 8 when DJHDX=0 and equal to (IPGR2+5) x 8 when DJHDX=1. 31:30 RO 00b Reserved. Reads as 0b. Should be written to 0b for future compatibility. This register controls the Inter Packet Gap (IPG) timer. IPGT specifies the IPG length for back-to-back transmissions in both full and half duplex. Note that an offset of 4-byte times is added to the programmed value to determine the total IPG. Therefore, a value of eight is recommended to achieve a 12-byte time IPG. IPGR1 specifies the portion of the IPG in which the transmitter defers to receive events. This should be set to 2/3 of the total effective IPG, or eight. IPGR specifies the total IPG time for non back-to-back transmissions (transmission following deferral) in half duplex. An offset of 5-byte times is added to the programmed value to determine the total IPG after a defer event. Therefore, a value of seven is recommended to achieve a 12-byte time effective IPG for this case. Note the IPGR should never be set to a value greater than IPGT. If IPGR is set to a value equal to or larger than IPGT, it overrides the IPGT IPG setting in half duplex, resulting in inter packet gaps that are larger than intended by IPGT in that case. Full duplex is unaffected by this, and always relies on IPGT only. In summary, the recommended TIPG value to achieve 802.3 compliant minimum transmit IPG values in full and half duplex is 0x00702008. 157 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.4.3 Adaptive IFS Throttle - AIT (0x00458; RW) Bits Type Reset Description 15:0 RW 0x0000 Adaptive IFS value (AIFS). This value is in units of 8 ns. 31:16 RO 0x0000 Reserved. This field should be written with 0b. Adaptive IFS throttles back-to-back transmissions in the transmit packet buffer and delays their transfer to the CSMA/CD transmit function, and thus can be used to delay the transmission of back-to-back packets on the wire. Normally, this register should be set to zero. However, if additional delay is desired between back-to-back transmits, then this register might be set with a value greater than zero. The Adaptive IFS field provides a similar function to the IPGT field in the TIPG register (see Section 10.2.1.5.2). However, it only affects the initial transmission timing, not retransmission timing. Note: If the value of the AdaptiveIFS field is less than the IPGTransmitTime field in the Transmit IPG registers then it has no effect, as the chip selects the maximum of the two values. 10.2.1.4.4 Transmit Descriptor Base Address Low - TDBAL (0x03800 + n*0x100[n=0..1]; RW) Bits Type Reset Description 3:0 RO 0x0 Reserved. Ignored on writes. Returns 0b on reads 31:4 RW X Transmit Descriptor Base Address Low (TDBAL) This register contains the lower bits of the 64-bit descriptor base address. The lower four bits are ignored. The transmit descriptor base address must point to a 16-byte aligned block of data. 10.2.1.4.5 Transmit Descriptor Base Address High - TDBAH (0x03804 + n*0x100[n=0..1]; RW) Bits 31:0 Type RW Reset X Description Transmit Descriptor Base Address [63:32] (TDBAH). This register contains the upper 32 bits of the 64-bit descriptor base address. 158 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.4.6 Transmit Descriptor Length - TDLEN (0x03808 ; RW) Bits Type Reset Description 6:0 RO 0x0 Reserved. Ignore on write. Reads back as 0b. 19:7 RW 0x0 Descriptor Length (LEN). 31:20 RO 0x0 Reserved. Reads as 0b. Should be written to 0b. This register contains the descriptor length and must be 128-byte aligned. Note: The descriptor ring must be equal to or larger than eight descriptors. 10.2.1.4.7 Transmit Descriptor Head - TDH (0x03810; RW) Bits Type Reset Description 15:0 RW/V 0x0 Transmit Descriptor Head (TDH). 31:16 RO 0x0 Reserved. Should be written with 0b. This register contains the head pointer for the transmit descriptor ring. It points to a 16-byte datum. Hardware controls this pointer. The only time that software should write to this register is after a reset (hardware reset or CTRL.SWRST) and before enabling the transmit function (TCTL.EN). If software were to write to this register while the transmit function was enabled, the on-chip descriptor buffers might be invalidated and hardware could be become confused. 10.2.1.4.8 Transmit Descriptor Tail - TDT (0x03818; RW) Bits Type Reset Description 15:0 RW 0x0 Transmit Descriptor Tail (TDT). 31:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0 for future compatibility. Note: This register contains the tail pointer for the transmit descriptor ring. It points to a 16byte datum. Software writes the tail pointer to add more descriptors to the transmit ready queue. Hardware attempts to transmit all packets referenced by descriptors between head and tail. 10.2.1.4.9 Transmit Interrupt Delay Value - TIDV (0x03820; RW) Bits 15:0 Type RW Reset 0x0 Description Interrupt Delay Value (IDV). Counts in units of 1.024 ms. A value of zero is not allowed. 30:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. 31 WO 0b Flush Partial Descriptor Block (FPD). when set to 1b; ignored otherwise. Reads 0b. This register is used to delay interrupt notification for transmit operations by coalescing interrupts for multiple transmitted buffers. Delaying interrupt notification helps maximize the amount of transmit buffers reclaimed by a single interrupt. This feature ONLY applies to transmit descriptor operations where (a) interrupt-based reporting is requested (RS set) and (b) the use of the timer function is requested (IDE is set). 159 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY This feature operates by initiating a countdown timer upon successfully transmitting the buffer. If a subsequent transmit delayed-interrupt is scheduled BEFORE the timer expires, the timer is re-initialized to the programmed value and re-starts its countdown. When the timer expires, a transmit-complete interrupt (ICR.TXDW) is generated. Setting the value to zero is not allowed. If an immediate (non-scheduled) interrupt is desired for any transmit descriptor, the descriptor IDE should be set to zero. The occurrence of either an immediate (non-scheduled) or absolute transmit timer interrupt halts the TIDV timer and eliminate any spurious second interrupts. Transmit interrupts due to a Transmit Absolute Timer (TADV) expiration or an immediate interrupt (RS/RSP=1b, IDE=0b) cancels a pending TIDV interrupt. The TIDV countdown timer is reloaded but halted, though it might be restarted by a processing a subsequent transmit descriptor. Writing this register with FPD set initiates an immediate expiration of the timer, causing a write back of any consumed transmit descriptors pending write back, and results in a transmit timer interrupt in the ICR. Note: FPD is self-clearing. 160 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.4.10 Transmit Descriptor Control - TXDCTL (0x03828; RW) Note: This register was not fully validated. Software should set it to 0x0000 during nominal operation. Bits Type Reset Description 5:0 RW 0x00 Prefetch Threshold (PTHRESH). 7:6 RO 0x00 Reserved. 13:8 RW 0x00 Host Threshold (HTHRESH). 15:14 RO 0x00 Reserved. 21:16 RW 0x00 Write-Back Threshold (WTHRESH). 23:22 RO 0x00 Reserved. 24 RW 0x0 Granularity (GRAN). Units for the thresholds in this register. 0b = Cache lines. 1b = Descriptors. 31:25 RW 0x0 Transmit descriptor Low Threshold (LWTHRESH). Interrupt asserted when the number of descriptors pending service in the transmit descriptor queue (processing distance from the TDT) drops below this threshold. This register controls the fetching and write back of transmit descriptors. The three threshold values are used to determine when descriptors is read from and written to host memory. The values might be in units of cache lines or descriptors (each descriptor is 16 bytes) based on the GRAN flag. Note: When GRAN = one all descriptors is written back (even if not requested). PTHRESH is used to control when a prefetch of descriptors is considered. This threshold refers to the number of valid, unprocessed transmit descriptors the chip has in its onchip buffer. If this number drops below PTHRESH, the algorithm considers pre-fetching descriptors from host memory. This fetch does not happen however, unless there are at least HTHRESH valid descriptors in host memory to fetch. Note: HTHRESH should be given a non-zero value each time PTHRESH is used. WTHRESH controls the write back of processed transmit descriptors. This threshold refers to the number of transmit descriptors in the on-chip buffer which are ready to be written back to host memory. In the absence of external events (explicit flushes), the write back occurs only after at least WTHRESH descriptors are available for write back. Possible values: GRAN = 1 (descriptor granularity): PTHRESH = 0..31 WTHRESH = 0..31 HTHRESH = 0..31 GRAN = 0 (cacheline granularity): PTHRESH = 0..3 (for 16 descriptors cacheline - 256 bytes) 161 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY WTHRESH = 0..3 HTHRESH = 0..4 Note: For any WTHRESH value other than zero - The packet and absolute timers must get a non zero value for the WTHRESH feature to take affect. Note: Since the default value for write-back threshold is zero, descriptors are normally written back as soon as they are processed. WTHRESH must be written to a non-zero value to take advantage of the write-back bursting capabilities of the MAC. If the WTHRESH is written to a non-zero value then all of the descriptors are written back consecutively no matter the setting of the RS bit. Since write back of transmit descriptors is optional (under the control of RS bit in the descriptor), not all processed descriptors are counted with respect to WTHRESH. Descriptors start accumulating after a descriptor with RS is set. Furthermore, with transmit descriptor bursting enabled, all of the descriptors are written back consecutively no matter the setting of the RS bit. LWTHRESH controls the number of pre-fetched transmit descriptors at which a transmit descriptor-low interrupt (ICR.TXD_LOW) is reported. This might enable software to operate more efficiently by maintaining a continuous addition of transmit work, interrupting only when hardware nears completion of all submitted work. LWTHRESH specifies a multiple of eight descriptors. An interrupt is asserted when the number of descriptors available transitions from (threshold level=8*LWTHRESH)+1 (threshold level=8*LWTHRESH). Setting this value to zero disables this feature. 10.2.1.4.11 Transmit Absolute Interrupt Delay Value-TADV (0x0382C; RW) Bits Type Reset Description 15:0 RW 0x0 Interrupt Delay Value (IDV). Counts in units of 1.024 ms. (0b = disabled) 31:16 RO 0x0 Reserved. Reads as 0b. Should be written to 0b for future compatibility. The transmit interrupt delay timer (TIDV) might be used to coalesce transmit interrupts. However, it might be necessary to ensure that no completed transmit remains unnoticed for too long an interval in order ensure timely release of transmit buffers. This register might be used to ENSURE that a transmit interrupt occurs at some predefined interval after a transmit is completed. Like the delayed-transmit timer, the absolute transmit timer ONLY applies to transmit descriptor operations where (a) interrupt-based reporting is requested (RS set) and (b) the use of the timer function is requested (IDE is set). This feature operates by initiating a countdown timer upon successfully transmitting the buffer. When the timer expires, a transmit-complete interrupt (ICR.TXDW) is generated. The occurrence of either an immediate (non-scheduled) or delayed transmit timer (TIDV) expiration interrupt halts the TADV timer and eliminate any spurious second interrupts. Setting the value to zero disables the transmit absolute delay function. If an immediate (non-scheduled) interrupt is desired for any transmit descriptor, the descriptor IDE should be set to zero. 162 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface 10.2.1.5 Power Management Register Descriptions 10.2.1.5.1 Wake Up Control Register - WUC (0x05800; RW) Bits Type Reset Description 0 RW/ SN 0b Advance Power Management Enable (APME). 1b = APM Wakeup is enabled. 0b = APM Wakeup is disabled. Loaded from the NVM word 0x0A. 1 RW/V 0b PME_En. This read/write bit is used by the driver to access the PME_En bit of the Power Management Control / Status Register (PMCSR) without writing to PCI configuration space. 2 RWC 0b PME_Status. This bit is set when the MAC receives a wake-up event. It is the same as the PME_Status bit in the PMCSR. Writing a 1b to this bit clears it, and also clears the PME_Status bit in the PMCSR. 3 RW 4 RW/ SN 0b Link Status Change Wake Enable (LSCWE). Enables wake on link status change as part of APM wake capabilities. 5 RW/ SN 0b Link Status Change Wake Override (LSCWO). If set to 1b, wake on link status change does not depend on the LNKC bit in the Wake Up Filter Control (WUFC) register. Instead, it is determined by the APM settings in the WUC register. 7:6 RO 00b Reserved. 8 RW/ SN 0b Phy_Wake. This bit indicates if the 82577 connected to the MAC supports wake up. This bit is loaded from NVM word 0x13, bit 8. 29:9 RO 0x0 Reserved. Reads as 0. 31:30 RO 00b Reserved. 1b Assert PME On APM Wakeup (APMPME). If set to 1b, the MAC sets the PMCSR and asserts Host_Wake when APM wake up is enabled and the MAC receives a matching magic packet. The PME_Status bits are cleared in the following conditions: * If there is VAUX, then the PME Status bits should be cleared by: -- LAN_RST# or PCI reset -- Explicit software clear * If there is NO VAUX, then the PME Status bits should be cleared by: -- LAN_RST# or PCI reset -- PCI reset de-assertion -- Explicit software clear 163 Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.5.2 Wake Up Filter Control Register - WUFC (0x05808; RW) Bits Type Reset Description 0 RW 0b LNKC. Link Status Change Wake Up Enable. 1 RW 0b MAG. Magic Packet Wake Up Enable. 2 RW 0b EX. Directed Exact Wake Up Enable. 3 RW 0b MC. Directed Multicast Wake Up Enable. 4 RW 0b BC. Broadcast Wake Up Enable. 5 RW 0b IPv4. Request Packet Wake Up Enable. 6 RW 0b IPV4. Directed IPv4 Packet Wake Up Enable. 7 RW 0b IPV6. Directed IPv6 Packet Wake Up Enable. 14:8 RO 0x0 Reserved. 15 RW 0b NoTCO. Ignore TCO Packets for TCO. If the NoTCO bit is set, then any packet that passes the manageability packet filtering does not cause a wake up event even if it passes one of the wake up filters. 16 RW 0b FLX0. Flexible Filter 0 Enable. 17 RW 0b FLX1. Flexible Filter 1 Enable. 18 RW 0b FLX2. Flexible Filter 2 Enable. 19 RW 0b FLX3. Flexible Filter 3 Enable. 20 RW 0b FLX4. Flexible Filter 4 Enable. 21 RW 0b FLX5. Flexible Filter 5 Enable. 31:2 RO 0x0 Reserved. This register is used to enable each of the pre-defined and flexible filters for wake up support. A value of 1b means the filter is turned on, and a value of 0b means the filter is turned off. 10.2.1.5.3 Wake Up Status Register - WUS (0x05810; RW) Bits Type Reset Description 0 RW 0b LNKC. Link Status Changed. 1 RW 0b MAG. Magic Packet Received. 2 RW 0b EX. Directed Exact Packet Received. The packet's address matched one of the seven pre-programmed exact values in the Receive Address registers. 3 RW 0b MC. Directed Multicast Packet Received. The packet was a multicast packet that hashed to a value corresponding to a one bit in the Multicast Table Array. 4 RW 0b BC. Broadcast Packet Received. 5 RW 0b IPv4. Request Packet Received. 6 RW 0b IPV4. Directed IPv4 Packet Received. 7 RW 0b IPV6. Directed IPv6 Packet Received. 15:8 RO 0x0 Reserved. Read as 0b. 16 RW 0b FLX0. Flexible Filter 0 Match. 17 RW 0b FLX1. Flexible Filter 1 Match. 18 RW 0b FLX2. Flexible Filter 2 Match. 19 RW 0b FLX3. Flexible Filter 3 Match. 164 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bits Type Reset Description 20 RW 0b FLX4. Flexible Filter 4 Match. 21 RW 0b FLX5. Flexible Filter 5 Match. 31:2 RO 0x0 Reserved. This register is used to record statistics about all wake-up packets received. A packet that matches multiple criteria might set multiple bits. Writing a 1b to any bit clears that bit. This register is not cleared when PCI_RST_N is asserted. It is only cleared when LAN_RST# is de-asserted or when cleared by the driver. 10.2.1.5.4 IP Address Valid - IPAV (0x5838; RW) The IP address valid indicates whether the IP addresses in the IP address table are valid: Bits 10.2.1.5.5 Type Reset Description 0 RO 0b Reserved. 1 RW 0b V41. IPv4 Address 1 Valid. 2 RW 0b V42. IPv4 Address 2 Valid. 3 RW 0b V43. IPv4 Address 3 Valid. 15:4 RO 0x00 Reserved. 16 RW 0b V60. IPv6 Address Valid. 31:17 RO 0x00 Reserved. IPv4 Address Table - IP4AT (0x05840 + 8*n (n=1...3); RW) The IPv4 address table is used to store the three IPv4 addresses for IPv4 request packet and directed IPv4 packet wake up. It is a 4-entry table with the following format: Bits 31:0 Type RW Reset X Description IPADD. IP Address n (n=1, 2, 3). The register at address 0x5840 (n=0) was used in predecessors and reserved in the Intel(R) 5 Series Express Chipset. 10.2.1.5.6 IPv6 Address Table - IP6AT (0x05880 + 4*n (n=0...3); RW) The IPv6 address table is used to store the IPv6 address for directed IPv6 packet wake up and manageability traffic filtering. The IP6AT has the following format: Bits 31:0 165 Type RW Reset X Description IPV6 Address. IPv6 Address bytes n*4...n*4+3 (n=0, 1, 2, 3) while byte 0 is first on the wire and byte 15 is last. Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY 10.2.1.5.7 Flexible Filter Length Table - FFLT (0x05F00 + 8*n (n=0...5); RW) There are six flexible filters Lengths. The flexible filter length table stores the minimum packet lengths required to pass each of the flexible filters. Any packets that are shorter than the programmed length does not pass that filter. Each flexible filter considers a packet that does not have any mismatches up to that point to have passed the flexible filter when it reaches the required length. It does not check any bytes past that point. Bits Type Reset Description 10:0 RW X LEN. Minimum Length for Flexible Filter n. 31:11 RO X Reserved. All reserved fields read as 0b's and ignore writes. Note: Before writing to the flexible filter length table the driver must first disable the flexible filters by writing 0b's to the Flexible Filter Enable bits of the Wake Up Filter Control register (WUFC.FLXn). 10.2.1.5.8 Flexible Filter Mask Table - FFMT (0x09000 + 8*n (n=0...127); RW) There are 128 mask entries. The flexible filter mask and table is used to store the four 1-bit masks for each of the first 128 data bytes in a packet, one for each flexible filter. If the mask bit is 1b, the corresponding flexible filter compares the incoming data byte at the index of the mask bit to the data byte stored in the flexible filter value table. Bits Type Reset Description 0 RW X Mask 0. Mask for filter 0 byte n (n=0, 1... 127). 1 RW X Mask 1. Mask for filter 1 byte n (n=0, 1... 127). 2 RW X Mask 2. Mask for filter 2 byte n (n=0, 1... 127). 3 RW X Mask 3. Mask for filter 3 byte n (n=0, 1... 127). 4 RW X Mask 4. Mask for filter 4 byte n (n=0, 1... 127). 5 RW X Mask 5. Mask for filter 5 byte n (n=0, 1... 127). 31: RO X Reserved. Note: The table is organized to permit expansion to eight (or more) filters and 256 bytes in a future product without changing the address map. Note: Before writing to the flexible filter mask table the driver must first disable the flexible filters by writing 0b's to the Flexible Filter Enable bits of the Wake Up Filter Control register (WUFC.FLXn). 10.2.1.5.9 Flexible Filter Value Table - FFVT (0x09800 + 8*n (n=0...127); RW) There are 128 filter values. The flexible filter value is used to store the one value for each byte location in a packet for each flexible filter. If the corresponding mask bit is 1b, the flexible filter compares the incoming data byte to the values stored in this table. Bits 7:0 Type RW Reset X Description Value 0. Value of filter 0 byte n (n=0, 1... 127). 166 82577 GbE PHY--Intel(R) 5 Series Express Chipset MAC Programming Interface Bits Type Reset Description 15:8 RW X Value 1. Value of filter 1 byte n (n=0, 1... 127). 23:16 RW X Value 2. Value of filter 2 byte n (n=0, 1... 127). 31:24 RW X Value 3. Value of filter 3 byte n (n=0, 1... 127). Before writing to the flexible filter value table the driver must first disable the flexible filters by writing 0b's to the Flexible Filter Enable bits of the Wake Up Filter Control register (WUFC.FLXn). 10.2.1.5.10 Flexible Filter Value Table - FFVT2 (0x09804 + 8*n (n=0...127); RW) There are 128 filter values. The flexible filter value is used to store the one value for each byte location in a packet for each flexible filter. If the corresponding mask bit is 1b, the flexible filter compares the incoming data byte to the values stored in this table. Bit Note: 167 Type Reset Description 7:0 RW X Value 4. Value of filter 4 byte n (n=0, 1... 127). 15:8 RW X Value 5. Value of filter 5 byte n (n=0, 1... 127). Before writing to the flexible filter value table the driver must first disable the flexible filters by writing 0b's to the Flexible Filter Enable bits of the Wake Up Filter Control register (WUFC.FLXn). Intel(R) 5 Series Express Chipset MAC Programming Interface--82577 GbE PHY Note: This page intentionally left blank. 168 82577 GbE PHY--Electrical and Timing Specifications 11.0 Electrical and Timing Specifications 11.1 Introduction This section describes the 82577's recommended operating conditions, power delivery, DC electrical characteristics, power sequencing and reset requirements, PCIe specifications, reference clock, and packaging information. 11.2 Operating Conditions 11.2.1 Absolute Maximum Ratings Symbol Parameter Min Max Units Tcase Case Temperature Under Bias 0 106 C Tstorage Storage Temperature Range -40 125 C Vi/Vo 3.3 Vdc I/O Voltage Analog 1.0 Vdc I/O Voltage 0.3 0.3 5.0 1.8 Vdc VCC 3.3 Vdc Periphery DC Supply Voltage 0.3 5.0 Vdc VCC1p0 1.0 Vdc Supply Voltage 0.3 1.8 Vdc Notes: 1. Ratings in this table are those beyond which permanent device damage is likely to occur. These values should not be used as the limits for normal device operation. Exposure to absolute maximum rating conditions for extended periods might affect device reliability. 2. Recommended operation conditions require accuracy of power supply of +/-5% relative to the nominal voltage. 3. Maximum ratings are referenced to ground (VSS). 169 Electrical and Timing Specifications--82577 GbE PHY 11.2.2 Recommended Operating Conditions Symbol Parameter Min Max Units Ta Operating Temperature Range Commercial (Ambient; 0 CFS airflow) 0 851 C 1. For normal device operation, adhere to the limits in this table. Sustained operations of a device at conditions exceeding these values, even if they are within the absolute maximum rating limits, can result in permanent device damage or impaired device reliability. Device functionality to stated Vdc and V ac limits is not guaranteed if conditions exceed recommended operating conditions. 11.2.3 ESD Specifications Title Specification Human body model JESD22-A114 Charged device model JESD22-C101 Machine model JESD22_A115 Cable discharge event N/A 11.3 Power Delivery 11.3.1 Voltage Regulator Power Supply Specifications Note: These requirements apply when using an external power source. 11.3.1.1 3.3 Vdc Rail Title Description Min Max Units Rise Time Time from 10% to 90% mark 0.1 100 mS Monotonicity Voltage dip allowed in ramp N/A 0 mV Slope Ramp rate at any given time between 10% and 90% Min: 0.8*V(min)/Rise time (max) Max: 0.8*V(max)/Rise time (min) 24 28800 V/S Operational Range Voltage range for normal operating conditions 3.13 3.46 V Ripple Maximum voltage ripple (peak to peak) N/A 70 mV Overshoot Maximum overshoot allowed N/A 100 mV 170 82577 GbE PHY--Electrical and Timing Specifications 11.3.1.2 1.0 Vdc Rail Title Description Min Max Units Rise Time Time from 10% to 90% mark 0.1 40 mS Monotonicity Voltage dip allowed in ramp N/A 0 mV Slope Ramp rate at any given time between 10% and 90% Min: 0.8*V(min)/Rise time (max) Max: 0.8*V(max)/Rise time (min) 7.6 8400 V/S Operational Range Voltage range for normal operating conditions 0.95 1.155 Vdc Ripple Maximum voltage ripple (peak to peak) N/A 50 mV Overshoot Maximum overshoot allowed N/A 100 mV Decoupling Capacitance Capacitance range 10 30 F Capacitance ESR Equivalent series resistance of output capacitance 5 50 m 11.3.1.3 PNP Specifications Title Description Min Units VCBO 20 Vdc VCEO 20 Vdc IC(max) 1 A IC(peak) 1.2 A W Ptot Minimum total dissipated power @ 25 C ambient temperature 1.5 hFE DC current gain @ Vce = -10 Vdc, Ic = 500 mA 85 hfe AC current gain @ Ic = 50 mA VCE = -10 Vdc, f = 20 MHz 2.5 Cc Collector capacitance @ VCB=-5 Vdc, f = 1 MHz fT Transition frequency @ Ic = 10 mA, VCE = -5 Vdc, f = 100 MHz Recommended transistor BCP69 Ib 171 Max 50 40 50 A pF MHz 4 mA Electrical and Timing Specifications--82577 GbE PHY 11.3.1.4 External Components Description Name PNP Transistor 1.0 Vdc Regulator * Q1 Components1 Electrical Characteristics Qty 1 * Pkg Minimum HFE (Vdc Gain) 85 @ Vce = 2.5 Vdc I= 0.35A T = 25 C Rja<60 CW Source Part # Philips, OnSemi, Infineon BCP69 SOT223 1. This component has been used in previous designs; however, Intel does not specifically recommend or endorse any component. 11.3.2 Power Detection Threshold Table 86. Power Detection Threshold Specifications Symbol Parameter Units Min Typ Max V1a High-threshold for 3.3 Vdc supply 2.25 2.35 2.45 Vdc V2a Low-threshold for 3.3 Vdc supply 2.2 2.3 2.4 Vdc V1b High-threshold for 1.0 Vdc supply 0.65 0.75 0.85 Vdc V2b Low-threshold for 1.0 Vdc supply 0.55 0.65 0.75 Vdc 11.4 I/O DC Parameters 11.4.1 3.3 Vdc I/O Note: All the 3.3 Vdc I/Os are open-drain types. Parameter Minimum Typical Maximum Unit VIL -0.4 0 0.8 Vdc VIH 2 3.3 3.6 Vdc VOL -0.4 0 0.4 Vdc VOH 2.4 3.3 3.6 Vdc Ipullup 30 50 75 A 10 A Ileakage (SMB_CLK, SMB_DATA) Ileakage (CLK_REQ_N only) 240 300 A Ci 2 4 pF 172 82577 GbE PHY--Electrical and Timing Specifications Signal Name Bus Size Description CLK_REQ_N 1 Open-drain I/O SMB_CLK 1 Open-drain I(H)/O with Snap back NMOS ESD cell SMB_DATA 1 Open-drain I(H)/O with Snap back NMOS ESD cell 11.4.2 3.3 Vdc I/O Note: All the 3.3 Vdc I/Os can tolerate a 3.3 Vdc input. Parameter 173 Conditions Minimum Typical Maximum Unit VIL -0.3 0 0.4 Vdc VIH 2 3.3 3.6 Vdc VOL IOL = 9 mA VCC = Min -0.4 0 0.4 Vdc VOH IOL = -9 mA VCC = Min 2 2.6 2.8 Vdc Ipullup 30 50 75 A Ileakage 15 (pull down) 25 (pull down) 35 (pull down) A Ci 2 4 pF PU 50 K PD 50 K Electrical and Timing Specifications--82577 GbE PHY 11.4.3 Parameter Signal Name Bus Size Description RSVD1_VCC3P3 RSVD2_VCC3P3 2 I/O, PU LED[2:0] 3 I/O, PU TDI 1 I/O, PU TMS 1 I/O, PU TDO 1 I/O, PU TCK 1 I/O, PU Input Buffer Only Conditions Minimum Typical Maximum Unit VIL -0.3 0 0.8 Vdc VIH 2 3.3 3.6 Vdc Ipullup 30 50 75 A 10 A 4 pF Ileakage Ci 2 Signal Name Bus Size Description Internal Power On Reset/ LAN_DISABLE_N 1 I(H), PU TEST_EN 1 I (no PU, no PD) PE_RST_N 1 I(H), PU 174 82577 GbE PHY--Electrical and Timing Specifications 11.4.4 PCIe DC/AC Specifications 11.4.4.1 PCIe Specifications (Transmitter) 1.25 GT/s Symbol UI Vtx-diff-pp Parameter Unit interval Differential peak-to-peak Tx voltage swing Ttx-eye Transmitter eye including all jitter sources Ttx-eye-median-to Maximum time between the jitter median and maximum deviation from the median -max-jitter Units Min Max 799.92 800.08 ps 0.8 1.2 Vdc 0.75 UI 0.125 UI RLtx-diff Tx package plus silicon differential return loss 7 db RLtx-cm Tx package plus silicon common mode return loss 6 db Ztx-diff-dc Vtx-cm-ac-p Itx-short DC differential Tx impedance 75 120 Tx V ac common mode voltage (2.5 GT/s) 20 mV Transmitter short-circuit current limit 90 mA Transmitter DC common mode voltage 0 3.6 Vdc Absolute delta of DC common mode voltage during L0 and electrical idle 0 100 mV delta Absolute delta of DC common mode voltage between D+ and D- 0 25 mV Vtx-idle-diff-ac-p Electrical idle differential peak output voltage 0 20 mV Ttx-idle-set-to-idle Maximum time to transition to a valid electrical idle after sending an EIOS 35 ns Ttx-idle-to-diff-data Maximum time to transition to valid differential signaling after leaving electrical idle 35 ns Vtx-dc-cm Vtx-cm-dc-activeidle-delta Vtx-cm-dc-line- 175 Comments Each UI is 800 pS +/100 ppm Electrical and Timing Specifications--82577 GbE PHY Note: Figure 20 is for informational purposes only. Do not use for actual eye comparisons. Differential Amplitude 600 mV 400 mV 0 mV -400 mV -600 mV 0 100 175 625 700 800 Time (pS) Note: Not To Scale Figure 20. Transmitter Eye Diagram 176 82577 GbE PHY--Electrical and Timing Specifications 11.4.4.2 PCIe Specifications (Receiver) 1.25 GT/s Symbol UI Parameter Unit interval Units Comments 800.08 ps Each UI is 800 ps +/100 ppm Min Max 799.92 Vrx-diff-pp-cc Differential peak-to-peak Rx voltage swing for common clock 0.175 1.2 Vdc Vrx-diff-pp-dc Differential peak-to-peak Rx voltage swing for data clock 0.175 1.2 Vdc Trx-eye Receiver minimum eye time opening 0.4 N/A UI Trx-eyemedian2maxjitter Maximum time delta between median and deviation from median N/A 0.3 UI RLrx-diff Rx differential return loss 6 N/A dB RLrx-cm Rx CM return loss 5 N/A dB 80 120 DC input CM impedance for V>0 50 K N/A DC input CM impedance for V<0 1K N/A Electrical idle detect threshold 65 175 mV Zrx-diff-dc Zrx-high-imp-dcpos Zrx-high-imp-dcneg Vrx-idle-det-diffp-p 177 Rx differential Vdc impedance Electrical and Timing Specifications--82577 GbE PHY Note: The 82577 has integrated PCIe termination that results in attenuating the voltage swing of the PCIe clock supplied by the Intel(R) 5 Series Express Chipset. This is in compliance with the PCIe CEM 1.1 specification. More detail is available in the Intel(R) 5 Series Family PDG. Note: Figure 21 is intended to show the difference between the PCIe 1.0 and PCIe-based receiver sensitivity templates. It is for informational purposes only. Differential Amplitude 600 mV 87.5 mV 0 mV -87.5 mV -600 mV 0 240 400 560 800 Time (pS) Note: Not To Scale Figure 21. Receiver Eye Diagram 178 82577 GbE PHY--Electrical and Timing Specifications 11.5 Discrete/Integrated Magnetics Specifications Criteria Voltage Isolation Open Circuit Inductance (OCL) or OCL (alternate) Insertion Loss Condition Values (Min/Max) At 50 to 60 Hz for 60 seconds 1500 Vrms (min) For 60 seconds 2250 Vdc (min) With 8 mA DC bias at 25 C 400 H (min) With 8 mA DC bias at 0 C to 70 C 350 H (min) 100 kHz through 999 kHz 1.0 MHz through 60 MHz 60.1 MHz through 80 MHz 80.1 MHz through 100 MHz 100.1 MHz through 125 MHz 1 dB (max) 0.6 dB (max) 0.8 dB (max) 1.0 dB (max) 2.4 dB (max) 1.0 MHz through 40 MHz 40.1 MHz through 100 MHz Return Loss When reference impedance si 85 , 100 , and 115 . Note that return loss values might vary with MDI trace lengths. The LAN magnetics might need to be measured in the platform where it is used. 11.6 179 18 dB (min) 12 to 20 * LOG (frequency in MHz / 80) dB (min) Crosstalk Isolation Discrete Modules 1.0 MHz through 29.9 MHz 30 MHz through 250 MHz 250.1 MHz through 375 MHz -50.3+(8.8*(freq in MHz / 30)) dB (max) -26-(16.8*(LOG(freq in MHz / 250)))) dB (max) -26 dB (max) Crosstalk Isolation Integrated Modules 1.0 MHz through 10 MHz 10.1 MHz through 100 MHz 100.1 MHz through 375 MHz -50.8+(8.8*(freq in MHz / 10)) dB (max) -26-(16.8*(LOG(freq in MHz / 100)))) dB (max) -26 dB (max) Diff to CMR 1.0 MHz through 29.9 MHz 30 MHz through 500 MHz -40.2+(5.3*((freq in MHz / 30)) dB (max) -22-(14*(LOG((freq in MHz / 250)))) dB (max) CM to CMR 1.0 MHz through 270 MHz 270.1 MHz through 300 MHz 300.1 MHz through 500 MHz -57+(38*((freq in MHz / 270)) dB (max) -17-2*((300-(freq in MHz) / 30) dB (max) -17 dB (max) Mechanical Body Size (mm) Ball Count Ball Pitch Ball Matrix Center Matrix Substrate 6x6 mm 48 0.4 mm Peripheral Exposed Pad Lead frameBased Package Electrical and Timing Specifications--82577 GbE PHY 11.7 Oscillator/Crystal Specifications Table 87. External Crystal Specifications Parameter Name Symbol Frequency fo Vibration Mode Recommended Value Max/Min Range 25 [MHz] Conditions @25 [C] Fundamental Frequency Tolerance @25 C Df/fo @25C 30 [ppm] Temperature Tolerance Df/fo 30 [ppm] Series Resistance (ESR) Rs Crystal Load Capacitance Cload Shunt Capacitance Co Drive Level1 DL Aging Df/fo Calibration Mode @25 [C] 50 [] max @25 [MHz] 18 [pF] 5 ppm per year 6 [pF] max 200 [W] max (with 10 pF capacitor in series) 5 ppm per year max Parallel Insulation Resistance 500 [M] min @ 100 Vdc 1. Crystal must meet or exceed the specified drive level (DL). Refer to the crystal design guidelines in the Intel(R) 5 Series Family PDG for more details. Table 88. Clock Oscillator Specifications Parameter Name Symbol/Parameter Conditions @25 [C] Frequency fo Swing Vp-p Frequency Tolerance f/fo 20 to +70 -20 to +70 Operating Temperature Topr Aging f/fo TH_XTAL_IN XTAL_IN High Time TL_XTAL_IN XTAL_IN Low Time Min Typ Max 25.0 3 3.3 MHz 3.6 Vdc 50 [ppm] C 5 ppm per year [ppm] 13 20 ns 13 20 ns TR_XTAL_IN XTAL_IN Rise 10% to 90% 5 TF_XTAL_IN XTAL_IN Fall 10% to 90% 5 TJ_XTAL_IN Unit XTAL_IN Total Jitter ns ns 1 200 ps 1. Broadband peak-to-peak = 200 pS, Broadband rms = 3 pS, 12 KHz to 20 MHz rms = 1 ps 180 82577 GbE PHY--Electrical and Timing Specifications Figure 22. XTAL Timing Diagram Figure 23 shows a direct connection between CLK Oscillator Out and the 82577 XTAL_IN because the rail-to-rail source is +3.3V. In this case the oscillator must meet the requirements listed in Table 88. If the oscillator source is not rail-to-rail +3.3V, then a conditioning circuit must be provided to enable the amplifier bias operating point to be achieved. If required, contact your Intel representative for information about implementing the conditioning circuit. For placement and layout guidelines, refer to the Intel(R) 5 Series Family Platform Design Guide (PDG). Note: Peak-to-peak voltage presented at the XTAL1 input cannot exceed 3.6 Vdc. Also, the XTAL_OUT pin is a No Connect for the oscillator. 9GF &/. 2VFLOODWRU 3+< RKP 9''S 2XW ;7$/B,1 & 1RWH 7KH RKP UHVLVWRU LV QRW UHTXLUHG LI WRWDO URXWLQJ Figure 23. Clock Oscillator Schematic Note: This is an example only. Refer to the appropriate reference schematic for detailed connections. 181 Electrical and Timing Specifications--82577 GbE PHY Note: This page intentionally left blank. 182 82577 GbE PHY--Schematic and Board Layout Checklists 12.0 Schematic and Board Layout Checklists The 82577 schematic and board layout checklists can be found at www.intel.com. 183 Schematic and Board Layout Checklists--82577 GbE PHY Note: This page intentionally left blank. 184 82577 GbE PHY--Reference Schematics 13.0 Reference Schematics The 82577 reference schematics can be found at www.intel.com. 185 Reference Schematics--82577 GbE PHY Note: This page intentionally left blank. 186 82577 GbE PHY--Models 14.0 Models Contact your local Intel representative for access. 187 Models--82577 GbE PHY Note: This page intentionally left blank. 188 Mouser Electronics Authorized Distributor Click to View Pricing, Inventory, Delivery & Lifecycle Information: Intel: WG82577LC S LGWU WG82577LM S LGWS WG82577LM S LGWR