
6-20
G2 PowerPC Core Reference Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Block Address Translation
subsystem as described in Chapter 7, “Memory Management,” in the
Programming
Environments Manual
.
Note that the default WIMG bits (0b0011) cause data accesses to be considered cacheable
(I = 0) and, thus, load and store accesses are weakly ordered. This is the case, even if the
data cache is disabled in the HID0 register (as it is out of hard reset). If I/O devices require
load and store accesses to occur in strict program order (strongly ordered), translation must
be enabled so that the corresponding I bit can be set. Also, for instruction accesses, the
default memory access mode bits (WIMG) are 0b0001. That is, instruction accesses are
considered cacheable (I = 0), and the memory is guarded. Again, instruction cache accesses
are considered cacheable even if the instruction cache is disabled in the HID0 register (as
it is out of hard reset). The W and M bits have no effect on the instruction cache.
For information on the synchronization requirements for changes to MSR[IR] and
MSR[DR], refer to “Synchronization Requirements for Special Registers and for
Lookaside Buffers” in Chapter 2, “Register Set,” in the
Programming Environments
Manual.
6.3
Block Address Translation
The block address translation (BAT) mechanism in the OEA provides a way to map ranges
of effective addresses larger than a single page into contiguous areas of physical memory.
Such areas can be used for data that is not subject to normal virtual memory handling
(paging), such as a memory-mapped display buffer or an extremely large array of numerical
data.
The software model for block address translation in the G2 core is described in Chapter 7,
“Memory Management,” in the
Programming Environments Manual
for 32-bit
implementations. However, note that for improved performance, the G2_LE core contains
twice as many BAT registers as the G2 core, as shown in Figure 6-2 and Figure 6-3.
Implementation Note—
The BAT registers are not initialized by the hardware after the
power-up or reset sequence. Consequently, all valid bits in both instruction and data BAT
areas must be explicitly cleared before setting any BAT area for the first time and before
enabling translation. Also, note that software must avoid overlapping blocks while
updating a BAT area or areas. Even if translation is disabled, multiple BAT area hits (with
the valid bits set) can corrupt the remaining portion (any bits except the valid bits) of the
BAT registers.
Thus, multiple BAT hits (with valid bits set) are considered a programming error whether
translation is enabled or disabled, and can lead to unpredictable results if translation is
enabled, (or if translation is disabled, when translation is eventually enabled). For the case
of unused BATs (if translation is to be enabled), it is sufficient precaution to simply clear
the valid bits of the unused BAT entries.
F
Freescale Semiconductor, Inc.
n
.