Data Integrity and Error Handling

6.5.2System Bus Errors

There are several errors that are detected by the SAC.

System Bus Address Parity Error. Parity is checked on both address phases.

On A[43:24]#, detected by AP[1]#.

On A[23:3]#, detected by AP[0]#.

System Bus Request Parity Error. Parity on both phases of the request bus is checked.

On REQ[4:0]#, detected by RP#.

Address above TOM. Set for addresses above TOM and not in a PCI range. These addresses can’t be sent to PCI0, since they may be greater than 4 GB, so are fatal. Out-bound addresses required a DAC on the PCI bus are not supported and would cause a fault at the xXB.

Unsupported ASZ#. Since the GX only supports 36bits of address space, accesses which have ASZ# = 10b or 11b are an error.

IOQ Underflow/Overflow. This occurs when there are no entries in the IOQ and the SDC attempts to do a Response Phase. Since the IOQ is empty, there should not be a Response phase. Or it can occur when either of the following 2 conditions are met: a) when there are 8 entries in the IOQ and a new ADS is seen b) when the IOQ depth is set to 1 for the system and the IOQ has one entry and a new ADS is seen.

BERR# Observed#. When the GX sees BERR# active on the bus, whether driven by the processor or the SAC, it will elevate that to BINIT# if the ‘BERR# to BINIT# Enable’ bit in CONFIG register is set. If the enable bit is not set, then BERR# is ignored as an input. BERR# is driven active on the bus for 3 clocks. Each time a new BERR# assertion is sampled, BINIT# will be driven, unless the error is masked off.

LOCK# Transaction with No Resources Available. Set when a LOCK# occurs and there are no outbound resources for the transaction. Since the lock can’t be retried and there is no place to put the transaction, it gets dropped and lost.

Resource Counter Overflow/Underflow. Set when the resource counter has an overflow or underflow. This occurs if there is a retirement to a counter that is empty or a transaction is not retried when the counter is full.

There is one logging register in the SAC for recording the actual error information. This is

SA_FERR. It captures the system bus address and request for both the a and b phases. This register can be used to determine which bit is bad on parity errors.

6.5.3SAC to SDC Interface Errors

The SAC will detect the following errors on the interface between the SDC and the SAC. They are all flagged in FERR_SAC.

PDB ITID parity error. Set on a data transfer from SDC to SAC that has bad parity on the ITID sent with the data.

Retirement Bus parity error. Set when the SDC attempts to retire an ITID and a parity error occurs.

False retirement seen by SAC. Set when the SAC sees a retirement to an ITID that is not in use.

‘Store-Retire’ Command Underflow. Invalid write data sent from SDC to MDC. When the SDC sends data to the MDC, it signals that it did so to the SAC. This error is flagged when the ‘data-sent’ signal is seen by the SAC, but there are no writes to that stack pending in the SAC.

6-6

Intel® 460GX Chipset Software Developer’s Manual