User Manual
BCM1250/BCM1125/BCM1125H
10/21/02
B r o a d c o m C o r p o r a t i o n
Document
1250_1125-UM100CB-R
Section 11: Generic/Boot Bus Page
361
S e c t i o n 11 : G e n e r i c / B o o t B u s
I
NTRODUCTION
The generic bus is used to attach the boot ROM and a variety of simple peripherals. Eight regions of memory
are defined, each has its own chip select line, data width and set of timing parameters. All accesses to the
generic bus range are accepted by the bus controller, a secondary decode determines which chip select region
is used or raises an error. At reset time the generic bus address/data lines are read by the part to set static
configuration options, so weak pull-up or pull-down resistors should be put on the board (see
for details of the configuration bits).
O
VERVIEW
The generic bus is allocated a 767 MB block of the address space, from
00_1009_0000
to
00_3FFF_FFFF
.
Accesses to this address space cause transfers to take place on the generic bus pins. Eight regions are
defined within the range by setting the base address and size of each region. Each region has an external
active low chip select line, and a set of registers that set the transfer width and timing.
Six of the eight chip select regions are entirely free for individual devices. One (IO_CS_L[0]) is used for the
boot Flash/ROM, and one (IO_CS_L[6]) is used for the PCMCIA device when it is enabled but is otherwise
free. Each region can be configured to use either a 32 bit multiplexed address/data bus or an 8 bit wide data
bus and 24 bit wide address bus.
After reset, region 0 is configured to map 4MB starting at the physical address location of the MIPS processor
reset exception routine,
00_1FC0_0000
and ending at
00_1FFF_FFFF
. Selection of a 32 bit multiplexed or 8
bit non-multiplexed bus for the boot region is made using the reset-time configuration options. An additional
reset option diverts accesses made to region 0 to the SMBus interface 0 to allow boot code to be fetched from
an SMBus EEPROM (see
Section: “Booting Using an SMBus EEPROM” on page 413
). The address range
initially assigned to region 0 also covers the physical address range (
00_1FD0_0000
to
00_1FD0_FFFF
) that
external PCI devices can access through the Expansion ROM BAR. The same ROM could therefore hold the
boot code and PCI Expansion code.
The data width of each region that is configured for multiplexed address/data can be specified as 8-bit, 16-bit
or 32-bit. When an access is made to a narrower region the generic bus interface logic will automatically
perform repeated reads or writes and can transfer up to a cache line of data as a result of a single request.
The generic interface is big endian, thus an 8-bit device connects to the upper byte IO_AD[31:24], a 16-bit
device connects to the upper word IO_AD[31:16], and a 32-bit device connects to the entire IO_AD[31:0]. In
non-multiplexed mode the data pins connect to the upper byte IO_AD[31:24] and the address is provided on
the lower three bytes IO_AD[23:0]. The PCMCIA bus and other little endian devices should have D[7:0]
connected to IO_AD[31:24] and D[15:8] connected to IO_AD[23:16] to keep the even addressed byte lane
lined up correctly (see
Section12: “PCMCIA Control Interface” on page 384
for full details on connecting
PCMCIA cards). An alternative way of putting this is that the upper byte IO_AD[31:24] is always the byte at the
lowest memory address. This is true regardless of the internal system endian; the generic bus interface logic
takes care of any swapping that is required. In alternate 8 bit multiplexed mode the data is transferred on
IO_AD[7:0], allowing direct connection to peripherals that use an 8 bit multiplexed connection.