
MOTOROLA
Chapter 3. Device Programming
3-15
3.2 Configuration Registers
This section describes the programmable configuration registers of the MPC106. These
registers are generally set up by initialization software following a power-on reset or hard
reset, or by error handling routines. All the internal registers of the MPC106 are
intrinsically little-endian. In the following register descriptions, bit 0 is the least-significant
bit of the register.
Any reserved bits in the following register descriptions are not guaranteed to have
predictable values. Software must preserve the values of reserved bits when writing to a
configuration register. Also, when reading from a configuration register, software should
not rely on the value of any reserved bit remaining consistent.
3.2.1 Configuration Register Access
When using address map A, the MPC106 configuration registers are accessed by an indirect
method similar to accessing PCI device configuration registers. The 32-bit register address
(0x8000_00
nn
, where
nn
is the address offset of the desired configuration register—see
Table 3-10 and Figure 3-7) is written to CONFIG_ADDR at 0x8000_0CF8 (0x8006_7018
in discontiguous mode). Then, the data is accessed at CONFIG_DAT at addresses
0x8000_0CFC–0x8000_0CFF (0x8006_701C–0x8006_701F in discontiguous mode).
When using address map A, certain configuration bits for the MPC106 can also be accessed
at the addresses 0x8000_0092, 0x8000_081C, and 0x8000_0850. These are compatible
with the example system described by the PowerPC reference platform specification. See
Section 3.2.10, “External Configuration Registers,” for more information.
When using address map B or emulation mode address map, the MPC106 uses a similar
indirect method to access the internal configuration registers—the exception is that
CONFIG_ADDR and CONFIG_DATA are found at different addresses. The 32-bit register
address (0x8000_00
nn
, where
nn
is the address offset of the desired configuration
register—see Table 3-10 and Figure 3-7) is written to CONFIG_ADDR at any
word-aligned address in the range 0xFEC0_0000–0xFEDF_FFFF. Every word within this
range is aliased to the same location. Then, the data is accessed at CONFIG_DAT at any
address in the range 0xFEE0_0000–0xFEEF_FFFF. Every word within this range is aliased
to the same location.
3.2.1.1 Configuration Register Access in Little-Endian Mode
In little-endian mode (both processor and the MPC106), the program should access the
configuration registers using the methods described in Section 3.2.1, “Configuration
Register Access.” The data appears in the 60x processor register in descending significance
byte order (MSB to LSB) at the time it is stored to the MPC106. For the indirect-access
method, the configuration register address in the processor register should appear (as data
appears) in descending significance byte order (MSB to LSB) at the time it is stored to the
MPC106.