Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Develepor’s Manual
Order Number: 306262-004US
505
PCI Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
If the IXP45X/IXP46X network processors are configured as an option, an external PCI
Host will want to access the PCI Configuration Space of the IXP45X/IXP46X network
processors. The PCI Host will complete these accesses using PCI Configuration Cycles.
However, if the IXP45X/IXP46X network processors receive Configuration Cycles prior
to being initialized, improper PCI bus configuration may occur.
To prevent this event from occurring, the IXP45X/IXP46X network processors can
refuse to accept configuration cycles from an external source by programming bit 15 of
the PCI Controller Control and Status (PCI_CSR) Register. Bit 15 of the PCI Controller
Control and Status (PCI_CSR) Register is the Initialization Complete bit. When bit 15 is
set to logic 0, the PCI Controller Target Interface will issue retries to PCI Configuration
cycles. When bit 15 is set to logic 1, PCI Configuration Cycles will be accepted.
The Initialization Complete bit allows time for the IXP45X/IXP46X network processors
to configure the chip prior to accepting cycles from an external PCI device. If
initialization is not completed in the first 2
25
PCI clocks after the PCI reset signal is de-
asserted, the possibility exists for the external PCI Host to assume that no PCI device is
resident or active at this particular IDSEL.
An access to the PCI Controller PCI Configuration Registers of the IXP45X/IXP46X
network processors occurs when the PCI_IDSEL input is asserted, the PCI command
field as represented by the PCI Command/Byte enable signals is a configuration read or
write, PCI_AD[1:0] = 00 indicating a type 0 configuration cycle, and the PCI Controller
Target Interface is allowed to accept Type 0 Configuration Cycles by asserting the
Initialization Complete bit. The PCI Configuration Register accessed is determined by
the value contained on the PCI_AD[7:2] pins during the address phase of the PCI
Configuration Transaction. Accesses to the PCI Configuration Register can be a single-
word only. The PCI Controller Target Interface will disconnect any burst longer than one
word.
During reads of the PCI Configuration Registers, byte-enables are ignored and the full
32-bit register value is always returned. Read accesses to unimplemented registers
complete normally on the bus and return all zeroes.
During PCI Configuration Register writes, the PCI byte-enables determine the byte(s)
that are written within the addressed register. Write accesses to unimplemented PCI
Configuration Registers complete normally on the bus but the data is discarded. The
PCI Configuration Space supported by the IXP45X/IXP46X network processors is a
single-function, Type 0 configuration space. (For more information on the PCI
Configuration Space and additional configuration details, see
and the PCI Local Bus Specification, Rev. 2.2.)
10.2.4
Initializing PCI Controller Configuration and Status Registers
for Data Transactions
In order to use the PCI Controller for transactions, other than single-word initiator
transactions implemented by Non-Pre-fetch transactions, various registers must be set
in the PCI Controller Configuration and Status Registers. The registers that must be
initialized are:
• AHB Memory Base Address Register (PCI_AHBMEMBASE)
• AHB I/O Base Address Register (PCI_AHBIOBASE)
• PCI Memory Base Address Register (PCI_PCIMEMBASE).
The AHB Memory Base Address Register (PCI_AHBMEMBASE) is used to map the
address of a PCI Memory Cycle Target transfers from the address of the PCI Bus to the
address of the South AHB. The AHB I/O Base Address Register (PCI_AHBIOBASE) is
used to map the address of a PCI I/O Cycle Target transfers from the address of the PCI