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
412
Section 14: Serial Configuration Interface
Document
1250_1125-UM100CB-R
D
IRECT
A
CCESS
The interface allows the hardware assist to be disabled giving direct ("bit-banged") access to the SDA and SCL
lines. The CPU executes the whole protocol in software. This is useful for connecting to devices that deviate
from the standard.
Direct access is enabled through the
smb_control
register. Two bits in the
smb_control
register are used to
set the SDA and SCL lines to drive low or go high impedance, and two bits in the
smb_status
register reflect
the current state of the lines. The output from the SMB bit clock is provided in the status register since it may
be useful for timing transfers.
B
OOTING
U
SING
AN
SMB
US
EEPROM
The part can be configured to boot using an EEPROM connected to SMBus interface 0. When configured this
way accesses to the generic bus chip select 0 space are converted into SMBus accesses using either the
EEPROM Read or Read Word protocols. Since there is a large protocol overhead and the SMBus will be
running at the default 100 kHz, accessing the bootstrap code in this way is slow. Typically, a small primary
bootstrap program would be run from the EEPROM (which can also store the ethernet ids for the part), this
would do sufficient initialization to load the system code from a master device.
The boot_type is configured using resistors on the generic bus pins IO_AD[18:17] as described in
. The value on these is readable in the System Configuration register
(
). While bit 18 is set in this register the SMBus 0 interface will only be used for servicing
accesses to generic bus chip select 0.
While the SMBus interface is being used for booting any access to its control registers have UNPREDICTABLE
results. Once booting is complete software can clear bit 18 in the System Configuration register to allow normal
SMBus use. This will return the chip select 0 space to using the generic bus to service accesses. Following
SMBus use software must set the chip select 0 timing parameters (even if it is setting the default values) before
any access is made to the chip select 0 space or the results will be UNPREDICTABLE. When the system is
reset by any method that causes the configuration bits to be sampled (See
), bit 18 in the
System Configuration register will be set again, and the SMBus will be used for booting. If the watchdog timer
is set to reset only one (or both) of the CPUs then the SCD will not be reset and the SMBus will not be
reselected. In this configuration either the SMBus interface must be dedicated to be used by the generic chip
select 0, or a ROM must be put on the generic bus to service the watchdog resets.
The boot mode works with EEPROMs that have the standard interface and use SMBus address 1010xxx. The
low bits from address that the CPU issues to the generic bus (that would normally be put out on IO_AD) is sent
to the SMBus interface, which runs an addressed cycle to the EEPROM and returns 32 bits of data that would
normally be placed in the
smb_data
and
smb_xtra
registers. Two protocols are in use for these EEPROMS:
EEPROMS <= 16k bit
If the boot_type is configured as 2’b10 the part will boot from a small EEPROM (up to 2K bytes)
accessed using a modified Read Word protocol that fetches four bytes:
The upper 4 bits of the SMBus device address are set to 4’b1010.
The low three bits of the SMBus device address are set to bits [10:8] of the address being
accessed.
The Command byte is set to bits [7:0] of the address being accessed.