Running Hafnium under Arm FVP

Arm offers a series of emulators known as Fixed Virtual Platforms (FVPs), which simulate various processors. They are generally more accurate to the hardware than QEMU, at the cost of being considerably slower. We support running tests on the FVP as well as QEMU.

Set up

  1. Download the Armv8-A Base Platform FVP from Arm.
  2. Unzip it to a directory called fvp alongside the root directory of your Hafnium checkout.

Running tests

To run tests with the FVP instead of QEMU, from the root directory of your Hafnium checkout:

$ make && kokoro/test.sh --fvp

See the fvp function in hftest.py for details on how this works.

Other resources

When running tests under the FVP we also use a prebuilt version of TF-A, which is checked in under prebuilts/linux-aarch64/arm-trusted-firmware/. The README there has details on how it was built. The source code is available from the Arm Trusted Firmware site.

Documentation of the FVP (including memory maps) is available from Arm.