System Interface Unit
12-34
MPC823 USER’S MANUAL
MOTOROLA
SYSTEM
INTERFACE
UNIT
12
12.12.1.2 INTERNAL MEMORY MAP REGISTER. The internal memory map register
(IMMR) is located within the PowerPC special register space. It contains the identification of
a specific device, as well as a base for the internal memory map. Based on the value read
from this register, the software can deduce the availability and location of any on-chip
system resource. The contents of this register can be read by the mfspr instruction and the
ISB field can be written by the mtspr instruction. However, the PARTNUM and MASKNUM
fields are mask programmed and cannot be changed for any device.
ISB—Internal Space Base
This read/write field defines the base address of the internal memory space. The initial value
of this field can be configured at reset to one of four addresses and changed to any value
by the software. The number of programmable bits in this field and the resolution of the
location of internal space depends on the internal memory space of the specific
implementation. In the MPC823, you can program all 16 bits. For the information on the
PARTNUM—Part Number
This read-only field is mask programmed with a code corresponding to the part number of
the part on which the system interface unit is located. It is intended to help with factory test
and user code that is sensitive to part refinements. This field changes as the part number
changes. For example, it would change if a new module is added or if the size of the memory
module is revised. However, it would not change if the part is revised to fix a bug in an
existing module. The MPC823 has a part number of 0x20. The other byte of information
reflects the revision number. Refer to our website for the corresponding revision number for
your particular version of the silicon.
IMMR
BIT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FIELD
ISB
RESET
10
R/W
R/W
ADDR
(IMMR & 0xFFFF0000) + 0x638
BIT
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
FIELD
PARTNUM
MASKNUM
RESET
00100000
*
R/W
RR
ADDR
(IMMR & 0xFFFF0000) + 0x638
NOTE: * The value depends on the mask revision.