IDT PCI Bus Interface
PCI Messaging Unit
79RC32438 User Reference Manual
10 - 40
November 4, 2002
Notes
Software may use the IPbus master (i.e., CPU) read/write ordering constraints to flush the CPU master
output FIFO. A CPU read will not complete until all writes in the CPU master output FIFO have completed.
No ordering constraints are enforced between CPU and DMA transactions. No ordering constraints are
enforced between PCI to Memory and Memory to PCI DMA operations.
A PCI to Memory DMA operation completes when the last data quantity of the DMA operation is written
to the RC32438’s local memory (i.e., DDR or device). A Memory to PCI DMA operation completes when the
last data quantity of the DMA operation is written to the PCI. This implies that the PCI DMA output FIFO can
only contain data associated with one DMA operation at a time.
Target writes which are posted by the PCI bus interface must complete in the order in which they
occurred on the PCI bus. No ordering constraints are enforced between writes posted by an IPBus master
(i.e., CPU core) and by an external PCI master to the RC32438’s PCI target interface.
Due to transaction ordering constraints, a PCI target read is not allowed to complete as long as there
are posted writes in the PCI target input FIFO. The RC32438 will retry the read if it cannot be completed in
the allotted time. The PCI target interface supports one delayed read. The delayed read cannot complete
until all previous posted writes have completed.
The PCI transaction ordering constraints may be viewed as favoring target write operations since only a
single delayed read is allowed when there are posted writes, while multiple posted writes are allowed when
there is a delayed read. In an effort to provide some level of fairness, the PCI bus interface supports a mode
in which all transactions are retried when there is a delayed read. When the Retry when Delayed Read
(RDR) bit is set in the PCITC register, all PCI target transactions are retired as long as there is a pending
delayed read.
In some system scenarios, it may be desirable to violate PCI target transaction ordering constraints in
order to improve performance. Normally, a PCI target read is not allowed to complete until all previously
posted writes to the target have completed. In situations where one can guarantee that input and output
buffers never overlap, this constraint may be overly restrictive.
When the Target Read Priority (TRP) bit is set in a PCI Base Address Control (PBAxC) register, target
read transactions that map to the RC32438’s local address space using that PCI base address are allowed
to complete even if there are posted targeted write transactions. Since the TRP bit only affects target reads
that map using that PCI base address, a synchronization barrier may be implemented by performing a
target read to a different PCI base address that does not have the TRP bit set.
PCI Messaging Unit
The RC32438 provides message and doorbell registers to facilitate efficient communication between
PCI agents and the CPU. The messaging unit is a subset of the I
2
O Messaging Unit as well as that imple-
mented by the Intel i960Rx. There are different behaviors for some of the registers depending on if they are
written by the CPU or by a PCI master. All of the bits in the PCI Inbound Interrupt Cause (PCIIIC) register
which are not masked by the PCI Inbound Interrupt Mask (PCIIIM) register are ORed and result in the
status of the Inbound Interrupt (II) bit in the PCI Status (PCIS) register. All of the bits in the PCI Outbound
Interrupt Cause (PCIOIC) register which are not masked by the PCI Outbound Interrupt Mask (PCIOIM)
register are ORed together. If this ORed value is a one, the PCI Messaging Unit Interrupt (PCIMUINTN)
signal is driven low. Otherwise, if the ORed value is a zero, the PCIMUINTN signal is tri-stated. The
PCIMUINTN signal is a GPIO alternate function output (for more information, refer to Chapter 12, General
Purpose I/O Controller).