TestApp Sample#

TestApp Overview#

To demonstrate the IST, a TestApp (TestApp_IST) sample application is provided in the MCU FW. The Key-IST tests various configurations to ensure successful execution within the specified timeout. The TestApp interfaces with user input test commands and the IST Manager to allow the user to:

  • Input test commands from the MCU console.

  • Observe the output of test commands processing on the console.

TestApp Commands#

The test commands are the user input commands on the console that are input to the TestApp application. When a test command is issued, the TestApp calls the appropriate interfaces and displays the result. Test commands that are issued from an MCU console invoke the TestApp at the MCU to interact with the IST Manager interface. The test commands are as follows:

Test Command

Description

poweron

Powers the device ON and resets the system.

poweroff

Sets the output to the system power off state.

setistconfig

Sets the IST configuration as configured at the MCU and all SoCs.

  • 0x0: IST_EXECUTE_NONE (Normal Boot)

  • 0x1: IST_EXECUTE_KEYIST (Key IST)

Expected output:

INFO : IST_TESTAPP: config: <config>
Command Executed

getistconfig

Gets the IST configuration set by the user.

Expected output:

INFO : IST_TESTAPP: Config Set : <config>
Command Executed

Where:

  • config is 0 for IST_EXECUTE_NONE and 1 for IST_EXECUTE_KEYIST.

getistinfo

Gets:

  • The last IST execution.

  • Details the results for all SoCs.

Expected output:

INFO : IST_TESTAPP: IST Result: <ist_result>
INFO : IST_TESTAPP: Execution status match: <execution_status_match>
INFO : IST_TESTAPP: IST Execution status by MCU: <ist_execution_status_by_mcu>
INFO : IST_TESTAPP: Hardware Result: <hardware_result>
INFO : IST_TESTAPP: Software RPL Error: <software_rpl_error>
INFO : IST_TESTAPP: Software Pre-IST Error: <software_pre_ist_error>
Command Executed

Where:

  • ist_result is overall status (PASS or FAIL)

  • execution_status_match is 1 when execution status matches

  • ist_execution_status_by_mcu is zero in case of internal error in MCU

  • hardware_result is 1 if Test Results matched expected results

  • software_rpl_error is non-zero in case an internal error occurred while processing results in IST_Client

  • software_pre_ist_error is deprecated and should be ignored

Expected output for a successful run:

INFO : IST_TESTAPP: IST Result: PASS
INFO : IST_TESTAPP: Execution status match: 1
INFO : IST_TESTAPP: IST Execution status by MCU: 1
INFO : IST_TESTAPP: HW Result: 1
INFO : IST_TESTAPP: SW RPL Error: 0
INFO : IST_TESTAPP: SW Pre-IST Error: 2

TestApp Example Usage Flow#

IST Execute Key-IST#

The following diagram illustrates the flow of IST execution when the Key-IST is configured, using MCU console commands and TestApp.

image1

IST Execute None#

The following diagram illustrates the flow of execution with IST_EXECUTE_NONE (Normal Boot).

image2

TestApp Usage Requirements#

  • If the KIST HwResult field reports that a latent fault was detected, KIST should be re-run to rule out transient failures.

  • The user must wait for IST_Manager to receive the Result Ready notification from IST_Client before running getistinfo to retrieve the results.

  • If getistinfo reports a failure, more information can be retrieved by looking at the syslog output for process ist_client. This system log information should be provided to NVIDIA when requesting support for KIST.

  • After setting the IST configuration, the you can verify if the configuration was set successfully by executing the getistconfig command.