1# Running Hafnium under Arm FVP 2 3Arm offers a series of emulators known as Fixed Virtual Platforms (FVPs), which 4simulate various processors. They are generally more accurate to the hardware 5than QEMU, at the cost of being considerably slower. We support running 6[tests](Testing.md) on the FVP as well as QEMU. 7 8## Set up 9 101. Download the 11 [Armv8-A Base Platform FVP](https://developer.arm.com/products/system-design/fixed-virtual-platforms) 12 from Arm. 131. Unzip it to a directory called `fvp` alongside the root directory of your 14 Hafnium checkout. 15 16## Running tests 17 18To run tests with the FVP instead of QEMU, from the root directory of your 19Hafnium checkout: 20 21```shell 22$ make && kokoro/test.sh --fvp 23``` 24 25See the `FvpDriver` class in [`hftest.py`](../test/hftest/hftest.py) for details 26on how this works. 27 28## Other resources 29 30When running tests under the FVP we also use a prebuilt version of TF-A, which 31is checked in under 32[`prebuilts/linux-aarch64/arm-trusted-firmware/`](https://review.trustedfirmware.org/plugins/gitiles/hafnium/prebuilts/+/refs/heads/master/linux-aarch64/arm-trusted-firmware/). 33The 34[README](https://review.trustedfirmware.org/plugins/gitiles/hafnium/prebuilts/+/refs/heads/master/linux-aarch64/arm-trusted-firmware/README.md) 35there has details on how it was built. The source code is available from the 36[Arm Trusted Firmware site](https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git). 37 38Documentation of the FVP (including memory maps) is 39[available from Arm](https://developer.arm.com/docs/100966/latest). 40