
System Address Space
A–37
Direct-Mapped Addressing
1.13 Direct-Mapped Addressing
The target address is translated by direct mapping or scatter-gather mapping as deter-
mined by the Wx_BASE_SG (scatter-gather) bit of the window’s PCI base register.
If the Wx_BASE_SG bit is clear, the DMA address is direct mapped, and the trans-
lated address is generated by concatenating bits from the matching window’s trans-
lated base register (T_BASE) with bits from the incoming PCI address. The bits
involved in the concatenation are defined by the window mask register as shown in
Table A–13. The unused bits of the translated base register (also in Table A–13) must
be cleared (that is, the hardware performs an AND-OR operation to accomplish the
concatenation). Because memory is located in the lower 8GB of the 21164 address
space, the 21174 ensures (implicitly) that address bits <39:33> are always zero.
Because the translated base is simply concatenated to the PCI address, then the direct
mapping is to a naturally aligned memory region. For example, a 4MB direct-
mapped window will map to any 4MB region in main memory that falls on a 4MB
boundary (for instance, it is not possible to map a 4MB region to the main memory
region 1MB–5MB).
Table A–13 lists direct-mapped PCI target address translations.
Table A–13 Direct-Mapped PCI Target Address Translation
(Sheet 1 of 2)
W_MASK<31:20>
Size of Window
Translated Address <32:2>
0000 0000 0000
1MB
Translated Base<33:20> : ad<19:2>
0000 0000 0001
2MB
Translated Base<33:21> : ad<20:2>
0000 0000 0011
4MB
Translated Base<33:22> : ad<21:2>
0000 0000 0111
8MB
Translated Base<33:23> : ad<22:2>
0000 0000 1111
16MB
Translated Base<33:24> : ad<23:2>
0000 0001 1111
32MB
Translated Base<33:25> : ad<24:2>
0000 0011 1111
64MB
Translated Base<33:26> : ad<25:2>
0000 0111 1111
128MB
Translated Base<33:27> : ad<26:2>
0000 1111 1111
256MB
Translated Base<33:28> : ad<27:2>
0001 1111 1111
512MB
Translated Base<33:29> : ad<28:2>
0011 1111 1111
1GB
Translated Base<33:30> : ad<29:2>