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

7.5.4. Fallback on Flash Corruption of Application Images

This section uses the RSU client to demonstrate falling back in case of configuration errors caused by flash corruption of application images.
Note: The commands listed in this section rely on the commands from the Basic Operation section running first, specifically adding image P2 to the flash.
  1. Power cycle the board, boot Linux*and display the status – it shows the P2 image running, as it is the highest priority:
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000002000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed
    What do the version fields mean:
    • Version field is 0x00000202 —both decision firmware and application firmware RSU interface versions are 2, and the system supports the max retry feature.
    • Retry counter is 0x00000000 —first attempt to load this image.
    • State is 0x00000000 —No errors to report
  2. Erase slot 1, which also takes it out of CPB:
    root@linux:~# ./rsu_client --erase 1
    Operation completed
  3. Create a file with random data, and write it to the P2 slot:
    root@linux:~# dd if=/dev/urandom of=corrupt.rpd bs=1M count=1
    1+0 records in
    1+0 records out
    root@linux:~# ./rsu_client --add-raw corrupt.rpd --slot 1
    Operation completed
  4. Enable the P2 slot, which puts it as the highest priority in the CPB:
    root@linux:~# ./rsu_client --enable 1
    Operation completed
  5. Confirm that P2 is now the highest priority in the CPB:
    root@linux:~# ./rsu_client --list 1
          NAME: P2
        OFFSET: 0x0000000002000000
          SIZE: 0x01000000
      PRIORITY: 1
    Operation completed
  6. Power cycle the board, boot Linux and query the RSU log:
    root@linux:~# ./rsu_client --log
          VERSION: 0x0DCF0202
            STATE: 0xF004D003
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000002000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed

    The current image is P1, and the P2 shows as failed. The top 4 bits of the version field are set to 0x0which means the currently used DCMF index is zero. Th next 12bit of the version field are set as 0xDCF which means the error was caused by the decision firmware, because it was not able to load the image. The top 16 bits of the state field are set to 0xF004, which indicates an internal error. For more information, refer to RSU Status and Error Codes .

  7. Clear the error status and display the log again to confirm it was cleared:
    root@linux:~# ./rsu_client --clear-error-status
    Operation completed
    root@linux:~# ./rsu_client --log
          VERSION: 0x00000202
            STATE: 0x00000000
    CURRENT IMAGE: 0x0000000001000000
       FAIL IMAGE: 0x0000000000000000
        ERROR LOC: 0x00000000
    ERROR DETAILS: 0x00000000
    RETRY COUNTER: 0x00000000
    Operation completed