Patent ID: 6862642

Claim:
A method for resetting bus segments to clear bus hang in an I/O subsystem having a plurality of bus segments, each bus segment having a set of devices and a bus that is coupled to the set of devices, the I/O subsystem having at least one expander, each expander being arranged to couple a pair of buses for propagating communication signals, a first of the bus segments being coupled by a first one of the expanders only to a second of the bus segments, the method comprising the operations of: a) asserting a first reset signal on only the first bus segment in a manner by which the first reset signal is normally transmitted through the first expander to the second bus segment; b) in response to the first reset signal asserted on the first bus segment, resetting the first expander coupled to the first bus segment and resetting each device in the first bus segment and establishing a first reset isolation mode of the first expander to perform reset signal isolation such that the first reset signal is not propagated through the first expander to the second bus segment; c) operating the first expander coupled to the first bus segment for: c1) after resetting the first expander and the devices in the first bus segment, in a segment isolation mode of the first expander, isolating all the communication signals such that the first expander prevents propagation of the communication signals between the first bus segment and the second bus segment wherein a busy signal from the second bus segment will not propagate to the first bus segment and will not interrupt clearing of the first bus segment; c2) determining whether the bus of the second bus segment is no longer hung; c3) during the first reset isolation mode if the bus of the second bus segment is still hung, issuing a first far-side reset signal on the second bus segment to reset the second bus segment, propagation of the first far-side reset signal to the reset first bus segment being prevented by the first expander in the first reset isolation mode; c4) if the bus of the second bus segment is not hung, allowing propagation of the communication signals between the first bus segment and the second bus segment; and c5) ending the first reset isolation mode of the first extender.