Main
2Hardware Reference Manual
Revision History
Contents
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Figures
Page
Page
Tables
Page
Page
Page
Page
Page
Introduction 1
1.1 About This Document
1.2 Related Documentation
1.3 Terminology
Technical Description 2
2.1 Overview
Intel IXP2800 Network Processor
Figure 1. IXP2800 Network Processor Functional Block Diagram
Figure 2. IXP2800 Network Processor Detailed Diagram
2.2 Intel XScale Core Microarchitecture
2.2.1 ARM* Compatibility
2.2.2 Features
2.2.2.1 Multiply/Accumulate (MAC)
2.2.2.2 Memory Management
2.2.2.4 Branch Target Buffer
2.2.2.5 Data Cache
2.2.2.6 Interrupt Controller
2.2.2.7 Address Map
2.3 Microengines
Figure 4. Microengine Block Diagram
NNData_In (from previous ME)
D_Push (from DRAM)
S_Push (from SRAM Scratchpad, MSF, Hash, PCI, CAP)
Control Store
2.3.1 Microengine Bus Arrangement
2.3.2 Control Store
2.3.3 Contexts
Page
2.3.4 Datapath Registers
2.3.4.1 General-Purpose Registers (GPRs)
2.3.4.2 Transfer Registers
2.3.4.3 Next Neighbor Registers
2.3.4.4 Local Memory
Page
2.3.5 Addressing Modes
2.3.5.1 Context-Relative Addressing Mode
2.3.5.2 Absolute Addressing Mode
2.3.5.3 Indexed Addressing Mode
2.3.6 Local CSRs
2.3.7 Execution Datapath
2.3.7.1 Byte Align
Page
2.3.7.2 CAM
Page
Page
2.3.8 CRC Unit
2.3.9 Event Signals
2.4 DRAM
2.4.1 Size Configuration
2.4.2 Read and Write Access
2.5 SRAM
2.5.1 QDR Clocking Scheme
2.5.2 SRAM Controller Configurations
2.5.3 SRAM Atomic Operations
2.5.4 Queue Data Structure Commands
2.5.5 Reference Ordering
Table 12. Address Reference Order
Table 13. Q_array Entry Reference Order
2.5.5.2 Microengine Software Restrictions to Maintain Ordering
2.6 Scratchpad Memory
2.6.1 Scratchpad Atomic Operations
2.6.2 Ring Commands
Page
2.7 Media and Switch Fabric Interface
2.7.1 SPI-4
2.7.2 CSIX
2.7.3 Receive
2.7.3.1 RBUF
2.7.3.2 Full Element List
2.7.3.3 RX_THREAD_FREELIST
2.7.3.4 Receive Operation Summary
2.7.4 Transmit
2.7.4.1 TBUF
The definitions of the fields are shown in Table15.
Table 15. TBUF SPI-4 Control Definition
Hardware Reference Manual 67
The definitions of the fields are shown in Table16.
2.7.4.2 Transmit Operation Summary
Table 16. TBUF CSIX Control Definition
2.7.5 The Flow Control Interface
2.7.5.1 SPI-4
2.7.5.2 CSIX
2.8 Hash Unit
Figure 14. Hash Unit Block Diagram
2.9 PCI Controller
2.9.1 Target Access
2.9.2 Master Access
2.9.3 DMA Channels
2.9.3.1 DMA Descriptor
2.9.3.2 DMA Channel Operation
2.9.3.3 DMA Channel End Operation
2.9.3.4 Adding Descriptors to an Unterminated Chain
2.9.4 Mailbox and Message Registers
2.9.5 PCI Arbiter
2.10 Control and Status Register Access Proxy
2.11 Intel XScale Core Peripherals
2.11.1 Interrupt Controller
2.11.2 Timers
2.11.3 General Purpose I/O
2.11.4 Universal Asynchronous Receiver/Transmitter
2.11.5 Slowport
2.12 I/O Latency
2.13 Performance Monitor
Intel XScale Core 3
3.1 Introduction
3.2 Features
3.2.1 Multiply/ACcumulate (MAC)
3.2.2 Memory Management
3.2.3 Instruction Cache
3.2.4 Branch Target Buffer (BTB)
3.2.5 Data Cache
3.2.6 Performance Monitoring
3.2.7 Power Management
3.3 Memory Management
3.3.1 Architecture Model
Page
3.3.2 Exceptions
3.3.3 Interaction of the MMU, Instruction Cache, and Data Cache
3.3.4 Control
3.3.4.1 Invalidate (Flush) Operation
3.3.4.2 Enabling/Disabling
3.3.4.3 Locking Entries
3.3.4.4 Round-Robin Replacement Algorithm
3.4 Instruction Cache
3.4.1 Instruction Cache Operation
3.4.1.1 Operation when Instruction Cache is Enabled
3.4.1.2 Operation when Instruction Cache is Disabled
3.4.1.3 Fetch Policy
3.4.1.4 Round-Robin Replacement Algorithm
3.4.1.5 Parity Protection
3.4.1.6 Instruction Cache Coherency
3.4.2 Instruction Cache Control
3.4.2.1 Instruction Cache State at Reset
3.4.2.2 Enabling/Disabling
3.4.2.3 Invalidating the Instruction Cache
3.4.2.4 Locking Instructions in the Instruction Cache
Page
3.4.2.5 Unlocking Instructions in the Instruction Cache
3.5 Branch Target Buffer (BTB)
3.5.1 Branch Target Buffer Operation
3.5.1.1 Reset
SN WN WT ST
3.5.2 Update Policy
3.5.3 BTB Control
3.6 Data Cache
3.6.1 Overviews
3.6.1.1 Data Cache Overview
3.6.1.2 Mini-Data Cache Overview
3.6.1.3 Write Buffer and Fill Buffer Overview
3.6.2 Data Cache and Mini-Data Cache Operation
3.6.2.1 Operation when Caching is Enabled
3.6.2.2 Operation when Data Caching is Disabled
3.6.2.3 Cache Policies
Page
3.6.2.4 Round-Robin Replacement Algorithm
3.6.2.5 Parity Protection
3.6.2.6 Atomic Accesses
3.6.3 Data Cache and Mini-Data Cache Control
3.6.3.1 Data Memory State After Reset
3.6.3.2 Enabling/Disabling
3.6.3.3 Invalidate and Clean Operations
Page
3.6.4 Reconfiguring the Data Cache as Data RAM
3.6.5 Write Buffer/Fill Buffer Operation and Control
3.7 Configuration
3.8 Performance Monitoring
3.8.1 Performance Monitoring Events
3.8.1.1 Instruction Cache Efficiency Mode
3.8.1.2 Data Cache Efficiency Mode
3.8.1.3 Instruction Fetch Latency Mode
3.8.1.4 Data/Bus Request Buffer Full Mode
3.8.1.5 Stall/Writeback Statistics
3.8.1.6 Instruction TLB Efficiency Mode
3.9 Performance Considerations
3.9.1 Interrupt Latency
3.9.2 Branch Prediction
3.9.3 Addressing Modes
3.9.4 Instruction Latencies
3.9.4.1 Performance Terms
Page
3.9.4.2 Branch Instruction Timings
3.9.4.3 Data Processing Instruction Timings
Table 28. Branch Instruction Timings (Predicted by the BTB)
Table 29. Branch Instruction Timings (Not Predicted by the BTB)
Table 30. Data Processing Instruction Timings
3.9.4.4 Multiply Instruction Timings
Table 31. Multiply Instruction Timings (Sheet 1 of 2)
3.9.4.5 Saturated Arithmetic Instructions
Table 32. Multiply Implicit Accumulate Instruction Timings
Table 33. Implicit Accumulator Access Instruction Timings
Table 34. Saturated Data Processing Instruction Timings
Table 31. Multiply Instruction Timings (Sheet 2 of 2)
3.9.4.6 Status Register Access Instructions
3.9.4.7 Load/Store Instructions
3.9.4.8 Semaphore Instructions
Table 35. Status Register Access Instruction Timings
Table 36. Load and Store Instruction Timings
3.10 Test Features
3.10.1 IXP2800 Network Processor Endianness
3.10.1.1 Read and Write Transactions Initiated by the Intel XScale Core
Page
Page
3.11 Intel XScale Core Gasket Unit
3.11.1 Overview
Figure 26. Intel XScale Core-Initiated Write to the IXP2800 Network Processor (Continued)
Word Write by Intel XScale Core
Network Processor
3.11.2 Intel XScale Core Gasket Functional Description
3.11.2.1 Command Memory Bus to Command Push/Pull Conversion
3.11.3 CAM Operation
3.11.4 Atomic Operations
3.11.4.1 Summary of Rules for the Atomic Command Regarding I/O
3.11.4.2 Intel XScale Core Access to SRAM Q-Array
3.11.5 I/O Transaction
3.11.6 Hash Access
3.11.7 Gasket Local CSR
3.11.8 Interrupt
Figure 29. Interrupt Mask Block Diagram
3.12 Intel XScale Core Peripheral Interface
3.12.1 XPI Overview
3.12.1.1 Data Transfers
3.12.1.2 Data Alignment
3.12.1.3 Address Spaces for XPI Internal Devices
Table 5 3 shows the address space assignment for XPI devices.
Table 52. Data Transaction Alignment
Table 53. Address Spaces for XPI Internal Devices
3.12.2 UART Overview
3.12.3 UART Operation
3.12.3.1 UART FIFO OPERATION
3.12.4 Baud Rate Generator
3.12.5 General Purpose I/O (GPIO)
3.12.6 Timers
3.12.6.1 Timer Operation
3.12.7 Slowport Unit
3.12.7.1 PROM Device Support
3.12.7.2 Microprocessor Interface Support for the Framer
3.12.7.3 Slowport Unit Interfaces
Figure 35 shows the Slowport unit interface diagram.
Table 55. SONET/SDH Devices (Sheet 2 of 2)
Figure 35. Slowport Unit Interface Diagram
3.12.7.4 Address Space
3.12.7.5 Slowport Interfacing Topology
3.12.7.6 Slowport 8-Bit Device Bus Protocols
Figure 37. Slowport Example Application Topology
Page
Page
Page
3.12.7.7 SONET/SDH Microprocessor Access Support
Page
Figure 42. An Interface Topology with Lucent* TDAT042G5 SONET/SDH
Lucent TDAT042G5*
Intel IXP2000
Page
Page
Intel IXP2800
PMC-Sierra* PM5351
Page
Page
Page
Figure 49. Mode 3 Second Interface Topology with Intel / AMCC* SONET/SDH Device
Page
Page
Page
Figure 53. Second Interface Topology with Intel / AMCC* SONET/SDH Device
Page
Page
Page
Microengines 4
4.1 Overview
Figure 56. Microengine Block Diagram
NNData_In (from previous ME)
D_Push (from DRAM)
S_Push (from SRAM Scratchpad, MSF, Hash, PCI, CAP)
Control Store
4.1.1 Control Store
4.1.2 Contexts
Page
4.1.3 Datapath Registers
4.1.3.3 Next Neighbor Registers
4.1.3.4 Local Memory
4.1.4 Addressing Modes
4.1.4.1 Context-Relative Addressing Mode
4.1.4.2 Absolute Addressing Mode
4.1.4.3 Indexed Addressing Mode
4.2 Local CSRs
4.3 Execution Datapath
4.3.1 Byte Align
Page
4.3.2 CAM
Page
4.4 CRC Unit
4.5 Event Signals
4.5.1 Microengine Endianness
4.5.1.2 Write to TBUF
4.5.1.3 Read/Write from/to SRAM
4.5.1.4 Read/Write from/to DRAM
4.5.1.5 Read/Write from/to SHaC and Other CSRs
4.5.1.6 Write to Hash Unit
4.5.2 Media Access
4.5.2.1 Read from RBUF
4.5.2.2 Write to TBUF
4.5.2.3 TBUF to SPI-4 Transfer
DRAM 5
5.1 Overview
5.2 Size Configuration
5.3 DRAM Clocking
DRAM
5.4 Bank Policy
Figure 67. IXP2800 Clocking for RDRAM at 400 MHz
RMC RAC
System Ref_Clk
DRCG
5.5 Interleaving
5.5.1 Three Channels Active (3-Way Interleave)
DRAM Table 63. Address Rearrangement for 3-Way Interleave (Sheet 1 of 2)
5.5.2 Two Channels Active (2-Way Interleave)
5.5.3 One Channel Active (No Interleave)
5.5.4 Interleaving Across RDRAMs and Banks
5.6 Parity and ECC
5.6.1 Parity and ECC Disabled
5.6.2 Parity Enabled
5.6.3 ECC Enabled
5.6.4 ECC Calculation and Syndrome
5.7 Timing Configuration
5.8 Microengine Signals
5.9 Serial Port
5.10 RDRAM Controller Block Diagram
5.10.1 Commands
5.10.2 DRAM Write
5.10.2.1 Masked Write
5.10.3 DRAM Read
5.10.4 CSR Write
5.10.5 CSR Read
5.10.6 Arbitration
5.11 DRAM Push/Pull Arbiter
5.11.1 Arbiter Push/Pull Operation
5.11.2 DRAM Push Arbiter Description
5.12 DRAM Pull Arbiter Description
Page
Page
SRAM Interface 6
6.1 Overview
6.2 SRAM Interface Configurations
6.2.1 Internal Interface
6.2.2 Number of Channels
6.2.3 Coprocessor and/or SRAMs Attached to a Channel
6.3 SRAM Controller Configurations
Page
6.4 Command Overview
6.4.1 Basic Read/Write Commands
6.4.2 Atomic Operations
Page
6.4.3 Queue Data Structure Commands
Page
Page
6.4.3.1 Read_Q_Descriptor Commands
6.4.3.2 Write_Q_Descriptor Commands
6.4.3.3 ENQ and DEQ Commands
6.4.4 Ring Data Structure Commands
6.4.5 Journaling Commands
6.5 Parity
6.6 Address Map
6.7 Reference Ordering
6.7.1 Reference Order Tables
SRAM Interface
6.7.2 Microcode Restrictions to Maintain Ordering
Table 78. Q_array Entry Reference Order
Example 31. Table Update Microcode
6.8 Coprocessor Mode
Page
Page
Page
SHaC Unit Expansion 7
7.1 Overview
7.1.1 SHaC Unit Block Diagram
Figure 84. SHaC Top Level Diagram
7.1.2 Scratchpad
7.1.2.1 Scratchpad Description
Figure 85. Scratchpad Block Diagram
Scratchpad State Machine
Scratchpad RAM
7.1.2.2 Scratchpad Interface
7.1.2.3 Scratchpad Block Level Diagram
Page
Writes
Reads
Signal Done
Page
7.1.3 Hash Unit
Hash Algorithm
HASH_RESULT
7.1.3.1 Hashing Operation
Page
7.1.3.2 Hash Algorithm
Page
Media and Switch Fabric Interface 8
8.1 Overview
Page
8.1.1 SPI-4
Page
Table84 shows the order of bytes on SPI-4; this example shows a 43-byte packet.
Table 84. Order of Bytes1 within the SPI-4 Data Burst
Figure 90. Receive and Transmit Clock Generation
8.1.2 CSIX
8.1.3 CSIX/SPI-4 Interleave Mode
8.2 Receive
The receive section consists of:
8.2.1 Receive Pins
8.2.2 RBUF
Page
8.2.2.1 SPI-4
Page
The status contains the following information:
The definitions of the fields are shown in Table90.
Table 90. RBUF SPIF-4 Status Definition
8.2.2.2 CSIX
The definitions of the fields are shown in Table91.
Table 91. RBUF CSIX Status Definition
8.2.3 Full Element List
8.2.4 Rx_Thread_Freelist_#
8.2.5 Rx_Thread_Freelist_Timeout_#
8.2.6 Receive Operation Summary
Page
8.2.7 Receive Flow Control Status
8.2.7.1 SPI-4
8.2.7.2 CSIX
8.2.8 Parity
8.2.8.1 SPI-4
8.2.8.2 CSIX
8.2.9 Error Cases
8.3 Transmit
The transmit section consists of:
Each of these is described below. Figure 94 is a simplified block diagram of the MSF transmit block.
8.3.1 Transmit Pins
8.3.2 TBUF
Page
Page
8.3.2.1 SPI-4
The definitions of the fields are shown in Table98.
Table 98. TBUF SPI-4 Control Definition
8.3.2.2 CSIX
The definitions of the fields are shown in Table99.
Table 99. TBUF CSIX Control Definition
8.3.3 Transmit Operation Summary
8.3.3.1 SPI-4
8.3.3.2 CSIX
8.3.3.3 Transmit Summary
8.3.4 Transmit Flow Control Status
8.3.4.1 SPI-4
Page
8.3.4.2 CSIX
8.3.5 Parity
8.3.5.1 SPI-4
8.3.5.2 CSIX
8.4 RBUF and TBUF Summary
8.5 CSIX Flow Control Interface
8.5.1 TXCSRB and RXCSRB Signals
8.5.2 FCIFIFO and FCEFIFO Buffers
8.5.2.1 Full Duplex CSIX
8.5.2.2 Simplex CSIX
Page
8.5.3 TXCDAT/RXCDAT, TXCSOF/RXCSOF, TXCPAR/RXCPAR, and TXCFC/RXCFC Signals
8.6 Deskew and Training
Table 105. Calendar Deskew Functions
Table 106. Flow Control Deskew Functions
8.6.1 Data Training Pattern
8.6.2 Flow Control Training Pattern
8.6.3 Use of Dynamic Training
Table 110. IXP2800 Network Processor Requires Data Training
Table 111. Switch Fabric or SPI-4 Framer Requires Data Training
Page
8.7 CSIX Startup Sequence
8.7.1 CSIX Full Duplex
8.7.1.1 Ingress IXP2800 Network Processor
8.7.1.2 Egress IXP2800 Network Processor
8.7.1.3 Single IXP2800 Network Processor
8.7.2 CSIX Simplex
8.7.2.1 Ingress IXP2800 Network Processor
8.7.2.2 Egress IXP2800 Network Processor
8.7.2.3 Single IXP2800 Network Processor
8.8 Interface to Command and Push and Pull Buses
Figure 100. MSF to Command and Push and Pull Buses Interface Block Diagram
TBUF
RBUF
8.8.1 RBUF or MSF CSR to Microengine S_TRANSFER_IN Register for Instruction:
8.8.2 Microengine S_TRANSFER_OUT Register to TBUF or MSF CSR for Instruction:
8.8.3 Microengine to MSF CSR for Instruction:
8.8.4 From RBUF to DRAM for Instruction:
8.8.5 From DRAM to TBUF for Instruction:
8.9 Receiver and Transmitter Interoperation with Framers and Switch Fabrics
8.9.1 Receiver and Transmitter Configurations
Receiver
Transmitter
8.9.1.2 Hybrid Simplex Configuration
Processor
Network
Transmitter Fabric Receiver
8.9.1.3 Dual Network Processor Full Duplex Configuration
8.9.1.4 Single Network Processor Full Duplex Configuration (SPI-4.2)
8.9.1.5 Single Network Processor, Full Duplex Configuration (SPI-4.2 and CSIX-L1)
8.9.2 System Configurations
8.9.2.1 Framer, Single Network Processor Ingress and Egress, and Fabric Interface Chip
Figure 107. Framer, Single Network Processor Ingress and Egress, and Fabric Interface Chip
Figure 108. Framer, Dual Processor Ingress, Single Processor Egress, and Fabric Interface Chip
8.9.2.4 CPU Complex, Network Processor, and Fabric Interface Chip
8.9.2.5 Framer, Single Network Processor, Co-Processor, and Fabric Interface Chip
8.9.3 SPI-4.2 Support
8.9.3.1 SPI-4.2 Receiver
8.9.3.2 SPI-4.2 Transmitter
8.9.4 CSIX-L1 Protocol Support
8.9.4.1 CSIX-L1 Interface Reference Model: Traffic Manager and Fabric Interface Chip
8.9.4.2 Intel IXP2800 Support of the CSIX-L1 Protocol
Page
Page
Page
8.9.4.3 CSIX-L1 Protocol Receiver Support
8.9.4.4 CSIX-L1 Protocol Transmitter Support
8.9.4.5 Implementation of a Bridge Chip to CSIX-L1
8.9.5 Dual Protocol (SPI and CSIX-L1) Support
8.9.5.1 Dual Protocol Receiver Support
8.9.5.2 Dual Protocol Transmitter Support
8.9.5.3 Implementation of a Bridge Chip to CSIX-L1 and SPI-4.2
8.9.6 Transmit State Machine
8.9.6.1 SPI-4.2 Transmitter State Machine
8.9.6.2 Training Transmitter State Machine
8.9.6.3 CSIX-L1 Transmitter State Machine
8.9.7 Dynamic De-Skew
8.9.8 Summary of Receiver and Transmitter Signals
Intel IXP2800 Network Processor
Page
PCI Unit 9
9.1 Overview
Figure 118. PCI Functional Blocks
64-bit PCI Bus
Command Bus Master
Command Bus Slave
Master Interface
9.2 PCI Pin Protocol Interface Block
9.2.1 PCI Commands
9.2.2 IXP2800 Network Processor Initialization
9.2.2.1 Initialization by the Intel XScale Core
9.2.2.2 Initialization by a PCI Host
9.2.3 PCI Type 0 Configuration Cycles
9.2.3.1 Configuration Write
9.2.3.2 Configuration Read
9.2.4 PCI 64-Bit Bus Extension
9.2.5 PCI Target Cycles
9.2.5.5 Target Read Accesses from the PCI Bus
9.2.6 PCI Initiator Transactions
9.2.6.1 PCI Request Operation
Page
9.2.6.6 Special Cycle
9.2.7 PCI Fast Back-to-Back Cycles
9.2.8 PCI Retry
9.2.9 PCI Disconnect
9.2.11 PCI Central Functions
9.2.11.1 PCI Interrupt Inputs
9.2.11.2 PCI Reset Output
9.2.11.3 PCI Internal Arbiter
9.3 Slave Interface Block
9.3.1 CSR Interface
9.3.2 SRAM Interface
9.3.2.1 SRAM Slave Writes
9.3.2.2 SRAM Slave Reads
9.3.3 DRAM Interface
9.3.3.1 DRAM Slave Writes
9.3.3.2 DRAM Slave Reads
9.3.4 Mailbox and Doorbell Registers
Page
Page
9.3.5 PCI Interrupt Pin
An external PCI interrupt can be generated in the following way:
Figure 126 shows how PCI interrupts are managed via the PCI and the Intel XScale core.
Table125 describes how IRQ are generated for each silicon stepping.
9.4 Master Interface Block
9.4.1 DMA Interface
9.4.1.1 Allocation of the DMA Channels
9.4.1.2 Special Registers for Microengine Channels
9.4.1.3 DMA Descriptor
9.4.1.4 DMA Channel Operation
9.4.1.5 DMA Channel End Operation
9.4.1.6 Adding Descriptor to an Unterminated Chain
9.4.1.7 DRAM to PCI Transfer
9.4.1.8 PCI to DRAM Transfer
9.4.2 Push/Pull Command Bus Target Interface
9.4.2.1 Command Bus Master Access to Local Configuration Registers
9.4.2.2 Command Bus Master Access to Local Control and Status Registers
9.4.2.3 Command Bus Master Direct Access to PCI Bus
Page
9.5 PCI Unit Error Behavior
9.5.1 PCI Target Error Behavior
9.5.2 As a PCI Initiator During a DMA Transfer
9.5.2.2 DMA Read from SRAM (Descriptor Read) Gets a Memory Error
9.5.2.3 DMA from DRAM Transfer (Write to PCI) Receives PCI_PERR_L on PCI Bus
9.5.2.4 DMA To DRAM (Read from PCI) Has Bad Data Parity
9.5.2.5 DMA Transfer Experiences a Master Abort (Time-Out) on PCI
9.5.2.6 DMA Transfer Receives a Target Abort Response During a Data Phase
9.5.3 As a PCI Initiator During a Direct Access from the Intel XScale Core or Microengine
9.5.3.1 Master Transfer Experiences a Master Abort (Time-Out) on PCI
9.5.3.2 Master Transfer Receives a Target Abort Response During a Data Phase
9.5.3.4 Master Read from PCI (Read from PCI) Has Bad Data Parity
9.5.3.5 Master Transfer Receives PCI_SERR_L from the PCI Bus
9.6 PCI Data Byte Lane Alignment
PCI Data SRAM Data
Table 131. Byte Lane Alignment for 64-Bit PCI Data In (64 Bits PCI Big-Endian to Big-Endian
PCI Data SRAM Data
PCI Add[2]=1 PCI Add[2]=0
PCI Data SRAM Data
Table 133. Byte Lane Alignment for 32-Bit PCI Data In (32 Bits PCI Big-Endian to Big-Endian
Table 134. Byte Lane Alignment for 64-Bit PCI Data Out (Big-Endian to 64 Bits PCI Little
Table 135. Byte Lane Alignment for 64-Bit PCI Data Out (Big-Endian to 64 Bits PCI Big-Endian
Table 136. Byte Lane Alignment for 32-Bit PCI Data Out (Big-Endian to 32 Bits PCI Little
Table 137. Byte Lane Alignment for 32-Bit PCI Data Out (Big-Endian to 32 Bits PCI Big-Endian
9.6.1 Endian for Byte Enable
Table 141. Byte Enable Alignment for 32-Bit PCI Data In (32 Bits PCI Big-Endian to Big-Endian
Table 142. Byte Enable Alignment for 64-Bit PCI Data Out (Big-Endian to 64 Bits PCI Little
PCI Add[2]=1 PCI Add[2]=0
SRAM Data
PCI Side
Page
Table 146. PCI I/O Cycles with Data Swap Enable Stepping Description
Clocks and Reset 10
10.1 Clocks
Figure 130. Overall Clock Generation and Distribution
Clock Unit with PLL
Intel IXP2800 Network Processor
Table 147. Clock Usage Summary (Sheet 1 of 2)
Page
Table 148. Clock Rates Examples
10.2 Synchronization Between Frequency Domains
10.3 Reset
10.3.1 Hardware Reset Using nRESET or PCI_RST_L
Page
10.3.2 PCI-Initiated Reset
10.3.3 Watchdog Timer-Initiated Reset
10.3.4 Software-Initiated Reset
10.3.5 Reset Removal Operation Based on CFG_PROM_BOOT
10.3.5.1 When CFG_PROM_BOOT is 1 (BOOT_PROM is Present)
10.3.5.2 When CFG_PROM_BOOT is 0 (BOOT_PROM is Not Present)
10.3.6 Strap Pins
Table 149. IXP2800 Network Processor Strap Pins
10.3.7 Powerup Reset Sequence
10.4 Boot Mode
Figure 135. Boot Process
10.4.1 Flash ROM
10.4.2 PCI Host Download
10.5 Initialization
Page
Performance Monitor Unit 11
11.1 Introduction
11.1.1 Motivation for Performance Monitors
11.1.2 Motivation for Choosing CHAP Counters
Performance Monitoring Unit
11.1.3 Functional Overview of CHAP Counters
11.1.4 Basic Operation of the Performance Monitor Unit
11.1.5 Definition of CHAP Terminology
Figure 138. Basic Block Diagram of IXP2800 Network Processor with PMU
11.1.6 Definition of Clock Domains
11.2 Interface and CSR Description
11.2. 1 APB P eriph eral
11.2.2 CAP Description
11.2.2.1 Selecting the Access Mode
11.2.2.2 PMU CSR
11.2.2.3 CAP Writes
11.3 Performance Measurements
Table 152. Hardware Blocks and Their Performance Measurement Events (Sheet 1 of 2)
Table 152. Hardware Blocks and Their Performance Measurement Events (Sheet 2 of 2)
11.4 Events Monitored in Hardware
11.4.1 Queue Statistics Events
11.4.1.1 Queue Latency
11.4.1.2 Queue Utilization
11.4.2 Count Events
11.4.3 Design Block Select Definitions
11.4.4 Null Event
Table 153. PMU Design Unit Selection (Sheet 2 of 2)
11.4.5 Threshold Events
11.4.6 External Input Events
11.4.6.1 XPI Events Target ID(000001) / Design Block #(0100)
Table 155. XPI PMU Event List (Sheet 1 of 4)
Table 155. XPI PMU Event List (Sheet 2 of 4)
Table 155. XPI PMU Event List (Sheet 3 of 4)
Table 155. XPI PMU Event List (Sheet 4 of 4)
11.4.6.2 SHaC Events Target ID(000010) / Design Block #(0101)
Table 156. SHaC PMU Event List (Sheet 1 of 4)
Table 156. SHaC PMU Event List (Sheet 2 of 4)
Table 156. SHaC PMU Event List (Sheet 3 of 4)
11.4.6.3 IXP2800 Network Processor MSF Events Target ID(000011) / Design Block #(0110)
Table 156. SHaC PMU Event List (Sheet 4 of 4)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 1 of 6)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 2 of 6)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 3 of 6)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 4 of 6)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 5 of 6)
Table 157. IXP2800 Network Processor MSF PMU Event List (Sheet 6 of 6)
11.4.6.4 Intel XScale Core Events Target ID(000100) / Design Block #(0111)
Table 158. Intel XScale Core Gasket PMU Event List (Sheet 1 of 4)
Table 158. Intel XScale Core Gasket PMU Event List (Sheet 2 of 4)
Table 158. Intel XScale Core Gasket PMU Event List (Sheet 3 of 4)
11.4.6.5 PCI Events Target ID(000101) / Design Block #(1000)
Table 158. Intel XScale Core Gasket PMU Event List (Sheet 4 of 4)
Table 159. PCI PMU Event List (Sheet 1 of 5)
Table 159. PCI PMU Event List (Sheet 2 of 5)
Table 159. PCI PMU Event List (Sheet 3 of 5)
Table 159. PCI PMU Event List (Sheet 4 of 5)
11.4.6.6 ME00 Events Target ID(100000) / Design Block #(1001)
Table 159. PCI PMU Event List (Sheet 5 of 5)
Table 160. ME00 PMU Event List (Sheet 1 of 2)
11.4.6.7 ME01 Events Target ID(100001) / Design Block #(1001)
Table 160. ME00 PMU Event List (Sheet 2 of 2)
Table 161. ME01 PMU Event List
11.4.6.8 ME02 Events Target ID(100010) / Design Block #(1001)
11.4.6.9 ME03 Events Target ID(100011) / Design Block #(1001)
Table 162. ME02 PMU Event List
Table 163. ME03 PMU Event List
11.4.6.10 ME04 Events Target ID(100100) / Design Block #(1001)
11.4.6.11 ME05 Events Target ID(100101) / Design Block #(1001)
Table 164. ME04 PMU Event List
Table 165. ME05 PMU Event List
11.4.6.12 ME06 Events Target ID(100110) / Design Block #(1001)
11.4.6.13 ME07 Events Target ID(100111) / Design Block #(1001)
Table 166. ME06 PMU Event List
Table 167. ME07 PMU Event List
11.4.6.14 ME10 Events Target ID(110000) / Design Block #(1010)
11.4.6.15 ME11 Events Target ID(110001) / Design Block #(1010)
Table 168. ME10 PMU Event List
Table 169. ME11 PMU Event List
11.4.6.16 ME12 Events Target ID(110010) / Design Block #(1010)
11.4.6.17 ME13 Events Target ID(110011) / Design Block #(1010)
Table 170. ME12 PMU Event List
Table 171. ME13 PMU Event List
11.4.6.18 ME14 Events Target ID(110100) / Design Block #(1010)
11.4.6.19 ME15 Events Target ID(110101) / Design Block #(1010)
Table 172. ME14 PMU Event List
Table 173. ME15 PMU Event List
11.4.6.20 ME16 Events Target ID(100110) / Design Block #(1010)
11.4.6.21 ME17 Events Target ID(110111) / Design Block #(1010)
Table 174. ME16 PMU Event List
Table 175. ME17 PMU Event List
11.4.6.22 SRAM DP1 Events Target ID(001001) / Design Block #(0010)
11.4.6.23 SRAM DP0 Events Target ID(001010) / Design Block #(0010)
Table 176. SRAM DP1 PMU Event List
Table 177. SRAM DP0 PMU Event List (Sheet 1 of 3)
Table 177. SRAM DP0 PMU Event List (Sheet 2 of 3)
11.4.6.24 SRAM CH3 Events Target ID(001011) / Design Block #(0010)
Table 177. SRAM DP0 PMU Event List (Sheet 3 of 3)
Table 178. SRAM CH3 PMU Event List
11.4.6.25 SRAM CH2 Events Target ID(001100) / Design Block #(0010)
11.4.6.26 SRAM CH1 Events Target ID(001101) / Design Block #(0010)
Table 179. SRAM CH3 PMU Event List
Table 180. SRAM CH3 PMU Event List
11.4.6.27 SRAM CH0 Events Target ID(001110) / Design Block #(0010)
Table 181. SRAM CH0 PMU Event List (Sheet 1 of 2)
11.4.6.28 DRAM DPLA Events Target ID(010010) / Design Block #(0011)
Table 181. SRAM CH0 PMU Event List (Sheet 2 of 2)
Table 182. IXP2800 Network Processor Dram DPLA PMU Event List (Sheet 1 of 2)
11.4.6.29 DRAM DPSA Events Target ID(010011) / Design Block #(0011)
Table 182. IXP2800 Network Processor Dram DPLA PMU Event List (Sheet 2 of 2)
Table 183. IXP2800 Network Processor Dram DPSA PMU Event List (Sheet 1 of 2)
11.4.6.30 IXP2800 Network Processor DRAM CH2 Events Target ID(010100) /
Table 183. IXP2800 Network Processor Dram DPSA PMU Event List (Sheet 2 of 2)
Table 184. IXP2800 Network Processor Dram CH2 PMU Event List (Sheet 1 of 5)
Table 184. IXP2800 Network Processor Dram CH2 PMU Event List (Sheet 2 of 5)
Table 184. IXP2800 Network Processor Dram CH2 PMU Event List (Sheet 3 of 5)
Table 184. IXP2800 Network Processor Dram CH2 PMU Event List (Sheet 4 of 5)
11.4.6.31 IXP2800 Network Processor DRAM CH1 Events Target ID(010101) /
11.4.6.32 IXP2800 Network Processor DRAM CH0 Events Target ID(010110) /
Table 184. IXP2800 Network Processor Dram CH2 PMU Event List (Sheet 5 of 5)
Table 185. IXP2800 Network Processor Dram CH1 PMU Event List
Table 186. IXP2800 Network Processor Dram CH0 PMU Event List