Reproduce

This section describes how to download, configure, build and execute the the supported use cases.

Note

You can copy all command examples on this page from the HTML document format by clicking the copy button. In the PDF document format, be aware that special characters are added when lines get wrapped.

Build host environment setup

Please see Build Host Environment for details on how to set up the build host environment.

Download

Note

Performing the builds and FVP execution in a tmux session is mandatory for Arm Automotive Solutions because the runfvp tool that invokes the FVP expects the presence of a tmux session to attach its spawned tmux windows for console access to the processing elements.

Refer to Tmux Documentation for more information on the usage of tmux. It is recommended to change the default history-limit by adding set-option -g history-limit 3000 to ~/.tmux.conf before starting tmux.

Start a new tmux session, via:

tmux new-session -s arm-auto-solutions

To reconnect to an existing tmux session:

tmux attach -t arm-auto-solutions

Download the Arm Automotive Solutions repository using Git and checkout a release, via:

mkdir -p ~/arm-auto-solutions
cd ~/arm-auto-solutions
git clone https://git.gitlab.arm.com/automotive-and-industrial/arm-auto-solutions/sw-ref-stack.git --branch v2.1

Reproducing the use cases

General

This section explains different supported use cases and how to reproduce them. Note that the software can be built for two different platform configurations - CFG1 and CFG2. See Configurations for more information.

List of Demos

Demo

Baremetal

Virtualization

PSA APIs Tests in Primary Compute

Yes

No

Running SSU Integration Test

Yes

Yes

Running FMU Integration Test

Yes

Yes

Running SBISTC Integration Test

Yes

No

Platform Fault Detection Interface

Yes

No

RAS error processing validation

Not Applicable

Not Applicable

Arm SystemReady Devicetree validation

Not Applicable

Not Applicable

Linux distribution installation (Debian, openSUSE and Fedora)

Not Applicable

Not Applicable

Arm Cryptographic Extension demo

Yes

No

Mission-based power profile demo

Yes

No

Virtualization Demo

No

Yes

Safety Island Cluster 1 Zephyr Hello World

Yes (on CFG2)

Yes (on CFG2)

Automated validation

Yes

Yes

Kas build

Note

This documentation does not cover network configuration settings, more information can be found at Set Up Yocto Source Download and Proxy

Note

The Safety Island Cluster 1 (SI CL1) is present only in the FVP CFG2 variant. The tmux window for SI CL1 terminal_uart_si_cluster1 only appears when the CFG2 variant is selected during the build configuration.

Run the following to open the configuration menu:

kas menu sw-ref-stack/Kconfig

To build and run any image for an Arm FVP the user has to accept its EULA by selecting the corresponding configuration option in the build setup and pressing spacebar.

The default number of Primary Compute CPUs is 4. The user can change this by selecting a value between 1 and 16 from the Number of Primary Compute CPUs option. And also the default Platform variant is RD-Aspen CFG1. The user can change this to RD-Aspen CFG2 by selecting the Platform Variant option.

Arm Auto Solutions Build Configuration Menu

Fig. 3 Arm Auto Solutions Build Configuration Menu


To start the build, press the right arrow key, select the Build option and press enter. Subsequent builds with the same configuration can be started by running:

kas build

Note

Typically, the build process should complete without any interruptions. However, if it is manually interrupted (e.g., by pressing Ctrl-c) or due to network/resource failures, errors may occur when rerunning the build, such as:

NOTE: Reconnecting to bitbake server...
NOTE: No reply from server in 30s (for command <command> at 10:11:08.527092)

This happens because some processes might still be running in the background. To resolve this, you can manually terminate them using: killall -e Cooker

Check for lock files and ensure there are no leftover lock files from the previous build. You can locate and remove them with: find . -name "bitbake.lock" -exec rm -f {} \;

If the above steps don’t resolve the issue, a system reboot might help clear any lingering problems.

FVP

Note

FVPs, and Fast Models in general, are functionally accurate, meaning that they fully execute all instructions correctly, however they are not cycle accurate. The main goal of the Reference Software Stack is to prove functionality only, and should not be used for performance analysis.

The runfvp tool that invokes the FVP creates one tmux terminal window per processing element. The default window displayed will be that of the Primary Compute terminal, titled terminal_ns_uart0. You may press Ctrl-b w to see the list of tmux windows and use arrow keys to navigate through the windows and press Enter to select any processing element terminal.

The following table lists the different tmux panes and their purpose:

tmux pane name

Purpose

python3

FVP terminal

terminal_uart

RSE terminal

terminal_uart_si_cluster0

SI Cluster0 terminal

terminal_uart_si_cluster1

SI Cluster1 terminal

terminal_sec_uart

AP Secure world terminal

terminal_ns_uart0

AP Non-secure world terminal

Run the FVP

Note

During boot and runtime the user shall never issue more than two Ctrl-c, since it might corrupt the images and prevent successful reboot of the CSS-Aspen FVP. In this eventuality, it can be re-generated by issuing kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy" In some cases, pressing Ctrl-c while the system is writing back to the flash might corrupt the images, resulting in an error during boot. If this happens, rebuilding the images with the following command will resolve the issue: kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To start the FVP and run the software reference stack:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Ensure that the tmux window titled terminal_ns_uart0 is selected. If not, press Ctrl-b w from the tmux session, navigate to the tmux window titled terminal_ns_uart0 followed by pressing the Enter key.

Wait for the system to boot and for the Linux prompt to appear.

The Reference Software Stack running on the Primary Compute can be logged into as the root user without a password in the Linux terminal.

Shut down the FVP

To shut down the FVP and terminate the emulation, select the terminal titled python3 where the runfvp was launched by pressing Ctrl-b w and press Ctrl-c to stop the FVP process.

Arm Automotive Solutions demo build

In general, it is not necessary to rebuild the Arm Automotive Solutions Demo for each use case, and it is not required to shut down and relaunch the FVP for every use case.

See the following instructions for building images for both Baremetal and Virtualization architectures.

Build baremetal architecture

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build a Baremetal Architecture image:

  1. Select Use Case > Arm Automotive Solutions Demo.

  2. Select Reference Software Stack Architecture > Baremetal.

  3. Select Build.

Build virtualization architecture

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build a Virtualization Architecture image:

  1. Select Use Case > Arm Automotive Solutions Demo.

  2. Select Reference Software Stack Architecture > Virtualization.

  3. Select Build.

PSA APIs Tests in Primary Compute

The demo can only be run on the Baremetal Architecture.

See Primary Compute Secure Services for more information on this application.

Baremetal architecture

Build

Note

If the Arm Automotive Solutions Demo for the Baremetal Architecture is the most recent build, there is no need to rebuild. For a first-time build, follow the instructions below.

To configure and build a Baremetal Architecture image see Kas build.

Run the FVP

Note

If the FVP has already been launched with the specified build configuration and is connected to the Primary Compute terminal (running Linux), there is no need to stop and relaunch. For first-time launch, follow the instructions to start the FVP and connect it to the Primary Compute terminal.

To start the FVP and connect to the Primary Compute terminal:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Wait for the system to boot and for the Linux prompt to appear.

The Reference Software Stack running on the Primary Compute can be logged into as root user without a password in the Linux terminal. Run the below command to ensure that all the expected services have been initialized:

systemctl is-system-running --wait

Wait for it to return. The expected terminal output is running.

Run the demo

The demo consists of simple tests run from the Linux terminal.

See Primary Compute Secure Services for more information on this application.

  1. Run the PSA Crypto API tests from the Primary Compute terminal using the following command:

    psa-crypto-api-test
    

    A message similar to the following will appear when the tests have completed:

    ************ Crypto Suite Report **********
    TOTAL TESTS     : 60
    TOTAL PASSED    : 57
    TOTAL SIM ERROR : 0
    TOTAL FAILED    : 0
    TOTAL SKIPPED   : 3
    ******************************************
    
  2. Run the PSA Protected Storage API tests from the Primary Compute terminal using the following command:

    psa-ps-api-test
    

    A message similar to the following will appear when the tests have completed:

    ************ Storage Suite Report **********
    TOTAL TESTS     : 17
    TOTAL PASSED    : 11
    TOTAL SIM ERROR : 0
    TOTAL FAILED    : 0
    TOTAL SKIPPED   : 6
    ******************************************
    
  3. Run the PSA Internal Trusted Storage API tests from the Primary Compute terminal using the following command:

    psa-its-api-test
    

    A message similar to the following will appear when the tests have completed:

    ************ Storage Suite Report **********
    TOTAL TESTS     : 10
    TOTAL PASSED    : 10
    TOTAL SIM ERROR : 0
    TOTAL FAILED    : 0
    TOTAL SKIPPED   : 0
    ******************************************
    
  4. Run the PSA Initial Attestation API tests from the Primary Compute terminal using the following command:

    psa-iat-api-test
    

    A message similar to the following will appear when the tests have completed:

    ************ Attestation Suite Report **********
    TOTAL TESTS     : 1
    TOTAL PASSED    : 1
    TOTAL SIM ERROR : 0
    TOTAL FAILED    : 0
    TOTAL SKIPPED   : 0
    ******************************************
    

    Note

    There is no need to shut down and relaunch the FVP before demonstrating another use case on the Arm Automotive Solutions Demo build (Baremetal Architecture).

  5. To shut down the FVP and terminate the emulation automatically, issue the following command on the Primary Compute terminal:

    shutdown now
    

    The below messages show that the shutdown process is complete:

    [  OK  ] Finished System Power Off.
    [  OK  ] Reached target System Power Off.
    reboot: Power down
    

See Automated validation for more details on how to trigger the automated validation.

Integration Test Using Debugger CLI

SCP-firmware provides a built-in debugger CLI that can be used to run integration tests on the Safety Island firmware. This is especially useful for validating fault-handling logic and verifying module-specific behavior in isolation.

Debugger CLI Access

To enter the SCP-Firmware debugger CLI while the system is running on the Safety Island:

  • Press Ctrl-e in the terminal_uart_si_cluster0 tmux window.

Once inside the CLI prompt, integration tests can be triggered using test commands defined in SCP-firmware.

Running SSU Integration Test

To trigger the SSU integration test:

  1. Enter the SCP-Firmware debugger CLI using Ctrl-e.

  2. At the > prompt, run the following command:

    test ssu
    
  3. Exit the CLI using Ctrl-d. This resumes normal firmware execution.

  4. The test suite will run automatically.

Test output will be displayed in the same terminal_uart_si_cluster0 UART console window. A successful test will print output similar to:

[CLI_DEBUGGER_MODULE] Entering CLI
> test ssu
>
[CLI_DEBUGGER_MODULE] Exiting CLI
[   15.046229] [INTEGRATION_TEST] Start: ssu
[   15.046236] [SSU] Setting SSU FSM to: SAFE (0x0)
[   15.046243] [SSU] SSU FSM status: SAFE (0x2)
[   15.046251] [SSU] Setting SSU FSM to: ERRN (0x1)
[   15.046259] [SSU] SSU FSM status: ERRN (0x4)
[   15.046266] [SSU] Setting SSU FSM to: SAFE (0x0)
[   15.046274] [SSU] SSU FSM status: SAFE (0x2)
[   15.046280] [SSU] Setting SSU FSM to: ERRC (0x2)
[   15.046288] [SSU] SSU FSM status: ERRC (0x8)
[   15.046296] [SSU] Setting SSU FSM to: SAFE (0x0)
[   15.046303] [SSU] SSU FSM status: ERRC (0x8)
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_ssu_sys_api:PASS
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_error_control_api:PASS

-----------------------
2 Tests 0 Failures 0 Ignored
OK
[   15.046341] [INTEGRATION_TEST] End: ssu

Note

  • The SSU test case must be run before any other test case, which may interfere with the SSU state.

  • After running the test case, the FVP must be rebooting before running again in order to reset the SSU state.

See Automated validation for more details on how to trigger the automated validation.

Running FMU Integration Test

To trigger the FMU integration test:

  1. Enter the SCP-Firmware debugger CLI using Ctrl-e.

  2. At the > prompt, run the following command:

    test fmu
    
  3. Exit the CLI using Ctrl-d. This resumes normal firmware execution.

  4. The test suite will automatically run once the event loop resumes.

Test output will be displayed in the same terminal_uart_si_cluster0 UART console window. A successful test will print output similar to:

[CLI_DEBUGGER_MODULE] Entering CLI
> test fmu
>
[CLI_DEBUGGER_MODULE] Exiting CLI
[  17.606923] [INTEGRATION_TEST] Start: fmu
[   14.841617] [FMU] Critical fault received: Device: 0x0, Node 0x0, SM 0x10
[   14.841629] [SSU] SSU FSM status: ERRC (0x8)
[   14.841636] [SSU] Critical Error received from FMU module.
[   14.841646] [FMU] Non-critical fault received: Device: 0x0, Node 0x1, SM 0x1
[   14.841657] [SSU] SSU FSM status: ERRC (0x8)
[   14.841664] [SSU] Non-Critical Error received from FMU module.
[   14.841674] [SSU] But SSU FSM failed to change state
[   14.841681] [FMU] Non-critical fault received: Device: 0x1, Node 0x0, SM 0x1
[   14.841694] [SSU] SSU FSM status: ERRC (0x8)
[   14.841701] [SSU] Non-Critical Error received from FMU module.
[   14.841711] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject:PASS
[   14.841731] [FMU] Critical fault received: Device: 0x5, Node 0x1, SM 0x2
[   14.841742] [SSU] SSU FSM status: ERRC (0x8)
[   14.841750] [SSU] Critical Error received from FMU module.
[   14.841760] [FMU] Non-critical fault received: Device: 0x5, Node 0x1, SM 0x2
[   14.841771] [SSU] SSU FSM status: ERRC (0x8)
[   14.841778] [SSU] Non-Critical Error received from FMU module.
[   14.841788] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_gic_fmu:PASS
[   14.841808] [FMU] Critical fault received: Device: 0x6, Node 0x2, SM 0x2
[   14.841820] [SSU] SSU FSM status: ERRC (0x8)
[   14.841828] [SSU] Critical Error received from FMU module.
[   14.841838] [FMU] Non-critical fault received: Device: 0x6, Node 0x2, SM 0x2
[   14.841849] [SSU] SSU FSM status: ERRC (0x8)
[   14.841857] [SSU] Non-Critical Error received from FMU module.
[   14.841865] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_rse_cl0_mhu_fmu:PASS
[   14.841888] [FMU] Critical fault received: Device: 0x7, Node 0x2, SM 0x2
[   14.841900] [SSU] SSU FSM status: ERRC (0x8)
[   14.841907] [SSU] Critical Error received from FMU module.
[   14.841916] [FMU] Non-critical fault received: Device: 0x7, Node 0x2, SM 0x2
[   14.841927] [SSU] SSU FSM status: ERRC (0x8)
[   14.841935] [SSU] Non-Critical Error received from FMU module.
[   14.841945] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_cl0_rse_mhu_fmu:PASS
[   14.841967] [FMU] Critical fault received: Device: 0x8, Node 0x2, SM 0x2
[   14.841979] [SSU] SSU FSM status: ERRC (0x8)
[   14.841985] [SSU] Critical Error received from FMU module.
[   14.841995] [FMU] Non-critical fault received: Device: 0x8, Node 0x2, SM 0x2
[   14.842007] [SSU] SSU FSM status: ERRC (0x8)
[   14.842015] [SSU] Non-Critical Error received from FMU module.
[   14.842023] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_pc0_cl0_mhu_fmu:PASS
[   14.842047] [FMU] Critical fault received: Device: 0x9, Node 0x2, SM 0x2
[   14.842058] [SSU] SSU FSM status: ERRC (0x8)
[   14.842064] [SSU] Critical Error received from FMU module.
[   14.842074] [FMU] Non-critical fault received: Device: 0x9, Node 0x2, SM 0x2
[   14.842086] [SSU] SSU FSM status: ERRC (0x8)
[   14.842094] [SSU] Non-Critical Error received from FMU module.
[   14.842103] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_cl0_pc0_mhu_fmu:PASS
[   14.842125] [FMU] Critical fault received: Device: 0xa, Node 0x2, SM 0x2
[   14.842136] [SSU] SSU FSM status: ERRC (0x8)
[   14.842144] [SSU] Critical Error received from FMU module.
[   14.842153] [FMU] Non-critical fault received: Device: 0xa, Node 0x2, SM 0x2
[   14.842165] [SSU] SSU FSM status: ERRC (0x8)
[   14.842173] [SSU] Non-Critical Error received from FMU module.
[   14.842182] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_pc1_cl0_mhu_fmu:PASS
[   14.842204] [FMU] Critical fault received: Device: 0xb, Node 0x2, SM 0x2
[   14.842216] [SSU] SSU FSM status: ERRC (0x8)
[   14.842223] [SSU] Critical Error received from FMU module.
[   14.842233] [FMU] Non-critical fault received: Device: 0xb, Node 0x2, SM 0x2
[   14.842245] [SSU] SSU FSM status: ERRC (0x8)
[   14.842252] [SSU] Non-Critical Error received from FMU module.
[   14.842261] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_cl0_pc1_mhu_fmu:PASS
[   14.842283] [FMU] Critical fault received: Device: 0xc, Node 0x2, SM 0x2
[   14.842295] [SSU] SSU FSM status: ERRC (0x8)
[   14.842302] [SSU] Critical Error received from FMU module.
[   14.842312] [FMU] Non-critical fault received: Device: 0xc, Node 0x2, SM 0x2
[   14.842323] [SSU] SSU FSM status: ERRC (0x8)
[   14.842330] [SSU] Non-Critical Error received from FMU module.
[   14.842340] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_pc2_cl0_mhu_fmu:PASS
[   14.842363] [FMU] Critical fault received: Device: 0xd, Node 0x2, SM 0x2
[   14.842374] [SSU] SSU FSM status: ERRC (0x8)
[   14.842381] [SSU] Critical Error received from FMU module.
[   14.842391] [FMU] Non-critical fault received: Device: 0xd, Node 0x2, SM 0x2
[   14.842402] [SSU] SSU FSM status: ERRC (0x8)
[   14.842410] [SSU] Non-Critical Error received from FMU module.
[   14.842418] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_cl0_pc2_mhu_fmu:PASS
[   14.842442] [FMU] Critical fault received: Device: 0xe, Node 0x2, SM 0x2
[   14.842454] [SSU] SSU FSM status: ERRC (0x8)
[   14.842460] [SSU] Critical Error received from FMU module.
[   14.842469] [FMU] Non-critical fault received: Device: 0xe, Node 0x2, SM 0x2
[   14.842482] [SSU] SSU FSM status: ERRC (0x8)
[   14.842489] [SSU] Non-Critical Error received from FMU module.
[   14.842498] [SSU] But SSU FSM failed to change state
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_inject_pc3_cl0_mhu_fmu:PASS
[   14.842600] [FMU] Critical fault received: Device: 0x0, Node 0x0, SM 0x10
[   14.842611] [SSU] SSU FSM status: ERRC (0x8)
[   14.842618] [SSU] Critical Error received from FMU module.
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_set_enabled:PASS
[   14.842640] [FMU] Non-critical fault received: Device: 0x0, Node 0x1, SM 0x1
[   14.842652] [SSU] SSU FSM status: ERRC (0x8)
[   14.842660] [SSU] Non-Critical Error received from FMU module.
[   14.842668] [SSU] But SSU FSM failed to change state
[   14.842677] [FMU] Non-critical fault received: Device: 0x0, Node 0x1, SM 0x1
[   14.842689] [SSU] SSU FSM status: ERRC (0x8)
[   14.842695] [SSU] Non-Critical Error received from FMU module.
[   14.842706] [SSU] But SSU FSM failed to change state
[   14.842714] [FMU] Critical fault received: Device: 0x0, Node 0x1, SM 0x10
[   14.842725] [SSU] SSU FSM status: ERRC (0x8)
[   14.842732] [SSU] Critical Error received from FMU module.
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_upgrade:PASS

-----------------------
14 Tests 0 Failures 0 Ignored
OK
[   14.842759] [INTEGRATION_TEST] End: fmu

Note

After running the test case once, the FVP must be rebooted before running again to reset the FMU state.

See Automated validation for more details on how to trigger the automated validation.

Running SBISTC Integration Test

To trigger the SBISTC integration test:

  1. Enter the SCP-Firmware debugger CLI using Ctrl-e.

  2. At the > prompt, run the following command:

    test sbistc
    
  3. Exit the CLI using Ctrl-d. This resumes normal firmware execution.

  4. The test suite will automatically run once the event loop resumes.

Test output will be displayed in the same terminal_uart_si_cluster0 UART console window. A successful test will print output similar to:

[CLI_DEBUGGER_MODULE] Entering CLI
> test sbistc
>
[CLI_DEBUGGER_MODULE] Exiting CLI
[  145.362545] [INTEGRATION_TEST] Start: sbistc
[  145.362553] [FMU] Non-critical fault received: Device: 0x1, Node 0x4, SM 0x1
[  145.362564] [TEST_SBISTC] Injected SBISTC_EQ_FAIL_CORE0 (FMU dev=1, node=4)
[  145.362576] [SBISTC] SBISTC_EQ_FAIL_CORE0 detected (FMU dev 1, node 4)
[  145.362586] [TEST_SBISTC]  [test_fault_handler] test_fault_handler called!
[  145.362597] [SSU] SSU FSM status: ERRN (0x4)
[  145.362604] [SSU] Non-Critical Error received from FMU module
[  145.362613] [SSU] SSU FSM status: ERRN (0x4)
[  145.362620] [TEST_SBISTC] fault:0: count:2, flag:true, ssu_state:0x4
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_sbistc_inject:PASS
[  145.362645] [FMU] Non-critical fault received: Device: 0x1, Node 0x5, SM 0x1
[  145.362657] [TEST_SBISTC] Injected SBISTC_DEADLCK_CORE0 (FMU dev=1, node=5)
[  145.362668] [SBISTC] SBISTC_DEADLCK_CORE0 detected (FMU dev 1, node 5)
[  145.362678] [TEST_SBISTC]  [test_fault_handler] test_fault_handler called!
[  145.362690] [SSU] SSU FSM status: ERRN (0x4)
[  145.362696] [SSU] Non-Critical Error received from FMU module
[  145.362705] [SSU] SSU FSM status: ERRN (0x4)
[  145.362712] [TEST_SBISTC] fault:1: count:1, flag:true, ssu_state:0x4
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_sbistc_inject:PASS
[  145.362737] [FMU] Non-critical fault received: Device: 0x1, Node 0x6, SM 0x1
[  145.362749] [TEST_SBISTC] Injected SBISTC_EQ_FAIL_CORE1 (FMU dev=1, node=6)
[  145.362759] [SBISTC] SBISTC_EQ_FAIL_CORE1 detected (FMU dev 1, node 6)
[  145.362770] [TEST_SBISTC]  [test_fault_handler] test_fault_handler called!
[  145.362782] [SSU] SSU FSM status: ERRN (0x4)
[  145.362788] [SSU] Non-Critical Error received from FMU module
[  145.362798] [SSU] SSU FSM status: ERRN (0x4)
[  145.362805] [TEST_SBISTC] fault:2: count:1, flag:true, ssu_state:0x4
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_sbistc_inject:PASS
....
[  145.365416] [FMU] Non-critical fault received: Device: 0x1, Node 0x2f, SM 0x
[  145.365429] [TEST_SBISTC] Injected SBISTC_DEADLCK_CORE15 (FMU dev=1, node=47
[  145.365440] [SBISTC] SBISTC_DEADLCK_CORE15 detected (FMU dev 1, node 47)
[  145.365450] [TEST_SBISTC]  [test_fault_handler] test_fault_handler called!
[  145.365462] [SSU] SSU FSM status: ERRN (0x4)
[  145.365469] [SSU] Non-Critical Error received from FMU module
[  145.365477] [SSU] SSU FSM status: ERRN (0x4)
[  145.365484] [TEST_SBISTC] fault:31: count:1, flag:true, ssu_state:0x4
/usr/src/debug/scp-firmware/2.14.0/module/integration_test/src/mod_integration_test.c:122:test_sbistc_inject:PASS

-----------------------
32 Tests 0 Failures 0 Ignored
OK
[   38.546374] [INTEGRATION_TEST] End: sbistc

See Automated validation for more details on how to trigger the automated validation.

Platform Fault Detection Interface (PFDI)

The Software Reference Stack currently supports the Platform Fault Detection Interface (PFDI) Specification, which is used to detect hardware faults by registering appropriate firmware test libraries. The PFDI TF-A runner is implemented based on the Beta version of this specification.

For more technical information on PFDI’s architecture and design, see Platform Fault Detection Interface (PFDI).

Software Reference Stack uses dummy PFDI firmware unless the Arm Software Test Libraries (STL) are used. This STL can be integrated as the real PFDI firmware test backend. To enable STL support and obtain access, please contact Arm or visit Arm Software Test Libraries.

Run the configuration menu:

kas menu sw-ref-stack/Kconfig
  1. Select Platform Variant > RD-Aspen CFG1 or RD-Aspen CFG2

  2. Select Use Case > Arm Automotive Solutions Demo.

  3. Select Build.

After the build process is complete, to start the FVP and run the software reference stack:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Ensure that the tmux window titled terminal_ns_uart0 is selected. If not, press Ctrl-b w from the tmux session, navigate to the tmux window titled terminal_ns_uart0 followed by pressing the Enter key.

Wait for the system to boot and for the Linux prompt to appear.

The Reference Software Stack running on the Primary Compute can be logged into as root user without a password in the Linux terminal.

A systemd service which runs the PFDI in the background is started automatically.

Run the following command to check the status of the PFDI service:

systemctl status pfdi-app.service

The output should be similar to

* pfdi-app.service - Platform Fault Detection Application
    Loaded: loaded (/usr/lib/systemd/system/pfdi-app.service; enabled; preset: enabled)
    Active: active (running) since Mon 2025-06-02 08:37:36 UTC; 3min 18s ago
Invocation: 21933cd70c0346e19f6e0564270c1b20
    Process: 280 ExecStartPre=/usr/sbin/modprobe pfdi_misc (code=exited, status=0/SUCCESS)
    Process: 286 ExecStartPre=/usr/bin/sh -c until [ -e /dev/cpu ]; do sleep 0.5; done (code=exited, status=0/SUCCESS)
  Main PID: 289 (pfdi-sample-app)
      Tasks: 5 (limit: 2265)
    Memory: 980K (peak: 1.4M)
        CPU: 4.119s
    CGroup: /system.slice/pfdi-app.service
            `-289 /usr/bin/pfdi-sample-app -i -c /etc/pfdi/pfdi_test_config_0.pack

Jun 02 08:37:36 fvp-rd-aspen systemd[1]: Starting Platform Fault Detection Application...
Jun 02 08:37:36 fvp-rd-aspen systemd[1]: Started Platform Fault Detection Application.
Jun 02 08:37:36 fvp-rd-aspen pfdi-sample-app[289]: [2025-06-02 08:37:36][info][pid:289][tid:289] libPFDI version: 1.0
Jun 02 08:37:36 fvp-rd-aspen pfdi-sample-app[289]: [2025-06-02 08:37:36][info][pid:289][tid:289] Stub firmware detected - No real diagnostics will be executed
Jun 02 08:37:36 fvp-rd-aspen pfdi-sample-app[289]: [2025-06-02 08:37:36][info][pid:289][tid:289] Firmware reports 41 available diagnostic tests
Jun 02 08:37:36 fvp-rd-aspen pfdi-sample-app[289]: [2025-06-02 08:37:36][info][pid:289][tid:289] Loading config V1.0: running 4 tasks every 60 ms

The PFDI CLI provides a command-line interface for interacting with the Platform Fault Detection Interface. The tool supports several operations:

  1. Display the user space PFDI library version

Use the following command:

pfdi-cli --info

Expected output:

libPFDI version: 1.0
  1. Display the firmware PFDI library version

Use the following command:

pfdi-cli --pfdi_info <core_id>
  • <core_id>: Core number to retrieve the version for

Example:

pfdi-cli --pfdi_info 0

Expected output:

Stub firmware detected - No real diagnostics will be executed
  1. Display the number of available PFDI tests

Use the following command:

pfdi-cli --count <core_id>
  • <core_id>: Core number to retrieve the number of tests for

Example:

pfdi-cli --count 0

Expected output:

CPU0: Firmware reports 41 available diagnostic tests
  1. Retrieve Out-of-Reset (OoR) PFDI tests results

Query the OoR tests results for a specific core:

pfdi-cli --result <core_id>
  • <core_id>: Core number to retrieve results for

Example:

pfdi-cli --result 0

Expected output:

CPU0: Out of Reset (OoR) test OK
  1. Show usage of pfdi-cli command including function types and error types:

    pfdi-cli
    

    Expected output:

    Usage: pfdi-cli [options]                                                                                                            -e, --force_error <cpu> <func> <err>   Inject error
      -p, --pfdi_info <cpu>                  Show PFDI firmware version
      -i, --info                             Show user lib version
      -c, --count <cpu>                      Show PFDI firmware count
      -r, --result <cpu>                     Show OOR result
    Functions: INFO,COUNT,RUN,OOR_RESULT,FW_CHECK,FORCE_ERROR
    Errors:    COUNT_ZERO,UNKNOWN,NOT_RUN,ERROR,FAULT_FOUND,INVALID_PARAMETERS,NOT_SUPPORTED,SUCCESS
    
  2. The pfdi-cli --force_error command simulates a platform fault by injecting an error into the firmware for a specific function on a target core. The injected error is returned on the next call to the specified function. Note that:

  • No actual hardware error occurs, this is purely a simulation.

  • The forced error is automatically cleared after it is reported once by the targeted function.

  • All function and error ID combinations are permitted, including injecting an error into the force error function itself.

pfdi-cli --force_error <core_id> <function_id> <error_id>
  • <core_id>: Target core number

  • <function_id>: PFDI function index to inject the error into

  • <error_id>: Error ID to be injected

Example 1:

pfdi-cli --force_error 1 COUNT INVALID_PARAMETERS

Expected output:

CPU1: injected force error to FID=3 with error id =-3

Triggering the simulated error:

pfdi-cli --count 1

Expected output:

CPU1: fetching pfdi firmware test count failed: Invalid argument (errno=22)

Example 2:

pfdi-cli --force_error 2 RUN ERROR

Expected output:

CPU2: injected force error to FID=4 with error id =-5

To confirm that the background PFDI sample application detects and logs the error, inspect the system journal:

journalctl -u pfdi-app.service

You should see a log similar to:

Jun 03 11:00:01 fvp-rd-aspen pfdi-sample-app[275]: [2025-06-03 11:00:01][error][pid:275][tid:281] CPU2: PFDI Online (OnL) test failed: Input/output error (errno=5)

Refer README.md, libpfdi/README.md and pfdi-demo/README.md for further details on the PFDI project, the PFDI library, and the application.

See Automated validation for more details on how to trigger the automated validation.

RAS error processing validation

Error injection plays an important role in the Reliability, Availability, and Serviceability (RAS) feature. It is the act of intentionally simulating errors in a system, which can be used to check whether the system can properly detect, report, and recover from them.

The Software Reference Stack currently supports the error injection on Cortex-A720AE CPU cores and verification of the processing of the simulated error.

For more information on the RAS design, see Reliability, Availability, and Serviceability. See Primary Compute CPUs RAS tests for further details on the validation.

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the CPU cores RAS validation image:

  1. Select Platform Variant > RD-Aspen CFG1 or RD-Aspen CFG2

  2. Select Use Case > Primary Compute CPUs RAS Validation

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - Primary Compute CPUs RAS Validation

Fig. 4 Arm Auto Solutions Build Configuration Menu - Primary Compute CPUs RAS Validation


After the build process is complete, to start the FVP and run the test:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

The output from the tmux window titled terminal_ns_uart0 should be similar to:

Running test suite 'RDAspen Tests'
Description: RDAspen platform test code

> Executing 'AP CPU Check ERXCTLR state'
  TEST COMPLETE                                                 Passed

> Executing 'AP CPU RAS Test CE'
INFO:    ErrStatus = 0x0
INFO:    Corrected ErrStatus by FFH = 0x0
  TEST COMPLETE                                                 Passed

> Executing 'AP CPU RAS Test DE'
INFO:    ErrStatus = 0x12
INFO:    Deferred ErrStatus by FFH = 0x12
  TEST COMPLETE                                                 Passed

******************************* Summary *******************************
> Test suite 'RDAspen Tests'
                                                                Passed
=================================
Tests Skipped : 0
Tests Passed  : 3
Tests Failed  : 0
Tests Crashed : 0
Total tests   : 3
=================================
NOTICE:  Exiting tests.

The output from the tmux window titled terminal_sec_uart indicates the error processing on the Primary Compute. It should be similar to:

VERBOSE: CPU RAS: Interrupt Received ID: 0x11
VERBOSE: CPU RAS: Error Status value : 0x4e000012
VERBOSE: CPU RAS: Doorbell rung from SI0 0x2
VERBOSE: CPU RAS: Error Status Clear Value  : 0x46000012
VERBOSE: CPU RAS: SI Acknowledges doorbell
VERBOSE: CPU RAS: Interrupt Received ID: 0x11
VERBOSE: CPU RAS: Error Status value : 0x40800012
VERBOSE: CPU RAS: Doorbell rung from SI0 0x2
VERBOSE: CPU RAS: Error Status Clear Value  : 0x12
VERBOSE: CPU RAS: SI Acknowledges doorbell

The output from the tmux window titled terminal_uart_si_cluster0 indicates the error processing on the Safety Island. It should be similar to:

[    0.509451] [AP_RAS_CPU_INT] ERXSTATUS = 0x4e000012
[    0.509460] [AP_RAS_CPU_INT] ERXMISC0 = 0x1900000000
[    0.509468] [AP_RAS_CPU_INT] Fault Type = Correctable Error
[    0.509477] [AP_RAS_CPU_INT] ERXSTATUS = 0x40800012
[    0.509485] [AP_RAS_CPU_INT] ERXMISC0 = 0x0
[    0.509492] [AP_RAS_CPU_INT] Fault Type = Deferred Error
[    0.509501] [SSU] Setting SSU FSM to: ERRN (0x1)
  • Terminate the FVP

    To close the FVP and terminate the emulation switch back to [0] 0:bash window in the tmux session by navigating to the FVP window using Ctrl-b + w, and then terminating the FVP via Ctrl-c.

Arm Cryptographic Extension demo

The demo demonstrates how the Arm Cryptographic Extension can be utilized in an HTTPS connection.

Refer to Arm Cryptographic Extension for the design of this demo.

The demo contains two test scenarios:

  • One where the Arm Cryptographic Extension is enabled, offloading cryptographic work to hardware instructions.

  • Another where the Arm Cryptographic Extension is not used.

Build

Run the configuration menu:

kas menu sw-ref-stack/Kconfig
  1. Select Platform Variant > RD-Aspen CFG1 or RD-Aspen CFG2

  2. Select Use Case > Arm Automotive Solutions Demo

  3. Select Build.

Start the FVP

After the build is finished, run the following command to start the FVP and run the software reference stack:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Log into the Linux shell with the username root without password.

Run the demo

  1. HTTPS server setup

    This demo uses a large random data file which increases the time required in HTTPS session and amplifies the timing effects of the Arm Cryptographic Extension.

    Generate a self-signed certificate with OpenSSL:

    openssl req -x509 -newkey rsa:2048 -keyout server-key.pem -out \
    server-cert.pem -days 365 -nodes
    

    Serve a 100MB data file on the server side:

    (while true; do dd if=/dev/urandom bs=1M count=100 2>/dev/null | openssl \
    s_server -cert server-cert.pem -key server-key.pem -accept 4433 -quiet \
    -naccept 1; done ) &
    
  2. Client side with extension enabled

    Use the following command to connect the server and download the data file. OpenSSL involves the Arm Cryptographic Extension for the ciphering algorithm.

    time echo -e \
    "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n" \
    | openssl s_client -connect localhost:4433 -cipher AES256-GCM-SHA384 \
    -servername localhost -quiet > /dev/null
    
    Connecting to ::1
    depth=0 C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
    verify error:num=18:self-signed certificate
    verify return:1
    depth=0 C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
    verify return:1
    GET / HTTP/1.1
    Host: localhost
    Connection: close
    
    real 0m22.478s
    user 0m4.325s
    sys 0m5.504s
    
  3. Client side without extension enabled

    Use the following command to connect the server and download the data file. OpenSSL will not involve the Arm Cryptographic Extension for the ciphering algorithm. OPENSSL_armcap=0x0 disables the usage of Arm Cryptographic Extension.

    time echo -e \
    "GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n" \
    | OPENSSL_armcap=0x0 openssl s_client -connect localhost:4433 -cipher \
    AES256-GCM-SHA384 -servername localhost -quiet > /dev/null
    
    Connecting to ::1
    depth=0 C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
    verify error:num=18:self-signed certificate
    verify return:1
    depth=0 C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
    verify return:1
    
    real 1m16.307s
    user 1m9.201
    sys  0m6.305s
    
  4. Terminate the server

    Run fg command to bring the server process into foreground and terminate it via Ctrl-c.

  5. Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, issue the following command on the Primary Compute terminal:

    shutdown now
    

    The below messages show that the shutdown process is complete:

    [  OK  ] Finished System Power Off.
    [  OK  ] Reached target System Power Off.
    reboot: Power down
    

See Automated validation for more details on how to trigger the automated validation.

Mission-based power profile demo

Mission-based power profile script (yocto/meta-arm-auto-solutions/recipes-demos/mbpp/files/mbpp.sh) is used to demonstrate system power and performance settings with different driving modes.

The following table describes governor and cluster selection with different modes.

Mission mode

Governor

Cluster 0

Cluster 1

Cluster 2

Cluster 3

Parking

powersave

ON

OFF

OFF

OFF

City

ondemand

ON

ON

OFF

OFF

Highway

performance

ON

ON

ON

ON

Build

Run the following command to open the configuration menu:

kas menu sw-ref-stack/Kconfig
Enable Mission-based power profile demo in Arm Automotive Solutions Demo

Fig. 5 Enable Mission-based power profile demo in Arm Automotive Solutions Demo


  1. Select Target Platform > RD-Aspen

  2. Select Platform Variant > RD-Aspen Cfg1 or RD-Aspen Cfg2

  3. Select Use Case > Arm Automotive Solutions Demo

  4. Select Reference Software Stack Architecture > Baremetal

  5. Set Number of Primary Compute CPUs to 16

  6. Select Build and press enter.

Start the FVP

After the build is finished, run the following command to start the FVP and run the software reference stack:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Log into the Linux shell with the username root without password.

Run the demo

  1. Go to /root directory.

    cd /root
    
  2. Run ./mbpp.sh -l to list available profiles.

    ./mbpp.sh -l
    

    Expected output:

    Available power profiles:
      - Parking
      - City
      - Highway
    To select one of the above profiles, use the -s or --select option.
    
  3. Set the Parking profile. Run ./mbpp.sh -s Parking. This will change scaling governors to powersave for 0-3 CPUs and power down the rest of the CPUs. The following logs will appear.

    ./mbpp.sh -s Parking
    

    Expected output:

    Setting power profile parking...
    echo 1 > /sys/devices/system/cpu/cpu0/online && echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo 1 > /sys/devices/system/cpu/cpu1/online && echo powersave > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
    echo 1 > /sys/devices/system/cpu/cpu2/online && echo powersave > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
    echo 1 > /sys/devices/system/cpu/cpu3/online && echo powersave > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
    echo 0 > /sys/devices/system/cpu/cpu4/online
    echo 0 > /sys/devices/system/cpu/cpu5/online
    echo 0 > /sys/devices/system/cpu/cpu6/online
    echo 0 > /sys/devices/system/cpu/cpu7/online
    echo 0 > /sys/devices/system/cpu/cpu8/online
    echo 0 > /sys/devices/system/cpu/cpu9/online
    echo 0 > /sys/devices/system/cpu/cpu10/online
    echo 0 > /sys/devices/system/cpu/cpu11/online
    echo 0 > /sys/devices/system/cpu/cpu12/online
    echo 0 > /sys/devices/system/cpu/cpu13/online
    echo 0 > /sys/devices/system/cpu/cpu14/online
    echo 0 > /sys/devices/system/cpu/cpu15/online
    Power profile set to parking.
    
  4. To check the currently active profile, run the ./mbpp.sh -d command.

    ./mbpp.sh -d
    

    Expected output:

    Current selected profile is: parking
    

See Automated validation for more details on how to trigger the automated validation.

Virtualization Demo

Build and Run

Build

Note

If the Arm Automotive Solutions Demo for the Virtualization Architecture is the most recent build, there is no need to rebuild. For a first-time build, follow the instructions below.

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build a Virtualization Architecture image:

  1. Select Use Case > Arm Automotive Solutions Demo.

  2. Select Reference Software Stack Architecture > Virtualization.

  3. Select Build.

Run the FVP

Note

If the FVP has already been launched with the specified build configuration and is connected to the Primary Compute terminal (running Linux), there is no need to stop and relaunch. For first-time launch, follow the instructions below.

To start the FVP and connect to the Primary Compute terminal:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Wait for the system to boot and for the Linux prompt to appear, then run:

xl list

Expected output:

Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     1     r-----      87.1
domu1                                        1  1024     2     r-----      66.6
domu2                                        2  1024     1     r-----      41.1

The following log entries are expected:

(XEN) d1v0 Unhandled SMC/HVC: 0x8600ff01
(XEN) d1v0: vGICD: RAZ on reserved register offset 0x00000c
(XEN) d1v0: vGICR: SGI: unhandled word write 0x000000ffffffff to ICACTIVER0

See Virtualization Architecture for more details on how to trigger the automated validation.

Linux distribution installation (Debian, openSUSE and Fedora)

An Arm SystemReady Devicetree firmware must boot at least three unmodified generic UEFI distribution images from an ISO image.

This Software Stack currently supports three Linux distributions: Debian Stable, openSUSE Leap and Fedora Server.

Note

ACS tests runs the Base Boot Security Requirements (BBSR) tests, which enroll the authenticated variables for UEFI Secure Boot, so running the Linux distros installation after running the ACS tests will result in a failure. The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

See UEFI Secure Boot for more information.

Note

The manual installation of a Linux distribution requires some manual interaction, for example, some necessary selections, confirmations or entering the user and password.

The whole installation process takes a long time (possibly up to 10 hours, or even longer).

We suggest that when running the Linux distribution installations the FVP is the only running process as it will consume large amounts of RAM that can make the system unstable.

See Linux Distributions Installation Tests for an explanation on how the Linux distros installation is set up and how they work in the Reference Software Stack.

Debian

Distro unattended installation

In this test we have modified the installation ISO image to add the preconfiguration file preseed.cfg inside it. This required editing the grub.cfg file inside the ISO image to select starting the unattended installation from the preconfiguration file. (meta-arm-systemready/recipes-test/arm-systemready-linux-distros/files/unattended-boot-conf/Debian/preseed.cfg)

Distro installation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Debian Linux Distro Installation under Linux Distribution Installation (Debian, openSUSE and Fedora) from the Use Case menu.

  2. Select Distros Unattended Installation Setup > Run Unattended Installation.

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - Debian Linux Distro Installation

Fig. 6 Arm Auto Solutions Build Configuration Menu - Debian Linux Distro Installation


A similar output to the following indicates when the installation is finished, which will take around 3 hours:

Transitioned to on
Installation status: Scanning installation media...
Installation status: Detecting network hardware...
Installation status: Installing the base system...
Installation status: Installing GRUB...
Installation status: Finishing the installation...
Transitioned to linux
Transitioned to off
RESULTS:
RESULTS - arm_systemready_debian_unattended.SystemReadyDebianUnattendedTest.test_debian_unattended: PASSED (5512.47s)
RESULTS - arm_systemready_debian_unattended.SystemReadyDebianUnattendedTest.test_linux_sniff: PASSED (692.62s)
SUMMARY:
arm-systemready-linux-distros-debian () - Ran 2 tests in 6205.086s
arm-systemready-linux-distros-debian - OK - All required tests passed (successes=2, skipped=0, failures=0, errors=0)
  • Log in

    After the installation is finished, run the following command to log into the Linux shell:

    kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"
    

    Log into the Linux shell with the user created during the installation using the username user and the password unsafe.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, run the following command.

    sudo shutdown now
    

    The below message indicates the shutdown process is complete.

    reboot: Power down
    

    Subsequently running the FVP will boot into Debian.

Distro manual installation

To install Debian, see the Debian GNU/Linux Installation Guide.

Distro installation media preparation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Use Case > Linux Distribution Installation (Debian, openSUSE and Fedora) > Debian Linux Distro Installation.

  2. Select Build.

Arm Auto Solutions Build Configuration Menu - Debian Linux Distro Installation

Fig. 7 Arm Auto Solutions Build Configuration Menu - Debian Linux Distro Installation


Distro installation

Run the following command to start the installation:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

The whole process of installing Debian will probably take about 5 hours. The installation process begins when you see the following:

Grub Install Options Menu - Debian Linux Distro Installation

Fig. 8 Grub Install Options Menu - Debian Linux Distro Installation

Select Install to start the installation process.

The following is the problem that has been encountered during the Debian installation process and how to solve it:

  • Install the GRUB boot loader

    When the installation reaches the Install the GRUB boot loader phase, choose Yes.

    Grub Installation Prompt - Debian Linux Distro Installation

    Fig. 9 Grub Installation Prompt - Debian Linux Distro Installation


Select Yes in the Update NVRAM variables to boot automatically into Debian and continue.

Install the GRUB boot loader - Debian Linux Distro Installation

Fig. 10 Install the GRUB boot loader - Debian Linux Distro Installation


Expect an error Unable to install GRUB in dummy. This is because on an EBBR platform, UEFI SetVariable() is not required at runtime (however, it is required at boot time).

Grub Installation Failure Prompt - Debian Linux Distro Installation

Fig. 11 Grub Installation Failure Prompt - Debian Linux Distro Installation


One workaround we have is to “execute a shell” when the GRUB install phase throws the above error. To execute a shell, press Ctrl-a n to switch the debug shell, and run the following commands:

chroot /target
update-grub
cp -v /boot/efi/EFI/debian/grubaa64.efi /boot/efi/EFI/BOOT/bootaa64.efi

A snapshot is as below:

Grub Workaround Console Output - Debian Linux Distro Installation

Fig. 12 Grub Workaround Console Output - Debian Linux Distro Installation


After doing the above GRUB workaround, press Ctrl-a p to go back to the installer again. Select Continue on the GRUB failure screen.

Second Grub Installation Failure Prompt - Debian Linux Distro Installation

Fig. 13 Second Grub Installation Failure Prompt - Debian Linux Distro Installation


Select Continue without boot loader in the Debian installer main menu and continue.

Debian Installer Main Menu - Debian Linux Distro Installation

Fig. 14 Debian Installer Main Menu - Debian Linux Distro Installation


  • Log in

    When the installation reaches the final Finishing the installation phase, you will need to wait some time to finish the remaining tasks, and then it will automatically reboot into the installed OS. You can log into the Linux shell with the user created during installation.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, log into the Linux shell as the root user then run the following command:

    shutdown now
    

    The below message shows that the shutdown process is complete:

    reboot: Power down
    

    Subsequently running the FVP will boot into Debian.

openSUSE

Distro unattended installation

In this test we have modified the installation ISO image to add the automatic installation file inside it. This required adding the autoinst.xml file inside the ISO image to locate the installation configuration file (meta-arm-systemready/recipes-test/arm-systemready-linux-distros/files/unattended-boot-conf/openSUSE/autoinst.xml).

Distro installation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Use Case > Linux Distribution Installation (Debian, openSUSE and Fedora) > openSUSE Linux Distro Installation.

  2. Select Distros Unattended Installation Setup > Run Unattended Installation.

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - openSUSE Linux Distro Installation

Fig. 15 Arm Auto Solutions Build Configuration Menu - openSUSE Linux Distro Installation


This installation will take around 7 hours to complete. A similar output to the following shows when the installation is finished:

Transitioned to on
Installation status: Loading the kernel, initrd and basic drivers...
Installation status: Starting hardware detection...
Installation status: Loading Installation System...
Installation status: Performing Installation...
Installation status: Finishing Configuration...
Installation status: openSUSE installation finished successfully.
Transitioned to OEFVPTargetState.OFF
RESULTS:
RESULTS - arm_systemready_opensuse_unattended.SystemReadyOpenSUSEUnattendedTest.test_opensuse_unattended: PASSED (25285.12s)
SUMMARY:
arm-systemready-linux-distros-opensuse () - Ran 1 test in 25285.117s
  • Log in

After the installation is finished, run the following command to log into the Linux shell:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

Log into the Linux shell with the user created during the installation using the username user and the password unsafe.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, run the following command:

    sudo shutdown now
    

    The below message shows that the shutdown process is complete:

    reboot: Power down
    

    Subsequently running the FVP will boot into openSUSE.

Distro manual installation

To install openSUSE, see the openSUSE Installation Guide.

Distro installation media preparation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Use Case > Linux Distribution Installation (Debian, openSUSE and Fedora) > openSUSE Linux Distro Installation.

  2. Unselect Distros Unattended Installation Setup > Run Unattended Installation.

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - openSUSE Linux Distro Installation

Fig. 16 Arm Auto Solutions Build Configuration Menu - openSUSE Linux Distro Installation


Run the following command to start the installation:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

The whole process of installing openSUSE will take several hours. The install process begins when you see the following:

Leap Install Options Menu - openSUSE Linux Distro Installation

Fig. 17 Leap Install Options Menu - openSUSE Linux Distro Installation

Select No when you get to the Online Repositories screen.

Online Repositories Options Menu - openSUSE Linux Distro Installation

Fig. 18 Online Repositories Options Menu - openSUSE Linux Distro Installation

Select Installation to start the installation process.

  • System Role

    When you get to the System Role screen, select Server, then select Next to continue with the installation.

    System Role Selection Menu - openSUSE Linux Distro Installation

    Fig. 19 System Role Selection Menu - openSUSE Linux Distro Installation


    Tip

    Use Tab to cycle through options on screens during installation.

  • Installation process

    When you have selected Install on the Confirm Installation screen, the installation will proceed and it will take several hours. The steps of the installation process are:

    • Installing Packages...

    • Save configuration

    • Save installation settings

    • Install boot manager

    • Prepare system for initial boot

    • Then the system will reboot automatically in 10s, you can select OK to reboot immediately.

  • Log in

    After the reboot process, log into the Linux shell with the user created during installation.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, run the following command:

    sudo shutdown now
    

    The below message shows that the shutdown process is complete:

    reboot: Power down
    

    Subsequently running the FVP will boot into openSUSE.

Fedora

Distro unattended installation

In this test we have modified the installation ISO image to add the kickstart configuration file inside it. This required editing the grub.cfg file inside the ISO image to locate the kickstart configuration file (meta-arm-systemready/recipes-test/arm-systemready-linux-distros/files/unattended-boot-conf/Fedora/ks.cfg).

Distro installation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Use Case > Linux Distribution Installation (Debian, openSUSE and Fedora) > Fedora Linux Distro Installation.

  2. Select Distros Unattended Installation Setup > Run Unattended Installation.

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - Fedora Linux Distro Installation

Fig. 20 Arm Auto Solutions Build Configuration Menu - Fedora Linux Distro Installation


This installation will take around 18 hours to complete. A similar output to the following shows when the installation is finished:

Transitioned to on
Transitioned to on
Installation status: Loading the installer, kernel and initrd...
Installation status: Setting up the installation environment...
Installation status: Installing the software packages...
Installation status: Fedora installation finished successfully.
Transitioned to OEFVPTargetState.OFF
RESULTS:
RESULTS - arm_systemready_fedora_unattended.SystemReadyFedoraUnattendedTest.test_fedora_unattended: PASSED (61939.30s)
SUMMARY:
arm-systemready-linux-distros-fedora () - Ran 1 test in 61939.303s
  • Log in

    After the installation is finished, run the following command to log into the Linux shell:

    kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"
    

    Log into the Linux shell with the user created during the installation using the username user and the password unsafe.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, run the following command:

    sudo shutdown now
    

    The below message shows that the shutdown process is complete:

    reboot: Power down
    

    Subsequently running the FVP will boot into Fedora.

Distro manual installation

To install Fedora, see the Fedora Installation Guide.

Distro installation media preparation

The firmware flash images need to be recreated with the following command:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree Linux distros installation tests:

  1. Select Use Case > Linux Distribution Installation (Debian, openSUSE and Fedora) > Fedora Linux Distro Installation.

  2. Unselect Distros Unattended Installation Setup > Run Unattended Installation.

  3. Select Build.

Arm Auto Solutions Build Configuration Menu - Fedora Linux Distro Installation

Fig. 21 Arm Auto Solutions Build Configuration Menu - Fedora Linux Distro Installation


Distro installation

Run the following command to start the installation:

kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"

The whole process of installing Fedora will probably take about 24 hours. The installation process begins when you see the following:

Grub Install Options Menu - Fedora Linux Distro Installation

Fig. 22 Grub Install Options Menu - Fedora Linux Distro Installation

Select Install Fedora 39 to start the installation process.

Here are some tips for installing Fedora:

  1. It will take a few minutes for GRUB to load the installer, kernel and initrd.

  2. When the installer has started, enter 2 to choose Use text mode.

    Starting installer, one moment...
    anaconda 39.32.6-2.fc39 for Fedora 39 started.
     * installation log files are stored in /tmp during the installation
     * shell is available on TTY2 and in second TMUX pane (Ctrl-b, then press 2)
     * when reporting a bug add logs from /tmp as separate text/plain attachments
    
    X or window manager startup failed, falling back to text mode.
    ================================================================================
    ================================================================================
    X was unable to start on your machine. Would you like to start VNC to connect to
    this computer from another computer and perform a graphical installation or
    continue with a text mode installation?
    
    1) Start VNC
    2) Use text mode
    
    Please make a selection from the above ['c' to continue, 'h' to help, 'q' to
    quit, 'r' to refresh]: 2
    
  3. When reaching the installation menu, you will see several items marked as ! which shows that the item needs to be configured before proceeding.

    ================================================================================
    ================================================================================
    Installation
    
    1) [x] Language settings                 2) [x] Time settings
           (English (United States))                (America/Chicago timezone)
    3) [!] Installation source               4) [!] Software selection
           (Setting up installation                 (Processing...)
           source...)
    5) [!] Installation Destination          6) [x] Network configuration
           (Processing...)                          (Connected: eth0)
    7) [!] Root password                     8) [!] User creation
           (Root account is disabled)               (No user will be created)
    
    Please make a selection from the above ['b' to begin installation, 'h' to help,
    'q' to quit, 'r' to refresh]:
    

    For 3) [!] Installation source, enter 3, then 1 to select CD/DVD.

    ================================================================================
    ================================================================================
    Installation source
    
    Choose an installation source type.
    1) CD/DVD
    2) local ISO file
    3) Network
    
    Please make a selection from the above ['c' to continue, 'h' to help, 'q' to
    quit, 'r' to refresh]: 1
    

    For 4) [!] Software selection, enter 4, then c to continue.

    For 5) [!] Installation Destination, enter 5, then c to select the default options.

    For 6) [!] Network configuration, it will automatically change to x.

    For 7) [!] Root password, follow the prompts to enter the password and confirm.

    After entering root password, 8) [ ] User creation becomes optional and can be skipped.

    The final configuration will appear as follows:

    ================================================================================
    ================================================================================
    Installation
    
    1) [x] Language settings                 2) [x] Time settings
           (English (United States))                (America/Chicago timezone)
    3) [x] Installation source               4) [x] Software selection
           (Local media)                            (Fedora Server Edition)
    5) [x] Installation Destination          6) [x] Network configuration
           (Automatic partitioning                  (Connected: eth0)
           selected)
    7) [x] Root password                     8) [ ] User creation
           (Root password is set)                   (No user will be created)
    
    Please make a selection from the above ['b' to begin installation, 'h' to help,
    'q' to quit, 'r' to refresh]:
    

    Now enter b to start the installation.

  4. The installer is expected to stay at Configuring kernel-core.aarch64 for several hours. The installer will then verify the installed packages and continue to install the boot loader.

  5. The following error is expected while installing the boot loader. Ignore the error by responding yes and continue.

    Installing boot loader
    ================================================================================
    ================================================================================
    Question
    
    The following error occurred while installing the boot loader. The system will
    not be bootable. Would you like to ignore this and continue with installation?
    
    Failed to set new efi boot target. This is most likely a kernel or firmware bug.
    
    Please respond 'yes' or 'no': yes
    
    [anaconda]1:main* 2:shell  3:log  4:storage-log >Switch tab: Alt+Tab | Help: F1
    
  • Log in

    When the installation reaches the final Finishing the installation phase, you will need to wait some time to finish the remaining tasks. When you see the message Installation complete. Press ENTER to quit:, press enter to reboot into the installed OS. You can log into the Linux shell with the user created during installation.

  • Terminate the FVP

    To shut down the FVP and terminate the emulation automatically, log into the Linux shell as the root user then run the following command:

    shutdown now
    

    The below message shows that the shutdown process is complete:

    reboot: Power down
    

    Subsequently running the FVP will boot into Fedora.

Arm SystemReady Devicetree validation

Arm SystemReady Devicetree firmware build

The Arm SystemReady Devicetree Firmware Build option just builds the Arm SystemReady Devicetree firmware.

See Arm SystemReady Devicetree for more details.

Arm Auto Solutions Build Configuration Menu - Arm SystemReady Devicetree Firmware Build

Fig. 23 Arm Auto Solutions Build Configuration Menu - Arm SystemReady Devicetree Firmware Build


Build

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build the Arm SystemReady Devicetree firmware image:

  1. Select Use Case > Arm SystemReady Devicetree Firmware Build.

  2. Select Build.

The firmware images listed below can be found in the directory build/tmp_systemready/deploy/images/fvp-rd-aspen/:

  • ap-flash-image.img

  • combined_provisioning_message.bin

  • rse-flash-image.img

  • rse-otp-image.img

  • rse-rom-image.img

Arm SystemReady Devicetree Architecture Compliance Suite (ACS) tests

The ACS for the Arm SystemReady Devicetree compliance is delivered through a live OS image, which enables the basic automation to run the tests.

The system boots with the ACS live OS image and the ACS tests run automatically after the system boots. See ACS tests for more details.

Note

For a full SR compliance report on the Reference Software Stack, the Debian unattended installation use case must be run before the ACS tests. You should not delete or modify the build directory between the Debian unattended installation and the ACS tests, otherwise the results for SR compliance will be inaccurate. If the Debian unattended installation is run multiple times, only the results from the most recent installation will be considered. See ACS tests for more information.

Build and automated validation

To run the configuration menu:

kas menu sw-ref-stack/Kconfig

To build and run the Arm SystemReady Devicetree ACS tests:

  1. Select Use Case > Arm SystemReady Devicetree Validation > Arm SystemReady Devicetree Architecture Compliance Suite (ACS) Tests.

  2. Select Build.

A similar output to the following is printed out:

NOTE: Executing Tasks
Creating terminal default on terminal_ns_uart0
Creating terminal tf-a on terminal_sec_uart
Creating terminal rse on terminal_uart
Creating terminal safety_island_c0 on terminal_uart_si_cluster0
Transitioned to on
Test Group (PlatformSpecificElements): FAILED
Test Group (RequiredElements): FAILED
Test Group (CheckEvent_Conf): PASSED
Test Group (CheckEvent_Func): PASSED
Test Group (CloseEvent_Func): PASSED
Test Group (CreateEventEx_Conf): PASSED
Test Group (CreateEventEx_Func): PASSED
Test Group (CreateEvent_Conf): PASSED
Test Group (CreateEvent_Func): PASSED
Test Group (RaiseTPL_Func): PASSED
...
...
ACS BBSR running
Test Group (VariableAttributes): FAILED
Test Group (VariableUpdates): FAILED
...
Test Group (virtio_blk virtio1): vda
Test Group (virtio_blk virtio2): vdb
Test Group (virtio_blk virtio3): vdc
Test Group (virtio_blk virtio4): vdd
Linux tests complete
Transitioned to OEFVPTargetState.OFF
RESULTS:
RESULTS - arm_systemready_devicetree_acs.SystemReadyACSTest.test_acs: PASSED (9258.72s)
SUMMARY:
arm-systemready-devicetree-acs () - Ran 1 test in 9258.723s
arm-systemready-devicetree-acs - OK - All required tests passed (successes=1, skipped=0, failures=0, errors=0)

As seen in the above logs, some Test Groups are expected to fail. The following message is expected to validate this use case:

RESULTS - arm_systemready_devicetree_acs.SystemReadyACSTest.test_acs: PASSED (7626.94s)

The result files can be found in the directory below:

~/arm-auto-solutions/build/tmp_systemready/work/fvp_rd_aspen-oe-linux/arm-systemready-devicetree-acs/3.1.0/testimage/acs_results

Note

Running the ACS tests more than once will have them resume from where they last stopped. Additionally, consecutive runs are not supported by the ACS logs; it will result in a failure after the end of the tests. To run the ACS tests again, use the following to refresh the firmware images in flash and re-start the entire ACS test suite properly:

kas shell -c "bitbake firmware-fvp-rd-aspen -C deploy"
kas shell -c "bitbake arm-systemready-devicetree-acs -C unpack"

Note

The ACS tests take hours to complete. The actual time taken will vary depending on the performance of the build host. The default timeout setting for the tests is 12 hours for an x86_64 host or 24 hours for an aarch64 host. If a timeout failure occurs, increase the timeout setting and re-run the tests with the following command on the build host terminal. The example command below changes the timeout setting to 16 hours:

TEST_OVERALL_TIMEOUT="\${@16*60*60}" kas shell -c "bitbake arm-systemready-devicetree-acs -C unpack"

Note

There is a rare known failure where a timeout might occur during test execution.

See ACS tests for an explanation on how the ACS tests are set up and how they work in the Reference Software Stack.

Automated validation

Note

When automated validation runs with RD-Aspen CFG1, all Safety Island Cluster 1 related tests are skipped; as a result, the Baremetal and Virtualization suites are smaller than in CFG2, which includes those Safety Island Cluster 1 checks. test_10_safety_island.SafetyIslandTestBase.test_cluster1 will not be executed in RD-Aspen CFG1 config.

Baremetal Architecture

kas menu sw-ref-stack/Kconfig
Arm Auto Solutions Run Automated Validation Menu

Fig. 24 Arm Auto Solutions Run Automated Validation Menu


To start Automated Validation

  1. Select Arm Automotive Solutions Demo

  2. Select RD-Aspen CFG2

  3. Select Baremetal

  4. Select Run Automated Validation

  5. Select Build option and press enter.

RESULTS:
RESULTS - test_10_linuxboot.LinuxBootTest.test_linux_boot: PASSED (249.22s)
RESULTS - test_10_linuxlogin.LinuxLoginTest.test_linux_login: PASSED (35.74s)
RESULTS - test_10_pfdi.PFDITest.test_init_systemd_service: PASSED (12.75s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_app: PASSED (23.78s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_app_monitoring: PASSED (0.01s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_app_monitoring_error: PASSED (12.87s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_cli: PASSED (6.53s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_cli_force_error: PASSED (1.36s)
RESULTS - test_10_pfdi.PFDITest.test_pfdi_sbistc: PASSED (12.08s)
RESULTS - test_10_ping.ArmAutoSolutionsPingTest.test_ping: PASSED (0.00s)
RESULTS - test_10_ssh.ArmAutoSolutionsSSHTest.test_ssh: PASSED (4.97s)
RESULTS - test_20_fvp_devices.ArmAutoSolutionsFvpDevicesTest.test_cpu_hotplug: PASSED (607.93s)
RESULTS - test_20_fvp_devices.ArmAutoSolutionsFvpDevicesTest.test_networking: PASSED (29.26s)
RESULTS - test_20_fvp_devices.ArmAutoSolutionsFvpDevicesTest.test_rtc: PASSED (14.37s)
RESULTS - test_20_fvp_devices.ArmAutoSolutionsFvpDevicesTest.test_virtiorng: PASSED (13.96s)
RESULTS - test_20_fvp_devices.ArmAutoSolutionsFvpDevicesTest.test_watchdog: PASSED (9.30s)
RESULTS - test_50_cryptographic_extension.CryptographicExtensionTest.test_cryptographic_extension_performance: PASSED (100.26s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_03_psa_crypto_api_test: PASSED (65.51s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_04_psa_its_api_test: PASSED (19.56s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_05_psa_ps_api_test: PASSED (48.12s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_06_psa_iat_api_test: PASSED (24.00s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_cpu_frequency_policy: PASSED (95.57s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_cpufreq_affected_cpus_per_policy: PASSED (54.61s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_cpufreq_default_governors: PASSED (54.61s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_cpufreq_scaling_driver: PASSED (54.61s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_cpufreq_set_governors: PASSED (546.25s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_current_frequency_per_governor: PASSED (769.05s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_update_invalid_governor: PASSED (352.37s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_update_min_max_scaling_frequencies_negative: PASSED (329.52s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_update_scaling_max_frequencies: PASSED (382.26s)
RESULTS - test_60_cpu_frequency.CPUFrequencyTest.test_update_scaling_min_frequencies: PASSED (163.83s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_01_script_exists_and_is_executable: PASSED (30.25s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_02_help_and_list: PASSED (54.46s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_03_dump_initial_then_set_parking_and_verify: PASSED (217.89s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_04_idempotent_all_profiles: PASSED (317.74s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_05_case_insensitive_all_profiles: PASSED (599.60s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_06_invalid_profile_selection: PASSED (127.21s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_07_toggle_all_modes: PASSED (1158.77s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_08_guard_when_not_all_cores_online: PASSED (212.05s)
RESULTS - test_70_mission_based_profiles.MBPPTest.test_09_set_governor_to_default: PASSED (143.52s)
RESULTS - test_99_linuxshutdown.LinuxShutdownTest.test_linux_shutdown: PASSED (131.06s)
RESULTS - test_00_rse.RseTest.test_measured_boot: PASSED (0.58s)
RESULTS - test_00_rse.RseTest.test_normal_boot: PASSED (6.94s)
RESULTS - test_00_rse.RseTest.test_scmi_poweroff: PASSED (299.89s)
RESULTS - test_00_rse.RseTest.test_scmi_reboot: PASSED (576.04s)
RESULTS - test_00_secure_partition.OpteeTest.test_optee_normal: PASSED (8.45s)
RESULTS - test_10_safetydiagnostics_ssu_fmu.SafetyDiagnosticsTestSSUFMU.test_safety_island_fmu: PASSED (0.25s)
RESULTS - test_10_safetydiagnostics_ssu_fmu.SafetyDiagnosticsTestSSUFMU.test_safety_island_ssu: PASSED (0.32s)
RESULTS - test_99_uefi_secure_boot.UEFI_Secure_Boot_Test.test_unsigned_kernel_image: PASSED (305.48s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_00_ts_demo: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_02_ts_uefi_test: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_07_spmc_test: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_09_ts_service_grp_check: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_10_fwu_service_tests: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_11_ps_service_tests: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_12_its_service_tests: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_14_attestation_service_tests: SKIPPED (0.00s)
RESULTS - test_50_trusted_services.ArmAutoSolutionsTrustedServices.test_15_crypto_service_tests: SKIPPED (0.00s)
SUMMARY:
baremetal-image () - Ran 58 tests in 8284.736s
baremetal-image - OK - All required tests passed (successes=49, skipped=9, failures=0, errors=0)

NOTE: Tasks Summary: Attempted 5592 tasks of which 0 didn't need to be rerun and all succeeded.

Virtualization Architecture

Run the following to open the configuration menu:

kas menu sw-ref-stack/Kconfig
Arm Auto Solutions Run Automated Validation Menu

Fig. 25 Arm Auto Solutions Run Automated Validation Menu


To start Automated Validation

  1. Select Arm Automotive Solutions Demo

  2. Select RD-Aspen CFG2

  3. Select Virtualization

  4. Select Run Automated Validation

  5. Select Build option and press enter.

RESULTS:
RESULTS - test_10_linuxboot.LinuxBootTest.test_linux_boot: PASSED (329.20s)
RESULTS - test_10_linuxlogin.LinuxLoginTest.test_linux_login: PASSED (167.06s)
RESULTS - test_10_ping.ArmAutoSolutionsPingTest.test_ping: PASSED (0.00s)
RESULTS - test_10_safety_island.SafetyIslandTestBase.test_cluster1: PASSED (0.00s)
RESULTS - test_10_ssh.ArmAutoSolutionsSSHTest.test_ssh: PASSED (1.62s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU1.test_cpu_hotplug: PASSED (83.82s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU1.test_networking: PASSED (37.25s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU2.test_cpu_hotplug: PASSED (27.93s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU2.test_networking: PASSED (41.70s)
RESULTS - test_40_virtualization.PtestRunnerDom0Test.test_ptestrunner: PASSED (346.60s)
RESULTS - test_10_safetydiagnostics_ssu_fmu.SafetyDiagnosticsTestSSUFMU.test_safety_island_fmu: PASSED (5.32s)
RESULTS - test_10_safetydiagnostics_ssu_fmu.SafetyDiagnosticsTestSSUFMU.test_safety_island_ssu: PASSED (1.55s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU1.test_rtc: SKIPPED (0.00s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU1.test_virtiorng: SKIPPED (0.00s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU1.test_watchdog: SKIPPED (0.00s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU2.test_rtc: SKIPPED (0.00s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU2.test_virtiorng: SKIPPED (0.00s)
RESULTS - test_40_virtualization.FvpDevicesTestDomU2.test_watchdog: SKIPPED (0.00s)
SUMMARY:
virtualization-image () - Ran 18 tests in 1081.765s
virtualization-image - OK - All required tests passed (successes=12, skipped=6, failures=0, errors=0)