
TM1100 Preliminary Data Book
Philips Semiconductors
10-8
PRELIMINARY INFORMATION
File: pci.fm5, modified 7/23/99
The values in the Base Address registers determine the
address map as seen by both the DSPCPU and external
PCI masters. These values are normally set once, and
not changed dynamically once the DSPCPU operates.
Hardware RESET initializes DRAM_BASE to 0x0 and
MMIO_BASE to 0xefe0,0000, after which the TM1100
boot protocol sets the final value.
In stand-alone systems, the autonomous boot sequence
is executed., In this case, the values of DRAM_BASE
and MMIO_BASE are copied from the content of the se-
In X86 or other host assisted platforms, the PCI host as-
sisted boot sequence is executed. In this case, the base
registers are not set from the EEPROM. Instead, the host
BIOS executes a scan for devices on each PCI bus. Dur-
ing this scan, memory apertures needed by each device
are determined, and a suitable base is assigned by the
host BIOS. The details of this process are described be-
low.
MMIO_BASE. Following are descriptions of the register
fields.
M (Memory). The value of the M bit indicates whether
the desired resource is a memory or PC I/O aperture.
The M bit is hardwired to zero, indicating a memory type
aperture for both the DRAM_BASE and MMIO_BASE
registers.
T (Type). The value of the T field indicates the size of the
base address register and constraints on its relocatabili-
ty.
Table 10-10 lists the encodings and meanings of the
T field.
TM1100’s PCI-interface base registers are 32 bits wide
and can be relocated in the 32 bit address space; thus,
the value of the T field is 00 for both DRAM_BASE and
MMIO_BASE.
P (Prefetchable). The value of the P bit indicates to oth-
er devices whether or not prefetching is allowed. Both
SDRAM and MMIO are not prefetchable, so the P bit is
hardwired
to
zero
for
both
DRAM_BASE
and
MMIO_BASE.
(A Base Address register has a P bit set to one if there
are no side effects caused by reads. Reads from a
prefetchable space return all bytes regardless of byte en-
ables. Host bridges can merge writes to a prefetchable
device without causing errors.)
DRAM/MMIO Base Address. In X86 or other host plat-
forms, the configuration space DRAM Base Address and
MMIO Base Address fields serve two purposes. First, the
host BIOS software can use them to determine the sizes
of the SDRAM and MMIO apertures. Second, the BIOS
can write to these fields to cause the apertures to be re-
located within the PCI memory address space.
To determine the sizes of an aperture, the BIOS first
writes all ones (0xFFFFFFFF) to the address field. When
the BIOS reads the field immediately after, the value re-
turned will have zeros in all don’t-care bits and ones in all
required address bits. Required address bits form a left-
aligned (i.e., starting at the MSB) contiguous field of
ones, thus effectively specifying the size of the aperture.
For example, the MMIO aperture is a fixed 2-MB space.
After writing all ones to the MMIO Base Address field, a
subsequent read returns the value 0xFFE00000. The M,
T, and P fields are all zero indicating the aperture is
memory (not I/O), can be relocated anywhere in a 32-bit
address space, and is not prefetchable. Since the aper-
ture has 21 address bits (the position of the first one bit),
MMIO space is a 2-MB aperture (221 bytes). The host
BIOS now assigns a suitable 2 MB aligned base address
by writing to the MMIO_BASE register in configuration
space.
The DRAM aperture can range in size from 1 MB to 64
MB (but the size must be a power of two). Thus, the num-
ber of required address bits can range from 20 to 26. The
actual amount of SDRAM present is determined by the
content of the first byte of the boot EEPROM, as de-
The PCI BIU uses this size to determine which of the bits
marked ‘sp’ in
Figure 10-7 are writable and which are set
to 0. This causes the BIOS to determine the correct ac-
tual DRAM aperture size.
10.6.12 Subsystem ID, Subsystem Vendor ID
Register
The subsystem and subsystem vendor ID are new per
PCI Rev 2.1. These fields are optional, but their use is
Table 10-10. Type Field Encodings
Type
Meaning
00
Base register is 32 bits wide; mapping can relocate
anywhere in 32-bit memory space
01
Base register is 32 bits wide; mapping must relocate
below 1MB in memory space
10
Base register is 64 bits wide; mapping can relocate
anywhere in 64-bit address space
11
Reserved
31
0
DRAM_BASE
M
DRAM Base Address
1
2
3
T
P
MMIO_BASE
M
T
P
4
0
sp
sp0
0
00
0
25
19
MMIO Base Address
0
00
0
00
0
31
0
1
2
3
4
20
Figure 10-7. Base Address register format.