Page 1
Programmer’s Guide BCM5722 Host Programmer Interface Specification for the NetXtreme® and NetLink™ Family of Highly Integrated Media Access Controllers 5722-PG101-R 5300 California Avenue • Irvine, CA 92617 • Phone: 949-926-5000 • Fax: 949-926-5203 10/15/07...
Page 2
, the Connecting everything logo, NetXtreme , and NetLink™ are among the trademarks of Broadcom Corporation and/or its affiliates in the United States, certain other countries and/or the EU. Any other trademarks or trade names mentioned are the property of their respective owners.
Page 6
BCM5722 Programmer’s Guide 10/15/07 Section 6: Receive Data Flow................... 59 Introduction..............................59 Receive Producer Ring ..........................61 Setup of Producer Rings using RCBs ....................61 Receive Producer Ring RCB—Register offset 0x2450–0x245f .............61 Other Considerations Relating to Producer Ring Setup............61 RCB Setup Pseudo Code.......................62 Receive Buffer Descriptors........................62...
Page 7
Programmer’s Guide BCM5722 10/15/07 Section 7: Transmit Data Flow..................74 Introduction ..............................74 Send Rings ..............................74 Ring Control Block ..........................75 Host-Based Send Ring ......................... 76 Checksum Offload ............................. 77 Scatter/Gather ............................78 VLAN Tag Insertion ............................ 79 TX Data Flow Diagram ..........................79 Section 8: Device Control ....................
Page 8
Memory Mapped I/O Registers......................129 PCI Command Register .......................129 PCI State Register........................129 PCI Base Address Register......................130 Register Quick Cross Reference ......................131 BCM5722 Family..........................131 Pseudocode............................132 Memory Window Read in Standard Mode..................132 Memory Window Write in Standard Mode..................132 Register Read in Standard Mode ....................132 Register Write in Standard Mode ....................132...
Page 10
Word Swap Non-Frame Data = 1 and Byte Swap Non-Frame Data = 1........151 Section 10: Ethernet Link Configuration............... 152 Overview..............................152 GMII/MII ..............................152 Configuring the BCM5722 Ethernet controller for GMII and MII Modes ..........152 Link Status Change Indications ......................153 Configuring the GMII/MII PHY ......................153 Reading a PHY Register ......................153 Writing a PHY Register ........................154...
Page 11
Clear Ticks on BD Events Mode ......................185 No Interrupt on Force Update ......................185 No Interrupt on DMAD Force ......................185 Section 12: BCM5722 Ethernet Controller Register Definitions........186 PCI Configuration Registers ........................186 Vendor ID Register (Offset 0x00)......................189 Device ID Register (Offset 0x02) ......................
Page 12
VPD Next Capabilities Pointer Register (Offset 0x51).................200 VPD Flag and Address Register (Offset 0x52)..................200 VPD Data Register (Offset 0x54) ......................201 Broadcom Vendor-Specific Capabilities ....................202 Vendor-Specific Capability ID Register (Offset 0x58)................202 Vendor-Specific Next Capabilities Pointer Register (Offset 0x59)............202 Reset Counters Register (Offset 0x5C)....................202...
Page 13
Programmer’s Guide BCM5722 10/15/07 Device Serial No Upper DW Override Register (Offset: 0x64)............203 Miscellaneous Host Control Register (Offset 0x68) ................204 DMA Read/Write Control Register (Offset 0x6C)................205 PCI State Register (Offset 0x70) ......................206 PCI Clock Control Register (Offset 0x74) ................... 207 Register Base Address Register (Offset 0x78) ...................
Page 15
Programmer’s Guide BCM5722 10/15/07 Receive BD Standard Producer Ring Index Register (Offset 0x268–0x26F)........239 Receive BD Return Ring 1 Consumer Index Register (Offset 0x284–0x287)........239 Receive BD Return Ring 2 Consumer Index Register (Offset 0x28C–0x28F)........239 Receive BD Return Ring 3 Consumer Index Register (Offset 0x294–0x297)........239 Receive BD Return Ring 4 Consumer Index Register (Offset 0x29C–0x29F)........
Page 24
BCM5722 Programmer’s Guide 10/15/07 Data Link Status Register (Offset 0x7D04) ..................397 Data Link Attention Register (Offset 0x7D08) ..................398 Data Link Attention Mask Register (Offset 0x7D0C) ................398 Next Transmit Sequence Number Debug Register (Offset 0x7D10)...........399 ACKed Transmit Sequence Number Debug Register (Offset 0x7D14)..........399 Purged Transmit Sequence Number Debug Register (Offset 0x7D18)..........399...
Page 30
BCM5722 Programmer’s Guide 10/15/07 SerDes LED Mode ........................475 SerDes Auto Power Down mode....................476 Power Down Inactive Interface.....................476 Autodetect Media Default ......................476 Autodetect Media Priority ......................476 Autodetect Media Enable ......................476 Mode Control (PHY_Addr = 0x1, Reg_Addr = 1Ch, Shadow 11111b)..........477 Write Enable..........................477 Shadow Register Selector......................477...
Page 36
BCM5722 Programmer’s Guide 10/15/07 IST OF IGURES Figure 1: Typical BCM5755-Based NIC Board Block Diagram ...............10 Figure 2: Typical BCM5754-Based NIC Board Block Diagram ...............12 Figure 3: Functional Block Diagram ........................14 Figure 4: Receive Data Path ...........................15 Figure 5: Transmit Data Path ..........................17 Figure 6: ISO SBD Internal Block Diagram .....................19...
Page 37
Figure 46: Standard Mode Memory Window ....................121 Figure 47: Flat Mode Memory Map......................... 123 Figure 48: Flat Mode Memory Map......................... 127 Figure 49: Techniques for Accessing BCM5722 Ethernet Controller Local Memory........128 Figure 50: PCI Command Register......................... 129 Figure 51: PCI Base Address Register ......................130 Figure 52: PCI Base Address Register Bits Read in Standard Mode .............
Page 38
BCM5722 Programmer’s Guide 10/15/07 Figure 69: File Transfer Scenario: Speed Mismatch ..................514 Figure 70: File Transfer Scenario: Speed Buffers Run Low................515 Figure 71: File Transfer Scenario: Switch Backpressure ................516 Figure 72: File Transfer Scenario: Switch Flow Control ..................516 Figure 73: File Transfer Scenario: File Transfer Complete ................517 Figure 74: Pause Control Frame ........................517...
Page 39
Programmer’s Guide BCM5722 10/15/07 IST OF ABLES Table 1: Pseudocode............................2 Table 2: Family Features............................ 6 Table 3: Family Revision Levels......................... 8 Table 4: BCM5755 NIC Part Component Breakdown ..................10 Table 5: BCM5754 NIC Part Component Breakdown ..................12 Table 6: ISO SDI Block.............................
Page 41
Table 51: PCI -X Registers..........................135 Table 52: GPIO Usage for BCM5700/BCM5701 Power Management for Broadcom Drivers ......139 Table 53: GPIO Usage for BCM5703C/BCM5703S and Later Power Management for Broadcom Drivers... 139 Table 54: BCM5722 Ethernet controller Power Pins ..................139 Table 55: Power Management Registers .......................
Page 42
BCM5722 Programmer’s Guide 10/15/07 Table 75: Required Memory Regions for WOL Pattern ..................160 Table 76: 10/100 Mbps Mode Frame Patterns Memory .................163 Table 77: Frame Control Field for 10/100 Mbps Mode ...................164 Table 78: Example of Splitting 10/100 Mbps Frame Data in Pattern Data Structure ........164 Table 79: Firmware Mailbox Initialization ......................165...
Page 43
Programmer’s Guide BCM5722 10/15/07 Table 110: Maximum Latency Register (Offset 0x3F) ..................196 Table 111: Power Management Capability Register (Offset 0x48) ..............197 Table 112: PM Next Capabilities Pointer Register (Offset 0x49)..............197 Table 113: Power Management Capabilities Register (Offset 0x4A) ............. 197 Table 114: Power Management Control/Status Register (Offset 0x4C)............
Page 44
BCM5722 Programmer’s Guide 10/15/07 Table 145: Device Control Register (Offset 0xD8)..................217 Table 146: Device Status Register (Offset 0xDA)...................218 Table 147: Link Capabilities Register (Offset 0xDC)..................219 Table 148: Link Control Register (Offset 0xE0) ....................220 Table 149: Link Status Command Register (Offset 0xE2) ................220 Table 150: MSI Capability ID Register (Offset 0xE8)..................221...
Page 45
Table 185: PCIe 1.1 Advisory Non-Fatal Error Masking (Offset: 0x18C) ............237 Table 186: High-Priority Mailbox Registers ....................238 Table 187: High-Priority Mailbox Structure..................... 238 Table 188: Ethernet MAC Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, Bro adco m Co rp or atio n Document...
Page 46
BCM5722 Programmer’s Guide 10/15/07 BCM5754, BCM5787 Only ......................241 Table 189: Ethernet MAC Control Registers—BCM5906 Only...............243 Table 190: Ethernet MAC Mode Register (Offset 0x400) ................245 Table 191: Ethernet MAC Status Register (Offset 0x404) ................246 Table 192: Ethernet MAC Event Enable Register (Offset 0x408) ..............247 Table 193: LED Control Register (Offset 0x40C)....................247...
Page 47
BCM5722 10/15/07 Table 222: Statistics Registers ........................264 Table 223: Send Data Initiator Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only......................268 Table 224: Send Data Initiator Control Registers—BCM5906 Only ............... 268 Table 225: Send Data Initiator Mode Register (Offset 0x0C00)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only...............
Page 48
Table 274: Receive Data Initiator Mode Register (Offset 0x2C00) ..............289 Table 275: Receive BD Initiator Status Register (Offset 0x2C04) ..............289 Table 276: Standard Receive BD Producer Ring Replenish Threshold Register (Offset 0x2C18)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only ........290 Table 277: Standard Receive BD Producer Ring Replenish Threshold Register (Offset 0x2C18)—BCM5906...
Page 49
BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only....298 Table 288: NIC Return Ring Producer Index Register (Offset 0x3C80)—BCM5906 Only ......299 Table 289: NIC Send BD Consumer Index (Offset 0x3CC0)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only.................... 300 Table 290: NIC Send BD Consumer Index (Offset 0x3CC0)—BCM5906 Only..........300 Table 291: Memory Arbiter Registers......................
BCM5906 and BCM5906M NetLink This document focuses on the registers, control blocks, and software interfaces necessary for host software programming. This document is intended to complement the data sheet for the appropriate member of the BCM5722 Ethernet controllers. The errata documentation (see “Revision Levels”...
This document generally avoids referencing bits by offset; the register definition section provides register and bit offsets. UNCTIONAL VERVIEW Functional descriptions provide high level overviews of the BCM5722 architectural blocks. The black box inputs/outputs from block diagrams aid software developers with programming the device. PERATIONAL HARACTERISTICS This section describes how software programs or interfaces with a hardware block.
Page 62
BCM5722 Programmer’s Guide 10/15/07 Table 1: Pseudocode (Cont.) Definition Notation Notes <Block> Begin or Cstyle { Any valid logic including <Expression>, <Repetition>, <While>, <Conditionals>, <Pseudo Code> <Assignment>, etc. End or Cstyle} <While> While <expression> Other variants of while valid (i.e., Do while, and so <Block>...
Programmer’s Guide BCM5722 10/15/07 ELATED OCUMENTS Refer to the following Broadcom documents for additional information on the BCM5722 Ethernet controllers: ® • BCM57XX NetXtreme Programmer’s Guide: Programming details for the BCM5700, BCM5701, BCM5702, BCM5703, BCM5704, BCM5705, BCM5721, BCM5751, BCM5752, BCM5714, and BCM5715 BCM57XX devices •...
S e c t i on 2 : In t ro du c t i o n NTRODUCTION The BCM5722 NetXtreme and NetLink family of Media Access Controller (MAC) devices are highly-integrated, single-chip gigabit Ethernet LAN controller solutions for high-performance network applications. The above devices integrate the following major functions to provide a single-chip solution for gigabit LAN-on-motherboard (LOM) and network interface card (NIC) applications.
BCM5722 Programmer’s Guide 10/15/07 EATURE OMPARISON The following table shows the feature matrix of BCM5722 Ethernet controllers covered in this document. Table 2: Family Features Feature BCM5722 BCM5754 BCM5755 BCM5755M BCM5756M BCM5757 BCM5786 BCM5787 BCM5787M BCM5754M BCM5906 BCM5906M Data Management VLAN tag support (IEEE 802.1Q)
Page 66
Programmer’s Guide BCM5722 10/15/07 Table 2: Family Features (Cont.) Feature BCM5722 BCM5754 BCM5755 BCM5755M BCM5756M BCM5757 BCM5786 BCM5787 BCM5787M BCM5754M BCM5906 BCM5906M Host Bus Interfaces PCIe v1.1 x1 bus interface LAN Interfaces 10/100/1000BASE-T full-duplex/half-duplex BCM5722 10/100 only 10/100 only Ethernet controller...
BCM5722 Ethernet controllers. Host software can use the PCI Revision ID and Chip ID information in the PCI configuration registers to determine the revision level of the BCM5722 Ethernet controller on the board, and then load the appropriate workaround described in the errata sheets.
BCM5722 Programmer’s Guide 10/15/07 BCM5755 BCM5755M MAC The BCM5755/BCM5755M are seventh-generation 10/100/1000BASE-T Ethernet LAN controller solutions for high- performance network applications. The devices combine a triple-speed IEEE 802.3-compliant MAC with a triple-speed Ethernet transceiver, a x1 PCIe bus interface, and on-chip buffer memory in a single device. Following are important features of BCM5755 and BCM5755M devices.
Programmer’s Guide BCM5722 10/15/07 YPICAL PPLICATION Figure 1 shows a typical BCM5755-based NIC board layout. 1000BASE-T Link Status LED 100BASE-T Link Status LED 10BASE-T Link Status LED 25-MHz Activity LED Crystal PNP for 1.2V Regulator Magnetic BCM5755 MEDIA RJ-45 64-KB Serial EEPROM or Flash...
BCM5722 Programmer’s Guide 10/15/07 BCM5754, BCM5754M, BCM5787, BCM5787M MAC The BCM5754/BCM5754M/BCM5787/BCM5787M are seventh-generation 10/100/1000BASE-T Ethernet LAN controller solutions for high-performance network applications. The devices combine a triple-speed IEEE 802.3-compliant MAC with a triple-speed Ethernet transceiver, a x1 PCIe bus interface, and on-chip buffer memory in a single device. Following are important features of BCM5754, BCM5754M, BCM5787 and BCM5787M devices.
Programmer’s Guide BCM5722 10/15/07 YPICAL PPLICATION Figure 2 shows a typical BCM5754-based NIC board layout. 1000BASE-T Link Status LED 100BASE-T Link Status LED 10BASE-T Link Status LED 25-MHz Activity LED Crystal PNP for 1.2V Regulator Magnetic BCM5754 MEDIA RJ-45 64-KB Serial EEPROM or Flash...
BCM5722 Ethernet controllers. Host software can use the PCI Revision ID and Chip ID information in the PCI configuration registers to determine the revision level of the BCM5722 Ethernet controller on the board, and then load the appropriate workarounds described in the errata sheets.
PERATION Figure 3 shows the major functional blocks and interfaces of the BCM5722 Ethernet controllers. There are two packet flows: MAC-transmit and receive. The device’s DMA engine bus-masters packets from host memory to device local storage, and vice-versa. The host bus interface is compliant with PCIe standards. The RX MAC moves packets from the integrated PHY into device internal memory.
BCM5722 Programmer’s Guide 10/15/07 ECEIVE RX E NGINE The receive engine (see Figure 4) activates whenever a packet arrives from the PHY. Host RX Producer Ring NIC RX Producer Ring Host RX Empty BD Return Rings List Placement List Initiator...
Programmer’s Guide BCM5722 10/15/07 ULES HECKER The rules checker examines frames. After a frame has been examined, the appropriate classification bits are set in the buffer descriptor. The rules checker is part of the RX data path and the frames are classified during data movement to NIC memory.
BCM5722 Programmer’s Guide 10/15/07 RANSMIT TX MAC The Read DMA engine moves packets from host memory into internal NIC memory (see Figure 5). When the entire packet is available, the transmit MAC is activated. Host Send Producer Rings NIC Send Ring Cache...
Programmer’s Guide BCM5722 10/15/07 (BCM5906, BCM5906M SOCHRONOUS ONLY In addition to the normal (or best-effort) data send ring (known as the Data SBD), a second send ring, the isochronous (ISO) send ring (known as the ISO SBD), is available on the BCM5906/BCM5906M. The ISO SBD supports Residential Ethernet applications such as Voice Over IP (VOIP) and video streaming, and offers the following features: •...
BCM5722 Programmer’s Guide 10/15/07 Internal Block Diagram ISO SBD non-empty Data SBD non-empty SDI = Send Data Initiator ISO SDI Data SDI Network Clock Network clock > launch time RDMA TXMAC RXMAC Figure 6: ISO SBD Internal Block Diagram ISO SDI The ISO SDI block implements a 32-bit network time clock that counts in ns.
Programmer’s Guide BCM5722 10/15/07 Table 6: ISO SDI Block Offset Host Address – 0x00 – – 0x04 Flags 0x08 Launch Time VLAN tag 0x0C Bit 10 in the Flags field of the ISO SBD notifies the transmit MAC to transmit the frame as a time sync packet, which is...
Page 80
BCM5722 Programmer’s Guide 10/15/07 Data SDI The isochronous packet is sensitive to the latency delay from the ISO SDI to the TXMAC. This means that the flow control of the normal data traffic must be carefully handled in order not to queue up too many normal data packets ahead of an ISO packet in TXMBUF memory.
Programmer’s Guide BCM5722 10/15/07 Data/ISO Mixed Transmit Packet Traffic Example Figure 8 illustrates a sample traffic flow scenario of a mixture of isochronous packets and normal data best-effort traffic packets. ISO SBD Ring 64 Bytes 125us 64 Bytes 125us 64 Bytes...
BCM5722 Programmer’s Guide 10/15/07 Table 7: BCM5906 Status Block Offset 0x00 Status Word – 0x04 Unused – 0x08 Receive Standard Consumer Index Unused 0x0C Unused – 0x10 Data Send BD Consumer Index Receive Return BD Producer Index 0x14 ISO Send BD Consumer Index Unused •...
Programmer’s Guide BCM5722 10/15/07 • Register 0xc28 fields are defined as follows: 0xc28[31:2] is the timestamp field. 0xc28[1:0] is the timestamp flags field. Bit 0 is the tx time-sync packet timestamp valid bit, and bit 1 is the rx time- sync packet timestamp valid bit.
BCM5722 Programmer’s Guide 10/15/07 DMA R NGINE The DMA read engine (see Figure 9) activates whenever a host read is initiated by the send or receive data paths. Buffer Manager Host Send Buffer Descriptors NIC BD BD Packet#1 text BD Packet#1...
Programmer’s Guide BCM5722 10/15/07 DMA W RITE RITE NGINE The DMA write engine (see the following figure) activates whenever a host write is initiated by the send or receive data paths. Host Receive Buffer Frame Descriptor Ring BD Memory Cracker...
BCM5722 Programmer’s Guide 10/15/07 YSTEM ANAGEMENT Figure 11 shows the architecture of the SMBus and the location of the ASF in the system. Cat5 RJ45 Filter Four Rx/Tx Pairs SMB_Clock pin BCM57XX (ASF Enabled) Vbus Remote Alert ASF Legacy Alert...
Page 87
Programmer’s Guide BCM5722 10/15/07 VERVIEW The System Management block of the NetXtreme devices contains all of the hardware necessary to support a implementation of the ASF protocol primarily in firmware. This hardware includes six dedicated timers, a low-level SMBus 2.0-compliant interface, registers for driving the SMBus interface, and a global control and event register. The system management block can also be used to support additional (non-ASF) management technologies such as IPMI.
3.3V and 5.0V PCI signaling application. The SMBus signals are exempt from a few requirements regarding loading and pull-ups, and the programmer is encouraged to read the ECN on the PCI SIIG website. The BCM5722 Ethernet controller’s SMBus interface meets the high power requirements stated in the SMBus 2.2 specification.
Programmer’s Guide BCM5722 10/15/07 START SMBDATA Float High by Master1 SMBCLK Master1 Quiesces—Arbitration Loss SMBDATA (MASTER1) Master2 Continues Transaction SMBDATA (MASTER2) SMBDATA Sampled Low by Master1 (Master1 backs off SMBus) Both Masters Sample SMBDATA High (Both Masters Continue) Figure 13: Two Masters Arbitrate for SMBus...
SMB_CLK signal, and the BCM5722 Ethernet controller absorbs the stretch latency. The programmer should refer to section 4.3.3 of the SMBus 2.0 manual for further details on this technology. The BCM5722 Ethernet controller maintains a minimum compliant frequency of 10 KHz when clock is low extending.
Page 91
LED C ONTROL The BCM5722 Ethernet controller supports four LEDs—one for data traffic in either direction and three for 10/100/1000 Mbps links established. The traffic LED blinks during transmit and receive data movement through the device. The blink rate is programmable with a default of approximately 15 Hz.
The Host Coalescing Engine is responsible for pacing the rate at which the NIC updates the send and receive ring indices located in host memory space. The completion of a NIC update is reflected through an interrupt on the BCM5722 Ethernet controller INTA pin or a Message Signalled Interrupt (MSI).
Page 93
Programmer’s Guide BCM5722 10/15/07 A host update occurs whenever one of the following criteria is met: • The number of BDs consumed for frames received, without updating receive indices on the host, is equal to or has exceeded the threshold set in the Receive_Max_Coalesced_BD register (see “Receive Max Coalesced BD Count...
Page 94
MDI crossover capability are connected, an algorithm determines which end performs the crossover function. During 1000BASE-T operation, the BCM5722 Ethernet controllers swap the transmit symbols on pairs 0 and 1 and pairs 2 and 3 if auto-negotiation completes in the MDI crossover state. The 1000BASE-T receiver automatically detects pair swaps on the receive inputs and aligns the symbols properly within the decoder.
Link Partner when downgrade is active, as shown by a 1 in bit 14 of MII register 11h. PHY C ONTROL The BCM5722 Ethernet controller supports the following physical layer interfaces: • The MII is used in conjunction with 10-/100-Mbps copper Ethernet transceivers.
BCM5722 Programmer’s Guide 10/15/07 The specifics of MII may be located in section 22 of the IEEE 802.3 specification. RXD[3:0] are the receive data signals; TXD[3:0] are the transmit data signals. MII operates at both 10-Mbps and 100-Mbps wire-speeds. (Gigabit Ethernet uses the GMII standard.) When MAC and PHY are configured for 10 Mbps operation, the RX_CLK1 and MII_TXCLK clocks run...
Programmer’s Guide BCM5722 10/15/07 Pulse Amplitude Modulated Symbol (PAM5) encoding is leveraged for Gigabit Ethernet wire transmissions. PAM5 uses five encoding levels: -2, -1, 0, 1, and 2. Four symbols are transmitted in parallel on the four twisted-wire pairs. The four symbols create a code group (an eight-bit octet).
PHY transfers status back to the MAC, using MDIO. Management Data Interrupt The integrated Broadcom PHY may be programmed to generate interrupts. A PHY status change initiates a Management Data Interrupt (MDINT). A MDI mask register allows host software to selectively enable/disable status types, which cause MDINT notification.
The standard packaging for the NetXtreme family does not provide pinout for JTAG. An industry standard BSDL definition of the JTAG implementation is available from Broadcom Technical Support. Bro adco m Co rp or atio n...
All configuration settings are default-configured in the official release binary image files provided in Broadcom's CD software releases. However, the settings chosen as default by Broadcom may not be what best suits a particular OEM's application, so some settings may need to be changed by the OEM.
Programmer’s Guide BCM5722 10/15/07 Se ction 5: Com mon Da ta Str uc t ur es HEORY OF PERATION Several device data structures are common to the receive, transmit, and interrupt processing routines. These data structures are hardware-related and are used by device drivers to read and update state information.
BCM5722 Programmer’s Guide 10/15/07 RODUCER AND ONSUMER NDICES The Producer Index and the Consumer Index control which descriptors are valid for a given ring. Each ring will have its own separate Producer and Consumer Indices. When incremented, the Producer Index can be used to add elements to the ring.
Programmer’s Guide BCM5722 10/15/07 ONTROL LOCKS Each ring (send or receive) has a Ring Control Block (RCB) associated with it. Each RCB has the format shown in Table Table 10: Ring Control Block Format Offset (bytes) 16 15 0x00 Host Ring Address...
BCM5722 Programmer’s Guide 10/15/07 Transmit Ring Data Scructure is located in the host (as shown below), and the device will keep a local (not shown) copy of the rings. Rings and buffer descriptors would be solely located in on-chip memory space.
Note: The BCM5722 Ethernet controller does not validate the value of the Length field and may generate an error on the PCI bus if the Length field has a value of 0. The host driver must ensure that the Length field is nonzero before enqueueing the BD onto the Send Ring.
Programmer’s Guide BCM5722 10/15/07 Receive Buffer Descriptor Host Address index type flags ip chksum tcp_udp_chsum error flag vlan tag Ring Control Block reserve Host Memory opaque Receive Ring #1 Host Ring Address max_len flags Host Buffer Prod NIC Ring Address...
BCM5722 Programmer’s Guide 10/15/07 Receive Producer Ring The receive producer ring resides in the host and points to empty host receive buffers that will later be filled with received packet data. The controller will internally cache a copy of the producer ring. When the host software driver has a free host receive packet buffer available for incoming packets, it will fill out a receive buffer descriptor and have that descriptor point to the available buffer.
Programmer’s Guide BCM5722 10/15/07 Receive Buffer Descriptors The format of Standard Receive Buffer Descriptors (in both producer ring and return rings) is shown in Table Table 15: Receive Descriptors Format Offset (bytes) 16 15 0x00 Host Address 0x04 0x08 Index...
Page 110
BCM5722 Programmer’s Guide 10/15/07 Table 16: Defined Flags for Receive Buffers (Cont.) Bits Name Description RSS Hash Type (BCM5755 Indicates the hash type used in RSS hash calculation for a received packet. and BCM5755M only) VLAN_TAG* If set to 1 in a return ring, it indicates that the packet associated with this buffer contained a four-byte IEEE 802.1Q VLAN tag.
Programmer’s Guide BCM5722 10/15/07 Table 17: Defined Error Flags for Receive Buffers Bits Name Description 31:9 Reserved Should be set to 0. GIANT_PKT_RCVD If set to 1, the received packet was longer than the maximum packet length value set in the Receive MTU Size register (see “Receive MTU Size Register (Offset 0x43C)”...
BCM5722 Programmer’s Guide 10/15/07 TATUS LOCK The Status Block is another shared memory data structure that is located in host memory. The Status Block is 20 bytes in length. Host software will need to allocate 20 bytes of non-paged memory space for the Status Block and set the Status Block Host Address register to point to the host memory physical address reserved for this structure.
Programmer’s Guide BCM5722 10/15/07 The BCM5755 and BCM5755M devices support four Receive Return Rings. The Status Block format for these devices is given below. Table 19: Status Block Format for BCM5755 and BCM5755M Devices Offset 16 15 0x00 Status Word...
Page 114
BCM5722 Programmer’s Guide 10/15/07 The Status Block format for these devices is given below. • The Status Tag field contains an unique eight-bit tag value in bits 7:0 when the Status Tagged Status Mode bit of the Miscellaneous Host Control register (see “Miscellaneous Host Control Register (Offset 0x68)”...
Programmer’s Guide BCM5722 10/15/07 EVICE TATISTICS MAC S TATISTICS “Statistics Registers” on page 264 for the MAC statistics supported by the devices. MIB N ETWORK NTERFACE TATISTICS Host Interrupts The statistics shown in Table 21 are maintained by the send data initiator engine.
BCM5722 Programmer’s Guide 10/15/07 DMA Resources These statistics are generated by FTQ for monitoring any state machine which adds DMA descriptors to the either DMA engine. These state machines include the: • Send BD initiator • Receive BD initiator •...
Programmer’s Guide BCM5722 10/15/07 Class of Service Statistics The class of service statistics shown in Table 28 are generated by the Send Data Initiator state machine. Table 28: Send Data Initiator Class of Service Statistics Value Name Description COSIfHCOutPkts (Offset 0xC80–0xC83) Number of frames sent from send ring.
Page 118
BCM5722 Programmer’s Guide 10/15/07 S e c t i o n 6 : R e c e i v e D a t a Fl ow NTRODUCTION The RX MAC pulls BDs from RX producer rings. The RX BD specifies the location(s) in host memory where packet data may be moved.
Programmer’s Guide BCM5722 10/15/07 Standard Producer Ring Device Driver DMA Read RX Return Packet Engine Host Interrupt Protocol Interface List Local Rx MAC Coalescing Service (i.e. TCP/IP) Initiator Memory Engine Routine RX Indicate DMA Write Engine Available Return Ring 1...
Page 120
(“Receive MAC Mode Register (Offset 0x468)” on page 254). If the Accept Oversized bit (bit 5) of this register is set, the BCM5722 Ethernet controller accepts packets (of size up to 64 KB) larger than the size specified in the MTU.
64-bit memory address and may be in any memory alignment and may point to any byte boundary. For performance and CPU efficiency reasons, it is recommended that memory be cache-aligned. The BCM5722 Ethernet controller supports cache line sizes of 8, 16, 32, 64, 128, 256, and 512 bytes. The cache line size value is important for the controller to determine when to use the PCI memory write and invalidate command.
Page 122
The host software manages the producer rings through the Mailbox registers and by using the status block. It does this by writing to the Mail Box registers when a BD is available to DMA to the BCM5722 Ethernet controller and reading the status block to see how many BDs have been consumed by the BCM5722 Ethernet controller.
The Receive Producer Ring Producer Index register contains the index value of the next buffer descriptor from the producer ring that is available for DMA to the BCM5722 Ethernet controller from the host. When the host software updates the Receive Producer Ring Producer Index, the BCM5722 Ethernet controller is automatically signaled that a new BD is waiting for DMA.
Page 124
(SSRAM) at offset 0x200 (this region should not be confused with the register space in the chip). The RCB max_len field is used to indicate the number of buffer descriptor entries in a return ring. If an invalid value is set, the BCM5722 Ethernet controller indicates an attention error in the Flow Attention register.
RAME LASSIFICATION The BCM5722 Ethernet controller has a feature that allows for the classification of receive packets based on a set of rules. The rules are determined by the host software and then input into the BCM5722 Ethernet controller. A packet can be accepted or rejected based on the rules initialized into two rules register areas. The packets can also be classified into groups of packets of higher to lower priority using the rules registers.
BCM5722 Programmer’s Guide 10/15/07 Name Description Default Enable. Enabled if set to 1 – & And With Next. This rule and next must both be true to match. The class fields – must be the same. A disabled next rule is considered true. Processor activation bits are specified in the first rule in a series.
HECKSUM ALCULATION Whether the host software NOS supports checksum offload or not, the BCM5722 Ethernet controller automatically calculates the IP, TCP, and UDP of received packets as described in RFC 791, RFC 793, and RFC 768, respectively. Which protocol checksum value is produced can be determined by reading the status flag field in the Receive Return Ring.
In the Receive MAC Mode register (offset 0x468–0x46b), the Keep VLAN Tag Diag Mode bit (bit 10) can be set to force the BCM5722 Ethernet controller to not strip the VLAN tag from the packet. This is only for diagnostic purposes.
1. The host software updates a Receive Producer Ring Index in the Mailbox registers. 2. A receive BD or series of BDs with the corresponding index is DMAed to the BCM5722 Ethernet controller from the host- based Receive Producer Ring.
Page 130
BCM5722 Ethernet controller automatically DMAs the BD to itself from the host. When the DMA is completed, the BCM5722 Ethernet controller (as the consumer) updates the status block’s receive consumer ring index to signal it successfully consumed the BD. The BCM5722 Ethernet controller keeps this BD in internal memory to know where to put a packet that is received from the network.
Programmer’s Guide BCM5722 10/15/07 Base CPU Number Indirection Table Masked Hash Result Result Hash Hash Result Hash 1-7 Bits Incoming Packets Mask Function (32 Bits) 32-Bit Hash Result Hash Type Figure 29: RSS Receive Processing Sequence The BCM5755 and BCM5755M devices implement the above RSS algorithm in hardware except for the step of adding the Base CPU Number to the value from Indirection Table.
Page 132
BCM5722 Programmer’s Guide 10/15/07 Secret Hash Key The hash key that will be used for RSS hash. For the Toeplitz hash, the hash key size is 40 bytes for IPv6 and 16 bytes for IPv4. The host software should program the hash key in hash key registers at offset 0x670 to 0x697.
Page 133
Associated with each ring are two indices that control its operation. These indices are the producer index and the consumer index, which are not shared between the host software and the BCM5722 Ethernet controller. In the case of send rings, the host software controls the producer index by adding elements (initializing a Send BD) to the ring.
“Send Rings” on page 74 for a full discussion of the send RCB). All the fields are in big-endian ordering as required by the BCM5722 Ethernet controller. The RCBs of the send rings are located in the device Miscellaneous Memory Region at offset 0x0100.
NIC’s internal memory where they are waiting to be consumed. The staging area can hold up to 128 entries per-ring, and BCM5722 Ethernet controller tries to keep the staging area full at all times by constantly monitoring the consumer and producer index (the algorithm for accomplishing this is beyond the scope of this manual).
Page 136
IP datagram and TCP segments containing options. For the BCM5722 Ethernet controller to compute the checksum and insert it into the outgoing frame, the host software must set the appropriate control bits in the send buffer descriptors associated with the frame and seed the checksum field with zero or with the pseudo header checksum.
Most often, the host software requests the NIC to transmit a frame that spans several physical fragments that are arbitrary in size and buffer alignment. This requires the BCM5722 Ethernet controller to gather all these fragments during a DMA process into a continuous data stream for transmission.
Page 138
802.1Q VLAN tag inserted. The BCM5722 Ethernet controller allows the host software to enable or disable tag insertion on a per-packet basis. To send a frame with a VLAN tag, the host software must initialize the first send buffer descriptor of a packet with the VLAN tag value and set the VLAN_TAG bit of Send BD Flags field (see “Send Rings”...
BCM5722 Programmer’s Guide 10/15/07 OS asks NIC Driver to send a packet Is the NIC enabled to send packets? Return appropriate error code to OS. Examine packet (if necessary) and decide which send ring to use. Does the NIC have enough free Queue packet for later transmission.
Page 141
Programmer’s Guide BCM5722 10/15/07 S ec t io n 8: Dev ic e Co nt rol NITIALIZATION ESCRIPTION This section provides programmers a procedure for initializing the NetXtreme family of devices. There is a specific sequence of steps that must be taken to enable this device. This section assumes the host programmer can allocate physical memory for various control blocks using OS/RTOS specific methods.
Page 142
BCM5722 Programmer’s Guide 10/15/07 11. Enable the MAC memory arbiter. Set the Enable bit in the Memory Arbiter Mode register (see “Memory Arbiter Mode Register (Offset 0x4000)” on page 301). 12. Initialize the Miscellaneous Host Control register (see “Miscellaneous Host Control Register (Offset 0x68)” on page 204): a.
Page 143
Mbuf Pool Base Address and Mbuf Pool Length registers. So, Broadcom recommends to not to change these Mbuf Pool registers from driver software unless the it is required to load a special firmware from driver. For any reason, if it is required to modify either of the Mbuf...
BCM5722 Programmer’s Guide 10/15/07 28. Configure MAC memory pool watermarks. Broadcom has run hardware simulations on the Mbuf usage and strongly recommends the settings shown in Table 35. These settings/values will establish proper operation for 10/100/1000 speeds. Host software must configure the MAC RX Mbuf Low Watermark and Mbuf High Watermark registers (“MAC RX...
Programmer’s Guide BCM5722 10/15/07 Table 37: Recommended BCM5722 Ethernet controller Standard Ring Initialization Settings for Internal Memory Only RCB Data Field Recommended Value Notes NIC Ring Address(32-bits) 0x6000 Max_Length 0x200 Number of Elements in the ring. The valid configuration values are 32, 64, 128, 256, and 512.
Page 146
0x3C0C)” on page 295) specify the number of clock ticks elapsed before an interrupt is driven. The clock begins ticking after RX/TX activity. Broadcom recommends the settings shown in Table 38 on page Bro adco m C orp or atio n...
“Receive Max Coalesced BD Count (Offset 0x3C10)” on page 296 “Send Max Coalesced BD Count (Offset 0x3C14)” on page 296) specify the number of frames processed before an interrupt is driven. Broadcom recommends the settings shown in Table Table 39: Recommended BCM5722 Ethernet Controller Host Coalescing Frame Counter Settings...
Page 148
286). 71. Enable the send data initiator functional block. Set the Enable bit in the Send Data Initiator Mode register (see “Send Data Initiator Mode Register (Offset 0x0C00)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787, and BCM5906 Only” on page 269).
Page 149
Optional—the PMCSR register is reset to 0x00 after chip reset. Software may optionally reconfigure this register if the device is being moved from D3 hot/cold. 80. Program Hardware to control LEDs. Write 0x00 to LED Controls register. LEDs on the BCM5722 Ethernet controller reference designs are tied to the physical layer.
Page 150
HUTDOWN To power down the BCM5722 Ethernet controller, its state machines must be disabled in specific sequence as shown below. The host software must clear the Enable bit of each state machine and poll the bit until it is cleared. The maximum poll period that software must wait for the enable bits to clear is 2 ms;...
Page 151
MAGE The RISC cores in the BCM5722 Ethernet controller chips execute the MIPS-2 instruction set. Broadcom uses a GNU tool kit to create the firmware binary code. The output from the GNU build is a C language header file, which contains the machine code for the embedded RISC cores.
RISC Core relative addresses; the host must translate each address to a BCM5722 Ethernet controller’s register space region. In summary, the address offsets in the header file are relative to the local memory address ranges specified in Table 41 for the RX and TX RISC respectively.
Page 153
Programmer’s Guide BCM5722 10/15/07 RISC P ESET ROCESSOR The RX processor can be reset by setting the Reset RX RISC Bit of the RX RISC Mode register (see “RX RISC Mode Register (Offset 0x5000)” on page 317). This bit is self-clearing bit; it will be cleared once internal reset of processor is completed.
Page 154
BCM5722 Programmer’s Guide 10/15/07 IRMWARE OWNLOAD ROCEDURE The host driver should use register indirect access to modify both the scratch pad and RISC register space. See “Pseudocode” on page 132 Section 9: “PCI”. 1. Halt the RX RSIC Core (see “Halt RISC Procedure”...
However, most host software will initialize the registers of the four MAC addresses to the same MAC address since a NIC usually has only one MAC address. When flow control is enabled on the BCM5722 Ethernet controller, the MAC Address 0 is used as the source address for sending PAUSE frames (see “Pause Control Frame”...
Page 156
ALCULATION The BCM5722 Ethernet controller uses the standard 32-bit CRC required by the Ethernet specification as its FCS in all packets. The checksum is the 32-bit remainder of the polynomial division of the data taken as a bit stream of polynomial coefficients and a predefined constant, which also represents binary polynomial coefficients.
MAC H NITIALIZING THE EGISTERS The 128-bit multicast hash table is treated as a single object occupying four BCM5722 Ethernet controller registers starting at offset 0x0470 (see Table 43). The 128-bit value follows the big-endian ordering required by BCM5722 Ethernet controller.
Page 158
In promiscuous mode of operation, the BCM5722 Ethernet controller accepts all incoming frames that are not filtered by the active receive rules regardless of the destination MAC address. In other words, the BCM5722 Ethernet controller operating in promiscuous mode ignores multicast and MAC address filtering (“Multicast Hash Table...
Page 159
ETUP ONFIGURATION The host software may configure the BCM5722 Ethernet controller to discard the received broadcast frames by using two receive rules as defined below. The BCM5722 Ethernet controller parses all incoming frames according to these receive rules and discards those frames that have a broadcast destination address (see “Receive Rules Setup and Frame...
APS AND ONFIGURATION The BCM5722 Ethernet controller provides internal SRAM memory for Ring buffers, Tx Packet Mbuf memory, Rx Packet Mbuf Memory, Misc shared memory, and Status block. The memory maps show how the internal SRAM is mapped into the...
Page 161
Programmer’s Guide BCM5722 10/15/07 Table 44: BCM5755/BCM5755M Address Map (Cont.) Region Size NIC CPU View Host Flat View Host Standard View Host UNDI View Send Ring 1 KB 0x00004000– 0x01004000– 0x00004000–* 0x00004000–* 0x000043FF 0x010043FF 0x000043FF 0x000043FF Unmapped 7 KB 0x00004400–...
BCM5722 Programmer’s Guide 10/15/07 Table 46: BCM5906/BCM5906M Address Map Region Size NIC CPU View Host Flat View Host Standard View Host UNDI View Unmapped 256B 0x00000000– 0x01000000– 0x00000000–* 0x00000000–* 0x000000FF 0x010000FF 0x000000FF 0x000000FF Send Ring RCB 0x00000100– 0x01000100– 0x00000100–* 0x00000100–*...
Page 165
Programmer’s Guide BCM5722 10/15/07 * Indirect access via Memory Window Base Address and Memory Window Data register pair ** Indirect access via Register Window Base Address and Register Window Data register pair Note: Reads to unmapped space return all zero. Writes to unmapped space are dropped internally.
Page 166
BAR. The BCM5722 Ethernet controller implements two modes of memory mapped I/O—Standard and Flat. I/O mapped I/O is not supported by the BCM5722 Ethernet controller, and there are no I/O space registers.
The second is a memory block. The register and memory blocks map into address spaces based on processor context. For example, the BCM5722 Ethernet controller has an on-chip RISC processor. This RISC processor will have an internal view of the register and memory blocks. This view is one large contiguous and addressable range, where the register block maps starting at offset 0xC0000000.
UNCTIONAL VERVIEW PCI Configuration Space Registers The BCM5722 Ethernet controller configuration space can be broken into two regions: Header and Device Specific. Table 92 on page 186 shows the registers implemented to support PCI/PCI-X/PCIe functionality in the BCM5722 Ethernet controller.
Capabilities 0x40 0xFF Capabilities 0x64 Figure 39: Header Region Registers See the PCI configuration registers in Section 12: “BCM5722 Ethernet Controller Register Definitions” on page 186. Bro adco m Co rp or atio n Document 5722-PG101-R Configuration Space Page 110...
Page 170
Device-specific registers are not defined in the PCI 2.2 specification and are exactly as the name implies—specific to the BCM5722 Ethernet controller. These registers may be used by host software to configure or change the operational state of the MAC. The most notable feature exposed via the Device Specific registers is Indirect Mode. Host or system software may use Indirect Mode to access BCM5722 Ethernet controller local memory and register space;...
Programmer’s Guide BCM5722 10/15/07 Bytes 0x68 Miscellaneous Host Control 0x6C DMA Read/Write Control 0x70 PCI State 0x74 Clock Control 0x78 Register Base Address 0x7C Memory Window Base Address 0x80 Register Data R/W Configuration 0x84 Registers Memory Window Data R/W 0x88...
204) to enable indirect mode. Indirect Register Access Two PCI configuration space register pairs give host software access to the BCM5722 Ethernet controller register block. The Register_Base_Address register creates a position in the MAC register block. Valid positions range from 0x0000–0x8000 and 0x30000–0x38800 ranges.
Programmer’s Guide BCM5722 10/15/07 Register Indirect Access BCM57XX Ethernet Controller Register Block PCI Configuration Space 0x00000000 0x00000400 Address may be located anywhere BCM57XX Ethernet Controller Registers Address may be located anywhere 0x00008000 BusX DeviceY Function Z Not Accessible via Register...
Page 174
Memory indirect mode operates in the same fashion to register indirect mode. There is a PCI configuration space register pair, which is used to access the BCM5722 Ethernet controller memory block. The Memory_Window_Base_Address register positions a pointer/cursor in the local memory block. Unlike the Register_Base_Address register, the Memory_Window_Base_Address register may position at any valid offset.
Programmer’s Guide BCM5722 10/15/07 Indirect Memory Access BCM57XX Ethernet Controller PCI Configuration Space Memory Block 0x00000000 Address may be located anywhere Internal Memory BusX DeviceY Function Z Memory Base Address Address may be located anywhere 0x00020000 Memory Data Register Figure 42: Indirect Memory Access...
Page 176
The UNDI mailboxes are shadows of BCM5722 Ethernet controller mailbox registers. All mailboxes reside in the BCM5722 Ethernet controller register block, not memory block. Unlike register and memory indirect access, the UNDI Mailboxes shadows are mapped 1:1 to a BCM5722 Ethernet controller register; these shadow registers do not have an address register.
Programmer’s Guide 10/15/07 Standard Mode Standard mode is the most useful memory mapped I/O view provided by the BCM5722 Ethernet controller (see Figure 44). 64K of host memory space must be made available. The PnP BIOS or OS will program BAR0 and BAR1 with a base address where the 64K address region may be decoded.
Memory_Window_Base_Address + OFFSET. Host software must not read/write from any address greater than PCI_BAR + 64K, since this memory space is not decoded by the BCM5722 Ethernet controller. Such an access may be decoded by another device, or simply go unclaimed on the PCI bus.
BCM5722 Programmer’s Guide 10/15/07 Standard Mode Memory Window PCI Configuration Space Host Memory Address Space Local Memory Address Space 0x00000000 0x00000000 Physical BusX Memory DeviceY Function Z Window may be located anywhere Mem Wnd Base Addr Internal Host software may...
Page 181
Ethernet controller resources host memory mapped; diagnostic software is an example application. Mailboxes, Send Rings, Receive Rings, and Local Memory are directly mapped into the host memory space. Unlike standard mode, the BCM5722 Ethernet controller’s local memory is addressable through host memory mapped I/O. Flat mode should not be used when there are limitations on the amount of memory mapped I/O available.
Page 184
Memory 16 MB The proceeding host memory ranges are relative to the BCM5722 Ethernet controller PCI BAR—the address decodes are BAR + offset. Offsets 0x00–0xFF contain a shadow copy of the PCI configuration space registers. Host software may use this memory map to read/write to PCI configuration space registers. Address offsets 0x200–0x3FF are high priority mailboxes.
Page 185
Second, host software may access the memory-mapped range 0x01000000 to 0x01FFFFFF. The second technique is preferable since flat mode has made 32 MB of host memory-mapped space available. Software does not need to use the memory window since the BCM5722 Ethernet controller’s entire memory region is memory- mapped.
0x001C0000 Tx BD Ring 1-16 NIC Producer Index Reserved 0x01000000 Device External Memory Memory 0x01FFFFFF 0x00020000 Figure 49: Techniques for Accessing BCM5722 Ethernet Controller Local Memory Bro adco m Co rp or atio n Document 5722-PG101-R Configuration Space Page 128...
The PCI_State register is 32-bits wide. Operating mode is set with the Flat_View bit in the PCI_State register. When the Flat_View bit is asserted, the BCM5722 Ethernet controller decodes a 32M of block host memory. When the Flat_View bit is de-asserted, the BCM5722 Ethernet controller decodes a 64K block of host memory.
Figure 51: PCI Base Address Register The BCM5722 Ethernet controller 64K memory mapped I/O block is determined by the first programmable bit in the BAR. When the MAC is configured in standard mode, the mask 0xFFFF0000 identifies the BAR bits, which are programmable. Bit 16 is the first bit encountered in the scan upward, which is programmable;...
10/15/07 When the BCM5722 Ethernet controller is programmed in flat mode, a 32M region of memory mapped I/O needs to be made available. The PnP BIOS/OS will probe the BAR, and scan upwards looking for the first programmable bit. Again, bits 0–3 are ignored.
Page 191
Programmer’s Guide BCM5722 10/15/07 SEUDOCODE Variable BCM57XXMemAddr represents a local memory address. • • Variable BCM57XXMemBase represents a 32K aligned local memory address. Variable BCM57XXMemOffset represents a byte offset. • • PCI_CFG_WRITE (address, value ) is a routine to write the device's PCI configuration space register.
The read/write DMA engines both drive the PCIe interface. Normally, each DMA engine alternates bursts to the PCIe bus, and both interfaces may have outstanding transactions on the PCI bus. The BCM5722 architecture identifies two channels—a read DMA channel and a write DMA channel. Each channel corresponds to the appropriate DMA engine (see Figure 54).
Page 193
Read/Write DMA Engines Software must enable the bus master DMA bit for the BCM5722 Ethernet controller. The BCM5722 Ethernet controller is a bus-mastering device and the PCI interface requires that the Bus_Master enable bit be set by either the BIOS or host device driver.
Split_Completion_Message_Class Split_Completion_Message_Index XPANSION ESCRIPTION The expansion ROM on the BCM5722 Ethernet controller is intended for implementation of PXE (Preboot Execution Environment). The devices support expansion ROM of up to 16 MB. PERATIONAL HARACTERISTICS By default, the Expansion ROM is disabled and the firmware has to explicitly enable this feature by setting PCI_State.PCI_Expansion_ROM_Desired bit to one (see...
Page 195
PXE normally resides in the system BIOS. In the NIC implementation, PXE image is stored in the NVRAM. Upon power on reset of the BCM5722 Ethernet controller, the RX RISC will load the bootcode from the NVRAM into RX RISC scratch pad and execute.
HARACTERISTICS Figure 55 applies to the BCM5722 Ethernet controller reference designs. The MAC GPIO pins are available for application specific usage; however, Broadcom encourages both software and hardware engineers to follow the Broadcom design guidelines and application notes. NIC and LOM designs use external board level logic to switch power regulators for D3 ACPI mode.
Page 197
82) to move the MAC into a D0 active state. When the BCM5722 NetXtreme devices detect that main power is lost and it's still in the D0 state, it will reset itself to the D3 (Cold) state and then operate in 10/100 mode, like the OOB WOL state.
TATE Table 54 shows the power supply to various power pins on the BCM5722 Ethernet controller. This table assumes that host software has switched power regulators using GPIO pins 0, 1, and 2. Table 54: BCM5722 Ethernet controller Power Pins...
Page 199
NIC/LOM. For example, the BCM5722 Ethernet controller can assert PME from both D3 hot and cold states. The PME_Support bit field in the PMC register will reflect this capability.
BCM5722 Programmer’s Guide 10/15/07 EGISTER UICK ROSS EFERENCE The BCM5722 Ethernet controller power management registers are listed in Table Table 55: Power Management Registers Register Description Cross Reference Misc Local Control Misc_Pin_0_Output GPIO pin 0 “Miscellaneous Local Control Register (Offset 0x6808)” on...
Programmer’s Guide BCM5722 10/15/07 NDIAN ONTROL YTE AND WAPPING ACKGROUND There are two basic formats for storing data in memory—little-endian and big-endian. The endianess of a system is determined by how multibyte quantities are stored in memory. A big-endian architecture stores the most significant byte at the lowest address offset while little-endian architecture stores the least significant byte at the lowest address offset.
Page 202
However, many hosts (e.g., x86 systems) use the little-endian format, and the PCI bus uses the little-endian format. Therefore the BCM5722 Ethernet controller has a number of byte swapping options that may be configured by software so that Little or Big Endian hosts can interface as seamlessly as possible with BCM5722 Ethernet controller over PCI. The BCM5722 Ethernet controller has the following bits that control byte and word swapping: •...
PCI accesses. Thus, these bits affect the byte order when the host is directly reading/writing to registers or control structures that are physically located on the BCM5722 Ethernet controller. These bits do not affect the byte ordering of packet data or other structures that are mastered (DMAed) by the BCM5722 Ethernet controller.
144. Therefore, if a software driver running on an x86 host (Little Endian) referenced on-chip data structures as they are defined in the BCM5722 Ethernet controller data sheet, the driver should set the Enable Endian Word Swap bit. By setting this bit, the translation would be as follows:...
However, when the data gets transferred across PCI, there could be confusion about the correct byte ordering because PCI is Little Endian whereas BCM5722 Ethernet controller is a Big Endian device. So, in order to provide flexibility for different host processor/memory architectures, BCM5722 Ethernet controller can order this data on PCI in four different ways depending on the settings of the Word Swap Data, and Byte Swap Data bits.
The Word Swap Non-Frame Data, and Byte Swap Non-Frame Data bits affect the byte ordering of certain shared memory data structures (buffer descriptors, statistics block, etc.) when those structures are transferred across PCI. The following table shows as example of how a Send Buffer Descriptor is stored internally in the BCM5722 Ethernet controller.
Programmer’s Guide BCM5722 10/15/07 Word Swap Non-Frame Data = 0 and Byte Swap Non-Frame Data = 0 This would require the software to use the following little-endian data structure on the host: Table 71: Send Buffer Descriptor (Little-Endian 32-Bit format) with No Swapping...
BCM5722 Programmer’s Guide 10/15/07 Word Swap Non-Frame Data = 1 and Byte Swap Non-Frame Data = 1 This requires the software to use the following big-endian data structure on the host: Table 74: Send Buffer Descriptor (Big-Endian 32-bit format) with Word and Byte Swapping...
Page 211
ETECTS The BCM5722 Ethernet controller has two different methods that it can use to determine if the Ethernet link is up or down. The link will be down if the Ethernet cable is not properly attached at both ends of the network. Link will be up only if the cable is properly attached and the devices at both ends of the cable recognize that link has been established.
Page 212
“Transceiver Registers” on page 414. The integrated PHY registers are accessed via a process called MDIO. The integrated PHY is connected to the BCM5722 Ethernet controller through an internal MDIO bus (MDIO and MDC pins). Software accesses PHY’s registers via MDIO through the BCM5722’s MI_Communication register (see...
Page 213
Programmer’s Guide BCM5722 10/15/07 // If auto-polling is enabled, turn it back on If (AutoPolling_Enabled == TRUE) then Begin Mi_Mode.PortPolling = 1 // Now return the value that we read (lower 16 bits of reg) Return (Value32 & 0xffff) Writing a PHY Register...
Page 214
BCM5722 Programmer’s Guide 10/15/07 MDI R EGISTER CCESS Configuring physical devices and querying the status of physical devices are done via the MDIO interface (MDC and MDIO). Note: This procedure is PHY-independent. The MAC access to the PHY is the same for the entire NetXtreme family.
Page 215
Auto-Access Method The BCM5722 Ethernet controller has a built-in interface to access physical device registers without having to control MDC and MDIO pins by software/firmware. It provides an easy way to access the physical device register. To use this mode, MDI_Control_Register.MDI_Select has to be cleared to 0. The MI_Communication_Register (see “MI...
Page 216
BCM5722 Programmer’s Guide 10/15/07 To write a value of 0x1000 into 16-bit PHY register at offset 0x0 of a PHY device which is strapped to PHY address 1, perform the following steps: 1. MI_Communication_Register.Register_Address is set to 0x0. 2. MI_Communication_Register.PHY_Addr is set to 1.
Page 217
Appendix B ”PC Power Management” on page 518 for more details on power management). While the BCM5722 Ethernet controller is in a D3 state, the RX MAC will filter incoming packets. The RX MAC compares incoming traffic for Interesting Packet pattern matches. The BCM5722 Ether- net controller asserts the PCI PME signal, when a positive WOL packet comparison is made.
VERVIEW The BCM5722 Ethernet controller is capable of WOL in 10/100 Mbps for copper-based controllers. Note: When configured for WOL in 1000-Mbps mode, the BCM5722 Ethernet controller draws more than the 375 mA allowed by the PCI specification. The BCM5722 Ethernet controller uses the TX FIFO to store pattern data (see Figure 61).
WOL pattern before each D0 to D3 transition. The RX/TX MAC places packets into this internal memory and the WOL pattern is overwritten during normal operation. When the BCM5722 Ethernet control- ler operates in D0 state, internal data structures use the same memory location as the WOL pattern. Host software should re-initialize the WOL pattern before each WOL sleep transition.
Page 220
A stream is a comparison operation on RX frame(s). When the MAC is running at 10/100 Mbps wire speed, nine different patterns can be compared against the RX frame(s). The BCM5722 Ethernet controller moves RX frame(s) into nine parallel comparators, and the frame is matched simultaneously. The MAC is capable of filtering nine different patterns in 10/100 modes.
Pattern Data Structure The maximum number of entries in either 10/100 or 1000 mode is 128. The BCM5722 Ethernet controller cannot process a pattern that requires more than 128 entries. The size of an entry will vary based on 10/100 or 1000 Mbps mode. Additionally, all unused rows must be initialized with zeros.
WOL mode since the PHY should not be reset. Before the host software issues a reset to the BCM5722 Ethernet controller, it must write the T3_MAGIC_NUM to the shared memory address T3_FIRMWARE_MAILBOX (0xb50). This address is a software mailbox, which bootcode polls before it resets the PHY.
Programmer’s Guide BCM5722 10/15/07 Power Management The clocking inputs need to be modified for WOL mode (see Table 81). The RX CPU is not required during WOL operation, so its clock can be disabled. The MAC has an internal phase-locked loop that clocks internal logic at 133 MHz. Software must select an alternate clocking source and then disable this PLL.
BCM5722 Programmer’s Guide 10/15/07 EGISTER UICK ROSS EFERENCE Integrated PHYs Table 83 lists the WOL mode control registers in the integrated PHYs. Table 83: PHY WOL Mode Control Registers MDI Register Bit(s) Name Description Cross Reference Auto_Negotation 10_BASE_TX_Half_ Advertise to link partner that local PHY is “Auto-Negotiation Advertisement...
Programmer’s Guide BCM5722 10/15/07 Integrated MACs Table 84 lists the WOL mode control registers in the BCM5722 Ethernet controllers. Table 84: Integrated MAC WOL Mode Control Registers Register Bit(s) Name Description Cross Reference WOL_Pattern_ This register points to an internal “WOL Pattern Pointer Register...
Page 228
Power Control)” on page 447. 8. For Interesting Packet WOL Only: Set up the Interesting Packet pattern in BCM5722 Ethernet controller local memory. 9. For Interesting Packet WOL Only: Write a pointer value to the “WOL Pattern Pointer Register (Offset 0x430)” on page 249.
Page 229
17. In NIC applications, switch from VMAIN to VAUX in order to prevent a GRC reset. Set the required GPIOs of BCM5722 Ethernet controller if any of them are used for switching the power from VMAIN to VAUX.
After the RX MAC receives this number of frames, it will drop subsequent incoming frames until the MBUF High Water Mark is reached. The IEEE 802.3 pause control frame contains a pause_time field. The BCM5722 Ethernet controller inserts a time quanta into the pause_time field. Software should set the Enable_Long_Pause bit in the Transmit_MAC_Mode register to configure long pause quanta.
The relationships of flow control statistics are discussed in this section. Xon/Xoff statistical counters are related to internal BCM5722 Ethernet controller flow control states. Xon is associated to transmit enabled state and Xoff is associated to transmit disabled state. These Xon/Xoff states are not part of the IEEE 802.3 specification;...
Auto_Negotation_Link_Partner_Ability_Register does not set the Pause_Capable bit. The BCM5722 Ethernet controller should not send pause frames to this link partner since flow control is not implemented or disabled. The BCM5722 Ethernet controller can still accept pause frames, but sending a pause frame does not yield a preferred result.
Programmer’s Guide BCM5722 10/15/07 Integrated MACs Table 90 lists the flow control registers in the BCM5722 Ethernet controllers. Table 90: Integrated MAC Flow Control Registers Register Bit(s) Name Description Cross Reference Receive MAC Mode Enable_Flow_Control Enable automatic processing of IEEE “Receive MAC Mode...
Page 234
BCM5722 Programmer’s Guide 10/15/07 Driver_Flow_Capability = FLOW_CONTROL_RECEIVE_PAUSE Else Driver_Flow_Capability = NONE //The local physical layer was not configured to advertise Asymmetric pause Else (Auto_Neg_Link_Partner_Ability_Reg.Pause_Capable == ENABLED) Then Driver_Flow_Capability = FLOW_CONTROL_TRANSMIT_PAUSE \ | FLOW_CONTROL_RECEIVE_PAUSE Else Driver_Flow_Capability = NONE // The local physical layer was not configured to advertise Pause capability Else If (Auto_Neg_Advertise_Reg.Asymetric_Pause == ENABLED) Then...
Page 235
Programmer’s Guide BCM5722 10/15/07 if ( Driver_Flow_Capability & FLOW_CONTROL_TRANSMIT_PAUSE ) Then Transmit_MAC_Mode_Control_Register.Enable_Flow_Control = ENABLED // Link is up on the local PHY Bro adco m Co rp or atio n Document 5722-PG101-R Flow Control Page 176...
HARACTERISTICS The BCM5722 Ethernet controller DMAs the status block to host memory before a line interrupt or MSI is generated. The host ISR reads the update bit at the top of the status block and checks whether this bit is set to 1 or not. When set to 1, the updated bit of status block indicates the host that the status block has been refreshed by the MAC.
Programmer’s Guide BCM5722 10/15/07 EGISTERS The BCM5722 Ethernet controller supports a variety of registers that affect status block updates and interrupt generation (see Table 91). Table 91: Interrupt-Related Registers Register Cross Reference Miscellaneous Host Control register. “Miscellaneous Host Control Register (Offset 0x68)” on page 204.
ISR to force all posted memory writes to be flushed to the host memory. RADITIONAL NTERRUPT CHEME A simplified block diagram showing traditional interrupt scheme is depicted in Figure BCM5722 Ethernet Interrupt A Controller BCM5700 PCI Bus PCI Host...
PCI host bridge yet. The scheme to resolve this problem is to do a dummy read of the BCM5722 Ethernet controller in the beginning of the interrupt service routine.
MSI Data This is a 16-bit field. The least significant three bits can be modified by the BCM5722 Ethernet controller when it writes MSI message to host. The DWORD data for the MSI message is depicted as shown in...
Host_Coalesing_Mode register. The default of these bits is zeros. IRMWARE The BCM5722 Ethernet controller provides a way for firmware executed by RX RISC to generate MSI messages. Firmware can generate MSI messages by using MSI_FIFO_Access register (Offset 0x6008). For example, if firmware wants to generate an MSI message with least significant 3-bit as 0x2, it will write 2 to MSI_FIFO_Access register.
BCM5722 Programmer’s Guide 10/15/07 ASIC RIVER NTERRUPT ROCESSING LOWCHART FOR ERVICING AN NTERRUPT The following figure shows the basic driver interrupt service routine flow. NIC encounters an Interrupt event and asserts in IN TA# line to interrupt host H ost OS receives Interrupt and calls NIC driver's ISR Driver reads the "status w ord"...
2. Read and save the value of the Status Tag field of the Status Block (see “Status Block” on page 53). 3. Claim interrupt. Determine if the BCM5722 Ethernet controller action is required. Read the Updated bit of the status word (see Table 27 on page 57).
BCM5722 Programmer’s Guide 10/15/07 THER ONFIGURATION ONTROLS ROADCOM Enabled by setting the Mask_Interrupt_Mode bit (bit 8) of the Miscellaneous Host Control register (see “Miscellaneous Host Control Register (Offset 0x68)” on page 204). When enabled, setting the mask bit of the Miscellaneous Host Control register will mask (de-assert) the INTA signal at the pin, but it will not clear the interrupt state and it will not latch the INTA value.
R e g i s t e r D e f in i t io n s Note: Unless specified otherwise, all registers and bit fields in this section are applicable to all the BCM5722 Ethernet controllers covered in this document.
Page 246
Power Management Data 0x50 Vital Product Data Capability ID 0x51 Next Capability Pointer (MSI) 0x52–0x53 VPD Address/Flag 0x54–0x57 VPD Data 0x58–0x5B Broadcom Vendor-Specific Capability Header 0x5C–05F Reset Counters 0x60–0x67 Reserved 0x68–0x6B Miscellaneous Host Control 0x6C–0x6F DMA Read/Write Control 0x70–0x73 PCI State 0x74–0x77...
Page 247
Programmer’s Guide BCM5722 10/15/07 Table 92: PCI Configuration Register Summary (Cont.) Offset Register 0xDA–0xDB Device Status 0xDC–0xDF Link Capabilities 0xE0–0xE1 Link Control 0xE2–0xE3 Link Status 0xE4–0xE7 Reserved 0xE8 MSI Capability ID 0xE9 Next Capability Pointer (null) 0xEA–0xEB MSI Control 0xEC–0xF3 MSI Address (64-bit) 0xF4–0xF7...
EGISTER FFSET The 16-bit Vendor ID register identifies the manufacturer of the PCI adapter. Valid vendor identifiers are allocated by the PCI SIG to ensure uniqueness. Broadcom’s Vendor ID is 0x14E4. Table 93: Vendor ID Register (Offset 0x00) Field Description...
Enables palette snoop on VGA devices. This device does not support this capability, therefore, this bit is hardwired to Memory Write and The BCM5722 Ethernet controller does not support the Invalidate MWI command, therefore, this bit should remain cleared to Special Cycles Enables device to monitor Special Cycles operations.
BCM5722 Programmer’s Guide 10/15/07 TATUS EGISTER FFSET The 16-bit Status register is used to indicate status information to the PCI-based host for PCI bus-related events. All of the bit positions are predefined by the PCI specification. Not all bits in this register are implemented.
Programmer’s Guide BCM5722 10/15/07 LASS EGISTER FFSET The 24-bit Class Code register identifies the generic function of the device. All of the legal values are specific in the PCI specification. This field is hardwired to the class code for an Ethernet interface (0x020000).
BCM5722 Programmer’s Guide 10/15/07 BIST R EGISTER FFSET The 8-bit BIST register is used to initiate and report the results of any Built-In Self-Test. This device does not export BIST results to this register. Therefore, this register defaults to 0x00 at power-on reset. Optionally, firmware could be developed to execute a self-test and write the result into this register because this register may be written by the internal RISCs.
Table 105: Subsystem ID Register (Offset 0x2E) Field Description Init Access 15:0 Subsystem ID ID assigned by board manufacturer (BCM5722 MAC) 0x165A ID assigned by board manufacturer (BCM5755 MAC) 0x167B ID assigned by board manufacturer (BCM5755M MAC) 0x1673 ID assigned by board manufacturer (BCM5756M MAC)
BCM5722 Programmer’s Guide 10/15/07 ROM B XPANSION DDRESS EGISTER FFSET The 32-bit Expansion ROM Base Address register is used to establish the location of Expansion ROM region within the device’s memory space. This ROM region is used for PXE support. The system software can determine how much address space the device requires by writing a value of all 1’s to the address portion of the register and then reading the value back.
Programmer’s Guide BCM5722 10/15/07 INIMUM RANT EGISTER FFSET This register does not apply to PCIe devices. Table 109: Minimum Grant Register (Offset 0x3E) Field Description Init Access Reserved – AXIMUM ATENCY EGISTER FFSET This register does not apply to PCIe devices.
BCM5722 Programmer’s Guide 10/15/07 PCI P OWER ANAGEMENT APABILITIES Devices that support PCI Power Management must support a block of registers that is part of the Capabilities List in PCI Configuration Space. The PCI Power Management Register Block is located at offset 0x48. The device supports the following PCI Power Management registers.
Programmer’s Guide BCM5722 10/15/07 Table 113: Power Management Capabilities Register (Offset 0x4A) (Cont.) Field Description Init Access Aux Current The device supports the Data Register for reporting Aux Current requirements so this field is not applicable. Indicates that the device requires device specific initialization (beyond the PCI configuration header) before the generic class device driver is able to use it.
BCM5722 Programmer’s Guide 10/15/07 OWER ANAGEMENT EGISTER FFSET This 8-bit register provides a mechanism for the device to report state dependent operating data such as power consumed or heat dissipation. Typically, the data returned through this register is a static copy of the device’s worst case DC characteristics data sheet.
This register points to the next item in the Capabilities List. Table 117: VPD Next Capabilities Pointer Register (Offset 0x51) Field Description Init Access VPD Next Capabilities Points to the next capabilities block which is for Broadcom Vendor-Specific Capability Item. VPD F LAG AND DDRESS EGISTER...
BCM5722 Programmer’s Guide 10/15/07 VPD D EGISTER FFSET VPD data can be read through this register. Table 119: VPD Data Register (Offset 0x54) Field Description Init Access 31:0 VPD Data The least significant byte of the register corresponds to the byte of VPD at the address specified by the VPD Address register.
PCI-E Reset (Perst) Keeps track of number of PCIe Reset (Perst) Events Counter Link Down Reset Keeps track of number of Link Down Reset Events Counter Bro adco m Co rp or atio n Document 5722-PG101-R Broadcom Vendor-Specific Capabilities Page 202...
Serial No. Upper DW Register at offset 0x168. When bit 23 of 0x7c04 is set to 0, the content of register 0x168 depends on the Upper MAC Address parameter from register 0x410. Bro adco m C orp or atio n Page 203 Broadcom Vendor-Specific Capabilities Document 5722-PG101-R...
In that scenario, the interrupt will not be presented to INTA until this bit is cleared. Bro adco m Co rp or atio n Document 5722-PG101-R Broadcom Vendor-Specific Capabilities Page 204...
Enable PCI ROM Base Address Register to be visible to the Desired PCI host. Reserved – PCI INT state Reflect the state of PCI INTA Reserved – a. Bit-enabled R/W through PCI configuration space. Bro adco m Co rp or atio n Document 5722-PG101-R Broadcom Vendor-Specific Capabilities Page 206...
Slow Core Clock Mode Set this bit to 1 when running a 10:1 PCI to Core clock ratio. For engineering debug only. Reserved (BCM5906 only) – Bro adco m C orp or atio n Page 207 Broadcom Vendor-Specific Capabilities Document 5722-PG101-R...
Page 267
BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 only) Reserved (BCM5906 only) – Select Alt Clock (BCM5722, Uses the alternate clock as the clock reference for the BCM5755, BCM5755M, internal clocks, rather than the 62.5 MHz. In BCM5752, BCM5756M, BCM5757, this bit has no effect when TPM is enabled.
The least significant two bits of the Register Base Address register will always be ignored since Registers are naturally word (32-bit) aligned. To allow access to all of the BCM5722 Ethernet controller registers, the range of the Register Base Address register is [17:2].
The Memory Window Base Address register defines the device local memory address which is to be the base address for the 32 KB memory window provided by the BCM5722 Ethernet controller. This register may contain any valid local memory address, but the usage of the least significant 15 bits varies depending on how the local memory is to be accessed. If the 32 KB memory window is used, then the least significant 15 bits are ignored.
FFSET The Register Data register is used to access registers in the BCM5722 Ethernet controller. If this register is written to, the underlying register is also written. If this register is read, the current value of the underlying register is also read.
Programmer’s Guide BCM5722 10/15/07 ROM R XPANSION EGISTERS Note: Expansion ROM registers do not apply to the BCM5906 device. ROM BAR S XPANSION EGISTER FFSET Table 134: Expansion ROM BAR Size Register (0x88) Field Description Init Access 31:4 Reserved –...
BCM5722 Programmer’s Guide 10/15/07 ROM D XPANSION EGISTER FFSET This register is for internal CPU use only. Table 136: Expansion ROM Data Register (0x90) Field Description Init Access 31:0 Data Expansion ROM Data. Loaded by the firmware after R/W–CPU executing the ROM read cycle.
Programmer’s Guide BCM5722 10/15/07 UNDI M AILBOX EGISTERS Note: UNDI Mailbox registers do not apply to the BCM5906 device. UNDI R BD S ECEIVE TANDARD RODUCER RODUCER NDEX AILBOX FFSET This is an alternate view of the Receive BD Standard Producer Ring Producer Index Mailbox from the mailboxes region. It is provided here to allow access from the PCI Configuration space.
BCM5722 Programmer’s Guide 10/15/07 APABILITIES PCIe devices include new status and control registers that are located in the Capabilities List in the device's PCI Configuration Space. These PCIe capabilities registers start at offset 0xD0 of PCI Configuration Space. APABILITY EGISTER FFSET This eight-bit register identifies this item in the Capabilities List as a PCIe register set.
Programmer’s Guide BCM5722 10/15/07 EVICE APABILITIES EGISTER FFSET This register defines operational characteristics that are globally applicable to this device. Table 144: Device Capabilities Register (Offset 0xD4) Field Description Init Access 31:28 Reserved – 27:26 Captured Slot Power This value specifies the scale used for the Power Limit.
BCM5722 Programmer’s Guide 10/15/07 Table 144: Device Capabilities Register (Offset 0xD4) (Cont.) Field Description Init Access Max Payload Size This value returns the maximum data payload size (in bytes) that this R/Wa Supported function supports for TLPs. • 0 = 128 •...
Programmer’s Guide BCM5722 10/15/07 Table 145: Device Control Register (Offset 0xD8) (Cont.) Field Description Init Access Fatal Error Reporting When this bit is set, Fatal Error reporting is enabled. Enabled Non-fatal Error When this bit is set, Non-fatal Error reporting is Reporting Enable enabled.
0: clkreq not capable • 0 for BCM5755, Host RO Management BCM5754, 1: clkreq capable FW R/W BCM5787, BCM5906, BCM5722, and BCM5757 • 1 for 5755M, BCM5754M, BCM5787M, BCM5906M, and BCM5756M 17:15 L1 Exit Latency This value returns the L1 exit latency for this link.
Programmer’s Guide BCM5722 10/15/07 ONTROL EGISTER FFSET Table 148: Link Control Register (Offset 0xE0) Field Description Init Access 15:9 Reserved – clkreq enable • 1 = Enable clkreq • 0 = Disable clkreq Extended Synch When this bit is set, it forces extended sync which gives external devices (such as logic analyzers) additional time to achieve bit and symbol lock.
BCM5722 Programmer’s Guide 10/15/07 ESSAGE IGNALED NTERRUPTS APABILITIES Devices that support Message Signaled Interrupts (MSI) must support a block of registers that is part of the Capabilities List in PCI Configuration Space. The MSI Register Block is located at offset 0xE8.
Programmer’s Guide BCM5722 10/15/07 ESSAGE ONTROL EGISTER FFSET This 16-bit register provides system software control over MSI. After reset, MSI is disabled (bit 0 is cleared) and the function requests servicing via its INTA pin. System software can enable MSI by setting bit 0 of this register to a 1. System software is permitted to modify the Message Control register’s read/write bits and fields.
BCM5722 Programmer’s Guide 10/15/07 ESSAGE DDRESS EGISTER FFSET This 64-bit register contains the system-specified message address. If the Message Enable bit (bit 0 of the Message Control Register) is set, the contents of this register specify a 32-bit aligned address for the MSI write transaction.
Programmer’s Guide BCM5722 10/15/07 NHANCED APABILITIES PCIe devices may optionally support a new configuration space that provides an additional 4 KB of configuration registers per device. This enhanced configuration space is mapped into host memory through a 256 MB window (enabled through the Root Complex) that provides access to the 4-KB enhanced configuration space for each of the 64K possible PCIe devices.
BCM5722 Programmer’s Guide 10/15/07 110) ORRECTABLE RROR TATUS EGISTER FFSET Table 159: Correctable Error Status Register (Offset 0x110) Field Description Init Access 31:13 Reserved – Replay Timer Timeout This bit is set when a Replay Timer Timeout error occurs. 0...
Programmer’s Guide BCM5722 10/15/07 Table 161: Advanced Error Capabilities and Control Register (Offset 0x118) (Cont.) Field Description Init Access First Error Pointer This value indicates the bit position within the “Uncorrectable Error Status Register (Offset 0x104)” on page 224 corresponding to the first error detected.
Programmer’s Guide BCM5722 10/15/07 160) EVICE ERIAL NHANCED APABILITY EADER EGISTER FFSET Table 170: Device Serial No Enhanced Capability Header Register (Offset 0x160) Field Description Init Access 31:20 Next Capability Offset 0x16C when bit-6 of 0x7C04 is set to1 0x0 when bit-6 of 0x7C04 is set to 0 Reserved (BCM5906 only) –...
BCM5722 Programmer’s Guide 10/15/07 DW R 168) EVICE ERIAL PPER EGISTER FFSET Table 172: Device Serial No Upper DW Register (Offset 0x168) Field Description Init Access 31:8 Upper MAC Address This field is 0xFFFFFF after reset. 0xFFFFFF Config-RO If bit 23 of 0x7c04 is 1, this field is programmable...
Programmer’s Guide BCM5722 10/15/07 174) OWER UDGETING EGISTER FFSET Table 175: Power Budgeting Data Register (Offset 0x174) Field Description Init Access 31:21 Reserved – 20:18 Power Rail Specifies the power rail of the operating condition RW from Internal CPU 12V (000) Config RO 3.3V (001)
BCM5722 Programmer’s Guide 10/15/07 1 (O 17C) IRMWARE OWER UDGETING EGISTER FFSET Table 177: Firmware Power Budgeting Register 1 (Offset 0x17C) Field Description Init Access 15:13 Power Rail Specifies the power rail of the operating condition RW from Internal CPU...
Programmer’s Guide BCM5722 10/15/07 3 (O 180) IRMWARE OWER UDGETING EGISTER FFSET Table 179: Firmware Power Budgeting Register 3 (Offset 0x180) Field Description Init Access 15:13 Power Rail Specifies the power rail of the operating condition RW from Internal CPU...
BCM5722 Programmer’s Guide 10/15/07 5 (O 184) IRMWARE OWER UDGETING EGISTER FFSET Table 181: Firmware Power Budgeting Register 5 (Offset 0x184) Field Description Init Access 15:13 Power Rail Specifies the power rail of the operating condition RW from Internal CPU...
Programmer’s Guide BCM5722 10/15/07 7 (O 188) IRMWARE OWER UDGETING EGISTER FFSET Table 183: Firmware Power Budgeting Register 7 (Offset 0x188) Field Description Init Access 15:13 Power Rail Specifies the power rail of the operating condition RW from Internal CPU...
Programmer’s Guide BCM5722 10/15/07 RIORITY AILBOXES Note: High-Priority Mailboxes do not exist in the BCM5906 device. These registers are called High-Priority Mailbox registers (or high-priority mailboxes). When a value is stored in the least significant 32 bits of these registers, an event (known as a high-priority mailbox event) is generated to the RX RISC. To write 64 bits of a mailbox location, the upper 32 bits should be written to before the lower 32 bits.
Page 298
• Whenever In_ISR bits in this register contain a nonzero value, it indicates to the BCM5722 Ethernet controller that host software is in its interrupt processing routine (ISR). This causes the device to use the during interrupt coalescing registers as opposed to the non-during interrupt coalescing registers.
Page 299
EGISTER FFSET This register is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, and BCM5757 devices only. The Receive BD Return Ring Index register contains the index of last the buffer descriptor for return ring 4 that has been consumed. Host software writes this register whenever it updates the return ring 4. This register must be initialized to 0.
EGISTERS These registers are used to control the operation of the Ethernet MAC. There are several parameters which are available for performance and compatibility tuning. Table 188: Ethernet MAC Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Offset Registers Init 0x400–0x403...
Page 301
Programmer’s Guide BCM5722 10/15/07 Table 188: Ethernet MAC Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only (Cont.) Offset Registers Init 0x488–0x48b Recv BD Rules Control Register 1 0x00000000 0x48c–0x48f Recv BD Rules Mask/Value Register 1 0x00000000 0x490–0x493 Recv BD Rules Control Register 2 0x00000000 0x494–0x497...
BCM5722 Programmer’s Guide 10/15/07 Note: The EMAC debug register (0x8F0) below is R/O. A read to the debug register returns the internal state value. Table 189: Ethernet MAC Control Registers—BCM5906 Only Offset Registers Init 0x400–0x403 Ethernet MAC Mode 0x00000004 0x404–0x407...
Page 303
Programmer’s Guide BCM5722 10/15/07 Table 189: Ethernet MAC Control Registers—BCM5906 Only (Cont.) Offset Registers Init 0x518–0x51f Reserved 0x520–0x52f Mac Hash Table Register 0x530–0x5ff Reserved 0x600–0x620 EMAC internal state debugging registers 0x623–0x62f Reserved 0x630–0x66f Indirection Table Registers 0–15 0x670–0x697 Hash Key Registers 0–9 0x698–0x69f...
BCM5722 Programmer’s Guide 10/15/07 MAC M 400) THERNET EGISTER FFSET Table 190: Ethernet MAC Mode Register (Offset 0x400) Field Description Init Access 31:27 Reserved – Free Running ACPI When this bit is set, the ACPI state machine will continue running when a match is found. When this bit is clear, the ACPI state machine will halt when a match is found.
Programmer’s Guide BCM5722 10/15/07 MAC S 404) THERNET TATUS EGISTER FFSET Table 191: Ethernet MAC Status Register (Offset 0x404) Field Description Init Access 31:29 Reserved Always 0. Interesting Packet PME When this bit is set, the WOL signal is asserted when Attention an interesting packet is detected.
BCM5722 Programmer’s Guide 10/15/07 MAC E 408) THERNET VENT NABLE EGISTER FFSET Table 192: Ethernet MAC Event Enable Register (Offset 0x408) Field Description Init Access 31:29 Reserved Always 0. Interesting Packet PME When this bit is set, an attention will be asserted on an interesting packet Attention Enable match.
Page 307
Programmer’s Guide BCM5722 10/15/07 Table 193: LED Control Register (Offset 0x40C) (Cont.) Field Description Init Access 12:11 LED_MODE • 00 = MAC Mode—LED signal is in active low (on) when link is established and is in high (off) when link is not established.
BCM5722 Programmer’s Guide 10/15/07 Table 193: LED Control Register (Offset 0x40C) (Cont.) Field Description Init Access Note: To enable either MAC Mode or Shared Traffic/Link LED Mode, the LED Mode (bits 12:11) must be set to MAC LED mode (0x0).
BCM5722 Programmer’s Guide 10/15/07 MI C 44C) OMMUNICATION EGISTER FFSET This register is used to communicate with a transceiver device through the MII/GMII management interface signals MDIO and MDC. To complete a transaction, the register values are configured for the operation, and the Start bit (bit 29) is set.
Programmer’s Guide BCM5722 10/15/07 MI M 454) EGISTER FFSET This register controls autopolling on the management interface. Auto control mode sets the link state in the transmit state register. Table 202: MI Mode Register (Offset 0x454) Field Description Init Access...
Reserved – Tx MAC State Machine Set this bit to 1 to enable the chip fix of Tx MAC FSM Lockup Fix Enable Lockup Issue that happens due to corrupted TxMbuf. (BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757 only) Reserved (other –...
Any combinations of hash types are supported. Reserved (other devices) – 22:20 RSS Hash Mask Bits (BCM5722, These bits specify the number of hash bits that are used to BCM5755, BCM5755M, offset into the indirection table. A value of one specifies BCM5756M, BCM5757 only)
Page 314
IPv6 packets. This bit should be set to 0 if IPv6 RX is BCM5756M, BCM5757 only) disabled. Reserved (other devices) RSS IPv6 Hash Enable (BCM5722, When this bit is set, 2-tuple hashes are enabled for IPv6 BCM5755, BCM5755M, packets. This bit should be set to 0 if IPv6 RX is disabled.
Programmer’s Guide BCM5722 10/15/07 MAC S 46C) ECEIVE TATUS EGISTER FFSET This register contains the status of the receive Ethernet interface. Once the interface is initialized, this register is used to determine the cause of a receive error event. Table 208: Receive MAC Status Register (Offset 0x46C)
ONTROL EGISTERS FFSET The BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5787, BCM5787M, BCM5754, and BCM5754M MACs implement eight receive rules (N = 0 to 7) only. Note: Receive Rules Control Registers do not apply to the BCM5906 device. Table 210: Receive Rules Control Register (Offset 0x480)
31:21 Reserved Reserved. 20:16 Tx FIFO Almost Empty When the remaining entries of Tx FIFO are less than this Threshold (BCM5722, threshold, the TXFIFO_Almost_Empty will be asserted. BCM5755, This value is used in conjunction with the bit-31 of “Buffer BCM5755M, Manager Mode Register (Offset 0x4400)”...
Programmer’s Guide 10/15/07 Note: The BCM5722 Ethernet controller generates a pause frame when the Low Watermark Max Receive Frames value has been reached. When a pause frame has been generated, the TX data path also stalls (assuming it has not already reached the value specified by the “Read DMA MBUF Low Watermark Register (Offset 0x4410)”...
Programmer’s Guide BCM5722 10/15/07 590) EGULATOR OLTAGE ONTROL EGISTER FFSET This register is applicable to BCM5906, BCM5906M, BCM5787, and BCM5787M devices only. Table 216: Regulator Voltage Control Register (Offset 0x590) Field Description Init Access 31:28 Reserved – 27:24 Regctl 2.5V Output voltage trim control.
Programmer’s Guide 10/15/07 0 (O 630) NDIRECTION ABLE EGISTER FFSET This register is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, and BCM5757 devices only. Table 217: Indirection Table Register 0 (Offset: 0x630) Field Description Init Access 31:28 table_entry0 The RSS_ring value for entry 0. Only the least significant 2 bits are used.
BCM5722 10/15/07 15 (O 66C) NDIRECTION ABLE EGISTER FFSET This register is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, and BCM5757 devices only. Table 218: Indirection Table Register 15 (Offset: 0x66C) Field Description Init Access 31:28 table_entry120 The RSS_ring value for entry 120. Only the least significant 2 bits are used.
BCM5722 Programmer’s Guide 10/15/07 9 (O 694) EGISTER FFSET This register is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, and BCM5757 devices only. Table 220: Hash Key Register 9 (Offset: 0x694) Field Description Init Access 31:24 Hash_key[295:288] The thirty-seventh byte of the hash_key. The bits are in the big...
Programmer’s Guide BCM5722 10/15/07 TATISTICS EGISTERS Note: The statistics registers are automatically cleared (reset to zero) upon read. Table 222: Statistics Registers Address Length Description 0x0800–0x0803 bits 0:27 TX MAC Statistic Counter—ifHCOutOctets 0x0804–0x0807 Reserved 0x0808–0x080b bits 0:16 TX MAC Statistic Counter—etherStatsCollisions 0x080c–0x080f...
Page 324
BCM5722 Programmer’s Guide 10/15/07 Table 222: Statistics Registers Address Length Description 0x08bc–0x8ff Reserved MAC S RANSMIT TATISTIC OUNTERS ifHCOutOctets (Offset 0x0800) The number of octets transmitted out of the interface, including framing characters. etherStatsCollisions (Offset 0x0808) The number of collisions experienced.
Page 325
Programmer’s Guide BCM5722 10/15/07 ifHCOutMulticastPkts (Offset 0x0870) The number of packets that higher-level protocols requested be transmitted, and that were addressed to a multicast address at this sublayer, including those that were discarded or not sent. ifHCOutBroadcastPkts (Offset 0x0874) The number of packets that higher-level protocols requested be transmitted, and that were addressed to a broadcast address at this sublayer, including those that were discarded or not sent.
Page 326
BCM5722 Programmer’s Guide 10/15/07 xoffPauseFramesReceived (Offset 0x08A4) MAC control frames with pause command and length greater than zero. macControlFramesReceived (Offset 0x08A8) MAC control frames with no pause command. xoffStateEntered (Offset 0x08AC) Transmitting is disabled. dot3StatsFramesTooLongs (Offset 0x08B0) A count of frames received on a particular interface that exceeds the maximum permitted frame size.
BCM5722 Programmer’s Guide 10/15/07 0C00)—BCM5722, BCM5755, NITIATOR EGISTER FFSET BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787, BCM5906 O Table 225: Send Data Initiator Mode Register (Offset 0x0C00)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description Init Access 31:5 Reserved – Pre-DMA Debug Enable When this bit is set, the Send Data Initiator state machine is halted when the pre-DMA bit of the Send BD is set.
BCM5722 Programmer’s Guide 10/15/07 0C10) NITIATOR TATISTICS NCREMENT EGISTER FFSET Table 230: Send Data Initiator Statistics Increment Mask Register (Offset 0x0C10) Field Description Init Access 31:24 Reserved – 23:19 Counters Increment Writing a 1 to the bit position forces the corresponding statistics counter Mask to increment by 1.
Programmer’s Guide BCM5722 10/15/07 OGGED OCAL ETWORK NBOUND UTBOUND ACKET FFSET 0C28–0 0C2B)—BCM5906 O Note: Both TX and RX time-sync packet timestamps share the same timestamp register at offset 0xc28. Table 233: Logged Local Network Time for Inbound/Outbound Time Sync Packet (Offset 0x0C28–0x0C2B)—BCM5906 Only...
Programmer’s Guide BCM5722 10/15/07 DMA F TCP S CEC) LAGS EGISTER FOR EGMENTATION FFSET Table 239: DMA Flags Register for TCP Segmentation (Offset 0xCEC) Field Description Init Access 31:20 Reserved – MBUF offset valid MBUF offset valid. When this bit is set, the RDMA engine will DMA the data...
BCM5722 Programmer’s Guide 10/15/07 Table 239: DMA Flags Register for TCP Segmentation (Offset 0xCEC) (Cont.) Field Description Init Access Invoke Processor Invoke Processor. Clear the PASS bit of the entry queued to the SDCQ, so that SDC will invoke the CPU.
BCM5722 Programmer’s Guide 10/15/07 BD R ELECTOR ONTROL EGISTERS The following registers may be used by software for debug and diagnostic purposes. For example, Host software could compare the Send BD Consumer Index located in the Status block (see “Status Block” on page 53) to the registers located in this region.
BCM5722 Programmer’s Guide 10/15/07 BD I NITIATOR ONTROL EGISTERS These registers are available for diagnostic and debug purposes. For example, host software may compare the value written to the high priority mailbox region (see “High-Priority Mailboxes” on page 238) against the value the MAC processes located in the Send BD Initiator Control register region.
Programmer’s Guide BCM5722 10/15/07 Table 256: Receive List Placement Control Registers—BCM5906 Only (Cont.) Offset Registers 0x2204–0x223f Reserved 0x2240–0x2243 Local Statistics Counter—Drop Due to Filter 0x2244–0x2247 Local Statistics Counter—DMA Write Queue Full 0x2248–0x224b Local Statistics Counter—DMA High Priority Write Queue Full 0x224c–0x224f...
BCM5722 Programmer’s Guide 10/15/07 2010) ECEIVE LACEMENT ONFIGURATION EGISTER FFSET Table 259: Receive List Placement Configuration Register (Offset 0x2010) Field Description Init Access 31:15 Reserved – 14:13 Default Interrupt Default interrupt distribution queue. Number within a class Distribution Queue of service group when the frame has errors, is truncated, or is a non-IP frame.
Init Access 31:26 Reserved – RSS_Priority (BCM5722, This bit enables the receive packet to choose receive return ring BCM5755, BCM5755M, in terms of RSS hash value instead of RC class when both RSS BCM5756M, BCM5757 only) and RC rules are matched. Default is to give priority to RC.
Programmer’s Guide BCM5722 10/15/07 BD I ECEIVE ATA AND ECEIVE NITIATOR ONTROL EGISTERS Table 264: Receive Data and Receive BD Initiator Control Registers Offset Registers 0x2400–0x2403 Receive Data and Receive BD Ring Initiator Mode 0x2404–0x2407 Receive Data and Receive BD Ring Initiator Status 0x2408–0x244f...
BCM5722 Programmer’s Guide 10/15/07 BD I 2404) ECEIVE ATA AND ECEIVE NITIATOR TATUS EGISTER FFSET Table 266: Receive Data and Receive BD Initiator Status Register (Offset 0x2404) Field Description Init Access 31:5 Reserved – Illegal return ring size One of the return rings contains illegal ring size (e.g., only contains...
Programmer’s Guide BCM5722 10/15/07 BD R NIC S ECEIVE IAGNOSTIC ATA AND ECEIVE NITIATOR OCAL TANDARD BD C 2474) ECEIVE ONSUMER NDEX FFSET The NIC local copy of Standard Receive Producer Ring Consumer Index. BD I ECEIVE ATA AND ECEIVE...
The value programmed in this register indicates the number of buffer descriptors that must be indicated before a DMA is initiated. Table 276: Standard Receive BD Producer Ring Replenish Threshold Register (Offset 0x2C18)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only...
Host Coalescing state machine always updates the host on frame boundaries. Additionally, the Host Coalescing state machine regulates the rate at which the statistics are updated in host memory. Table 282: Host Coalescing Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only...
Page 352
BCM5722 Programmer’s Guide 10/15/07 Table 283: Host Coalescing Control Registers—BCM5906 Only (Cont.) Offset Registers 0x3c18–0x3c1f Reserved 0x3c20–0x3c23 Receive Max Coalesced BD Count, during Interrupt 0x3c24–0x3c27 Send Max Coalesced BD Count, during Interrupt 0x3c28–0x3c37 Reserved 0x3c38–0x3c3f Status Block Host Address 0x3c40–0x3c43 Reserved 0x3c44–0x3c47...
Programmer’s Guide BCM5722 10/15/07 3C00) OALESCING EGISTER FFSET Table 284: Host Coalescing Mode Register (Offset 0x3C00) Field Description Init Access 31:13 Reserved – No Interrupt on Force When set, writing the Coalesce Now bit will cause a Update status block update without a corresponding interrupt event.
BCM5722 Programmer’s Guide 10/15/07 3C04) OALESCING TATUS EGISTER FFSET Table 285: Host Coalescing Status Register (Offset 0x3C04) Field Description Init Access 31:3 Reserved – Error Host Coalescing error status. Reserved – 3C08) ECEIVE OALESCING ICKS EGISTERS FFSET The value in this register can be used to control how often the status block is updated (and how often interrupts are generated) due to receiving packets.
Programmer’s Guide BCM5722 10/15/07 their send buffers to be freed quickly. For host environments that do require their send buffers to be recovered quickly, it is recommended that this register be set to 0. BD C 3C10) ECEIVE OALESCED OUNT...
BCM5722 Programmer’s Guide 10/15/07 BD C 3C20) ECEIVE OALESCED OUNT URING NTERRUPT FFSET This register is similar to “Receive Max Coalesced BD Count (Offset 0x3C10)” on page 296, but it is used instead when the host is considered to be in its interrupt service routine (ISR). In this case, the NIC considers the host to be in its ISR whenever “Interrupt Mailbox 0 Register (Offset 0x200–0x207)”...
Note: The programmer should not write to these registers—they are for internal use to aid with debugging and diagnostics only. Table 287: NIC Return Ring Producer Index Registers (Offset 0x3C80, 0x3c84, 0x3c88, and 0x3c8c)— BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description...
BCM5722 Programmer’s Guide 10/15/07 NIC D IAGNOSTIC ETURN INGS RODUCER NDEX EGISTER FFSET 3C80–0 3C83)—BCM5906 O This register keeps track of the NIC local copy of the return ring producer index (not the host copy which is DMAed by the Host Coalescing engine to the host).
Host Coalescing engine to the host). This is shared between the Send BD Initiator and the Host Coalescing state machines. Note: The programmer should not write to this register—it is for internal use only to aid with debugging and diagnostics. Table 289: NIC Send BD Consumer Index (Offset 0x3CC0)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description...
4404) UFFER ANAGER TATUS EGISTER FFSET Note: This register is not applicable to the BCM5906 device. Table 299: Buffer Manager Status Register (Offset 0x4404)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description Init Access 31:5 BM Test Mode –...
BCM5722 Programmer’s Guide 10/15/07 MBUF P 4408) DDRESS EGISTER FFSET Note: This register is not applicable to the BCM5906 device. The MBUF Pool Base Address specifies beginning of the MBUF. Table 300: MBUF Pool Base Address Register (Offset 0x4408) Field...
Programmer’s Guide BCM5722 10/15/07 MAC RX MBUF L 4414) ATERMARK EGISTER FFSET This 32-bit register indicates the number of free MBUFs that must be available for the RX MAC to accept a frame. If the free MBUF count drops below this mark, it must go above the high watermark to resume normal operation.
BCM5722 Programmer’s Guide 10/15/07 RX RISC MBUF A 4420) LLOCATION ESPONSE EGISTER FFSET Note: This register is not applicable to the BCM5906 device. This register returns the MBUF cluster pointer of the specified size when the Allocation bit is cleared. If a second MBUF cluster allocation request is made before this register is read, an MBUF memory leak may occur.
Programmer’s Guide BCM5722 10/15/07 BM H 4454) ARDWARE IAGNOSTIC EGISTER FFSET This 32-bit register provides debug information on the RXMBUF pointer. Table 305: BM Hardware Diagnostic 3 Register (Offset 0x4454) Field Description Init Access 31:25 Reserved – 0000000 24:16 Next RXMBUF The next RXMBUF that is to be deallocated.
BCM5722 Programmer’s Guide 10/15/07 DMA C ONTROL EGISTERS Table 307: Read DMA Control Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Offset Registers 0x4800–0x4803 Read DMA Mode 0x4804–0x4807 Read DMA Status 0x4808–0x4bff Reserved Note: For the BCM5906 device only, the RDMA “debug” registers listed are all read-only. Reads to these registers return internal state values.
Page 371
Programmer’s Guide BCM5722 10/15/07 Table 309: Read DMA Mode Register (Offset 0x4800) (Cont.) Field Description Init Access Address Overflow Error Logging This bit when set, enables the address overflow error to Enable be generated when the DMA Read Engine performs a DMA operation that crosses a 4G boundary.
Programmer’s Guide BCM5722 10/15/07 DMA C RITE ONTROL EGISTERS Table 312: Write DMA Control Registers Offset Registers 0x4c00–0x4c03 Write DMA Mode 0x4c04–0x4c07 Write DMA Status 0x4c08–0x4c4c WDMA debug register 0–18 (BCM5906 only) 0x4c4f–0x4fff Reserved Note: The BCM5906 WDMA debug register is read-only. Reads to this register return the internal state value. Do not write to this register.
BCM5722 Programmer’s Guide 10/15/07 RX RISC R EGISTERS Note: RX RISC registers are not applicable to the BCM5906 device. The following RX RISC registers are exposed to host software to provide a mechanism to download firmware binary. The information in this section is not intended to provide a comprehensive understanding of the RISC architecture.
Programmer’s Guide BCM5722 10/15/07 Table 316: RX RISC Mode Register Fields (Offset 0x5000) (Cont.) Field Description Init Access Enable Watchdog Enables watchdog interrupt state machine. Used in conjunction with Watchdog Clear register, Watchdog Saved PC register and Watchdog Vector register.
Page 378
BCM5722 Programmer’s Guide 10/15/07 Table 317: RX RISC State Fields (Offset 0x5004) (Cont.) Field Description Init Access MA outstanding read MA_rd_FIFO overflowed. The RX RISC is halted on this FIFO overflow condition. MA outstanding write MA_wr_FIFO overflowed. The RX RISC is halted on this FIFO overflow condition.
Programmer’s Guide BCM5722 10/15/07 RX RISC P 501C) ROGRAM OUNTER FFSET The program counter register can be used to read or write the current Program Counter of the each CPU. Reads can occur at any time, however writes can only be performed when the CPU is halted. Writes will also clear any pending instruction in the decode stage of the pipeline.
This bit is cleared on a hard reset. Note : The driver needs to set this bit to “1” before issuing a GRC or VCPU reset. Combining with bit 26, the driver can communicate with the Broadcom device on the reset/init sequence. Init Done Indicates to the host that the VCPU has finished the initialization and the host can start the driver loading.
Programmer’s Guide BCM5722 10/15/07 Table 321: VCPU Status Register Fields (Offset 0x5100) Field Description Init Access VCPU Int All CPU attention bits are ORed and shown here. This register can be used the for debugging purposes by EEPROM image to perform bug patches and perform services.
BCM5722 Programmer’s Guide 10/15/07 CPU D 5110) IRTUAL EBUG EGISTER FFSET Table 325: Virtual CPU Debug Register Fields (Offset 0x5110) Field Description Init Access 31:13 Reserved – 12:10 Irom_St[2:0] The state of the internal ROM image loading FSM Erom_St[3:0] The state of the external EEPROM image loading FSM...
32 bits of these registers, an event (known as a Mailbox Event) is generated to the RX RISC. Only lower 32 bits of these 64-bit low-priority mailbox registers are implemented. Table 328: Low-Priority Mailbox Registers—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only...
BCM5722 Programmer’s Guide 10/15/07 Table 331: FTQ Reset Register (Offset 0x5C00) (Cont.) Field Description Init Access Reset Send BD Completion Set this bit to reset the Send BD Completion flow through queue. When set to 0, this flow through queue is ready for use.
Programmer’s Guide BCM5722 10/15/07 RXMBUF C 5CC8) LUSTER NQUEUE EGISTER FFSET Note: This register is not applicable to the BCM5906 device. A write to this register frees a cluster of RXMBUFs. The host CPU uses this register to deallocate RXMBUFs after it has processed the received ASF message.
BCM5722 Programmer’s Guide 10/15/07 Table 335 shows the functional truth table for the combination of the Valid, Skip, and Pass bits. Table 335: Functional Truth Table for the Combination of the Valid, Skip, and Pass Bits Valid Skip Pass Scenario Head entry invalid.
BCM5722 Programmer’s Guide 10/15/07 MSI FIFO A 6008) CCESS EGISTER FFSET The MSI FIFO Access Register is used to give an MSI request to the PCI block. The actual MSI data is indicated in the bottom bits. If the MSI is properly enqueued into the FIFO, the overflow bit remains cleared. If the FIFO overflowed, the bit is set and must be written to be cleared.
BCM5722 Programmer’s Guide 10/15/07 Table 341: General Control Registers—BCM5906 Only (Cont.) Field Description 0x6894–0x6897 Reserved 0x6898–0x689B Chip mode Register 0x689C–0x689F Energy_Det Timer Register 0x68A0–0x68A3 Reserved 0x68A4–0x68A7 Power management Debug Register 0x68A8–0x68AF Reserved 0x68B0–0x68B3 Energy_Det Control Register 0x68B4–0x68ff Reserved 6800) ONTROL...
Page 393
Programmer’s Guide BCM5722 10/15/07 Table 342: Mode Control Register (Offset 0x6800) (Cont.) Field Description Init Access Allow Bad Frames The RX MAC forwards illegal frames to the NIC and marks them as such instead of discarding them. The frames are...
Wire Speed Enable When this bit is set, wire speed detection is enabled. (BCM5787, BCM5787M, BCM5754, and BCM5754M only) BOND ID 5 (BCM5722, 1 = Super IDDQ Mode Disable BCM5755, BCM5755M, BCM5756M, BCM5757 only) Wire Speed Timer Disable When this bit is set, the wire speed timer is disabled.
Programmer’s Guide BCM5722 10/15/07 Table 343: Miscellaneous Configuration Register (Offset 0x6804) (Cont.) Field Description Init Access 16:13 Bond ID ID(3:0) 12:8 Reserved – Timer Prescaler Local Core clock frequency in MHz, minus 1, which should 1111111 correspond to each advance of the timer. Reset to all 1.
Table 344: Miscellaneous Local Control Register (Offset 0x6808) (Cont.) Field Description Init Access Testclk_25_disable 25-MHz test clock disable (BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757 only) Reserved (other devices) – Gpio_uart_sel GPIO[2:1] pins are shared with UART SDATA_O and SDATA_I pins for the 100-pin FBGA package.
Programmer’s Guide BCM5722 10/15/07 RX-RISC T 6814) IMER EFERENCE EGISTER FFSET The Timer Reference register allows the RX-RISC to receive an event when the free-running Timer register counts up to this value. Note: This register is not applicable to the BCM5906 device.
BCM5722 Programmer’s Guide 10/15/07 Table 350: Serial EEPROM Address Register (Offset 0x6838) Field Description Init Access Read/Write If set, the transfer is a read. Complete Set when the transfer is complete. Reset Reset serial EEPROM hardware block. 28:26 Device ID Device ID (A2, A1, A0).
Programmer’s Guide BCM5722 10/15/07 Table 352: Serial EEPROM Control Register (Offset 0x6840) (Cont.) Field Description Init Access Clock Output Tri-state Serial EEPROM clock output tristate control MDI C 6844) ONTROL EGISTER FFSET The control register for handling the Management Data Interface, which used to communicate between the physical layer and management layer.
684C) VENT NABLE EGISTER FFSET Setting a bit in this register enables an interrupt to the CPU or the event. Table 354: RX CPU Event Enable Register (Offset 0x684C)—BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description Init Access Flash –...
BCM5722 Programmer’s Guide 10/15/07 -LAN R EGISTERS Note: The Wake-on-LAN registers do not apply to the BCM5906 device. Table 356: Wake-on-LAN Registers Field Description 0x6880–0x6883 WOL Mode Register 0x6884–0x6887 WOL Config Register 0x6888–0x688B WOL State Machine Status Register 0x688C–0x688F Reserved...
Programmer’s Guide BCM5722 10/15/07 Table 358: WOL Config Register (Offset 0x6884) (Cont.) Field Description Init Access 12:11 SD_delay_cfg This is the amount of the delay. • 00 = 0 • 01 = 50 µs • 10 = 150 µs • 11 = 250 µs Power_avail When set to 1, it indicates the main power is available.
6890) ISCELLANEOUS ABLE ENSE ONTROL EGISTER FFSET Table 360: Miscellaneous Cable Sense Control Register (Offset: 0x6890)— BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5787 Only Field Description Init Access EEPROM Clock Disable EEPROM Clock Divider fix Divider fix disable This bit is reset by hard_reset...
Programmer’s Guide BCM5722 10/15/07 Table 361: Miscellaneous Cable Sense Control Register (Offset: 0x6890)—BCM5906 Only (Cont.) Field Description Init Access CLKREQ# Disable CLKREQ# disable This bit is reset by hard_reset. energy_det_sel 1: Select combination of s/w energy_del bit or h/w energy_det debounce signal;...
BCM5722 Programmer’s Guide 10/15/07 Table 362: Fast Boot Program Counter Register (Offset 0x6894) (Cont.) Field Description Init Access 30:0 FastBoot Program This field is used by the CPU to keep track of the location of the phase Counter 1 bootcode in RX MBUF. These bits behave identical to bit 31 in that they have no effect on state machine operation and they are cleared only by a power-on reset.
Programmer’s Guide BCM5722 10/15/07 689C) NERGY ETECT IMER EGISTER FFSET This register is used to debounce the raw energy_det signal from the EPHY core. Note: This register is applicable to BCM5755, BCM5755M, BCM5906, BCM5906M only. In BCM5755 and BCM5755M, this register is used as part of CableSense feature.
68A0) ISCELLANEOUS LOCK ONTROL EGISTER FFSET This register is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757 devices only. Some of the bits in this register are initialized by hard_reset. Table 365: Miscellaneous Clock Control Register (Offset: 0x68A0) Field Description Reset...
Programmer’s Guide BCM5722 10/15/07 Table 365: Miscellaneous Clock Control Register (Offset: 0x68A0) (Cont.) Field Description Reset Init Access Frequency • 1 = Enable frequency multiplier to generate a 62.5- multiplier Enable MHz clock from XTAL clock • 0 = Disable Frequency multiplier This bit should be used together with bit0.
BCM5722 Programmer’s Guide 10/15/07 Table 366: Power Management Debug Register (Offset: 0x68A4) (Cont.) Field Description Reset Init Access PERST Override This bit is used to override the PERSTN so that internal Hard_ CPU can access the PCIe register when Perstn is...
Page 413
Programmer’s Guide BCM5722 10/15/07 Table 367: Energy_Det Control Register (Offset: 0X68B0) (Cont.) Field Description Init Access Debounce_low_ctrl[1:0 00: Debounce engery_det low for another 5 sec 01: Debounce engery_det low for another 10 sec 10: Debounce engery_det low for another 15 sec...
BCM5722 Programmer’s Guide 10/15/07 ASF S UPPORT EGISTERS Note: ASF Support registers are not applicable to the BCM5906 device. Table 368: ASF Support Registers Field Description 0x6C00–0x6C03 ASF Control register 0x6C04–0x6C07 SMBus Input register 0x6C08–0x6C0b SMBus Output register 0x6C0c–0x6C0f Watchdog Timer 0x6C10–0x6C13...
Programmer’s Guide BCM5722 10/15/07 ASF C 6C00) ONTROL EGISTER FFSET Table 369: ASF Control Register (Offset 0x6C00) Field Description Init Access SMB Early Attn When set, the SMB interface sets the ASF_GRC_ATTN bit as soon as slave activity is detected. When cleared, the attention bit is not set until an address match occurs.
Input data from the SMBus interface. Note: The BCM5722 Ethernet controller uses a 5-byte internal input FIFO for SMBus messages that must be cleared if an error is indicated by the SMB Input Status field. This FIFO is cleared by continually reading the SMBus Data In field until the SMBus In Done bit is set, then clearing the SMBus In Done bit by writing a 1.
Programmer’s Guide BCM5722 10/15/07 6C08) UTPUT EGISTER FFSET Table 371: SMBus Output Register (Offset 0x6C08) Field Description Init Access 31:29 Reserved. – SMB Clock Input Value Value on the SMB Clock pin when the SMBus interface is in bit-bang mode.
Outgoing data byte for the SMB transaction. Note: The BCM5722 Ethernet controller uses a 5-byte internal output FIFO for SMBus messages. When an SMBus message is begun by setting the SMB Output Start bit, the software must write the next output byte within 100 µs, or an underflow may occur and invalidate the entire SMBus message.
Programmer’s Guide BCM5722 10/15/07 ASF T 6C14) IMER EGISTER FFSET Table 374: Poll ASF Timer Register (Offset 0x6C14) Field Description Init Access 31:8 Reserved – Poll timer A countdown timer which decrements at the rate of one tick per 5 ms. When the counter reaches a value of zero,...
BCM5722 Programmer’s Guide 10/15/07 6C24) RIVER ELECT EGISTER FFSET Table 378: SMBus Driver Select Register (Offset 0x6C24) Field Description Init Access 31: 1 Reserved – Driver Select Set to 1 to enable SM_DATA_OUT and SM_CLK_OUT to use new SMBus interface.
Programmer’s Guide BCM5722 10/15/07 6C40) UXILIARY ASTER TATUS EGISTER FFSET Table 381: Auxiliary SMBus Master Status Register (Offset 0x6C40) Field Description Init Access 31:8 Reserved – CRC/PEC Error • 0 = No CRC/PEC Error detected. • 1 = CRC/PEC Error Detected. This bit is set only by hardware and can be reset by writing a 1 to this position.
Programmer’s Guide BCM5722 10/15/07 Table 382: Auxiliary SMBus Master Control Register (Offset 0x6C44) (Cont.) Field Description Init Access Kill • 0 = This will allow the Master Controller interface function to continue normally. • 1 = Stop the current Master transaction in process. This sets the failed status bit and asserts interrupt selected by the SMB interrupt select field.
BCM5722 Programmer’s Guide 10/15/07 6C50) UXILIARY LAVE DDRESS ONTROL EGISTER FFSET Table 385: Auxiliary SMBus Slave Address/Control Register (Offset 0x6C50) Field Description Init Access 31:8 Reserved – SMBus Slave Address Only meaningful if AV flag is set. User also needs to program bit 0 of register 0x6C64 AV_REG to mark address valid based on SMBus 2.0 spec.
Programmer’s Guide BCM5722 10/15/07 6C58) UXILIARY LAVE EGISTER FFSET Table 387: Auxiliary SMBus Slave Data Register (Offset 0x6C58) Field Description Init Access 31:22 Reserved – 21:16 Read Byte Count Indicates the number of bytes read from the FIFO by the Host.
Programmer’s Guide BCM5722 10/15/07 UDID R 1 (O 6C6C) EGISTER FFSET Table 391: UDID Register 1 (Offset 0x6C6C) Field Description Init Access 31:16 Subsystem Vendor ID This field may hold a value derived from any of several resources. Example: As assigned by PCI SIG.
0 to 3 control the drive value of the SCK, CS_L, SO, and SI pins respectively. For BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757 in a 144-pin FBGA package, when bitbang_mode is set, bits 0 to 5 control the drive value of the SCL, SDA, SDK, CS_L, SO, and SI pins respectively.
BCM5722 Programmer’s Guide 10/15/07 Table 400: NVM Config 1 Register (Offset 0x7014) (Cont.) Field Description Init Access Status Bits This field represents the bit offset in the status command • 0 if flash_mode = response to interpret as the ready flag.
Programmer’s Guide BCM5722 10/15/07 NVM C 701C) ONFIG EGISTER FFSET Table 402: NVM Config 3 Register (Offset 0x701C) Field Description Init Access 31:24 read_cmd This is the Flash/SEEPROM read command. • 0xFF if flash_mode = 1 Following this command, any number of bytes may be •...
RX RISC CPU. If the RX RISC CPU is executing bootcode and the ARB_WON0 bit is set when the CPU is stopped, the host driver software must also set the REQ_CLR0 bit to release the NVRAM lock held by the bootcode, otherwise, no other software is able to access NVRAM until the BCM5722 Ethernet controller is reset. NVM A...
Programmer’s Guide BCM5722 10/15/07 NVM W 7028) RITE EGISTER FFSET Table 405: NVM Write1 Register (Offset 0x7028) Field Description Init Access 31:24 Reserved – 23:16 Status Register Data Data written to the status register for the SST25VF512. 15:8 Write Disable Command Flash command to be used when a flash device with a write protect function is used.
BCM5722 Programmer’s Guide 10/15/07 BIST S 7404) TATUS EGISTER FFSET This register definition is applicable to BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5906, and BCM5906M devices only. Table 411: BIST Status Register (Offset 0x7404) Field Description Init Access 31:8 Reserved –...
Page 439
Programmer’s Guide BCM5722 10/15/07 Table 411: BIST Status Register (Offset 0x7404) (Cont.) Field Description Init Access TxMbuf & Misc_BD Status indicating BIST test has failed. BIST Fail TxMbuf & Misc_BD Status indicating BIST has completed when set (TXMBUF). BIST Done RxMbuf BIST Fail Status indicating BIST test has failed.
Programmer’s Guide BCM5722 10/15/07 Table 413: TLP Control Register (Offset 0x7C00) (Cont.) Field Description Init Access Disable UR Error When clear, this bit enables the DMA completion logic to check for a completion packet with an Unsupported Request value. Disable RSV Error When clear, this bit enables the DMA completion logic to check for a completion packet with a Reserved value.
Page 444
BCM5722 Programmer’s Guide 10/15/07 Table 414: Transaction Configuration Register (0x7C04) (Cont.) Field Description Access Reset Init Select Core Clock Override This bit is used by software to allow it to Core access PCIe register when the PCIe PLL can’t lock after power up. This bit when set will select the core clock to drive the PCIe logic.
Page 445
• 000 = 1 • 001 = 2 • 010 = 4 • 011 = 8 • 100 = 16 The BCM5722, BCM5755, BCM5755M, BCM5756M, BCM5757, BCM5754, BCM5754M, BCM5787, and BCM5787M devices can only request a maximum of 1 MSI Message.
BCM5722 Programmer’s Guide 10/15/07 Table 414: Transaction Configuration Register (0x7C04) (Cont.) Field Description Access Reset Init Lom_configuration This bit is when set indicates that the power Core budget for the device is included within the system power budget. Structure. • 0 = Enable (NIC) •...
Programmer’s Guide BCM5722 10/15/07 DMA L RITE ENGTH NABLE AND EQUEST IAGNOSTIC EGISTER FFSET 7C18) Note: This register is not applicable to the BCM5906 device. Table 417: Write DMA Length/Byte Enable and Request Diagnostic Register (Offset 0x7C18) Field Description Init...
Programmer’s Guide BCM5722 10/15/07 7C34) LAVE EQUEST ENGTH AND IAGNOSTIC EGISTER FFSET Note: This register is not applicable to the BCM5906 device. Table 424: Slave Request Length and Type Diagnostic Register (Offset 0x7C34) Field Description Init Access 31:26 Reg_slv_len_req Reserved 25:16 –...
BCM5722 Programmer’s Guide 10/15/07 XMT S 7C3C) TATE ACHINES AND ATED EQUESTS IAGNOSTIC EGISTER FFSET Note: This register is not applicable to the BCM5906 device. Table 426: XMT State Machines and Gated Requests Diagnostic Register (Offset 0x7C3C) Field Description Init...
Programmer’s Guide BCM5722 10/15/07 DMA C 1 (O 7C48) OMPLETION EADER IAGNOSTIC EGISTER FFSET Note: This register is not applicable to the BCM5906 device. Table 429: DMA Completion Header Diagnostic Register 1 (Offset 0x7C48) Field Description Init Access 31:0 Reg_hdr0...
BCM5722 Programmer’s Guide 10/15/07 TLP D 7C6C) EBUG EGISTER FFSET Note: This register is not applicable to the BCM5906 device. Table 438: TLP Status Register (Offset 0x7C60) Field Description Init Access A4 Device Indication Bit Indicates whether the device is A4 chip...
Page 455
Programmer’s Guide BCM5722 10/15/07 Table 439: Data Link Control Register (Offset 0x7D00) (Cont.) Field Description Init Access Enable Pending Enable this fix to wake up from L1 and flush out pending Completion Packet TLP. Issue Fix CQ10452 • 1 = Disable fix •...
BCM5722 Programmer’s Guide 10/15/07 7D04) TATUS EGISTER FFSET Table 440: Data Link Status Register (Offset 0x7D04) Field Description Init Access 31:26 Reserved Write as 0, ignore when read. 25:23 PHY Link State Current physical layer power state. • 000 = L0 •...
Programmer’s Guide BCM5722 10/15/07 7D08) TTENTION EGISTER FFSET Table 441: Data Link Attention Register (Offset 0x7D08) Field Description Init Access 31:5 Reserved Write as 0, ignore when read. – Data Link Layer Error Asserted when any of the following bits are set in the data...
BCM5722 Programmer’s Guide 10/15/07 7D10) RANSMIT EQUENCE UMBER EBUG EGISTER FFSET Table 443: Next Transmit Sequence Number Debug Register (Offset 0x7D10) Field Description Init Access 31:12 Reserved Write as 0, ignore when read. 11:0 Next Transmit Transmit sequence number for the next TLP to be sent. 0x000...
Programmer’s Guide BCM5722 10/15/07 ACK T 7D24) IMEOUT EGISTER FFSET Table 448: Data Link ACK Timeout Register (Offset 0x7D24) Field Description Init Access 31:11 Reserved Write as 0, ignore when read. 10:0 ACK Latency Timeout ACK latency timeout value in data link layer clock cycles...
Programmer’s Guide BCM5722 10/15/07 DLLP E 7D44) RROR OUNTER FFSET Table 456: DLLP Error Counter (Offset 0x7D44) Field Description Init Access 31:16 Reserved Write as 0, ignore when read. 15:0 DLLP Error Counter Counts number of bad DLLPs received (includes bad RO/CR LCRC or bad length) since last read.
BCM5722 Programmer’s Guide 10/15/07 Table 458: Data Link Test Register (Offset 0x7D4C) (Cont.) Field Description Init Access Invert CRC Force entire LCRC to be inverted. Send Bad CRC Force last bit of LCRC to be inverted. BIST R 7D50) ACKET...
Programmer’s Guide BCM5722 10/15/07 1.1 C 7D54) ONTROL EGISTER Table 460: Link PCIe 1.1 Control Register (0x7D54) Field Description Init Reset Access 31:29 Rtbf_ct[2:0] Timing debug control pins for the retry buffer, Chip normally 0. These bits are only writable when...
BCM5722 Programmer’s Guide 10/15/07 Table 460: Link PCIe 1.1 Control Register (0x7D54) (Cont.) Field Description Init Reset Access dASPM10usTimer Disable ASPM 10us Timer before next ASPM Chip L1 request after naked ASPM L1 request. This (hard + is a PCIe1.1 requirement. Assertion of disable soft) will go back to 1.0a version.
Programmer’s Guide BCM5722 10/15/07 PHY/L LTSSM C 7E08) ONTROL EGISTER FFSET Table 463: PHY/Link LTSSM Control Register (Offset 0x7E08) Field Description Init Access 31:8 Reserved – DisableScramble Disable scrambling and de-scrambling. DetectState High layer directs LTSSM to detect state if set. The bit is cleared when LTSSM entered into detect state.
BCM5722 Programmer’s Guide 10/15/07 PHY/L N_FTS (O 7E14) RAINING FFSET Table 466: PHY/Link Training N_FTS (Offset 0x7E14) Field Description Init Access 31:16 Reserved – Increase_TX_L0s_exit Add programmable register to increase tx L0s exit (BCM5906 only) latency. This may be used to offset the extended tx idle/ active time in the LP version of the SerDes Analog.
BCM5722 Programmer’s Guide 10/15/07 Table 472: PHY Test Control Register (Offset 0x7E2C) (Cont.) Field Description Init Access Fast Symbol Lock Up When this bit is: • Set to 1, the symbol boundary locks after receiving the first COM symbol. • Clear, the symbol boundary locks after receiving four COM symbols within a 64-symbol time.
Programmer’s Guide BCM5722 10/15/07 PHY T 7E34) IMING ARAMETER VERRIDE EGISTER FFSET Table 474: PHY Timing Parameter Override Register (Offset 0x7E34) Field Description Init Access ts1NumOverride Set to override the TS1 number to be sen out in polling active state with the value in bit (27:16) of this register from the specification defined value.
Programmer’s Guide BCM5722 10/15/07 RANSCEIVER EGISTERS This section describes the MII registers of the integrated 10/100/1000T PHY transceivers. The access to the transceiver registers is provided indirectly through the MII Communication Register (see “MI Communication Register (Offset 0x44C)” on page 251) of the MAC.
• 1 = PHY reset • 0 = Normal operation Internal Loopback The BCM5722 Ethernet controller can be placed into internal loopback mode by writing a 1 to bit 14 of the MII Control Register. The loopback mode can be cleared by writing a 0 to bit 14 of the MII Control Register, or by resetting the chip.
8 of the Control Register. Setting this bit to a 1 forces the BCM5722 Ethernet controller into full-duplex operation, and setting this bit to a 0 forces the BCM5722 Ethernet controller into half-duplex operation. • 1 = Full-duplex •...
Page 476
• 1 = Preamble can be suppressed • 0 = Preamble always required Auto-negotiation The BCM5722 Ethernet controller returns a 1 on bit 15 of Complete the Auxiliary Status Summary Register (see “Auxiliary Status Summary Register (PHY_Addr = 0x1, Reg_Addr = 19h)”...
Init Access Link Status The BCM5722 Ethernet controller returns a 1 on bit 2 of the MII Status Register when the link monitor is in the Link Pass state, indicating that a valid link has been established. Otherwise, it returns a 0. When a link failure...
Next Page exchange. When this bit is written to 0, Next Page exchange is controlled automatically by the BCM5722 Ethernet controller. When this bit is 0 and the BCM5722 Ethernet controller is advertising no 1000BASE-T capability, no exchange of Next Pages occurs.
Page 479
Bits 4:0 of the auto-negotiation advertisement register 00001 indicate the protocol type. The value 00001 indicates that the BCM5722 Ethernet controller belongs to the 802.3 class of PHY transceivers. 00001 indicates IEEE 802.3 CSMA/CD Bro adco m Co rp or atio n...
Description Init Access Next Page The BCM5722 Ethernet controller returns a 1 on bit 15 of the Link Partner Ability register when the link partner wishes to transmit Next Page information. • 1 = Link partner has Next Page ability •...
Description Init Access 10BASE-T Full-Duplex The BCM5722 Ethernet controller returns a 1 on bit 6 of the Link Partner Capability Ability register when the link partner has advertised 10BASE-T full-duplex capability, otherwise, it returns a 0. • 1 = Link partner is 10BASE-T full-duplex capable •...
• 0 = Unformatted page. Acknowledge2 When this bit is set to 1, the BCM5722 Ethernet controller indicates that it can comply with the Next Page request. When this bit is set to 0, the BCM5722 Ethernet controller indicates that it cannot comply with the Next Page request.
• 0 = Cannot comply with message. Toggle The link partner toggles this bit between different Next Page exchanges to insure a functional synchronization to the BCM5722 Ethernet controller. Toggles between exchanges of different Next Pages. 10:0 Message Code Field These 11 bits make up the message code defined IEEE 0...0...
When bit 11 is set to 1, the BCM5722 Ethernet controller is configured as master. When bit 11 is set to 0, the BCM5722 Ethernet controller is configured as slave. When read, this bit returns the last value written.
• 1 = Local transmitter is Master. • 0 = Local transmitter is Slave. Local Receiver Status The BCM5722 Ethernet controller returns a 1 on bit 13 of the 1000BASE-T Status Register when the local receiver status is OK, otherwise, it returns a 0.
Field Description Init Access Remote Receiver The BCM5722 Ethernet controller returns a 1 on bit 12 of the Status 1000BASE-T Status Register when the remote receiver status is OK, otherwise, it returns a 0. • 1 = Remote receiver OK.
The automatic MDI crossover function can be disabled by Crossover writing a 1 to bit 14 of the PHY Extended Control Register. When the bit is written to 0, the BCM5722 Ethernet controller performs the automatic MDI crossover function (see “Automatic MDI Crossover”...
Page 488
When bit 3 of the PHY Extended Control Register is written to 1, the BCM5722 Ethernet controller forces all LEDs into the OFF state. When bit 3 is written to 0, the BCM5722 Ethernet controller resets all LEDs to normal operation.
• 1 = Remote receiver OK. • 0 = Remote receiver not OK since last read. Local Receiver Status The BCM5722 Ethernet controller returns a 1 on bit 10 of the PHY Extended Status Register when the local receiver status is OK.
Page 490
• 1 = Bad ESD error detected since last read. • 0 = No bad ESD error since last read. Receive Error Detected The BCM5722 Ethernet controller returns a 1 on bit 3 of the PHY Extended Status Register if a packet was received with an invalid code since the last time this register was read, otherwise, it returns a 0.
S3MII Error Counter increments each time the BCM5722 Ethernet controller detects a S3MII overrun/underrun event. False Carrier Sense Counter increments each time the BCM5722 Ethernet controller detects a false carrier on the receive input. These counters freeze at the maximum value FFh. The counters automatically clear when read.
1 (PHY_Addr = 0X1, REG_Addr = 1EH)” on page 480) is clear). Remote Receiver Number of times the BCM5722 Ethernet controller NOT_OK Counter detected that the remote receiver was not OK since last read (when PHY Test Register 1. CRC_Error_Count_Visibility bit (see “PHY Test Register...
Programmer’s Guide BCM5722 10/15/07 (PHY_ADDR = 0 1, R = 17 XPANSION EGISTER CCESS EGISTER When enabled, this register serves as an index to the expansion registers. The value of the expansion register can be read/ written through register 15h (see “Expansion Register Access Data (PHY_ADDR = 01h, REG_ADDR = 15h)”...
BCM5722 Programmer’s Guide 10/15/07 XPANSION EGISTER ECEIVE RANSMIT ACKET OUNTER The following expansion registers are enabled by writing to “Expansion Register Access Register (PHY_ADDR = 0x1, Reg_Addr = 17h)” on page 434 bits [11:0] = F00h, and read/write access is through register 15h.
Programmer’s Guide BCM5722 10/15/07 Expansion Interrupt Status These bits corresponds to the Expansion Interrupt Status bits. Transmit CRC Error (Copper Only) Bit 0 = 1 indicates that a transmit CRC error occurred since the register was last read, otherwise, it returns a 0.
BCM5722 Programmer’s Guide 10/15/07 LED S XPANSION EGISTER ULTICOLOR ELECTOR The following expansion registers are enabled by writing to “Expansion Register Access Register (PHY_ADDR = 0x1, Reg_Addr = 17h)” on page 434 bits [11:0] = F04h, and read/write access is through register 15h.
Programmer’s Guide BCM5722 10/15/07 In Phase When both MULTICOLOR[2:1] are set to the same mode, the outputs of MULTICOLOR[1] and MULTICOLOR[2] both toggle at the same time. This bit determines whether the LEDs are identical to each other or inverse from each other. When the two LED pins are attached to a special multicolored LED, the resulting LED color alternates between Off/Amber (In Phase) or Red/Green (Out of Phase).
BCM5722 Programmer’s Guide 10/15/07 Alternation Rate Setting bits [11:6] changes the width and gap of the alternating LED modes. These bits are only valid when the MULTICOLOR[1] Multicolor Selector and or the MULTICOLOR[2] Multicolor Selector bits = 0110. LED's duty cycle is exactly 50%.
Programmer’s Guide BCM5722 10/15/07 XPANSION EGISTER ABLE IAGNOSTIC ONTROLS The following expansion registers are enabled by writing to “Expansion Register Access Register (PHY_ADDR = 0x1, Reg_Addr = 17h)” on page 434 bits [11:0] = F10h, and read/write access is through register 15h.
BCM5722 Programmer’s Guide 10/15/07 XPANSION EGISTER ABLE IAGNOSTIC ESULTS The following Expansion registers are enabled by writing to “Expansion Register Access Register (PHY_ADDR = 0x1, Reg_Addr = 17h)” on page 434 bits [11:0] = F11h, and read/write access is through register 15h.
Channel 2 Length When the BCM5722 Ethernet controller detects an open or short on the cable, bits [15:8] reflect how far away the open or short is from the BCM5722 Ethernet controller. When no open or short is detected, bits [15:8] reflect the cable length connected to channel 2 in meters.
Channel 4 Length When the BCM5722 Ethernet controller detects an open or short on the cable, bits [15:8] reflect how far away the open or short is from the BCM5722 Ethernet controller. When no open or short is detected, bits [15:8] reflect the cable length connected to channel 2 in meters.
Length BCM5722 Ethernet controller receives packets up to 25 KB in length. When the bit is written to 0, the BCM5722 Ethernet controller only receives packets up to 4.5 KB in length. • 1 = Allow reception of extended length packets.
Page 504
Diagnostic Mode When bit 3 of the Auxiliary Control Register is written to 1, the BCM5722 Ethernet controller enters a special mode to diagnose faults within the cable plant. See Application Notes for details. • 1 = Cable diagnostic mode enabled.
BCM5722 Programmer’s Guide 10/15/07 Table 509: Auxiliary Control Register (PHY_Addr = 0x1, Reg_Addr = 18h, Shadow = 001, 10BASE-T) (Cont.) Field Description Init Access SQE Enable Mode Writing a 1 to this bit enables SQE mode. Writing a 0 disables it.This bit is valid only during 10BASE-T operation.
Field Description Init Access Auto-negotiation The BCM5722 Ethernet controller returns a 1 on bit 15 of the Complete Auxiliary Status Summary Register when auto-negotiation is complete. This bit returns a 0 while auto-negotiation is in progress. • 1 = Auto-negotiation complete.
Page 510
• 0 = Parallel link fault not detected. Remote Fault The BCM5722 Ethernet controller returns a one on bit 6 of the Auxiliary Status Summary Register when the link partner has advertised detection of a remote fault, otherwise, it returns a •...
Page 511
Init Access Link Status The BCM5722 Ethernet controller returns a 1 on bit 2 of the auxiliary status summary register when the link status is good, otherwise, it returns a 0. • 1 = Link is up (Link Pass state).
• 0 = Interrupt cleared. HCD No Link Bit 9 of the Interrupt Status Register is set to 1 by the BCM5722 Ethernet controller when the negotiated HCD was not able to establish a link. The bit is cleared when the register is read.
Page 513
• 1 = Local receiver status changed since last read. • 0 = Interrupt cleared. Duplex Mode Change The BCM5722 Ethernet controller returns a one on bit 3 of the Interrupt Status Register when the duplex mode has changed since the last time this register was read, otherwise, it returns a 0.
BCM5722 Programmer’s Guide 10/15/07 (PHY_A 1, R = 1B NTERRUPT EGISTER Table 515: Interrupt Mask Register (PHY_Addr = 0x1, Reg_Addr = 1Bh) Field Description Init Access 15:0 Interrupt Mask Vector When bit n of the Interrupt Mask Register is written to 1, the 11…1...
BCM5722 Programmer’s Guide 10/15/07 LED S (PHY_A 1, R = 1C 01000 TATUS HADOW Table 520: LED Status Register (Address 1Ch, Shadow Value 01000) Field Description Init Access Write Enable • 1 = Write bits [9:0]. • 0 = Read bits [9:0].
Page 519
Programmer’s Guide BCM5722 10/15/07 INTR Indicator When LED Status register bit 6 returns a 0, the device is in the interrupted mode. When this bit returns a 1, the device is not in the interrupted mode. LINKSPD Indicator When LED Status register bits 4:3 return a 00, the device is in the 1000BASE-TX link mode. When these bits return a 01, the device is in the 100BASE-TX link mode.
Programmer’s Guide BCM5722 10/15/07 Link Utilization LED Selector These bits apply to the LED programmed to the ACTIVITY mode only. In the activity LED mode, the LED expresses an estimated activity in terms of blink rate. The blink rate of the LED increases as the activity duty cycle increases by increments of 10%.
BCM5722 Programmer’s Guide 10/15/07 Wakeup Timer Select The port continues wakeup mode for a time based on the count stored in this register. The minimum value is 84 ms and the maximum value is 1.26s. This only applies when the part is in Auto Power-Down mode.
Page 523
Programmer’s Guide BCM5722 10/15/07 Write Enable During a write to this register, setting LED Selector 1 register bit 15 to a 1 allows writing to bits [7:0] of this register. For reading the values of bits [9:0], perform an MDIO write with bit 15 set to a 0 and preferred shadow values in bits [14:10]. The next MDIO read of register address 1Ch contains the preferred Shadow register values in bits [9:0].
Programmer’s Guide BCM5722 10/15/07 Shadow Register Selector Bits [14:10] of this register must be set to 01110 to enable read/write to the LED Selector register 2 address 1Ch. LED4 Selector Bits [7:4] of MII register 1Ch with shadow value 01110 select the LED2 output mode.
BCM5722 Programmer’s Guide 10/15/07 Programmable LED I/O Control Setting LED GPIO Control/Status register bits [3:0] set the LED pin to disable LED output. Clearing LED GPIO Control/Status register bits [3:0] set the LED pin to enable LED output. SGMII/M (PHY_A...
Page 528
BCM5722 Programmer’s Guide 10/15/07 Comma Detected Bit 7 of 1000BASE-X Auto-negotiation Debug register indicates a comma was detected since last read. AN_Sync_Status Bit 6 of 1000BASE-X Auto-negotiation Debug register indicates the AN_sync_status has not failed since last read. Idle Detect State Bit 5 of 1000BASE-X Auto-negotiation Debug register indicates the idle detect state entered since last read.
In this mode, the BCM5722 Ethernet controller can transmit packets up to 9 KB in length. When this bit is cleared, the FIFO elasticity is set to low latency. In this mode, the BCM5722 Ethernet controller can transmit packets up to 4.5 KB in length.
Page 531
Programmer’s Guide BCM5722 10/15/07 Shadow Register Selector Bits [14:10] of this register must be set to 11100 to enable read/write to the Auxiliary 1000BASE-X Status register Link Status Change Bit 9 of Auxiliary 1000BASE-X Status register indicates that the link status has changed since the last register read.
BCM5722 Programmer’s Guide 10/15/07 1000BASE-X S (PHY_A 1, R = 1C 11101 TATUS HADOW Table 530: Misc 1000BASE-X Status Register (Address 1Ch, Shadow Value 11101) Field Description Init Access Write Enable • 1 = Write bits [9:0]. • 0 = Read bits [9:0].
Page 533
Programmer’s Guide BCM5722 10/15/07 False Carrier Detected Bit 5 of Misc 1000BASE-X Status register indicates a false carrier detected since the last read. CRC Error Detected Bit 4 of Misc 1000BASE-X Status register indicates a CRC error detected since the last read.
Page 535
Programmer’s Guide BCM5722 10/15/07 SerDes Auto Power Down mode Bit 4 of the Autodetect Medium register enables the power down of SerDes when the filtered signal detect is inactive. Power Down Inactive Interface Bit 3 of the Autodetect Medium register enables the power down of SerDes when copper is selected, and power down of copper when SerDes is selected.
BCM5722 Programmer’s Guide 10/15/07 (PHY_A 1, R = 1C 11111 ONTROL HADOW Table 532: Mode Control Register (Address 1Ch, Shadow Value 11111) Field Description Init Access Write Enable • 1 = Write bits [9:0]. • 0 = Read bits [9:0].
Page 537
Programmer’s Guide BCM5722 10/15/07 SerDes link Bit 6 of the Mode Control register indicates the link status of the SerDes interface is up. Otherwise, it reads a 0. Copper Energy Detect Bit 5 of the Mode Control register indicates that energy is detected in the copper interface. Otherwise, it reads a 0.
BCM5722 Programmer’s Guide 10/15/07 (BCM5906/BCM5906M) RANSCEIVER EGISTERS This section describes the MII registers of the integrated 10/100 PHY transceivers. The access to the transceiver registers is provided indirectly through the MII Communication Register (see “MI Communication Register (Offset 0x44C)” on page 251) of the MAC.
Programmer’s Guide BCM5722 10/15/07 To put a transceiver with PHY address 00001 into loopback mode, the following MII write instruction must be issued: 1111 1111 1111 1111 1111 1111 1111 1111 0101 00001 00000 10 0100 0000 0000 0000 1...
Page 542
008Ah 28(1Ch) 10Base-T Auxiliary Error and General Status 002Xh Register 29(1Dh) Auxiliary Mode Register X004h 30(1Eh) Auxiliary Multi PHY Register 0000h 31(1Fh) Broadcom Test Register 000Bh 16(10h) Miscellaneous Control Register 0000h 17(11h) Reserved 0000h 18(12h) Reserved 0000h 19(13h) Cable Diagnostic Register...
Programmer’s Guide BCM5722 10/15/07 MII R EGISTER ETAILED ESCRIPTION The following tables describe individual register bits and their function. MII Control Register Table 538: Control Register (Address 00d, 00h) Name Description Default Soft Reset 1 = PHY reset (SC) 0 = Normal operation...
Page 544
BCM5722 Programmer’s Guide 10/15/07 Auto-Negotiation Enable Auto-negotiation can be disabled either by hardware or software control. If the ANEN input pin is driven to logic 0, auto- negotiation is disabled by hardware control. If bit 12 of the Control Register is written with a value of 0, auto-negotiation is disabled by software control.
PHYID LOW 6xxxh Broadcom Corporation has been issued an Organizationally Unique Identifier (OUI) by the IEEE. It is a 24-bit number (00- 0A–F7) expressed as hexadecimal values. This 24 bit OUI number is represented in binary as OUI[1:24] = 00000000 01010000 11101111.
BCM5722 Programmer’s Guide 10/15/07 Resetting the chip restores the default bit values. Reading the register returns the values last written to the corresponding bits, or else the default values if no write has been completed since the last chip reset.
Programmer’s Guide BCM5722 10/15/07 LP Advertise Bits Bits 9:5 of the Link Partner Ability register reflect the abilities of the link partner. A 1 on any of these bits indicates that the link partner is capable of performing the corresponding mode of operation. Bits 9:5 are cleared any time auto-negotiation is restarted or the PHY is reset.
BCM5722 Programmer’s Guide 10/15/07 Link Partner Auto-Negotiation Able Bit 0 of the Auto-Negotiation Expansion Register returns a 1 when the link partner is known to have auto-negotiation capability. Before any auto-negotiation information is exchanged, or if the link partner does not comply with IEEE auto- negotiation, the bit returns a value of 0.
Programmer’s Guide BCM5722 10/15/07 Extended FIFO Enable Controls the extended receive FIFO mechanism. This bit may have to be set if the Jumbo Packet Enable bit is set. 100BASE-X Auxiliary Status Register Table 547: 100BASE-X Auxiliary Status Register (Address 17d, 11h)
BCM5722 Programmer’s Guide 10/15/07 Remote Fault The PHY returns a 1 while its link partner is signaling a far-end fault condition. Otherwise, it returns a 0. False Carrier Detected The PHY returns a 1 in bit 5 of the extended status register if a false carrier has been detected since the last time this register was read.
Programmer’s Guide BCM5722 10/15/07 100BASE-X False Carrier Sense Counter Table 549: 100BASE-X False Carrier Sense Counter (Address 19d, 13h) Name Description Default 15:8 SMII Overrun/Underrun Number of overruns/underruns since last read Counter [7:0] False Carrier Sense Number of false carrier sense events since last read...
BCM5722 Programmer’s Guide 10/15/07 Auxiliary Control/Status Register Table 551: Auxiliary Control/Status Register (Address 24d, 18h) Name Description Default Jabber Disable 1 = Jabber function disabled in PHY 0 = Jabber function enabled in PHY Link Disable 1 = Link integrity test disabled in PHY...
Page 557
Programmer’s Guide BCM5722 10/15/07 HSQ:LSQ Extends or decreases the squelch levels for detection of incoming 10BASE-T data packets. The default squelch levels implemented are those defined in the IEEE standard. The high-squelch and low-squelch levels are useful for situations where the IEEE- prescribed levels are inadequate. The squelch levels are used by the CRS/link block to filter out noise and recognize only valid packet preambles and link integrity pulses.
BCM5722 Programmer’s Guide 10/15/07 Auxiliary Status Summary Register The Auxiliary Status Summary register contains copies of redundant status bits found elsewhere within the MII register space. Descriptions for each of these individual bits can be found associated with the primary register descriptions.
Programmer’s Guide BCM5722 10/15/07 Interrupt Register Table 553: Interrupt Register (Address 26d, 1Ah) Name Description Default FDX LED Enable Ignore when read INTR Enable Interrupt enable Cable Disconnect Mask Cable disconnect mask Reserved FDX Mask Full-duplex interrupt mask SPD Mask...
Page 560
BCM5722 Programmer’s Guide 10/15/07 SPD Mask When this bit is set, changes in operating speed does not generate an interrupt. Link Mask When this bit is set, changes in link status does not generate an interrupt. Interrupt Mask Master interrupt mask. When this bit is set, no interrupts will be generated, regardless of the state of the other mask bits.
Page 562
BCM5722 Programmer’s Guide 10/15/07 Traffic Meter LED Mode When enabled, the Activity LEDs (ACTLED and FDXLED if full-duplex LED and interrupt LED modes are not enabled) does not blink based on the internal LED clock (approximately 80 ms on time). Instead, they blink based on the rate of receive and transmit activity.
Programmer’s Guide BCM5722 10/15/07 10BASE-T Auxiliary Error And General Status Register Table 555: 10BASE-T Auxiliary Error and General Status Register (Address 28d, 1Ch) Name Description Default 15:14 Reserved MDIX Status 0 = MDI is in use 1 = MDIX is in use...
Page 564
BCM5722 Programmer’s Guide 10/15/07 Manchester Code Error Indicates that a Manchester code violation was received. This bit is only valid during 10BASE-T operation. End of Frame Error Indicates that the end-of-frame (EOF) sequence was improperly received, or not received at all. This error bit is only valid during 10BASE-T operation.
10BASE-T Serial Mode Writing a 1 to bit 1 of the Auxiliary Mode register enables the 10BASE-T serial mode. Serial operation is not available in 100BASE-X mode Broadcom Test Register Table 558: Broadcom Test Register (Address 31d, 1Fh) Name Description Default...
BCM5722 Programmer’s Guide 10/15/07 HADOW EGISTER ETAILED ESCRIPTION The following tables describe the shadow registers bits and their function. Shadow register access is enabled by writing a 1 to bit 7 of MII register 31 (1Fh). When non-shadow register access is required, write a 0 to bit 7 of MII register 31 (1Fh).
Programmer’s Guide BCM5722 10/15/07 MLT3 Detected The PHY returns a 1 in this bit whenever MLT3 signaling is detected. Cable Length 100X[2:0] The PHY provides the cable length for each port when a 100-TX link is established. Table 561: 100-TX Port Cable Length...
BCM5722 Programmer’s Guide 10/15/07 Auxiliary Status 3 Register (Shadow Register) Table 562: Auxiliary Status 3 Register (Shadow Register 28d, 1Ch) Name Description Default 15:8 Noise[7:0] Current mean-squared error value, valid only if link is established Reserved 000h FIFO Consumption[3:0] Currently utilized number of nibbles in the receive FIFO 0000 MII shadow register bank 1 is accessed by setting MII register 1Fh bit 7 to a 1.
Page 572
BCM5722 Programmer’s Guide 10/15/07 A p p e n di x A : Fl ow C on t ro l OTES Developers can refer to the IEEE 802.3 Annex 31B specification for detailed information on Ethernet flow control mechanisms. •...
Programmer’s Guide BCM5722 10/15/07 RANSFER The client begins a FTP session (see Figure 68). The file size is very large and will take several minutes for a complete trans- fer, even at gigabit wire speed. File Transfer File Switch Gigabit Server...
BCM5722 Programmer’s Guide 10/15/07 WITCH UFFERS The switch must wait/inhibit transmission to the Client (see Figure 70). During the pause interval, the Server is still sending packets to the Switch. The Switch will buffer some packets, but will eventually hit an internal threshold; memory will run short.
Programmer’s Guide BCM5722 10/15/07 WITCH ACKPRESSURE The Switch will jam ports configured with half-duplex link to slow frame transmission (see Figure 71). In this case, the Server connection must be half-duplex, and then the switch may apply backpressure to the port. The Switch will transmit a jamming pattern, which will prevent the Server from transmitting further packets.
BCM5722 Programmer’s Guide 10/15/07 RANSFER OMPLETE The Client has caught up with the transmission flow of the Server (see Figure 73). The Client’s RX buffers/memory is below the flow control threshold. The file is transfer is complete. This scenario was a worst-case cascade, where the pause delay propagated through the LAN.
Page 577
APM driver must call the APM BIOS once per second so the BIOS will not assume a system hang—watchdog type functionality. • Layer 4 is the APM aware Device Drivers and applications. NIC vendors like Broadcom provide power management capable device drivers. Add-in devices, like the BCM5722 Ethernet controller, have a power management capable device driver.
Programmer’s Guide BCM5722 10/15/07 Full On APM_DISABLE APM_ENABLE SUSPEND LONG SUSPEND Hybernation Enabled Suspend WAKE_UP WAKE_UP RESUME STANDBY_CALL Standby Figure 76: States for Power Consumption Management The following register interfaces were taken from the APM BIOS specification and are intended as a quick reference (see Table 566).
BCM5722 Programmer’s Guide 10/15/07 Table 566: Function Codes Quick Reference (Cont.) AH Value Function Description 0x08 Set power state 0x09 Enable/disable power management 0x0A Get power status 0x0B Get power managed event 0x0C Get power state 0x0D Enable/disable device power management...
Page 581
Power Managed Device Driver—Vendor supplied software, which programs device-specific power management features. For example, the BCM5722 Ethernet controller needs to disable RX/TX RISC processor clocking for D3 states. The O/S does not have the necessary runtime code or understanding of the MAC’s architecture.
BCM5722 Programmer’s Guide 10/15/07 Kernel Power Managment Model Device Driver ACPI Driver Operating System BIOS ACPI Registers ACPI Tables ACPI BIOS System Hardware BIOS Figure 77: Advanced Configuration and Power Interface (ACPI) Components Bro adco m C orp or atio n...
Programmer’s Guide BCM5722 10/15/07 The OS Power Management (OSPM) is responsible for global power state transitions. A global state is a platform wide con- figuration, which directs sleep and device power management state(s). The following global states are defined in the ACPI 2.0 specification (see...
BCM5722 Programmer’s Guide 10/15/07 The ACPI Sleep States are subsets of the global ACPI G0–G3 states. For example, G0 working state corresponds to the S0 sleep state. The sleep states are defined in the ACPI 2.0 specification (see Figure 79): •...
Programmer’s Guide BCM5722 10/15/07 The ACPI 2.0 specification defines power management behavior for device classes differently. For example, audio device states D0–D3, are not similar to modem device states. Refer to Appendix A of the ACPI 2.0 specification for a detailed dis- cussion of device power management.
Page 586
BCM5722 Programmer’s Guide 10/15/07 The PCI 2.2 specification states: “The Power Management Event (PME) signal is an optional hardware signal.” Wake capable networking devices will implement PME, so a change in system power management state can be requested. PME must be driven until system software clears the power management event. The PME signal is asynchronous to PCI clocking.
Programmer’s Guide BCM5722 10/15/07 ® The ACPI specification refers to SMM as a legacy mode and prefers the native O/S (i.e., Microsoft Windows, Linux , etc.) to handle the interrupt. The essential problem with using SMI, resides in moving the processor into SMM mode; the native OS does not have visibility into the event.
Programmer’s Guide BCM5722 10/15/07 Ap pe nd i x C: T i mi ng Con si d era t io ns ROM A PCI R XPANSION CCESS FTER ESET After the device is reset, ROM code in the device takes 20 ms to 50 ms (depending on the size of the boot firmware) to load the initial firmware code stored in the NVRAM.
Figure 83 shows the BCM5722 Ethernet controller GPIO hold condition. The GPIO pins hold their current output until the rising edge of reset. If the GPIO pins were tristated before the falling edge of RST, the pins will remain tri-stated. After the rising edge of reset, the GPIO pins will tri-state.
PCI devices may optionally expose device specific programs to BIOS. For example, network devices may place PXE bootcode in their expansion ROM region. Host Coalescing A hardware block which the BCM5722 Ethernet controller status block. The hardware will drive a line interrupt or MSI. Interrupt Distribution Queue The BCM5722 Ethernet controller supports four interrupt distribution queues per class of service.
Page 592
BCM5722 Programmer’s Guide 10/15/07 Bro adco m C orp or atio n Page 533 GPIO Hold Condition Document 5722-PG101-R...
Page 593
Corporation reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Broadcom Corporation is believed to be accurate and reliable. However, Broadcom Corporation does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others.
Need help?
Do you have a question about the BCM5722 and is the answer not in the manual?
Questions and answers