Intel® Stratix® 10 Hard Processor System Remote System Update User Guide

ID 683021
Date 11/10/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

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 11.   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 12.  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 13.  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 14.  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 Mailbox Client Intel FPGA IP User Guide, Appendix: CONFIG_STATUS and RSU_STATUS Error Code Descriptions .

The version component has the following bit fields:
Table 15.  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. Only available starting with Intel® Quartus® Prime version 19.4.
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
Only available starting with Intel® Quartus® Prime version 19.3.
acmf_version 15:8 Current image firmware RSU interface version. Only available starting with Intel® Quartus® Prime version 19.3.
dcmf_version 7:0 Decision firmware RSU interface version. Only available starting with Intel® Quartus® Prime version 19.3.
Prior to Intel® Quartus® Prime version 19.3 the version field was 0x00000000. Intel® Quartus® Prime version 19.3 sets both the acmf_version and dcmf_version to 1. When both are reported as 1 or greater, the following features are available:
  • Trying an image multiple times (max retry).
  • Querying and resetting the retry counter.
  • Clearing the error status.
Note: When combining application and factory images, and decision firmware with different RSU firmware interface versions, the acmf_version and dcmf_version fields may be reported inconsistently. Make sure to have all from Intel® Quartus® Prime version 19.3 or newer for reliable use of the new features.
Note: If only the dcmf_version is set to 1 or greater, but the acmf_version is zero, the images are still be tried multiple times (if enabled), but the retry counter cannot be queried or reset.
Intel® Quartus® Prime version 19.4 sets both the acmf_version and dcmf_version to 2. When both acmf_version and dcmf_version are reported as 2, or greater, the following additional feature is available:
  • Determining which DCMF copy was last used, from the current_dcmf_index field.