Getting Started with Arm Corstone-1000 FVP

This document explains how to build and boot the Cassini distro on the Arm Corstone-1000 FVP (Fast Model Fixed Virtual Platform).

Note

Due to performance limitations, K3S is not currently supported on the Arm Corstone-1000 FVP.

Build

The provided kas configuration file kas/corstone1000-fvp.yml can be used to build images that are targeting the Corstone-1000 FVP.

Note

To build and run any image for the Corstone-1000 FVP the user has to accept its EULA, which can be done by executing the following command in the build environment:

export FVP_CORSTONE1000_EULA_ACCEPT=True

Building FVP images

To build Corstone-1000 FVP images:

kas build --update kas/cassini.yml:kas/corstone1000-fvp.yml

Or if using kas-container:

kas-container --runtime-args "-e FVP_CORSTONE1000_EULA_ACCEPT=True" build \
kas/cassini.yml:kas/corstone1000-fvp.yml

This will produce a Corstone-1000 firmware image here:

build/tmp/deploy/images/corstone1000-fvp/corstone1000-flash-firmware-image-corstone1000-fvp.wic

And a Cassini distribution image here:

build/tmp/deploy/images/corstone1000-fvp/cassini-image-base-corstone1000-fvp.rootfs.wic

Running the FVP

To start the FVP and get the console:

kas shell -c "../layers/meta-arm/scripts/runfvp --console" \
kas/cassini.yml:kas/corstone1000-fvp.yml

Or if using kas-container:

kas-container --runtime-args "-e FVP_CORSTONE1000_EULA_ACCEPT=True" \
shell -c "/work/layers/meta-arm/scripts/runfvp --console" \
kas/cassini.yml:kas/corstone1000-fvp.yml

By default, the Corstone-1000 FVP is configured for user mode networking. For more information and instructions on how to configure networking with Fixed Virtual Platforms, refer to the Fast Models Reference Guide.

Note

See notes under Run-Time Integration Tests before running validation steps.

Validation

The following validation tests can be performed on the Cassini Reference Stack:

  • System Integration Tests:

    • Cassini Architecture Stack:

      TESTIMAGE_AUTO=1 kas build kas/cassini.yml:kas/corstone1000-fvp.yml
      

      Or if using kas-container:

      kas-container --runtime-args "-e FVP_CORSTONE1000_EULA_ACCEPT=True -e TESTIMAGE_AUTO=1" build \
      kas/cassini.yml:kas/corstone1000-fvp.yml
      

      The previous test takes around 2 minutes to complete.

      A similar output should be printed out:

      NOTE: Executing Tasks
      Creating terminal default on host_terminal_0
      default: Waiting for login prompt
      RESULTS:
      RESULTS - linuxboot.LinuxBootTest.test_linux_boot: PASSED (23.70s)
      SUMMARY:
      cassini-image-base () - Ran 1 test in 23.704s
      cassini-image-base - OK - All required tests passed (successes=1, skipped=0, failures=0, errors=0)