5 target read accesses from the pci bus, 6 pci initiator transactions, 1 pci request operation – Intel NETWORK PROCESSOR IXP2800 User Manual

Page 327: Target read accesses from the pci bus, Pci initiator transactions 9.2.6.1, Pci request operation

Advertising
background image

Hardware Reference Manual

327

Intel

®

IXP2800 Network Processor

PCI Unit

9.2.5.5

Target Read Accesses from the PCI Bus

A PCI read occurs if the PCI address matches one of the base address registers and the PCI

command is either a Memory Read, Memory Read Line, or Memory Read Multiple.

The read is completed as a PCI delayed read. That is, on the first occurrence of the read, the PCI

unit signals a retry to the PCI master,. If there is no prior read pending, the PCI unit latches the
address and command and places it into the target address FIFO. When the address reaches the

head of the FIFO, the PCI unit reads the DRAM. Subsequent reads will also get retry responses

until data is available.

When the read data is returned into the PCI Read FIFO, the PCI unit begins to decrement its
discard timer. If the PCI bus master has not repeated the read by the time the timer reaches 0, the

PCI unit discards the read data, invalidates the delayed read address and sets Discard Timer

Expired (bit 16) in the Control register (PCI_CONTROL). If enabled, the PCI unit interrupts the
Intel XScale

®

core. The discard timer counts 2

15

(32,768) PCI clocks.

When the master repeats the read command, the PCI unit compares the address and checks that the

command is a Memory Read, a Memory Read Line, or a Memory Read Multiple. If there is a

match, the response is as follows:

If the read data has not yet been read, the response is retry.

If the read data has been read, assert trdy_l and deliver the data. If the master attempts to

continue the burst past the amount of data read, the PCI unit signals a target disconnect.

CSR reads are always 32-bit reads.

If the discard timer has expired for a read, the subsequent read will be treated as a new read.

9.2.6

PCI Initiator Transactions

PCI master transactions are caused by either the Intel XScale

®

core loads and stores that fall into

the various PCI address spaces, Microengine read and write commands, or by the DMA engine.

The command register (PCI_COMMAND) bus master bit (BUS_MASTER) must be set for the
PCI unit to perform any of the initiator transactions.

The PCI cycle is initiated when there is an entry in the PCI Core Interface initiator address FIFO.

The core handshakes with the master interface with the FBus FIFO status signals. The PCI core
supports both burst and non-burst master read transfers by the burst count inputs

(FB_BstCntr[7:0]), driven by Master Interface to inform the core the burst size. For a Master write,

FB_WBstonN indicates to the PCI core whether the transfers are burst or non-burst, on a 64-bit
double Dword basis.

The PCI core supports read and write memory cycles as an initiator while taking care of all

disconnect/retry situations on the PCI Bus.

9.2.6.1

PCI Request Operation

If an external arbiter is used (PCI_CFG_ARB[1] is not active), the reql[0] and gnt[0] are connected

to the PCI_REQ_L and PCI_GNT_L pins. Otherwise, they are connected to the internal arbiter.

The PCI unit asserts req_l[0] to act as a bus master on the PCI. If gnt_l[0] is asserted, the PCI unit

can start a PCI transaction regardless of the state of req_l[0]. When the PCI unit requests the PCI
bus, it performs a PCI transaction when gnt_l[0] is received. Once req_l[0] is asserted, the PCI unit

Advertising