1.. _fvp_base_revc_2xaemv8a:
2
3ARM BASE RevC AEMv8A Fixed Virtual Platforms
4############################################
5
6Overview
7********
8
9This board configuration will use ARM Fixed Virtual Platforms(FVP) to emulate
10a generic Armv8-A 64-bit hardware platform.
11
12This configuration provides support for a generic Armv8-A 64-bit CPU and
13these devices:
14
15* GICv3 interrupt controller
16* ARM architected (Generic) timer
17* PL011 UART controller
18
19Hardware
20********
21
22Supported Features
23==================
24
25The following hardware features are supported:
26
27+-----------------------+------------+----------------------+
28| Interface             | Controller | Driver/Component     |
29+=======================+============+======================+
30| GICv3                 | on-chip    | interrupt controller |
31+-----------------------+------------+----------------------+
32| PL011 UART            | on-chip    | serial port          |
33+-----------------------+------------+----------------------+
34| ARM GENERIC TIMER     | on-chip    | system clock         |
35+-----------------------+------------+----------------------+
36
37The kernel currently does not support other hardware features on this platform.
38
39Devices
40========
41
42System Clock
43------------
44
45This board configuration uses a system clock frequency of 100 MHz.
46
47Serial Port
48-----------
49
50This board configuration uses a single serial communication channel with the
51UART0.
52
53Known Problems or Limitations
54==============================
55
56Programming and Debugging
57*************************
58
59Use this configuration to build basic Zephyr applications and kernel tests in the
60ARM FVP emulated environment, for example, with the :ref:`synchronization_sample`:
61
62.. zephyr-app-commands::
63   :zephyr-app: samples/synchronization
64   :host-os: unix
65   :board: fvp_base_revc_2xaemv8a
66   :goals: build
67
68This will build an image with the synchronization sample app.
69
70To run with FVP, ARMFVP_BIN_PATH must be set before running:
71
72e.g. export ARMFVP_BIN_PATH=<path/to/fvp/dir>
73
74Running Zephyr at EL1NS
75***********************
76
77In order to run Zephyr as EL1NS with ``CONFIG_ARMV8_A_NS``, you'll need a proper
78Trusted Firmware loaded in the FVP model.
79
80The ARM TF-A for FVP can be used to run Zephyr as preloaded BL33 payload.
81
82Checkout and Build the TF-A:
83
84.. code-block:: console
85
86   git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git --depth 1
87   cd trusted-firmware-a/
88   make PLAT=fvp PRELOADED_BL33_BASE="0x88000000" all fip
89
90then export the ``ARMFVP_BL1_FILE` and ``ARMFVP_FIP_FILE`` environment variables:
91
92.. code-block:: console
93
94   export ARMFVP_BL1_FILE=<path/to/tfa-a/build/fvp/release/bl1.bin>
95   export ARMFVP_FIP_FILE=<path/to/tfa-a/build/fvp/release/fip.bin>
96
97Debugging
98=========
99
100Refer to the detailed overview about :ref:`application_debugging`.
101
102Networking
103==========
104
105References
106**********
107
1081. (ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile
1092. AArch64 Exception and Interrupt Handling
1103. https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
111