
C
URTISS
-W
RIGHT
C
ONTROLS
E
MBEDDED
C
OMPUTING
S
YSTEM
I
NTEGRATION
809524 R
EVISION
D F
EBRUARY
2009
4-7
B
ASE
A
DDRESS
R
EGISTER
I
NITIALIZATION
Once the setup registers have been configured with the information downloaded from the
serial EEPROM, the FF/W initializes the Base Address Registers (BARs) on the local
(secondary) PCI bus based on the contents of the corresponding setup registers. The local
PCI address map on the SBC then appears as shown in Figure 4.3.
F
IGURE
4.3: Local PCI Address Map after BAR Configuration
The base addresses (offsets 0, 1, 2 and 3) are defined by FF/W during initialization and are
the values contained in the respective secondary BARs of the 21554. These values can be
established by using the CSS function Find_device(). For example:
pciDeviceStruct dev;
Find_device(I21554_DEVICE_ID, INTEL_VENDOR_ID,0, &dev);
Offset 0 = (uint32)dev.memBaseAddr[0]
/*Secondary CSR Memory BAR*/
Offset 1 = (uint32)dev.memBaseAddr[1]
/*Upstream Memory 1 BAR*/
Offset 2 = (uint32)dev.ioBaseAddr[0]
/*Secondary CSR I/O BAR*/
Offset 3 = (uint32)dev.ioBaseAddr[1]
/*Upstream I/O BAR*/
Alternatively, the Secondary PCI Configuration register defaults can be examined using the
GPM command 'PCID'.
For example, to display the contents of the PMC-605 Configuration registers in the PMC slot
1 on a SVME/DMV-179:
At the GPM prompt, type:
offset 0
Start of PCI memory
Offset 0 + 0x1000
0x0000 0000
PMC605 CSRs
Offset 1 + 0x400000
PCI-P0 Memory Space
Start of PCI I/O
offset 2 + 0x100
offset 3 + 0x400
PCI-P0 I/O Space
PMC605 CSRs
offset 1
offset 2
offset 3
SBC Address map
Artisan Scientific - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisan-scientific.com