Freescale Semiconductor MCF5480 User Manual

Page 541

Advertising
background image

Functional Description

MCF548x Reference Manual, Rev. 3

Freescale Semiconductor

19-57

The particular type of PCI transaction generated is determined by the PCI configuration bits associated

with the address window (PCIIWCR). For example, the user might set one window to do PCI memory read

multiple accesses, one window for PCI I/O accesses, and the other window to do non-prefetchable

(memory-mapped I/O) PCI memory accesses. See

Table 19-57

for command translations.

In addition to the configurable address window mapping logic, the register interface provides a

configuration address register, which provides the ability to generate configuration, interrupt

acknowledge, and special cycles. External PCI devices should be configured through this interface. See

Section 19.4.4.2, “Configuration Mechanism

” for configuration, interrupt acknowledge, and special cycle

command support.
The PCI XL bus initiator interface supports all XL bus transactions, including single-beat transfers and

bursts (32 bytes). Single-beat 64-bit data transactions are automatically translated into 2-beat burst

transfers on the PCI bus.
Standard XL bus burst transactions are supported as well, however, buffering is implemented to boost

performance during writes and avoid deadlock scenario for all reads and memory writes. If the target for

an XL bus read from PCI disconnects part way through the burst, the MCF548may have to handle a local

memory access from an alternate PCI master before the disconnected transfer can continue.
XL bus initiator read requests are decoded into four types: PCI Memory, I/O, Configuration, and Interrupt

Acknowledge. The PCI Controller must first gain access to the PCI bus before acknowledging the XL bus

read request. The specific timing of the address acknowledge is dependent upon the type of transfer.
When the XL bus requests burst data from PCI space, the data received from PCI is stored in a 32-byte

read buffer. The PCI Controller does not terminate the address tenure of the XL bus transaction until all

requested data is latched. This is because PCI targets are allowed to disconnect in the middle of a transfer,

and the XL bus requires burst transfers to be atomic. If the PCI target disconnects in the middle of the data

transfer and an alternate PCI master acquires the bus and initiates a local memory access, the Controller

retries the internal read transaction on the XL bus. The PCI Controller continues to request mastership of

the PCI bus until the original request is completed.
For example, if the XL bus initiates a burst read, and the PCI target disconnects after transferring the first

half of the burst, the MCF548x re-arbitrates for the PCI bus, and when granted, initiates a new transaction

with the address of the third beat of the burst (4-beat XL bus bursts). If an alternate PCI master requests

data from local memory while the PCI Controller is waiting for the PCI bus grant, the PCI controller retries

the XL bus transaction to allow the PCI-initiated transaction to complete and the read buffer will be

emptied. Transactions are not reordered, but taken first come, first served.
When the MCF548x is acting as in initiator/master, PCI critical-word-first (CWF) burst operation (i.e.

cache line wrap burst) is supported, and the 2-bit cache line wrap address mode is driven on the address

bus when the XL bus starts the burst at a non-zero-word-first address. Note that this option is only provided

as a means for the initiator to support memory targets that support cache-line wrap. The processor is not

permitted to cache from memory targets residing on the PCI bus in the 2.2 spec.
XL bus writes are decoded into PCI memory, PCI I/O, PCI configuration, or special cycles. If the

transaction decodes into an I/O, configuration, or special cycle, the write is connected. The PCI controller

gains access to the PCI bus and successfully transfers the data before it asserts address acknowledge to the

XL bus. If the address maps to PCI memory space, the XL bus address tenure is immediately

acknowledged and write data is posted.
A 32-byte write buffer is used to post memory writes from XL bus to PCI. Buffering minimizes the effect

of the slower PCI bus on the higher-speed XL bus. It may contain single-beat XL bus write transactions or

a single burst. After the XL bus write data is latched internally, the bus is available for subsequent

transactions without having to wait for the write to the PCI target to complete. If a subsequent XL bus write

Advertising
This manual is related to the following products: