mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-05-09 05:30:05 +00:00
meta-arm-bsp: Remove fvp-base and foundation-armv8 simulation tools
Since the Fixed Virtual Platforms simulation tools are not publicly available, remove them from meta-arm-bsp layer. Change-Id: Ifece50bfd494241499540030b6ac5968abd8ad1f Issue-Id: SCM-951 Signed-off-by: Diego Sueiro <diego.sueiro@arm.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -7,7 +7,6 @@
|
|||||||
require conf/machine/fvp-common/fvp.inc
|
require conf/machine/fvp-common/fvp.inc
|
||||||
|
|
||||||
KERNEL_DEVICETREE = "arm/foundation-v8-gicv3-psci.dtb"
|
KERNEL_DEVICETREE = "arm/foundation-v8-gicv3-psci.dtb"
|
||||||
EXTRA_IMAGEDEPENDS += "foundation-armv8-native"
|
|
||||||
|
|
||||||
# Use haveged as a source of entropy instead of rng-tools (Needed for ssh).
|
# Use haveged as a source of entropy instead of rng-tools (Needed for ssh).
|
||||||
# rngd (Part of rng-tools) takes ~7 mins to init resulting in a slow boot time.
|
# rngd (Part of rng-tools) takes ~7 mins to init resulting in a slow boot time.
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
require conf/machine/fvp-common/fvp.inc
|
require conf/machine/fvp-common/fvp.inc
|
||||||
|
|
||||||
KERNEL_DEVICETREE = "arm/fvp-base-gicv3-psci-custom.dtb"
|
KERNEL_DEVICETREE = "arm/fvp-base-gicv3-psci-custom.dtb"
|
||||||
EXTRA_IMAGEDEPENDS += "fvp-base-native"
|
|
||||||
|
|
||||||
# Use haveged as a source of entropy instead of rng-tools (Needed for ssh).
|
# Use haveged as a source of entropy instead of rng-tools (Needed for ssh).
|
||||||
# rngd (Part of rng-tools) takes ~7 mins to init resulting in a slow boot time.
|
# rngd (Part of rng-tools) takes ~7 mins to init resulting in a slow boot time.
|
||||||
|
|||||||
@@ -10,16 +10,30 @@ MACHINE ?= "foundation-v8"
|
|||||||
```bash$ bitbake core-image-minimal```
|
```bash$ bitbake core-image-minimal```
|
||||||
|
|
||||||
### Run:
|
### Run:
|
||||||
The layer provides a recipe to install the Armv8-A Foundation Platform in your
|
To Run the Fixed Virtual Platform simulation tool you must download "Armv8-A
|
||||||
environment. You must download Armv8-A Foundation Platform from Arm developer
|
Foundation Platform" from Arm developer (This might require the user to
|
||||||
(This might require the user to register) from this address:
|
register) from this address:
|
||||||
https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
||||||
and put the downloaded tar file in 'downloads/licensed/silver.arm.com/'
|
and install it on your host PC.
|
||||||
directory of your project (or of your Pre-Mirror if you have one).
|
|
||||||
|
Fast Models Fixed Virtual Platforms (FVP) Reference Guide:
|
||||||
|
https://developer.arm.com/docs/100966/latest
|
||||||
|
|
||||||
|
Armv8‑A Foundation Platform User Guide:
|
||||||
|
https://developer.arm.com/docs/100961/latest/
|
||||||
|
|
||||||
|
|
||||||
Once done, do the following to build and run an image:
|
Once done, do the following to build and run an image:
|
||||||
```bash$ bitbake core-image-minimal```
|
```bash$ bitbake core-image-minimal```
|
||||||
```bash$ ./tmp/deploy/tools/start-foundation-armv8.sh```
|
```bash$ export YOCTO_DEPLOY_IMGS_DIR="<yocto-build-dir/tmp/deploy/images/foundation-v8>"```
|
||||||
|
```bash$ cd <path-to-Foundation_Platformpkg-dir/models/Linux64_GCC-X.X/>```
|
||||||
|
```
|
||||||
|
bash$ ./Foundation_Platform --cores=4 --no-sve --gicv3 \
|
||||||
|
--data=${YOCTO_DEPLOY_IMGS_DIR}/bl1-fvp.bin@0x0 \
|
||||||
|
--data=${YOCTO_DEPLOY_IMGS_DIR}/Image@0x80080000 \
|
||||||
|
--data=${YOCTO_DEPLOY_IMGS_DIR}/foundation-v8-gicv3-psci.dtb@0x83000000 \
|
||||||
|
--block-device=${YOCTO_DEPLOY_IMGS_DIR}/core-image-minimal-foundation-armv8.disk.img \
|
||||||
|
```
|
||||||
|
|
||||||
If you have built a configuration without a ramdisk, you can use the following
|
If you have built a configuration without a ramdisk, you can use the following
|
||||||
command in U-boot to start Linux:
|
command in U-boot to start Linux:
|
||||||
|
|||||||
@@ -10,16 +10,33 @@ MACHINE ?= "fvp-base"
|
|||||||
```bash$ bitbake core-image-minimal```
|
```bash$ bitbake core-image-minimal```
|
||||||
|
|
||||||
### Run:
|
### Run:
|
||||||
The layer provides a recipe to install the Fixed Virtual Platform in your
|
To Run the Fixed Virtual Platform simulation tool you must download "Armv8-A
|
||||||
environment. You must download Armv8-A Base Platform FVP from Arm developer
|
Base Platform FVP" from Arm developer (This might require the user to
|
||||||
(This might require the user to register) from this address:
|
register) from this address:
|
||||||
https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
||||||
and put the downloaded tar file in 'downloads/licensed/silver.arm.com/'
|
and install it on your host PC.
|
||||||
directory of your project (or of your Pre-Mirror if you have one).
|
|
||||||
|
Fast Models Fixed Virtual Platforms (FVP) Reference Guide:
|
||||||
|
https://developer.arm.com/docs/100966/latest
|
||||||
|
|
||||||
|
Armv8‑A Foundation Platform User Guide:
|
||||||
|
https://developer.arm.com/docs/100961/latest/
|
||||||
|
|
||||||
|
|
||||||
Once done, do the following to build and run an image:
|
Once done, do the following to build and run an image:
|
||||||
```bash$ bitbake core-image-minimal```
|
```bash$ bitbake core-image-minimal```
|
||||||
```bash$ ./tmp/deploy/tools/start-fvp-base.sh```
|
```bash$ export YOCTO_DEPLOY_IMGS_DIR="<yocto-build-dir/tmp/deploy/images/fvp-base>"```
|
||||||
|
```bash$ cd <path-to-Base_RevC_AEMv8A_pkg-dir/models/Linux64_GCC-X.X/>```
|
||||||
|
```
|
||||||
|
bash$ ./FVP_Base_RevC-2xAEMv8A -C bp.virtio_net.enabled=1 \
|
||||||
|
-C cache_state_modelled=0 \
|
||||||
|
-C bp.secureflashloader.fname=${YOCTO_DEPLOY_IMGS_DIR}/bl1-fvp.bin \
|
||||||
|
-C bp.flashloader0.fname=${YOCTO_DEPLOY_IMGS_DIR}/fip-fvp.bin \
|
||||||
|
--data cluster0.cpu0=${YOCTO_DEPLOY_IMGS_DIR}/Image@0x80080000 \
|
||||||
|
--data cluster0.cpu0=${YOCTO_DEPLOY_IMGS_DIR}/fvp-base-gicv3-psci-custom.dtb@0x83000000 \
|
||||||
|
-C bp.virtioblockdevice.image_path=${YOCTO_DEPLOY_IMGS_DIR}/core-image-minimal-foundation-armv8.disk.img \
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
If you have built a configuration without a ramdisk, you can use the following
|
If you have built a configuration without a ramdisk, you can use the following
|
||||||
command in U-boot to start Linux:
|
command in U-boot to start Linux:
|
||||||
|
|||||||
@@ -1,244 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Script to start a build image using FVP Foundation Platform
|
|
||||||
#
|
|
||||||
set -u
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Get parameters from bitbake configuration
|
|
||||||
source <(MACHINE=foundation-armv8 bitbake -e foundation-armv8-native | grep \
|
|
||||||
-e "^STAGING_.*_NATIVE=" \
|
|
||||||
-e "^DEPLOY_DIR.*=")
|
|
||||||
|
|
||||||
|
|
||||||
# Bitbake image to run
|
|
||||||
IMAGE_NAME="$(cd $DEPLOY_DIR_IMAGE; ls *-foundation-armv8.manifest | \
|
|
||||||
sed -e "s/-foundation-armv8\.manifest//" | head -1)"
|
|
||||||
|
|
||||||
# BL1 and FIP files
|
|
||||||
BL1_FILE="bl1-fvp.bin"
|
|
||||||
BL1_ADDR="0x0"
|
|
||||||
FIP_FILE="fip-fvp.bin"
|
|
||||||
FIP_ADDR="0x8000000"
|
|
||||||
|
|
||||||
# Linux kernel file in deploy_dir and load address
|
|
||||||
KERNEL_FILE="Image"
|
|
||||||
KERNEL_ADDR="0x80080000"
|
|
||||||
|
|
||||||
# DTB file in deploy_dir and load address
|
|
||||||
DTB_FILE="foundation-v8-gicv3-psci.dtb"
|
|
||||||
DTB_ADDR="0x83000000"
|
|
||||||
|
|
||||||
# Xen file in deploy_dir and load address
|
|
||||||
XEN_FILE="xen-foundation-armv8"
|
|
||||||
XEN_ADDR="0x84000000"
|
|
||||||
|
|
||||||
# Disk file in deploy_dir
|
|
||||||
DISK_FILE=""
|
|
||||||
|
|
||||||
# Foundation Platform Executable (Extracted from
|
|
||||||
# FM000-KT-00035-r11p8-61rel0.tgz from silver.arm.com)
|
|
||||||
FOUNDATION_PLAT_EXE="Foundation_Platform"
|
|
||||||
|
|
||||||
# Foundation Platform arguments
|
|
||||||
# 4 cores
|
|
||||||
# Disable Scalable Vector Extension (SVE)
|
|
||||||
# gicv3 emulation (required for hardware virtualisation)
|
|
||||||
FOUNDATION_PLAT_ARGS=" \
|
|
||||||
--cores=4 \
|
|
||||||
--no-sve \
|
|
||||||
--gicv3"
|
|
||||||
|
|
||||||
# Foundation Platform user arguments
|
|
||||||
EXTRA_ARGS=""
|
|
||||||
|
|
||||||
# Help function
|
|
||||||
usage() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage $0 [OPTION] [IMAGE_NAME] [FOUNDATION_PLATFORM_ARGS]
|
|
||||||
Start a generated Yocto Image using Armv8-A Foundation Platform.
|
|
||||||
This script will execute Foundation_Platform from the PATH.
|
|
||||||
|
|
||||||
IMAGE_NAME should be the name of the image to start, this is what you did
|
|
||||||
build with bitbake, default is 'core-image-minimal' if none is auto-detected.
|
|
||||||
All extra arguments are passed to Foundation Platform after the IMAGE_NAME.
|
|
||||||
|
|
||||||
OPTIONs:
|
|
||||||
-h, --help displays this help message
|
|
||||||
--deploy=[DIR] use DIR as deploy directory, default is:
|
|
||||||
$DEPLOY_DIR_IMAGE
|
|
||||||
--no-bl1 Don't load a BL1
|
|
||||||
--bl1=[NAME] File name in DEPLOY_DIR_IMAGE to be used for BL1,
|
|
||||||
default is $BL1_FILE.
|
|
||||||
This adds the following argument to the
|
|
||||||
Foundation Platform:
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/NAME@$BL1_ADDR
|
|
||||||
--no-fip Don't load a FIP
|
|
||||||
--fip=[NAME] File name in DEPLOY_DIR_IMAGE to be used for FIP,
|
|
||||||
default is $FIP_FILE.
|
|
||||||
This adds the following argument to the
|
|
||||||
Foundation Platform:
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/NAME@$FIP_ADDR
|
|
||||||
--linux=[NAME] File name in DEPLOY_DIR_IMAGE to be used
|
|
||||||
as Linux kernel
|
|
||||||
default is $KERNEL_FILE
|
|
||||||
--linux-addr=[ADDR] Address at which Linux kernel should be loaded
|
|
||||||
default is $KERNEL_ADDR
|
|
||||||
--dtb=[NAME] File name in DEPLOY_DIR_IMAGE to be used as DTB
|
|
||||||
default is $DTB_FILE
|
|
||||||
--dtb-addr=[ADDR] Address at which DTB should be loaded
|
|
||||||
default is $DTB_ADDR
|
|
||||||
--xen=[NAME] File name in DEPLOY_DIR_IMAGE to be used as Xen
|
|
||||||
It is only loaded if the file actually exists.
|
|
||||||
default is $XEN_FILE
|
|
||||||
--xen-addr=[ADDR] Address at which Xen should be loaded
|
|
||||||
default is $XEN_ADDR
|
|
||||||
--disk=[NAME] File name in DEPLOY_DIR_IMAGE to be used as disk.
|
|
||||||
It is only loaded if the file actually exists.
|
|
||||||
default is IMAGE_NAME-foundation-armv8.disk.img
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Process command line arguments
|
|
||||||
for arg in "$@"; do
|
|
||||||
case $arg in
|
|
||||||
--*=*)
|
|
||||||
optarg=$(echo $arg | sed -e "s/.*=//")
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
optarg=""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $arg in
|
|
||||||
-h|-?|--help)
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--deploy=*)
|
|
||||||
if [ ! -f $optarg/Image ]
|
|
||||||
then
|
|
||||||
echo "Invalid argument" >&2
|
|
||||||
echo "$optarg is not a valid deploy directory" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
DEPLOY_DIR_IMAGE=$optarg
|
|
||||||
;;
|
|
||||||
--no-bl1)
|
|
||||||
BL1_FILE=""
|
|
||||||
;;
|
|
||||||
--bl1=*)
|
|
||||||
BL1_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--no-fip)
|
|
||||||
FIP_FILE=""
|
|
||||||
;;
|
|
||||||
--fip=*)
|
|
||||||
FIP_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--linux=*)
|
|
||||||
LINUX_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--linux-addr=*)
|
|
||||||
LINUX_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--dtb=*)
|
|
||||||
DTB_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--dtb-addr=*)
|
|
||||||
DTB_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--xen=*)
|
|
||||||
XEN_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--xen-addr=*)
|
|
||||||
XEN_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--disk=*)
|
|
||||||
DISK_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [ -z "$IMAGE_NAME" ]
|
|
||||||
then
|
|
||||||
IMAGE_NAME="$arg"
|
|
||||||
else
|
|
||||||
EXTRA_ARGS="$EXTRA_ARGS $arg"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "${BUILDDIR:-}" ]; then
|
|
||||||
echo "We are not in a Yocto build project." >&2
|
|
||||||
echo "Please source oe-init-build-env first." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${IMAGE_NAME:-}" ]; then
|
|
||||||
IMAGE_NAME="core-image-minimal"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${DISK_FILE:-}" ]; then
|
|
||||||
DISK_FILE="${IMAGE_NAME}-foundation-armv8.disk.img"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add bl1 arg
|
|
||||||
if [ -n "$BL1_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$BL1_FILE ]; then
|
|
||||||
echo "Could not find bl1 ($BL1_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/$BL1_FILE@$BL1_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add fip arg
|
|
||||||
if [ -n "$FIP_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$FIP_FILE ]; then
|
|
||||||
echo "Could not find fip ($FIP_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/$FIP_FILE@$FIP_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add Linux kernel
|
|
||||||
if [ -n "$KERNEL_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$KERNEL_FILE ]; then
|
|
||||||
echo "Could not find Linux kernel ($KERNEL_FILE) in \
|
|
||||||
$DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/$KERNEL_FILE@$KERNEL_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add xen if present
|
|
||||||
if [ -n "$XEN_FILE" -a -f $DEPLOY_DIR_IMAGE/$XEN_FILE ]; then
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/$XEN_FILE@$XEN_ADDR"
|
|
||||||
#switch dtb if there
|
|
||||||
if [ -f $DEPLOY_DIR_IMAGE/$(basename ${DTB_FILE} .dtb)-xen.dtb ]; then
|
|
||||||
DTB_FILE=$(basename ${DTB_FILE} .dtb)-xen.dtb
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add DTB
|
|
||||||
if [ -n "$DTB_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$DTB_FILE ]; then
|
|
||||||
echo "Could not find the DTB ($DTB_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--data=$DEPLOY_DIR_IMAGE/$DTB_FILE@$DTB_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add disk if present
|
|
||||||
if [ -n "$DISK_FILE" -a -f $DEPLOY_DIR_IMAGE/$DISK_FILE ]; then
|
|
||||||
FOUNDATION_PLAT_ARGS="$FOUNDATION_PLAT_ARGS \
|
|
||||||
--block-device=$DEPLOY_DIR_IMAGE/$DISK_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FOUNDATION_PLAT_EXE="${STAGING_BINDIR_NATIVE}/${FOUNDATION_PLAT_EXE}"
|
|
||||||
|
|
||||||
echo "$FOUNDATION_PLAT_EXE $FOUNDATION_PLAT_ARGS $EXTRA_ARGS"
|
|
||||||
$FOUNDATION_PLAT_EXE $FOUNDATION_PLAT_ARGS $EXTRA_ARGS
|
|
||||||
@@ -1,233 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Script to start a build image using FVP Base Platform
|
|
||||||
#
|
|
||||||
set -u
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Get parameters from bitbake configuration
|
|
||||||
source <(MACHINE=fvp-base bitbake -e fvp-base-native | grep \
|
|
||||||
-e "^STAGING_.*_NATIVE=" \
|
|
||||||
-e "^DEPLOY_DIR.*=")
|
|
||||||
|
|
||||||
|
|
||||||
# Bitbake image to run
|
|
||||||
IMAGE_NAME="$(cd $DEPLOY_DIR_IMAGE; ls *-fvp-base.manifest | \
|
|
||||||
sed -e "s/-fvp-base\.manifest//" | head -1)"
|
|
||||||
|
|
||||||
# BL1 and FIP files
|
|
||||||
BL1_FILE="bl1-fvp.bin"
|
|
||||||
FIP_FILE="fip-fvp.bin"
|
|
||||||
|
|
||||||
# Linux kernel file in deploy_dir and load address
|
|
||||||
KERNEL_FILE="Image"
|
|
||||||
KERNEL_ADDR="0x80080000"
|
|
||||||
|
|
||||||
# DTB file in deploy_dir and load address
|
|
||||||
DTB_FILE="fvp-base-gicv3-psci-custom.dtb"
|
|
||||||
DTB_ADDR="0x83000000"
|
|
||||||
|
|
||||||
# Xen file in deploy_dir and load address
|
|
||||||
XEN_FILE="xen-fvp-base"
|
|
||||||
XEN_ADDR="0x84000000"
|
|
||||||
|
|
||||||
# Disk file in deploy_dir
|
|
||||||
DISK_FILE=""
|
|
||||||
|
|
||||||
# Armv8-A Base Platform FVP Executable (Extracted from
|
|
||||||
# FM000-KT-00173-r11p7-30rel0.tgz from silver.arm.com)
|
|
||||||
FVPEXEC="FVP_Base_RevC-2xAEMv8A"
|
|
||||||
|
|
||||||
# FVP arguments
|
|
||||||
# enable virtio network
|
|
||||||
# disable cache modelling to improve performances
|
|
||||||
FVPARGS=" \
|
|
||||||
-C bp.virtio_net.enabled=1 \
|
|
||||||
-C cache_state_modelled=0"
|
|
||||||
|
|
||||||
# FVP user arguments
|
|
||||||
EXTRA_ARGS=""
|
|
||||||
|
|
||||||
# Help function
|
|
||||||
usage() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage $0 [OPTION] [IMAGE_NAME] [FVP_ARGS]
|
|
||||||
Start a generated Yocto Image using Arm Fixed Virtual Platform.
|
|
||||||
This script will execute FVP_Base_RevC-2xAEMv8A from the PATH.
|
|
||||||
|
|
||||||
IMAGE_NAME should be the name of the image to start, this is what you did
|
|
||||||
build with bitbake, default is 'core-image-minimal' if none is auto-detected.
|
|
||||||
All extra arguments are passed to FVP after the IMAGE_NAME.
|
|
||||||
|
|
||||||
OPTIONs:
|
|
||||||
-h, --help displays this help message
|
|
||||||
--deploy=[DIR] use DIR as deploy directory, default is:
|
|
||||||
$DEPLOY_DIR_IMAGE
|
|
||||||
--no-bl1 Don't load a BL1
|
|
||||||
--bl1=[NAME] File name in DEPLOY_DIR_IMAGE to be used for BL1,
|
|
||||||
default is $BL1_FILE.
|
|
||||||
This adds the following argument to FVP:
|
|
||||||
-C bp.secureflashloader.fname=DEPLOY_DIR_IMAGE/NAME
|
|
||||||
--no-fip Don't load a FIP
|
|
||||||
--fip=[NAME] File name in DEPLOY_DIR_IMAGE to be used for FIP,
|
|
||||||
default is $FIP_FILE.
|
|
||||||
This adds the following argument to FVP:
|
|
||||||
-C bp.flashloader0.fname=DEPLOY_DIR_IMAGE/NAME
|
|
||||||
--linux=[NAME] File name in DEPLOY_DIR_IMAGE to be used as Linux kernel
|
|
||||||
default is $KERNEL_FILE
|
|
||||||
--linux-addr=[ADDR] Address at which Linux kernel should be loaded
|
|
||||||
default is $KERNEL_ADDR
|
|
||||||
--dtb=[NAME] File name in DEPLOY_DIR_IMAGE to be used as DTB
|
|
||||||
default is $DTB_FILE
|
|
||||||
--dtb-addr=[ADDR] Address at which DTB should be loaded
|
|
||||||
default is $DTB_ADDR
|
|
||||||
--xen=[NAME] File name in DEPLOY_DIR_IMAGE to be used as Xen
|
|
||||||
It is only loaded if the file actually exists.
|
|
||||||
default is $XEN_FILE
|
|
||||||
--xen-addr=[ADDR] Address at which Xen should be loaded
|
|
||||||
default is $XEN_ADDR
|
|
||||||
--disk=[NAME] File name in DEPLOY_DIR_IMAGE to be used as disk.
|
|
||||||
It is only loaded if the file actually exists.
|
|
||||||
default is IMAGE_NAME-fvp.disk.img
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Process command line arguments
|
|
||||||
for arg in "$@"; do
|
|
||||||
case $arg in
|
|
||||||
--*=*)
|
|
||||||
optarg=$(echo $arg | sed -e "s/.*=//")
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
optarg=""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $arg in
|
|
||||||
-h|-?|--help)
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--deploy=*)
|
|
||||||
if [ ! -f $optarg/Image ]
|
|
||||||
then
|
|
||||||
echo "Invalid argument" >&2
|
|
||||||
echo "$optarg is not a valid deploy directory" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
DEPLOY_DIR_IMAGE=$optarg
|
|
||||||
;;
|
|
||||||
--no-bl1)
|
|
||||||
BL1_FILE=""
|
|
||||||
;;
|
|
||||||
--bl1=*)
|
|
||||||
BL1_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--no-fip)
|
|
||||||
FIP_FILE=""
|
|
||||||
;;
|
|
||||||
--fip=*)
|
|
||||||
FIP_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--linux=*)
|
|
||||||
LINUX_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--linux-addr=*)
|
|
||||||
LINUX_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--dtb=*)
|
|
||||||
DTB_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--dtb-addr=*)
|
|
||||||
DTB_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--xen=*)
|
|
||||||
XEN_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
--xen-addr=*)
|
|
||||||
XEN_ADDR="$optarg"
|
|
||||||
;;
|
|
||||||
--disk=*)
|
|
||||||
DISK_FILE="$optarg"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [ -z "$IMAGE_NAME" ]
|
|
||||||
then
|
|
||||||
IMAGE_NAME="$arg"
|
|
||||||
else
|
|
||||||
EXTRA_ARGS="$EXTRA_ARGS $arg"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "${BUILDDIR:-}" ]; then
|
|
||||||
echo "We are not in a Yocto build project." >&2
|
|
||||||
echo "Please source oe-init-build-env first." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${IMAGE_NAME:-}" ]; then
|
|
||||||
IMAGE_NAME="core-image-minimal"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${DISK_FILE:-}" ]; then
|
|
||||||
DISK_FILE="${IMAGE_NAME}-fvp-base.disk.img"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add bl1 arg
|
|
||||||
if [ -n "$BL1_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$BL1_FILE ]; then
|
|
||||||
echo "Could not find bl1 ($BL1_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FVPARGS="$FVPARGS -C bp.secureflashloader.fname=$DEPLOY_DIR_IMAGE/$BL1_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add fip arg
|
|
||||||
if [ -n "$FIP_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$FIP_FILE ]; then
|
|
||||||
echo "Could not find fip ($FIP_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FVPARGS="$FVPARGS -C bp.flashloader0.fname=$DEPLOY_DIR_IMAGE/$FIP_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add Linux kernel
|
|
||||||
if [ -n "$KERNEL_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$KERNEL_FILE ]; then
|
|
||||||
echo "Could not find Linux kernel ($KERNEL_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FVPARGS="$FVPARGS \
|
|
||||||
--data cluster0.cpu0=$DEPLOY_DIR_IMAGE/$KERNEL_FILE@$KERNEL_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add xen if present
|
|
||||||
if [ -n "$XEN_FILE" -a -f $DEPLOY_DIR_IMAGE/$XEN_FILE ]; then
|
|
||||||
FVPARGS="$FVPARGS \
|
|
||||||
--data cluster0.cpu0=$DEPLOY_DIR_IMAGE/$XEN_FILE@$XEN_ADDR"
|
|
||||||
#switch dtb if there
|
|
||||||
if [ -f $DEPLOY_DIR_IMAGE/$(basename ${DTB_FILE} .dtb)-xen.dtb ]; then
|
|
||||||
DTB_FILE=$(basename ${DTB_FILE} .dtb)-xen.dtb
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add DTB
|
|
||||||
if [ -n "$DTB_FILE" ]; then
|
|
||||||
if [ ! -f $DEPLOY_DIR_IMAGE/$DTB_FILE ]; then
|
|
||||||
echo "Could not find the DTB ($DTB_FILE) in $DEPLOY_DIR_IMAGE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FVPARGS="$FVPARGS \
|
|
||||||
--data cluster0.cpu0=$DEPLOY_DIR_IMAGE/$DTB_FILE@$DTB_ADDR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add disk if present
|
|
||||||
if [ -n "$DISK_FILE" -a -f $DEPLOY_DIR_IMAGE/$DISK_FILE ]; then
|
|
||||||
FVPARGS="$FVPARGS \
|
|
||||||
-C bp.virtioblockdevice.image_path=$DEPLOY_DIR_IMAGE/$DISK_FILE"
|
|
||||||
fi
|
|
||||||
FVPEXEC="${STAGING_BINDIR_NATIVE}/${FVPEXEC}"
|
|
||||||
|
|
||||||
echo "$FVPEXEC $FVPARGS $EXTRA_ARGS"
|
|
||||||
$FVPEXEC $FVPARGS $EXTRA_ARGS
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Armv8-A Foundation Platform build recipe
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download and install recipe specific for Armv8-A Foundation Platform build are
|
|
||||||
# captured in the file.
|
|
||||||
#
|
|
||||||
|
|
||||||
# The tar file required to build this package must be downloaded from
|
|
||||||
# https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
|
||||||
# and put in the sub-directory 'licensed/silver.arm.com' of one of the
|
|
||||||
# following locations:
|
|
||||||
# - in the directory 'files' of this file directory
|
|
||||||
# - in your Yocto project download directory (DL_DIR parameter of local.conf)
|
|
||||||
# - in your Download mirror if you have one
|
|
||||||
SRC_URI = "file://licensed/silver.arm.com/FM000-KT-00035-${PV}.tgz"
|
|
||||||
SRC_URI += "file://start-foundation-armv8.sh"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/Foundation_Platformpkg"
|
|
||||||
|
|
||||||
# Checksums to compare against downloaded package files' checksums
|
|
||||||
LIC_FILES_CHKSUM = " \
|
|
||||||
file://license_terms/license_agreement.txt;md5=ae7b47c67a033995c6b4510476a50f03 \
|
|
||||||
file://license_terms/redistributables.txt;md5=f9fafcaf37ce6c9427568b9dbdbaabe5 \
|
|
||||||
file://license_terms/supplementary_terms.txt;md5=26e4b214f639a22c8e7e207abc10eccb \
|
|
||||||
file://license_terms/third_party_licenses.txt;md5=6394c171d6657fc195573c4d239341c4 \
|
|
||||||
"
|
|
||||||
|
|
||||||
require fvp-native.inc
|
|
||||||
|
|
||||||
do_install_append() {
|
|
||||||
cp -a --no-preserve=ownership -rf doc license_terms models plugins \
|
|
||||||
${D}/${datadir}/fvp/.
|
|
||||||
|
|
||||||
cat <<EOF > ${D}${bindir}/Foundation_Platform
|
|
||||||
#!/bin/bash
|
|
||||||
basedir=\$(cd \$(dirname \$0)/../../; pwd)
|
|
||||||
export LD_LIBRARY_PATH="\$basedir/lib:\$basedir/usr/lib"
|
|
||||||
\$basedir/usr/share/fvp/models/Linux64_GCC-6.4/Foundation_Platform "\$@"
|
|
||||||
EOF
|
|
||||||
chmod 755 ${D}${bindir}/Foundation_Platform
|
|
||||||
}
|
|
||||||
|
|
||||||
do_deploy_append() {
|
|
||||||
install -m 755 ${WORKDIR}/start-foundation-armv8.sh ${DEPLOYDIR}/.
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Armv8-A Base Platform FVP build recipe
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download and install recipe specific for Armv8-A Base Platform FVP build are
|
|
||||||
# captured in the file.
|
|
||||||
#
|
|
||||||
|
|
||||||
# The tar file required to build this package must be downloaded from
|
|
||||||
# https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
|
||||||
# and put in the sub-directory 'licensed/silver.arm.com' of one of the
|
|
||||||
# following locations:
|
|
||||||
# - in the directory 'files' of this file directory
|
|
||||||
# - in your Yocto project download directory (DL_DIR parameter of local.conf)
|
|
||||||
# - in your Download mirror if you have one
|
|
||||||
SRC_URI = "file://licensed/silver.arm.com/FM000-KT-00173-${PV}.tgz"
|
|
||||||
SRC_URI += "file://start-fvp-base.sh"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/Base_RevC_AEMv8A_pkg"
|
|
||||||
|
|
||||||
# Checksums to compare against downloaded package files' checksums
|
|
||||||
LIC_FILES_CHKSUM = " \
|
|
||||||
file://license_terms/license_agreement.txt;md5=ae7b47c67a033995c6b4510476a50f03 \
|
|
||||||
file://license_terms/redistributables.txt;md5=f9fafcaf37ce6c9427568b9dbdbaabe5 \
|
|
||||||
file://license_terms/supplementary_terms.txt;md5=26e4b214f639a22c8e7e207abc10eccb \
|
|
||||||
file://license_terms/third_party_licenses.txt;md5=1aa4ab9ee0642b1bc92063d29426c25f \
|
|
||||||
"
|
|
||||||
|
|
||||||
require fvp-native.inc
|
|
||||||
|
|
||||||
do_install_append() {
|
|
||||||
cp -a --no-preserve=ownership -rf bin doc fmtplib license_terms models \
|
|
||||||
plugins scripts ${D}/${datadir}/fvp/.
|
|
||||||
|
|
||||||
cat <<EOF > ${D}${bindir}/FVP_Base_RevC-2xAEMv8A
|
|
||||||
#!/bin/bash
|
|
||||||
basedir=\$(cd \$(dirname \$0)/../../; pwd)
|
|
||||||
export LD_LIBRARY_PATH="\$basedir/lib:\$basedir/usr/lib"
|
|
||||||
\$basedir/usr/share/fvp/models/Linux64_GCC-4.9/FVP_Base_RevC-2xAEMv8A "\$@"
|
|
||||||
EOF
|
|
||||||
chmod 755 ${D}${bindir}/FVP_Base_RevC-2xAEMv8A
|
|
||||||
}
|
|
||||||
|
|
||||||
do_deploy_append() {
|
|
||||||
install -m 755 ${WORKDIR}/start-fvp-base.sh ${DEPLOYDIR}/.
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# Fixed Virtual Platform (FVP) executable installation recipe
|
|
||||||
|
|
||||||
#
|
|
||||||
# Package specific information like checksums and source information captured
|
|
||||||
# in specific bb files.
|
|
||||||
#
|
|
||||||
|
|
||||||
SUMMARY = "Arm Fixed Virtual Platform"
|
|
||||||
HOMEPAGE = "https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms"
|
|
||||||
LICENSE = "Proprietary & GPLv2 & Apache-2"
|
|
||||||
|
|
||||||
|
|
||||||
inherit native deploy
|
|
||||||
|
|
||||||
do_configure[noexec] = "1"
|
|
||||||
do_compile[noexec] = "1"
|
|
||||||
|
|
||||||
do_install() {
|
|
||||||
install -d ${D}/${datadir}/fvp
|
|
||||||
install -d ${D}${bindir}
|
|
||||||
}
|
|
||||||
FILES_${PN} = "${datadir}/fvp/* ${bindir}/*"
|
|
||||||
INSANE_SKIP_${PN} += "already-stripped"
|
|
||||||
|
|
||||||
# This is required so that our binaries are in the sysroot. We need this
|
|
||||||
# to have both fvp required libraries and fvp in the same sysroot.
|
|
||||||
addtask addto_recipe_sysroot after do_populate_sysroot before do_build
|
|
||||||
|
|
||||||
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
|
|
||||||
do_deploy() {
|
|
||||||
install -d ${DEPLOYDIR}
|
|
||||||
}
|
|
||||||
addtask deploy before do_build after do_compile
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user