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.
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 Basic Synchronization sample:
# From the root of the zephyr repository
west build -b fvp_base_revc_2xaemv8a samples/synchronization
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:
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 ARMFVP_BL1_FILE` and ``ARMFVP_FIP_FILE
environment variables:
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 Application Debugging.
Networking
References
(ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile
AArch64 Exception and Interrupt Handling
https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms