8201, 8202, 8203, 8204 Acceleration Processor Data Sheet, DS-0157-05
Page 256
Exar Confidential
9
Error Handling
9.1 Error Detection Methods
There are three methods the host software can use to detect if errors have occurred in the
820x:
1. Read the “ERR” bit of the Desc_result descriptor in the command structure. This bit
will be set if any error has occurred.
2. Read the result status in the result ring.
3. Poll the 820x error status register.
If the host is only interested in whether an error has occurred, the best method would be
to read the “ERR” bit. If the host is interested in detailed error information for the current
command, the best method would be to read the result status in the result ring. If the host
is interested in the type of error that occurred without regard to the command that created
the error, the best method would be to read the 820x error status and Channel Manager
error status registers, where any errors are recorded until it is cleared by host.
9.2 Error Categories
There are two error categories for the 820x:
Category 1 errors: Channel Manager Detected Error
All errors in this category will not block the 820x’s operation even if the errors occur
while processing a command. These errors will corrupt the command result. Refer to
“Channel Manager 0-1 Error Status” register for details.
Category 2 errors: PCIe Core Reported Error
Error in this category would include completion timeout, completion abort, parity error
and ECRC error. All errors in this category will block the 820x's operation because the
820x cannot access the completion data.
9.3 Error Handling Mechanism
The 820x error handing mechanism adapts well to network and storage applications with
minimum system overhead.
Self recovery from Category 1 errors:
The 820x will recover from these errors because these errors will not block the 820x’s
operation. The 820x will continue processing commands and set the error status bits in
the command structure and result ring for the command that errored. The host software
can then reschedule the failed command according to the result information.