User`s guide

4.2 21164 Address Mapping to PCI Space
4.2.5 PCI Dense Memory Space (86.0000.0000 Through 86.FFFF.FFFF)
PCI dense memory space is typically used for PCI data buffers (such as a video
frame buffer) and has the following characteristics:
There is one-to-one mapping between CPU addresses and PCI addresses.
A longword address from the CPU maps to a longword address on the PCI.
Hence, the name dense space (as opposed to PCI sparse memory space).
Byte or word accesses are not permitted in this space. Minimum access
granularity is a longword on write operations and a quadword on read
operations. The maximum transfer length is 32 bytes on write operations
(performed as a burst of 8 longwords on the PCI) and on read operations.
Any combination of longwords may be valid on write operations. Valid
longwords surrounding an invalid longword (or longwords), called a hole,
are required to be handled correctly by all PCI devices.
The 21164 cannot specify a longword address for read transactions. The
minimum granularity it can specify is a quadword in noncacheable space.
Therefore, minimum granularity read operations in this space should
always be executed as a quadword read operation with a burst length of
two on the PCI bus. The 21164 merges noncached read operations up to
a 32-byte maximum. The largest dense space read operation is therefore
32 bytes. This space cannot be used for devices that have read side effects
due to load-merging and prefetching operations. Any prefetched data is not
cached between transactions. The burst read on the PCI bus is not atomic.
Write operations to addresses in this space can be buffered in the 21164.
The EB164 supports a burst length of eight on the PCI, corresponding to
32 bytes of data. In addition, the CIA chip provides four 32-byte write
buffers to increase I/O write performance. These four buffers are strictly
ordered.
The address generation in dense space is as follows:
CPU address bits <31:5> are directly sent out on PCI address<31:5>.
CPU address bits <4:3> are generated from the 21164’s int4_valid_h
signals.
On read transactions, PCI address bit <2> is always 0.
On write transactions, PCI address bit <2> is generated from the
int4_valid_h signals. If the lower longword is to be written, PCI address
bit <2> = 0. If the lower longword is masked out and the upper longword is
to be written, PCI address bit <2> = 1.
PCI address bits <1:0> are forced to 0.
System Address Mapping 4–13