Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.3.6.9.9. Recommended Error Handling Checking Software Flow

The following flow is recommended to interpret the status fields in the last operation status register/descriptor for various operations in which multiple bits can be set. If there is a descriptor error, no other error bits are set (with possible exception of the di_dsc_err bit).

  1. If Complete = 1 then: Operation complete. This bit is set for errors also.
  2. All cases are equally important and the possible options are:
    • If Fail = 1 and Descriptor error = 1 then there was an error in the descriptor.
    • If Fail = 1 and DQS error = 1 then incorrect number of the DQS pulses is detected.
    • If Fail= 1 and Bus error = 1 then error response on the system bus is detected.
    • If Fail = 1 and ECC_error = 1 then uncorrectable error is detected.
    • If Fail = 1 and di_ctx_err = 1 then parity error during reading from context memory is detected.
    • If Fail = 1 and di_dsc_err = 1 then parity error during reading the descriptor or sync flag is detected.
    • If Fail = 1 and di_dat_err = 1 then data integrity error during data transmission is detected.
    • If Fail = 1 and device_error = 1 then error from device read status operation is detected.

The CRC data can be programed along with main data in the NAND Flash memory. In this summary ECC and CRC status should be interpreted using following flow:

  1. If condition for uncorrectable error is detected (ECC_error = 1) then reported CRC errors should be ignored and operation status should be interpreted as data transfer with uncorrectable errors.
  2. If uncorrectable error is not reported (ECC_error = 0), but the CRC error is reported then operation status should be interpreted as data transfer with uncorrectable errors. In this case, controller's ECC engine detected false correction when number of error overpasses algorithm detection ability.
  3. If no uncorrectable error is reported (ECC_error = 0), no CRC error is reported and number of detected errors larger then zero then operation status should be interpreted as data transfer with correctable error.
  4. If no uncorrectable error is reported (ECC_error = 0), no CRC error is reported, and number of detected errors is equal to zero then operation status should be interpreted as data transfer without errors