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 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. Only available starting with 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 Quartus® Prime version 19.3. |
acmf_version |
15:8 |
Current image firmware RSU interface version. Only available starting with Quartus® Prime version 19.3. |
dcmf_version |
7:0 |
Decision firmware RSU interface version. Only available starting with Quartus® Prime version 19.3. |
Prior to
Quartus® Prime version 19.3 the
version field was
0x00000000.
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 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.
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.