2. Interface Operation
48
Tsi308 User Manual
80D4000_MA001_02
Tundra Semiconductor Corporation
www.tundra.com
When link initialization is done, the InitDone CSR bit is set. Software polls this CSR bit to
determine that the link is live and may be included in fabric initialization. InitDone remains
clear if the Tsi308 is unable to initialize the link because of any of the following:
•
There is no device at the other end.
•
Communication with the device at the other end is not possible.
•
The link is disabled because of a previous failure.
2.9.5
HyperTransport Fabric Initialization
Once hardware initialization of the individual links in the HyperTransport chain completes, host
software is responsible for initializing the HyperTransport fabric. A sample initialization
sequence proceeds according to the following example. If starting from the host, initialization
proceeds recursively for each link in the chain.
Example initialization sequence:
1.
Read the InitDone bit for the link to determine whether the link is live. Also, read the
various link error bits to determine if the link has taken errors since reset that prevent it
from functioning correctly. If the link is not live, or is taking fatal errors, fabric sizing is
complete and you can proceed to Step 6.
2.
All devices assume a HyperTransport UnitID of 0 at reset. Therefore, a configuration
access to PCI device number 0 is accepted by the first uninitialized device on the chain.
This is the device at the far end of the link currently being sized.
3.
Performing a write to the HyperTransport Command register, without changing any fields,
causes initialization of the master host bit. This indicates the HyperTransport link that
connects toward the host bridge. Polling the error bits for that link determines whether the
node on the far end is detecting any fatal errors on the link. If so, this link is not to be used,
fabric sizing is complete, and you can proceed to Step 5.
4.
Software reads the Class Code, Vendor ID, and Device ID from the device at the end of the
current link to determine what type of device it is talking to.
5.
Software writes the BaseUnitID register in the device with the next free HyperTransport
unitID value, starting with 1 for the first device. It reads the unitCount register to determine
how many unitID values the current device requires and increments the next free unitID
value appropriately.
6.
Return to Step 1 to size the next link in the chain. Because step 3 wrote the base unitID of
the last sized device to a nonzero value, it no longer accepts accesses to device 0. Instead, it
forwards them to the next device in the chain.
7.
When sizing completes to the last live link in the chain, set the EndOfChain and
TransmitOff bits for the outgoing link of the last device. This prevents the unused link from
being driven and enables proper handling of HyperTransport packets that traverse the
HyperTransport link without finding their target node.
Summary of Contents for TSI308
Page 4: ...4 Tsi308 User Manual 80D4000_MA001_02 Tundra Semiconductor Corporation www tundra com ...
Page 6: ...6 Tsi308 User Manual 80D4000_MA001_02 Tundra Semiconductor Corporation www tundra com ...
Page 20: ...20 Tsi308 User Manual 80D4000_MA001_02 Tundra Semiconductor Corporation www tundra com ...
Page 260: ...Index 260 Tsi308 User Manual 80D4000_MA001_02 Tundra Semiconductor Corporation www tundra com ...