diff options
Diffstat (limited to 'meta-arm/recipes-devtools/fvp')
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.25.15.bb | 16 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-common.inc | 72 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-corstone1000.bb | 16 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-ecosystem.inc | 25 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-envelope.inc | 16 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-library.bb | 22 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-n1-edge.bb | 11 | ||||
-rw-r--r-- | meta-arm/recipes-devtools/fvp/fvp-sgi575.bb | 10 |
8 files changed, 188 insertions, 0 deletions
diff --git a/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.25.15.bb b/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.25.15.bb new file mode 100644 index 00000000..eab2255f --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.25.15.bb @@ -0,0 +1,16 @@ +require fvp-envelope.inc + +SUMMARY = "Arm Fixed Virtual Platform - Armv-A Base RevC Architecture Envelope Model FVP" +LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \ + file://license_terms/third_party_licenses/third_party_licenses.txt;md5=b9005e55057311e41efe02ccfea8ea72 \ + file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=c09526c02e631abb95ad61528892552d" + +SRC_URI[fvp-aarch64.sha256sum] = "22096fc2267ad776abe0ff32d0d3b870c9fae10036d9c16f4f0fe4a64487a11e" +SRC_URI[fvp-x86_64.sha256sum] = "5f33707a1bdaa96a933b89949f28643110ad80ac9835a75f139c200b64a394dc" + +# The CSS used in the FVP homepage make it too difficult to query with the tooling currently in Yocto +UPSTREAM_VERSION_UNKNOWN = "1" + +MODEL_CODE = "FVP_Base_RevC-2xAEMvA" + +COMPATIBLE_HOST = "(aarch64|x86_64).*-linux" diff --git a/meta-arm/recipes-devtools/fvp/fvp-common.inc b/meta-arm/recipes-devtools/fvp/fvp-common.inc new file mode 100644 index 00000000..29de89f2 --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-common.inc @@ -0,0 +1,72 @@ +HOMEPAGE = "https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms" + +LICENSE_FLAGS = "Arm-FVP-EULA" +LICENSE = "Proprietary & Apache-2.0 & Python-2.0 & GPL-3.0-with-GCC-exception & Zlib & NCSA & LGPL-2.0-or-later & MIT & BSD-3-Clause" + +# FVP has an End User License Agreement. Add Arm-FVP-EULA to +# LICENSE_FLAGS_ACCEPTED if the EULA has been accepted, so it can +# be later checked if the user accepted the EULA or not and if +# not display a message to the user requesting them to do so. +LICENSE_FLAGS_ACCEPTED:append = " ${@oe.utils.vartrue('ARM_FVP_EULA_ACCEPT', 'Arm-FVP-EULA', '', d)}" + +LICENSE_FLAGS_DETAILS[Arm-FVP-EULA] = " \ +Accept the END USER LICENSE AGREEMENT FOR ARM SOFTWARE DEVELOPMENT TOOLS. \ +Please refer to 'https://developer.arm.com/downloads/-/arm-ecosystem-fvps/eula'\ +${@bb.utils.contains('BB_ENV_PASSTHROUGH_ADDITIONS', 'ARM_FVP_EULA_ACCEPT', ' and export ARM_FVP_EULA_ACCEPT to 1', '', d)}.\ +" + +COMPATIBLE_HOST = "x86_64.*-linux" + +# The architecture-specific download filename suffix +FVP_ARCH:aarch64 = "Linux64_armv8l" +FVP_ARCH:x86-64 = "Linux64" + +# The architecture-specific directory the binaries are installed under +FVP_ARCH_DIR = "${FVP_ARCH}" + +def get_real_pv(d): + # FVP versions are like 11.12_43 + pv = d.getVar("PV") + return "%s.%s_%s" % tuple(pv.split(".")) + +def get_fm_short_pv_url(d): + # FVP versions are like 11.12_43 + pv = d.getVar("PV") + return "FM_%s_%s" % tuple(pv.split("."))[:2] + + +# If PV is 1.2.3, VERSION=1.2, BUILD=3, PV_URL=1.2_3. +VERSION = "${@oe.utils.trim_version(d.getVar('PV', -1))}" +BUILD = "${@d.getVar('PV').split('.')[-1]}" +PV_URL = "${@get_real_pv(d)}" +PV_URL_SHORT="${@get_fm_short_pv_url(d)}" + +# The directory the FVP is installed into +FVPDIR = "${libdir}/fvp/${BPN}" + +# Used in do_install to create symlinks in $bindir to $FVPDIR +fvp_link_binaries() { + DIR="${D}${FVPDIR}/models/${FVP_ARCH_DIR}*" + + stat $DIR/FVP_* >/dev/null 2>&1 || bbfatal Cannot find FVP binaries in $DIR + + for FVP in $DIR/FVP_*; do + ln -rs $FVP ${D}${bindir}/$(basename $FVP) + done + # But not the .so files too + rm -f ${D}${bindir}/*.so +} + +FILES:${PN} = "${bindir} ${FVPDIR}" + +# Prebuilt binaries are already stripped +INSANE_SKIP:${PN} += "already-stripped" +# FVP can optionally have a GUI, but we can use the host libraries in native/nativesdk +INSANE_SKIP:${PN} += "file-rdeps" +# GNU_HASH warnings +INSANE_SKIP:${PN} += "ldflags" + +# FVP brings its own standard library so don't let it be used as a shlib provider +PRIVATE_LIBS = "libgcc_s.so.1 libstdc++.so.6" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-arm/recipes-devtools/fvp/fvp-corstone1000.bb b/meta-arm/recipes-devtools/fvp/fvp-corstone1000.bb new file mode 100644 index 00000000..aef9edde --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-corstone1000.bb @@ -0,0 +1,16 @@ +require fvp-ecosystem.inc + +MODEL = "Corstone-1000" +MODEL_CODE = "FVP_Corstone_1000" +PV = "11.23.25" + +SRC_URI = "https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/${MODEL}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}" +SRC_URI[fvp-aarch64.sha256sum] = "e299e81d5fa8b3d2afee0850fd03be31c1a1c3fad07f79849c63e46ee5e36acc" +SRC_URI[fvp-x86_64.sha256sum] = "ec34c9564ccb5b1eb62fc2757673343a353db1d116a7cb1b5f82f9d985d99cdf" + +UPSTREAM_CHECK_REGEX = "${MODEL_CODE}_(?P<pver>(\d+[\.\-_]*)+)_${FVP_ARCH}\.tgz" + +LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \ + file://license_terms/third_party_licenses/third_party_licenses.txt;md5=0c32ac6f58ebff83065105042ab98211" + +COMPATIBLE_HOST = "(aarch64|x86_64).*-linux" diff --git a/meta-arm/recipes-devtools/fvp/fvp-ecosystem.inc b/meta-arm/recipes-devtools/fvp/fvp-ecosystem.inc new file mode 100644 index 00000000..365b39c4 --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-ecosystem.inc @@ -0,0 +1,25 @@ +require fvp-common.inc + +# These need to be set +MODEL ?= "unset" +MODEL_CODE ?= "unset" +PV ?= "unset" + +SUMMARY = "Arm Fixed Virtual Platform - ${MODEL} Ecosystem Reference Design" +HOMEPAGE = "https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps" + +SRC_URI = "https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/${MODEL}/${MODEL_CODE}_${PV_URL}.tgz;subdir=${BP}" + +UPSTREAM_CHECK_URI = "${HOMEPAGE}" +UPSTREAM_CHECK_REGEX = "${MODEL_CODE}_(?P<pver>(\d+[\.\-_]*)+).tgz" + +do_install() { + mkdir --parents ${D}${FVPDIR} ${D}${bindir} + + ${S}/${MODEL_CODE}.sh \ + --i-agree-to-the-contained-eula \ + --no-interactive \ + --destination ${D}${FVPDIR} + + fvp_link_binaries +} diff --git a/meta-arm/recipes-devtools/fvp/fvp-envelope.inc b/meta-arm/recipes-devtools/fvp/fvp-envelope.inc new file mode 100644 index 00000000..f48d823f --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-envelope.inc @@ -0,0 +1,16 @@ +require fvp-common.inc + +HOMEPAGE = "https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms" + +SRC_URI = "https://developer.arm.com/-/media/Files/downloads/ecosystem-models/${PV_URL_SHORT}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}" + +UPSTREAM_CHECK_URI = "${HOMEPAGE}" +UPSTREAM_CHECK_REGEX = "${MODEL_CODE}_(?P<pver>(\d+[\.\-_]*)+).tgz" + +do_install() { + mkdir --parents ${D}${FVPDIR} ${D}${bindir} + + cp --archive --no-preserve=ownership ${S}/*_pkg/* ${D}${FVPDIR}/ + + fvp_link_binaries +} diff --git a/meta-arm/recipes-devtools/fvp/fvp-library.bb b/meta-arm/recipes-devtools/fvp/fvp-library.bb new file mode 100644 index 00000000..1a4319eb --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-library.bb @@ -0,0 +1,22 @@ +require fvp-ecosystem.inc + +MODEL = "Library" +MODEL_CODE = "FVP_ARM_Std_Library" +PV = "11.18.16" + +HOMEPAGE = "https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms" + +LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=a50d186fffa51ed55599183aad911298 \ + file://license_terms/third_party_licenses.txt;md5=3db0c4947b7e3405c40b943672d8de2f" + + +# The FVP Library tarball cannot be downloaded directly, so download the it +# yourself from from the homepage and set FVP_LIBRARY_TARBALL_URI appropriately +# to the directory that contains the tarball (for example, "file:///home/user/"). +FVP_LIBRARY_TARBALL_URI ?= "" + +SRC_URI = "${FVP_LIBRARY_TARBALL_URI}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP}" +python() { + if not d.getVar("FVP_LIBRARY_TARBALL_URI"): + raise bb.parse.SkipRecipe("FVP_LIBRARY_TARBALL_URI not set") +} diff --git a/meta-arm/recipes-devtools/fvp/fvp-n1-edge.bb b/meta-arm/recipes-devtools/fvp/fvp-n1-edge.bb new file mode 100644 index 00000000..7fc3949b --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-n1-edge.bb @@ -0,0 +1,11 @@ +require fvp-ecosystem.inc + +MODEL = "Neoverse-N1" +MODEL_CODE = "FVP_RD_N1_edge" +PV = "11.17.29" + +SRC_URI = "https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/${MODEL}/${MODEL_CODE}_${PV_URL}_Linux64.tgz;subdir=${BP}" +SRC_URI[sha256sum] = "76f5d6ec50b64fad6d8d901101d9ae2c62805f50fcfd0edb125bc2c68de8c8f2" + +LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \ + file://license_terms/third_party_licenses.txt;md5=41029e71051b1c786bae3112a29905a7" diff --git a/meta-arm/recipes-devtools/fvp/fvp-sgi575.bb b/meta-arm/recipes-devtools/fvp/fvp-sgi575.bb new file mode 100644 index 00000000..efdd46f8 --- /dev/null +++ b/meta-arm/recipes-devtools/fvp/fvp-sgi575.bb @@ -0,0 +1,10 @@ +require fvp-ecosystem.inc + +MODEL = "SGI-575" +MODEL_CODE = "FVP_CSS_SGI-575" +PV = "11.15.26" + +SRC_URI[sha256sum] = "d07241112f6c146362deec789e782e10e83bc3560cf605ccd055a606d0b44e74" + +LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \ + file://license_terms/third_party_licenses.txt;md5=3db0c4947b7e3405c40b943672d8de2f" |