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