HyperTransport defines six types of errors, and three basic ways they may be reported to the system. Types Of ErrorsThe error types which may be detected , logged, and reported are:
Reporting MethodsOnce an error is detected, it can be conveyed to other devices in the system in the following ways:
The Role Of PCI Configuration SpaceThe PCI Configuration Space required of each HyperTransport device performs several roles in error handling. The Command and Status registers in the header and the Link Error and Error Handling registers in the HyperTransport Advanced Capability Register block are used to report error handling capabilities, program the error reporting mechanism to be used if an error occurs, and to log the errors which occur so that software can later assess the error events seen by each device. Once the error capabilities of a device have been determined and the error reporting strategy is programmed in configuration space, any errors which occur will be handled accordingly . For example, a HyperTransport device which detects a protocol error may be programmed to set the corresponding log bit in the configuration space Error Handlin g register and generate a fatal interrupt message. Most Types Of Error Checking Are OptionalTo accommodate differences in how devices and applications may view certain types of errors, the specification only requires CRC generation/checking on each link; other aspects of error detection and handling are optional. If a particular error is not checked, the corresponding enable and logging bits in configuration space must be hardwired to 0. System Handling Of HyperTransport Errors VariesAs in many other bus protocols, HyperTransport bus behavior during error events is well specified but the action taken by the system in response to reported errors is implementation specific. However, if Sync flood is used as a reporting mechanism, a reset is required on the affected chain(s) to restore proper protocol. |