1.. _fvp_baser_aemv8r:
2
3Arm FVP BaseR AEMv8-R
4#####################
5
6.. toctree::
7   :maxdepth: 1
8
9   debug-with-arm-ds.rst
10
11Overview
12********
13
14This board configuration uses Armv8-R AEM FVP [1]_ to emulate a generic
15Armv8-R [2]_ 64-bit hardware platform.
16
17Fixed Virtual Platforms (FVP) are complete simulations of an Arm system,
18including processor, memory and peripherals. These are set out in a
19"programmer's view", which gives you a comprehensive model on which to build
20and test your software.
21
22The Armv8-R AEM FVP is a free of charge Armv8-R Fixed Virtual Platform. It
23supports the latest Armv8-R feature set. Please refer to FVP documentation
24page [3]_ for more details about FVP.
25
26To Run the Fixed Virtual Platform simulation tool you must download "Armv8-R AEM
27FVP" from Arm developer [1]_ (This might require the user to register) and
28install it on your host PC.
29
30The current minimum required version of "Armv8-R AEM FVP" is 11.16.16.
31
32Hardware
33********
34
35Supported Features
36==================
37
38The following hardware features are supported:
39
40+-----------------------+------------+----------------------+
41| Interface             | Controller | Driver/Component     |
42+=======================+============+======================+
43| GICv3                 | on-chip    | interrupt controller |
44+-----------------------+------------+----------------------+
45| PL011 UART            | on-chip    | serial port          |
46+-----------------------+------------+----------------------+
47| Arm GENERIC TIMER     | on-chip    | system clock         |
48+-----------------------+------------+----------------------+
49| SMSC_91C111           | on-chip    | ethernet device      |
50+-----------------------+------------+----------------------+
51
52The kernel currently does not support other hardware features on this platform.
53
54When FVP is launched with ``-a, --application FILE`` option, the kernel will be
55loaded into DRAM region ``[0x0-0x7FFFFFFF]``. For more information, please refer
56to the official Armv8-R AEM FVP memory map document [4]_.
57
58Devices
59=======
60
61System Clock
62------------
63
64This board configuration uses a system clock frequency of 100 MHz.
65
66Serial Port
67-----------
68
69This board configuration uses a single serial communication channel with the
70UART0.
71
72Programming and Debugging
73*************************
74
75Environment
76===========
77
78First, set the ``ARMFVP_BIN_PATH`` environment variable before building.
79Optionally, set ``ARMFVP_EXTRA_FLAGS`` to pass additional arguments to the FVP.
80
81.. code-block:: bash
82
83   export ARMFVP_BIN_PATH=/path/to/fvp/directory
84
85Programming
86===========
87
88Use this configuration to build basic Zephyr applications and kernel tests in the
89Arm FVP emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample:
90
91.. zephyr-app-commands::
92   :zephyr-app: samples/synchronization
93   :host-os: unix
94   :board: fvp_baser_aemv8r
95   :goals: build
96
97This will build an image with the synchronization sample app.
98Then you can run it with ``west build -t run``.
99
100Debugging
101=========
102
103Refer to the detailed overview about :ref:`application_debugging`.
104See :ref:`debug_with_arm_ds` for how to debug with Arm Development Studio [5]_.
105
106References
107**********
108
109.. [1] https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms/arm-ecosystem-models
110.. [2] Arm Architecture Reference Manual Supplement - Armv8, for Armv8-R AArch64 architecture profile
111       https://developer.arm.com/documentation/ddi0600/latest/
112.. [3] https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms/docs
113.. [4] https://developer.arm.com/documentation/100964/1114/Base-Platform/Base---memory/BaseR-Platform-memory-map
114.. [5] https://developer.arm.com/tools-and-software/embedded/arm-development-studio
115