125 lines
3.4 KiB
ReStructuredText
125 lines
3.4 KiB
ReStructuredText
.. _fvp_base_revc_2xaemv8a:
|
|
|
|
ARM BASE RevC AEMv8A Fixed Virtual Platforms
|
|
############################################
|
|
|
|
Overview
|
|
********
|
|
|
|
This board configuration will use ARM Fixed Virtual Platforms(FVP) to emulate
|
|
a generic Armv8-A 64-bit hardware platform.
|
|
|
|
This configuration provides support for a generic Armv8-A 64-bit CPU and
|
|
these devices:
|
|
|
|
* GICv3 interrupt controller
|
|
* ARM architected (Generic) timer
|
|
* PL011 UART controller
|
|
|
|
Hardware
|
|
********
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The following hardware features are supported:
|
|
|
|
+-----------------------+------------+----------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+=======================+============+======================+
|
|
| GICv3 | on-chip | interrupt controller |
|
|
+-----------------------+------------+----------------------+
|
|
| PL011 UART | on-chip | serial port |
|
|
+-----------------------+------------+----------------------+
|
|
| ARM GENERIC TIMER | on-chip | system clock |
|
|
+-----------------------+------------+----------------------+
|
|
| SMSC_91C111 | on-chip | ethernet device |
|
|
+-----------------------+------------+----------------------+
|
|
|
|
The kernel currently does not support other hardware features on this platform.
|
|
|
|
Devices
|
|
========
|
|
|
|
System Clock
|
|
------------
|
|
|
|
This board configuration uses a system clock frequency of 100 MHz.
|
|
|
|
Serial Port
|
|
-----------
|
|
|
|
This board configuration uses a single serial communication channel with the
|
|
UART0.
|
|
|
|
Known Problems or Limitations
|
|
==============================
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
Environment
|
|
===========
|
|
|
|
First, set the ``ARMFVP_BIN_PATH`` environment variable before building.
|
|
Optionally, set ``ARMFVP_EXTRA_FLAGS`` to pass additional arguments to the FVP.
|
|
|
|
.. code-block:: bash
|
|
|
|
export ARMFVP_BIN_PATH=/path/to/fvp/directory
|
|
|
|
Programming
|
|
===========
|
|
|
|
Use this configuration to build basic Zephyr applications and kernel tests in the
|
|
ARM FVP emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/synchronization
|
|
:host-os: unix
|
|
:board: fvp_base_revc_2xaemv8a
|
|
:goals: build
|
|
|
|
This will build an image with the synchronization sample app.
|
|
Then you can run it with ``west build -t run``.
|
|
|
|
Running Zephyr at EL1NS
|
|
***********************
|
|
|
|
In order to run Zephyr as EL1NS with ``CONFIG_ARMV8_A_NS``, you'll need a proper
|
|
Trusted Firmware loaded in the FVP model.
|
|
|
|
The ARM TF-A for FVP can be used to run Zephyr as preloaded BL33 payload.
|
|
|
|
Checkout and Build the TF-A:
|
|
|
|
.. code-block:: console
|
|
|
|
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git --depth 1
|
|
cd trusted-firmware-a/
|
|
make PLAT=fvp PRELOADED_BL33_BASE="0x88000000" all fip
|
|
|
|
then export the :envvar:`ARMFVP_BL1_FILE` and :envvar:`ARMFVP_FIP_FILE` environment variables:
|
|
|
|
.. code-block:: console
|
|
|
|
export ARMFVP_BL1_FILE=<path/to/tfa-a/build/fvp/release/bl1.bin>
|
|
export ARMFVP_FIP_FILE=<path/to/tfa-a/build/fvp/release/fip.bin>
|
|
|
|
Debugging
|
|
=========
|
|
|
|
Refer to the detailed overview about :ref:`application_debugging`.
|
|
|
|
Networking
|
|
==========
|
|
|
|
References
|
|
**********
|
|
|
|
.. target-notes::
|
|
|
|
1. (ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile
|
|
2. AArch64 Exception and Interrupt Handling
|
|
3. https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|