IDT PCI Bus Interface
PCI Master
79RC32438 User Reference Manual
10 - 21
November 4, 2002
Notes
If the BUS field in the PCI Configuration Address (PCICFGA) register is zero, a Type 0 configuration
read transaction is performed. If the BUS field is non-zero, a Type 1 configuration read transaction is
performed. See section 3.2.2.3 of the PCI 2.2 specification for more information.
For Type 1 configuration transactions, the PCIAD[30:2] takes on the value of the corresponding bit posi-
tions in the PCICFGA register. PCIAD[1:0] takes on the value 0x01 and PCIAD[31] takes on the value 0x0.
For Type 0 configuration transactions, the DEVICE field in the PCI Configuration Address (PCICFGA)
register is used to select the IDSEL line of the PCI satellite to be configured. The DEVICE field to IDSEL
mapping is shown in Table 10.7.
Type 0 configuration transactions with DEVICE field equal to zero correspond to the RC32438 and are
handled internally without generating a PCI transaction. Type 0 configuration transactions have PCI
address bits 31 through 11 (i.e., PCIAD[31:11]) set to all ones for DEVICE fields 0x1 through 0x15. In addi-
tion, PCIAD[1:0] are both zero.
All PCI configuration transactions use address stepping to allow for IDSEL predriving. Refer to the PCI
2.2 specification section 3.2.2.5 for more information.
Performing a PCI configuration write to a nonexisting device results in the DEVSELN signal not being
asserted by a PCI target. This results in a master abort of the transaction and the setting of the Receive
Master Abort Status (RMA) bit in the STATUS register in PCI configuration space. The setting of the RMA
bit may be used to signal a CPU interrupt. The RC32438 does not support generation of burst configuration
write transactions. All configuration write transactions have a single data phase.
When the PCI interface is set to operate in decoupled mode (i.e., the Decoupled Access Enable (DEN)
bit is set in the PCI Decoupled Access Control (PCIDAC) register), then the Done (D), Error (E), and Busy
(B) bits in the PCI Decoupled Access Status (PCIDAS) register reflect the status of the operation.
Memory Read Line
All IPBus read transactions whose address matches the base address in a PCI Local Base Address
(PCILBAx) register that is configured for memory space (i.e., the MSI bit is cleared in the corresponding PCI
Local Base Address Control (PCILBAxC) register) and whose Read Transaction (RT bit in corresponding
PCILBAxC) bit is set result in a memory read line transaction on the PCI bus. The value in the corre-
sponding PCI Local Base Address Map (PCILBAxM) register maps the upper bits of the local IPBus
address, as indicated by the SIZE field of the PCILBAxC register, to the PCI memory read address.
Setting the Read Transaction (RT) bit in the corresponding PCILBAxC register indicates to the PCI inter-
face that a memory read line transaction should be used to prefetch data when the read transaction maps
to the corresponding PCILBAx register. The PCI bus interface will supply the data quantity requested by the
IPBus master read and will queue prefetch data in the IPBus Master PCI input FIFO. Subsequent sequen-
tial reads that map to PCILBAx will result in queued data being returned.
The memory read line is used when a PCI master will read more than one word but no more than a
cache line. Memory read line transactions resulting from IPBus master read transactions will cause the PCI
bus interface to issue a memory read line burst transaction that transfers either an entire cache line or eight
words, whichever is smaller. The 8 word limit allows the CACHE_LINE_SIZE register in PCI configuration
space to be set larger than the size of the IPBus master PCI input FIFO. For example, setting the
CACHE_LINE_SIZE register to 16 words still results in only 8 words being transferred.
Prefetch data in the CPU master input FIFO is flushed when an IPBus write transaction maps to the PCI
bus.
Error Handling
IPBus master fatal errors are: target timeout error, PCI target terminates with a Target Abort, transaction
could not be completed because the RETRY_LIMIT was exceeded, parity error, and the transaction could
not be completed because the BM bit is not set in the COMMAND register.
An IPBus master fatal error is not propagated to the IPBus on prefetched data that is not subsequently
read by an IPBus master (i.e., if the error occurs on prefetched data, it is ignored unless the data is actually
used). If a CPU generated PCI master read transaction experiences a fatal error, the CPU master input