[ Team LiB ] Previous Section Next Section

How Errors are Reported

PCI Express includes two methods of reporting errors:

  • error message transactions — used to report errors to the host

  • completion status — used by the completer to report errors to the requester

Each reporting mechanism is described below.

Error Messages

As discussed previously, PCI reports errors via the PERR# and SERR# signals. Because PCI Express eliminates theses error-related signals, error messages have been defined to replace these signals by acting as virtual wires. Furthermore, these messages provide additional information that could not be conveyed directly via the PERR# and SERR# signals. This includes identification of the device that detected the error and an indication of the severity of each error.

Figure 10-4 illustrates the format of the error messages. Note that these packets are routed to the Root Complex for handling by system software. The message code defines the type of message being signaled. As one might guess, the specification defines three basic types of error messages shown in Table 10-1.

Figure 10-4. Basic Format of the Error Messages

graphics/10fig04.jpg

Table 10-1. Error Message Codes and Description

Message Code

Name

Description

30h

ERR_COR

used when a PCI Express device detects a correctable error

31h

ERR_NONFATAL

used when a device detects a non-fatal, uncorrectable error

33h

ERR_FATAL

used when a device detects a fatal, uncorrectable error

Completion Status

PCI Express defines a completion status field within the completion header that enables the transaction completer to report errors back to the requester. Figure 10-5 illustrates the location of the completion field and Table 10-2 defines the completion values. Note that the shaded status entries represent error conditions that can be reported via error messages.

Figure 10-5. Completion Status Field within the Completion Header

graphics/10fig05.jpg

Table 10-2. Completion Code and Description

Status Code

Completion Status Definition

000b

Successful Completion (SC)

001b

Unsupported Request (UR)

010b

Configuration Request Retry Status (CRS)

011b

Completer Abort (CA)

100b - 111b

Reserved

    [ Team LiB ] Previous Section Next Section