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 8: PCI Bus and HyperTransport Fabric
Page
211
The HyperTransport interface always runs as a host bridge, and has a PCI type 1 configuration header. The
base and limit registers in the header define the region of the PCI/HyperTransport memory space that is
allocated to devices on the HyperTransport fabric (these devices can be accessed by a system that uses 32
bit addresses). The value of the southOnLDT configuration bit determines whether the
00_4000_0000
to
00_40FF_FFFF
range is allocated to the HyperTransport or PCI (note that these addresses are not changed
when they are forwarded, nor will the COMPAT bit be set if the request is sent back out on the HT). In addition
the HyperTransport is allocated the top half of the full 40 bit physical address space.
If the Bus Master Enable bit is clear in the HyperTransport interface bridge header the only requests that will
be accepted from the HyperTransport fabric are to the configuration space. All other requests will be discarded
or receive an NxA response. If this bit is set the bridge will accept transactions to be forwarded to the ZBbus,
PCI bridge and back to the HyperTransport.
Peer to peer operations on the HyperTransport fabric must pass through the host bridge, any incoming
addresses that match a HyperTransport region are therefore forwarded to the outgoing link. Requests with
srcid=0 to HyperTransport peer-to-peer are responded to with an NXA (non existent address) error since they
must have come all the way from a host bridge at the other end of the link and not been accepted by any of
the devices on the link.
Requests that match a PCI address, either using standard addresses in the low 32 bit range of the address
map or in the special
F0_0000_0000
-
F0_FFFF_FFFF
range, are forwarded to the PCI interface and a PCI
cycle is run. A PCI cycle is also run for accesses to the southbridge space if the southOnLDT bit is clear. The
data is passed directly between the two interfaces regardless of system endian settings. Only a single
HyperTransport-PCI read will be issued at a time. The PCI interface will not respond to requests that it
generates, any access forwarded from the HyperTransport fabric that match a PCI address with destination
inside the part will result in an error.
Requests that match the ZBbus space will be forwarded through I/O Bridge 0 and run as internal cycles. These
requests use one address bit to select the endian mode for the transfer. If the system is big endian then setting
the address bit will result in the match bit lane policy and leaving it clear will give the match byte lane policy. If
the isochronous bit is set in a HyperTransport request that is sent to the ZBbus, it will have the L2 cacheable
bit set in the command. This is particularly useful if the HyperTransport device is writing data that one of the
CPUs will need immediate access to. If the address is to the memory range then a cacheable coherent access
is made. If the access is a write of smaller than a cache line then the I/O bridge will get the current data and
ownership of the block by using a read exclusive command, the new data from the write is merged into the
block and it is written back to memory or L2. If the address is not in the memory range then an uncacheable
access is used, with the appropriate byte enables set.
If an error is returned from a ZBbus read the MstrAbortMode bit in the Bridge Control Register determines the
error reported to the HyperTransport fabric. If the bit is set a HyperTransport error with the NxA bit clear is
generated for all ZBbus error types. If the bit is clear, ZBbus Bus Errors or Fatal Errors cause
UNPREDICTABLE data marked valid to be returned to the HyperTransport fabric, but other ZBbus errors are
still returned as HyperTransport errors with the NxA bit clear. Non-posted writes will never return an error, since
they are converted to posted writes internally.
The interface does not accept cycles based on the COMPAT bit being set (even if the southOnLDT flag is
clear), it therefore cannot be used to forward from the HyperTransport to a southbridge on the PCI bus.