Platform Support
================

Juno Arm Development Platform
-----------------------------

The AArch64 build of this release has been tested on variants r0, r1 and r2 of
the `Juno Arm Development Platform`_. The AArch32 build has only been tested on
variant r0.

Armv8 Architecture Fixed Virtual Platforms
------------------------------------------

The AArch64 build has been tested on the following Armv8 Architecture Fixed
Virtual Platforms (`FVP`_):

-  ``FVP_Base_AEMv8A-AEMv8A``
-  ``FVP_Base_Cortex-A35x4``
-  ``FVP_Base_Cortex-A57x4-A53x4``
-  ``FVP_Base_RevC-2xAEMv8A``
-  ``Foundation_Platform``

The AArch32 build has been tested on the following `FVP`_\ s:

-  ``FVP_Base_Cortex-A32x4``
-  ``FVP_Base_RevC-2xAEMv8A``

NOTE: Unless otherwise stated, the model version is version 11.6, build 45.

System Guidance for Infrastructure (SGI) Fixed Virtual Platforms
----------------------------------------------------------------

The AArch64 build has been tested on the following Fixed Virtual Platforms
(`FVP`_):

-  ``FVP_CSS_SGI-575``
-  ``FVP_RD_N1Edge``

NOTE:

-  For ``FVP_CSS_SGI-575`` and ``FVP_RD_N1Edge``, internal version of the
   models were used.

--------------

*Copyright (c) 2019, Arm Limited. All rights reserved.*

.. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms
