Intel Agilex® 7 Hard Processor System Remote System Update User Guide

ID 683184
Date 2/23/2024
Public
Document Table of Contents

B. RSU Status and Error Codes

The RSU status can be checked from U-Boot and Linux and contains the following 32-bit fields:
Table 12.   RSU Status Fields
Field Description
current_image Location of currently running image in flash.
failed_image Address of failed image.
error_details Opaque error code, with no meaning to users.
error_location Location of error in the image that failed.
state State of RSU system.
version RSU interface version and error source.
retry counter Current value of the retry counter.

The failed_image, error_details, error_location, state fields and the error_source bit field of the version field have a sticky behavior: they are set when an error occurs, then they are not updated on subsequent errors, and they are cleared when one of the following events occur: POR, nCONFIG, a specific image is loaded, or the error status is specifically cleared from either U-Boot or Linux.

The state field has two bit fields:
Table 13.  State fields
Bit Field Bits Description
major_error_code 31:16 Major error code, see below for possible values.
minor_error_code 15:0 Minor error code, opaque value

The following major error codes are defined:

Table 14.  RSU Major Error Codes
Major Error Code Description
0xF001 BITSTREAM_ERROR
0xF002 HARDWARE_ACCESS_FAILURE
0xF003 BITSTREAM_CORRUPTION
0xF004 INTERNAL_ERROR
0xF005 DEVICE_ERROR
0xF006 HPS_WATCHDOG_TIMEOUT
0xF007 INTERNAL_UNKNOWN_ERROR

The minor error code is typically an opaque value, with no meaning for you. The only exception is for the case where the major error code is 0xF006 (HPS_WATCHDOG_TIMEOUT), in which case the minor error code is the value reported by the HPS to SDM through the RSU Notify command before the watchdog timeout occurred.

Starting with Intel® Quartus® Prime Pro Edition software version 20.4, the following INTERNAL_ERROR codes are reported by the decision firmware and have specific meanings, as defined below:
Table 15.  Decision Firmware Error Codes
Major Error Code Minor Error Code Description
0xF004 0xD00F Decision firmware data was corrupted, factory image was loaded.
0xF004 0xD010 Configuration pointer block 0 was corrupted, configuration pointer block 1 was used instead.
0xF004 0xD011 Both configuration blocks 0 and 1 were corrupted, factory image was loaded.

For a more complete list of possible error codes, refer to the Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptions appendix in the Mailbox Client Intel® FPGA IP User Guide.

The version component has the following bit fields:
Table 16.  Version fields
Bit Field Bits Description
current_dcmf_index 31:28 Index of the decision firmware copy that was used last time. Possible values: 0,1,2,3.
error_source 27:16 Source of the recorded error:
  • 0x000: for no error
  • 0xACF: if the error was produced by an application or factory image firmware
  • 0xDCF: if the error was produced by the decision firmware
acmf_version 15:8 Current image firmware RSU interface version.
dcmf_version 7:0 Decision firmware RSU interface version.
Note: Intel® Quartus® Prime Pro Edition version 20.1 is the first version which support RSU for Intel Agilex® 7, and both acmf_version and dcmf_version are set to 0x02 for this release.