1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-31 00:39:57 +00:00

arm-bsp/docs: Updated documentation fvp-baser-aemv8r64 MACHINE

This update has mainly format related changes (no functional changes) to
improve readability when reading the non-rendered version of it.
- Use underlined style for headers level 1 and 2
- Use indentation to create blocks
- Use double space at the end of each section
- Add indentation to the FVP parameters
- Add pip command to install the kas tool

Signed-off-by: Filipe Rinaldi <filipe.rinaldi@arm.com>
Change-Id: I9d4b4dbcef6dc13638b62563ebdf90b6b9d5b686
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Filipe Rinaldi
2021-05-13 10:57:01 +01:00
committed by Jon Mason
parent 14313a5b11
commit dcc245ef29
@@ -1,6 +1,9 @@
# Armv8-R AArch64 AEM FVP Support in meta-arm-bsp Armv8-R AArch64 AEM FVP Support in meta-arm-bsp
===============================================
Overview
--------
## Overview
Fixed Virtual Platforms (FVP) are complete simulations of an Arm system, Fixed Virtual Platforms (FVP) are complete simulations of an Arm system,
including processor, memory and peripherals. These are set out in a including processor, memory and peripherals. These are set out in a
"programmer's view", which gives you a comprehensive model on which to build "programmer's view", which gives you a comprehensive model on which to build
@@ -16,7 +19,10 @@ https://developer.arm.com/ip-products/processors/cortex-r/cortex-r82
Fast Models Fixed Virtual Platforms (FVP) Reference Guide: Fast Models Fixed Virtual Platforms (FVP) Reference Guide:
https://developer.arm.com/docs/100966/latest https://developer.arm.com/docs/100966/latest
## BSP Support
BSP Support
-----------
The fvp-baser-aemv8r64 Yocto MACHINE supports the following BSP components, The fvp-baser-aemv8r64 Yocto MACHINE supports the following BSP components,
where either a standard or Real-Time Linux kernel (PREEMPT\_RT) can be built where either a standard or Real-Time Linux kernel (PREEMPT\_RT) can be built
and run: and run:
@@ -28,36 +34,40 @@ and run:
Note that the Real-Time Linux kernel (PREEMPT\_RT) does not use the real-time Note that the Real-Time Linux kernel (PREEMPT\_RT) does not use the real-time
architectural extensions of the Armv8-R feature set. architectural extensions of the Armv8-R feature set.
## Quick start: Howto Build and Run
Quick start: Howto Build and Run
--------------------------------
### Host environment setup ### Host environment setup
Install the Required Packages for the Build Host: Install the required packages for the build host:
https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#required-packages-for-the-build-host https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#required-packages-for-the-build-host
Install the kas setup tool for bitbake based projects: Install the kas setup tool for bitbake based projects:
https://kas.readthedocs.io/en/latest/userguide.html#dependencies-installation
pip3 install --user kas
For more details on kas, see https://kas.readthedocs.io/.
### Fetch sources ### Fetch sources
Fetch the meta-arm repository into a build directory: Fetch the meta-arm repository into a build directory:
```
mkdir -p ~/fvp-baser-aemv8r64-build mkdir -p ~/fvp-baser-aemv8r64-build
cd ~/fvp-baser-aemv8r64-build cd ~/fvp-baser-aemv8r64-build
git clone https://git.yoctoproject.org/git/meta-arm git clone https://git.yoctoproject.org/git/meta-arm
```
### Build ### Build
Building with the standard Linux kernel: Building with the standard Linux kernel:
```
cd ~/fvp-baser-aemv8r64-build cd ~/fvp-baser-aemv8r64-build
kas build meta-arm/kas/fvp-baser-aemv8r64-bsp.yml kas build meta-arm/kas/fvp-baser-aemv8r64-bsp.yml
```
Building with the Real-Time Linux kernel (PREEMPT\_RT): Building with the Real-Time Linux kernel (PREEMPT\_RT):
```
cd ~/fvp-baser-aemv8r64-build cd ~/fvp-baser-aemv8r64-build
kas build meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml kas build meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml
```
### Run ### Run
To Run the Fixed Virtual Platform simulation tool you must download "Armv8-R To Run the Fixed Virtual Platform simulation tool you must download "Armv8-R
@@ -67,71 +77,77 @@ https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-pla
and install it on your host PC. and install it on your host PC.
To run an image after the build is done: To run an image after the build is done:
```
export YOCTO_DEPLOY_IMGS_DIR="~/fvp-baser-aemv8r64-bsp/build/tmp/deploy/images/fvp-baser-aemv8r64/"
cd <path-to-AEMv8R_base_pkg>/models/Linux64_GCC-6.4/
./FVP_BaseR_AEMv8R \
-C bp.dram_metadata.init_value=0 \
-C bp.dram_metadata.is_enabled=true \
-C bp.dram_size=8 \
-C bp.exclusive_monitor.monitor_access_level=1 \
-C bp.pl011_uart0.unbuffered_output=1 \
-C bp.pl011_uart0.untimed_fifos=true \
-C bp.refcounter.non_arch_start_at_default=1 \
-C bp.smsc_91c111.enabled=0 \
-C bp.ve_sysregs.mmbSiteDefault=0 \
-C cache_state_modelled=true \
-C cluster0.gicv3.cpuintf-mmap-access-level=2 \
-C cluster0.gicv3.SRE-enable-action-on-mmap=2 \
-C cluster0.gicv3.SRE-EL2-enable-RAO=1 \
-C cluster0.gicv3.extended-interrupt-range-support=1 \
-C cluster0.has_aarch64=1 \
-C cluster0.NUM_CORES=4 \
-C cluster0.stage12_tlb_size=512 \
-C gic_distributor.GICD_CTLR-DS-1-means-secure-only=1 \
-C gic_distributor.GITS_BASER0-type=1 \
-C gic_distributor.ITS-count=1 \
-C gic_distributor.ITS-hardware-collection-count=1 \
-C gic_distributor.direct-lpi-support=1 \
-C gic_distributor.has-two-security-states=0 \
-C pctl.startup=0.0.0.* \
-C bp.virtio_net.enabled=1 \
-C cache_state_modelled=0 \
-C bp.vis.rate_limit-enable=0 \
-C bp.virtio_net.hostbridge.interfaceName=tap0 \
-a cluster0*=${YOCTO_DEPLOY_IMGS_DIR}/linux-system.axf \
-C bp.virtioblockdevice.image_path=${YOCTO_DEPLOY_IMGS_DIR}/core-image-minimal-fvp-baser-aemv8r64.wic
```
The terminal console login is `root` without password. export YOCTO_DEPLOY_IMGS_DIR="~/fvp-baser-aemv8r64-bsp/build/tmp/deploy/images/fvp-baser-aemv8r64/"
cd <path-to-AEMv8R_base_pkg>/models/Linux64_GCC-6.4/
./FVP_BaseR_AEMv8R \
-C bp.dram_metadata.init_value=0 \
-C bp.dram_metadata.is_enabled=true \
-C bp.dram_size=8 \
-C bp.exclusive_monitor.monitor_access_level=1 \
-C bp.pl011_uart0.unbuffered_output=1 \
-C bp.pl011_uart0.untimed_fifos=true \
-C bp.refcounter.non_arch_start_at_default=1 \
-C bp.smsc_91c111.enabled=0 \
-C bp.ve_sysregs.mmbSiteDefault=0 \
-C cache_state_modelled=true \
-C cluster0.gicv3.cpuintf-mmap-access-level=2 \
-C cluster0.gicv3.SRE-enable-action-on-mmap=2 \
-C cluster0.gicv3.SRE-EL2-enable-RAO=1 \
-C cluster0.gicv3.extended-interrupt-range-support=1 \
-C cluster0.has_aarch64=1 \
-C cluster0.NUM_CORES=4 \
-C cluster0.stage12_tlb_size=512 \
-C gic_distributor.GICD_CTLR-DS-1-means-secure-only=1 \
-C gic_distributor.GITS_BASER0-type=1 \
-C gic_distributor.ITS-count=1 \
-C gic_distributor.ITS-hardware-collection-count=1 \
-C gic_distributor.direct-lpi-support=1 \
-C gic_distributor.has-two-security-states=0 \
-C pctl.startup=0.0.0.* \
-C bp.virtio_net.enabled=1 \
-C cache_state_modelled=0 \
-C bp.vis.rate_limit-enable=0 \
-C bp.virtio_net.hostbridge.interfaceName=tap0 \
-a cluster0*=${YOCTO_DEPLOY_IMGS_DIR}/linux-system.axf \
-C bp.virtioblockdevice.image_path=${YOCTO_DEPLOY_IMGS_DIR}/core-image-minimal-fvp-baser-aemv8r64.wic
**Note:** The terminal console login is `root` without password.
Devices supported in the kernel
-------------------------------
## Devices supported in the kernel
- serial - serial
- virtio disk - virtio disk
- virtio network - virtio network
- watchdog - watchdog
- rtc - rtc
## Devices not supported or not functional
Devices not supported or not functional
---------------------------------------
- Only one CPU since SMP is not functional in boot-wrapper-aarch64 yet - Only one CPU since SMP is not functional in boot-wrapper-aarch64 yet
## Networking
Networking
----------
To enable networking on the FVP via a host network interface, set up tap0 using To enable networking on the FVP via a host network interface, set up tap0 using
the following commands (Ubuntu 18.04 Host): the following commands (Ubuntu 18.04 Host):
```
sudo apt-get install libvirt-bin sudo apt-get install libvirt-bin
sudo virsh net-start default sudo virsh net-start default
sudo ip tuntap add dev tap0 mode tap user $(whoami) sudo ip tuntap add dev tap0 mode tap user $(whoami)
sudo ifconfig tap0 0.0.0.0 promisc up sudo ifconfig tap0 0.0.0.0 promisc up
sudo brctl addif virbr0 tap0 sudo brctl addif virbr0 tap0
```
To clean up the tap0 interface on the host use the following commands: To clean up the tap0 interface on the host use the following commands:
```
sudo brctl delif virbr0 tap0 sudo brctl delif virbr0 tap0
sudo ip link set virbr0 down sudo ip link set virbr0 down
sudo brctl delbr virbr0 sudo brctl delbr virbr0
sudo virsh net-destroy default sudo virsh net-destroy default
sudo ip link delete tap0 sudo ip link delete tap0
```