IDT PCI Bus Interface
PCI Master — Memory to PCI DMA (DMA Channel 9)
79RC32438 User Reference Manual
10 - 32
November 4, 2002
Notes
PCI Master — Memory to PCI DMA (DMA Channel 9)
DMA channel 9 allows DMA operations to be performed that transfer data from either the DDR or local
memory to the PCI bus. PCI DMA operations do not use local mapping registers. The starting PCI address
for a DMA operation is specified in the DEVCS field of the DMA descriptor. This starting address is used for
I/O as well as memory PCI transactions. The PCI starting address in DEVCS and the local starting address
(specified in the CA field of the descriptor) may start on
any
byte boundary and the DMA operation may
transfer any number of bytes (i.e., there are no restrictions on the COUNT field of the DMA descriptor).
The PT field in the DEVCMD field of the DMA descriptor specifies the type of PCI transaction to use for
the DMA operation. The SB field indicates whether bytes read from the RC32438 memory and written to the
PCI bus should be swapped or passed unmodified. The PCI bus interface will begin issuing PCI bus trans-
actions of the type specified in the PT field of the DMA descriptor’s DEVCMD field and starting at the
address specified in the DEVCS field. Data will be written to the PCI bus whenever there are at least 16
words in the PCI DMA output FIFO or the PCI DMA output FIFO contains the last word of a DMA transfer.
The PCI bus interface will attempt to burst as much data to the PCI bus as possible during a transaction.
For memory write, memory write and invalidate, and I/O write transactions, the PCI burst transaction length
is determined by system conditions. The transaction will continue as long as the following conditions exist:
–
it is not terminated by the PCI target
–
there exists at least one available word in the PCI DMA output FIFO
–
the byte count specified in the COUNT field of the DMA descriptor has not reached zero
–
the number of data phases has not exceeded that specified in the Maximum Burst Size (MBS)
field of the PCIDMA9C register
–
the Master Latency Timer has not expired.
The DMA controller transfers data from the RC32438 memory to the PCI DMA output FIFO whenever a
DMA request event is generated. The PCI bus interface generates a DMA request event to the DMA
controller for DMA channel 9 whenever there are 16 free words available in the PCI DMA output FIFO.
Read Value:
Previous value written
Write Effect:
Modify value
OUR
Description:
Optimize Unaligned Burst Reads.
When this bit is cleared, the PCI interface honors byte
enables at the start and end of unaligned PCI burst read transfers generated by the DMA control-
ler. This results in the PCI interface potentially generating three separate transactions for a sin-
gle unaligned DMA burst read transfer; one PCI transaction for the partial byte transfer at the
start of the burst, one PCI transaction for the aligned portion of the burst transfer, and one PCI
transaction for the partial byte transfer at the end of the burst transfer. These three transactions
are treated by the PCI interface as three independent transactions.
In most cases, byte enables generated during partial word PCI memory transactions are irrele-
vant as they have no side effect. Thus, entire words could simply have been read from memory
and unneeded data discarded. When this bit is set during a DMA read transfer that is pro-
grammed to generate Memory Read, Memory Read Line, or Memory Read Multiple transactions,
then the PCI interface will read complete words and discard unneeded data. This improves
unaligned PCI burst read transfer performance as it allows an entire burst read transfer gener-
ated by the DMA controller to be serviced as one PCI transaction.
Initial Value:
0x0
Read Value:
Previous value written
Write Effect:
Modify value