BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
232
Section 8: PCI Bus and HyperTransport Fabric
Document
1250_1125-UM100CB-R
U
SING
THE
PCI
IN
D
EVICE
M
ODE
The part can be used in PCI Device Mode in a couple of different situations. The main one is when it is used
as a PCI device on an option card and the second is when the PCI is used to connect several parts in a system.
The BAR0, BAR2, BAR3 and ROM BAR are active in Device Mode. Most accesses by an external host will be
done through BAR0 and the mapping table, BAR2 and BAR3 will be used for the host to communicate with the
SB-1 CPUs via the mailbox registers and the ROM BAR will typically only be used during initialization. When
the part needs to make a memory space access on the PCI it will use the Full Access space, which allows any
(32 bit) PCI address to be generated, I/O accesses can be made through the normal I/O space range.
In Device Mode the PCI configuration is mostly done by the host in the system. However the BAR0 Map
registers, the SubSysSet register (and the vendor IdSet and ClassRevSet) and the INTA control bit can only
be set by configuration accesses from the ZBbus side of the PCI interface and are therefore under control of
software on the device.
The address map on the PCI bus is different from the address map within the part, and translation is done
through the BAR0 address map. The map table allows control of what areas of the local memory map are
accessible to an external PCI master. Therefore it is protected and can only be used with configuration
accesses from the ZBbus side of the bridge. Configuration accesses to the map table registers will be accepted
from the PCI bus, but the writes will be ignored and reads will return UNPREDICTABLE values. The external
master will always see the BAR0 region as a 16 MByte space that needs an address allocation, software
running on the part should configure the map table to allow access to appropriate internal resources. The peer-
to-peer mappings in the map register give the device some of the characteristics of a non-transparent PCI to
HyperTransport bridge.
The SubSysSet register can only be written from the ZBbus side of the bridge. It is used to provide a value in
the SubSystem Device and Vendor Id registers seen by external configuration reads. In Device Mode software
on the part should write the SubSysSet register with a value that identifies the manufacturer of the option card
and its part number. This write must be done early in initialization, before the host needs to read the value. On
interface revision 3 and greater the Device/Vendor ID register and the Class/Rev register seen by external
configuration reads can also be set using the VendorIdSet and ClassRevSet registers.
The INTA control bit can be used by the device to signal a PCI interrupt on the (bidirectional) P_INTA_L pin.
Again, this bit can only be accessed from the ZBbus side and external accesses have UNPREDICTABLE
results.
The P_RST_L signal is only an output, and is therefore only appropriate for use when the part is in Host Mode.
In Device Mode the pin is not used. There are two options for connecting the PCI reset signal. When the part
is used on an option card it should be reset when the PCI bus is reset, therefore the PCI reset should drive the
RESET_L input to the part. When the PCI is used to connect multiple parts in a system they may need to be
independently reset, in this case the PCI reset line can be connected to one of the GPIO pins used as an
interrupt input. Software running on the Device Mode part can then read the state of the PCI reset and can be
interrupted to take appropriate action if the PCI bus is unexpectedly reset during normal operation.
Accesses to the PCI configuration registers in device mode are confused by their being shared between
accesses from within the part (ZBbus accesses) and accesses originating as Type 0 configuration cycles on
the PCI bus (PCI accesses). In addition the interface must ensure that the host doing PCI accesses does not
attempt to read the SubSystem information before local software has written the SubSysSet register. The
rd_host bit, in the WRITE ONLY Device control register, is used to control the access. This bit is only used in
device mode. It defaults to being set which allows read and write ZBbus accesses to the static interface
identification, the BAR0 map entries, the SubSysSet register and the SignalINTA register. While the bit is set