Internal Register Apertures
Local Bus Access to Internal Registers
14
EPC User
’
s Manual Revision 1.05
Copyright 1997-2000, V3 Semiconductor Inc.
3.1
LOCAL BUS ACCESS TO INTERNAL REGISTERS
Local bus access to internal registers is controlled by the Local-to-Internal Register aperture.
The base address for this register is set in the LB_IO_BASE register. The LB_IO_BASE
register is initialized by special bus cycles on the local bus immediately following a reset
(see
“
Initialization
”
) or by serial EEPROM.
The LB_IO_BASE aperture has a fixed size of 64 kilobytes, although only a small part of this
is actually used.
To write to a specific register through the LB_IO_BASE aperture, add the offset of the target
register to the starting address of the Local-to-Internal Register aperture and use that
address for the write. For example, if the LB_IO_BASE register is programmed to place the
Local-to-Internal Register aperture at E123.0000H and you want to write to the PCI
Command Register (offset 4H), then the target address would be E123.0004H.
3.2
PCI BUS ACCESS TO INTERNAL REGISTERS
PCI bus access to internal registers is controlled by the PCI-to-Internal Register aperture.
The base address for this register is set in the PCI_IO_BASE register. The PCI_IO_BASE
register is initialized either by the serial EEPROM, PCI configuration cycles, or local bus
register accesses (see
“
Initialization
”
). The PCI_IO_BASE aperture has a fixed size of 256
bytes and may be located in either PCI memory or IO space.
The EPC
’
s internal registers can also be accessed by standard PCI configuration cycles.
Configuration cycles are initiated by a PCI system master by driving active the EPC
’
s IDSEL
pin, and then performing configuration reads and writes. For configuration reads/writes, only
the low 8 bits of the address are used to index the internal registers. AD[31:8] are ignored
during the address phase.