mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-06-06 02:40:18 +00:00
meta-atp: remove
The meta-atp layer is unmaintained and gem5 is incompatible with Python 3.11, so won't work with master without work that is still ongoing. Signed-off-by: Ross Burton <ross.burton@arm.com>
This commit is contained in:
+1
-4
@@ -126,9 +126,6 @@ gem5-arm64:
|
||||
matrix:
|
||||
- VIRT: [none, xen]
|
||||
|
||||
gem5-atp-arm64:
|
||||
extends: .build
|
||||
|
||||
generic-arm64:
|
||||
extends: .build
|
||||
|
||||
@@ -224,7 +221,7 @@ check-layers:
|
||||
"yocto-check-layer-wrapper $CI_PROJECT_DIR/$LAYER --dependency $CI_PROJECT_DIR/meta-* $KAS_WORK_DIR/meta-openembedded/meta-oe --no-auto-dependency"
|
||||
parallel:
|
||||
matrix:
|
||||
- LAYER: [meta-arm, meta-arm-bsp, meta-arm-toolchain, meta-gem5, meta-atp]
|
||||
- LAYER: [meta-arm, meta-arm-bsp, meta-arm-toolchain, meta-gem5]
|
||||
|
||||
pending-updates:
|
||||
extends: .setup
|
||||
|
||||
@@ -18,10 +18,6 @@ This repository contains the Arm layers for OpenEmbedded.
|
||||
|
||||
This layer contains recipes for Arm's binary toolchains (GCC and Clang for -A and -M), and a recipe to build Arm's GCC.
|
||||
|
||||
* meta-atp
|
||||
|
||||
This layer contains recipes for the [AMBA Adaptive Traffic Profiles (ATP)](https://developer.arm.com/documentation/ihi0082/latest) generation integration into meta-gem5.
|
||||
|
||||
* meta-gem5
|
||||
|
||||
This layer contains recipes and machines for gem5, a system-level and processor simulator.
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
header:
|
||||
version: 11
|
||||
includes:
|
||||
- ci/gem5-arm64.yml
|
||||
|
||||
repos:
|
||||
meta-arm:
|
||||
layers:
|
||||
meta-atp:
|
||||
|
||||
machine: gem5-atp-arm64
|
||||
|
||||
target:
|
||||
- atp-native
|
||||
- core-image-minimal
|
||||
@@ -1 +0,0 @@
|
||||
See ../README.md
|
||||
@@ -1,9 +0,0 @@
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
||||
${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "meta-atp"
|
||||
BBFILE_PATTERN_meta-atp = "^${LAYERDIR}/"
|
||||
|
||||
LAYERDEPENDS_meta-atp = "core openembedded-layer meta-gem5"
|
||||
LAYERSERIES_COMPAT_meta-atp = "langdale mickledore"
|
||||
@@ -1,15 +0,0 @@
|
||||
require conf/machine/gem5-arm64.conf
|
||||
MACHINEOVERRIDES =. "gem5-arm64:"
|
||||
|
||||
# Use baremetal_atp.py as machine configuration
|
||||
GEM5_RUN_PROFILE = "configs/baremetal_atp.py"
|
||||
# Require m5term
|
||||
EXTRA_IMAGEDEPENDS += "gem5-m5term-native"
|
||||
# Require ATP kernel modules, user API and gem5 m5readfile
|
||||
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-atp atp-uapi gem5-m5readfile"
|
||||
# Optionally provide ATP kernel tests
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "atp-test"
|
||||
|
||||
# Use ATP Engine gem5 models in gem5 build
|
||||
DEPENDS:append:pn-gem5-aarch64-native = " atp-gem5-native"
|
||||
GEM5_EXTRAS:pn-gem5-aarch64-native = "${STAGING_DATADIR_NATIVE}/atp"
|
||||
@@ -1,13 +0,0 @@
|
||||
# Standalone ATP Engine executable
|
||||
|
||||
Users can build the AMBA ATP Engine as a standalone native executable as follows:
|
||||
|
||||
```bash
|
||||
bitbake atp-native
|
||||
```
|
||||
|
||||
Users can run the executable through standard build scripts:
|
||||
|
||||
```bash
|
||||
oe-run-native atp-native atpeng [--help | args...]
|
||||
```
|
||||
@@ -1,37 +0,0 @@
|
||||
## ATP Engine integration in gem5, and the gem5-atp-arm64 machine
|
||||
|
||||
Users should select the `gem5-atp-arm64` machine in their `conf/local.conf` file.
|
||||
|
||||
Users can build the target image of preference, for example:
|
||||
|
||||
```bash
|
||||
bitbake core-image-minimal
|
||||
```
|
||||
|
||||
The resulting gem5 native executable contains the AMBA ATP Engine. The resulting target image contains the kernel modules, UAPI and test suite.
|
||||
|
||||
Users should run the environment as follows:
|
||||
|
||||
```bash
|
||||
oe-run-native atp-gem5-native start-gem5-atp.sh
|
||||
```
|
||||
|
||||
This script launches a fast simulation to fast-forward Linux boot. Once Linux boot is completed, the fast simulation switches into a detailed simulation for the final usable environment. Users can connect and interact with the environment as follows:
|
||||
|
||||
```bash
|
||||
oe-run-native gem5-m5term-native m5term <PORT>
|
||||
```
|
||||
|
||||
The connection PORT is announced by the deploy script as:
|
||||
|
||||
```bash
|
||||
system.terminal: Listening for connections on port <PORT>
|
||||
```
|
||||
|
||||
This is usually port 3456.
|
||||
|
||||
Users can verify access to the ATP device by running the integration test suite from within the simulated environment as follows:
|
||||
|
||||
```bash
|
||||
test_atp.out
|
||||
```
|
||||
@@ -1,11 +0,0 @@
|
||||
# meta-atp summary
|
||||
|
||||
The meta-atp layer supports building the following software components:
|
||||
|
||||
- Arm's implementation of the AMBA ATP specification, namely the [AMBA ATP Engine](https://github.com/ARM-software/ATP-Engine).
|
||||
- Linux kernel modules and user API (UAPI) for programming ATP devices.
|
||||
- Integration test suite for verification of kernel modules and UAPI.
|
||||
|
||||
It is also possible to build the AMBA ATP Engine as part of the final [gem5](https://www.gem5.org/) executable. For this, meta-atp extends the `gem5-aarch64-native` recipe to add the AMBA ATP engine code as extra sources.
|
||||
|
||||
Users should add the meta-atp layer and layer dependencies to `conf/bblayers.conf`. See `conf/layer.conf` for dependencies.
|
||||
@@ -1,24 +0,0 @@
|
||||
require atp-source_3.1.inc
|
||||
inherit native
|
||||
|
||||
SUMMARY = "AMBA ATP Engine gem5 models"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "${ATP_SRC} file://start-gem5-atp.sh"
|
||||
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${datadir}/gem5/configs ${D}${datadir}/atp ${D}${bindir}
|
||||
|
||||
# baremetal_atp.py machine configuration and sample stream.atp file
|
||||
install ${S}/gem5/baremetal_atp.py ${S}/configs/stream.atp ${D}${datadir}/gem5/configs
|
||||
# ATP Engine sources for gem5 to use
|
||||
install ${S}/SConscript ${S}/*.hh ${S}/*.cc ${D}${datadir}/atp
|
||||
cp -RL ${S}/gem5 ${S}/proto ${D}${datadir}/atp
|
||||
|
||||
install ${WORKDIR}/start-gem5-atp.sh ${D}${bindir}
|
||||
}
|
||||
|
||||
addtask addto_recipe_sysroot after do_populate_sysroot before do_build
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source <(bitbake -e gem5-aarch64-native | grep \
|
||||
-e "^STAGING_DATADIR_NATIVE=" -e "^DEPLOY_DIR_TOOLS=")
|
||||
|
||||
# Used by baremetal_atp.py
|
||||
export GEM5_DATADIR=${STAGING_DATADIR_NATIVE}/gem5
|
||||
export ATP_DATADIR=${STAGING_DATADIR_NATIVE}/gem5
|
||||
|
||||
# Fast-forward Linux boot and restore into timing simulation
|
||||
${DEPLOY_DIR_TOOLS}/start-gem5.sh --checkpoint $@
|
||||
${DEPLOY_DIR_TOOLS}/start-gem5.sh --restore-with-cpu TimingSimpleCPU \
|
||||
--checkpoint-restore 1 $@
|
||||
@@ -1,18 +0,0 @@
|
||||
require atp-source_3.1.inc
|
||||
inherit pkgconfig native
|
||||
|
||||
SUMMARY = "AMBA ATP Engine: synthetic traffic interface modelling framework"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "${ATP_SRC} \
|
||||
file://no-werror.patch"
|
||||
|
||||
EXTRA_OEMAKE += "EXTRA_CXX_FLAGS='${CXXFLAGS}' EXTRA_LD_FLAGS='${LDFLAGS}'"
|
||||
|
||||
do_install() {
|
||||
oe_runmake install
|
||||
}
|
||||
|
||||
DEPENDS = "protobuf-native cppunit-native"
|
||||
|
||||
addtask addto_recipe_sysroot before do_build
|
||||
@@ -1,9 +0,0 @@
|
||||
ATP_SRC = "git://github.com/ARM-software/ATP-Engine.git;protocol=https;branch=master"
|
||||
ATP_REV = "be1066029d6256626b37be004e2a663fbc29f37e"
|
||||
ATP_LIC = "BSD-3-Clause-Clear"
|
||||
ATP_LIC_MD5 = "e836b5992257064f488715d9a59752c3"
|
||||
|
||||
HOMEPAGE ?= "https://github.com/ARM-software/ATP-Engine"
|
||||
SRCREV ?= "${ATP_REV}"
|
||||
LICENSE ?= "${ATP_LIC}"
|
||||
LIC_FILES_CHKSUM ?= "file://LICENSE;md5=${ATP_LIC_MD5}"
|
||||
@@ -1,18 +0,0 @@
|
||||
Don't pass -Werror, as new compilers introduce new warnings.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index c01b120..1d3c30a 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -18,7 +18,7 @@ PROTOBUF_C_FLAGS:= $(shell pkg-config --cflags protobuf)
|
||||
CPPUNIT_C_FLAGS := $(shell pkg-config --cflags cppunit)
|
||||
PROTOBUF_L_FLAGS:= $(shell pkg-config --libs protobuf)
|
||||
CPPUNIT_L_FLAGS := $(shell pkg-config --libs cppunit)
|
||||
-CXX_FLAGS := $(PROTOBUF_C_FLAGS) -std=c++11 -Wall -Werror -Wextra -Wno-unused-parameter -Wno-unused-variable $(CPPUNIT_C_FLAGS) -fPIC $(EXTRA_CXX_FLAGS)
|
||||
+CXX_FLAGS := $(PROTOBUF_C_FLAGS) -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable $(CPPUNIT_C_FLAGS) -fPIC $(EXTRA_CXX_FLAGS)
|
||||
LD_FLAGS := $(PROTOBUF_L_FLAGS) $(CPPUNIT_L_FLAGS) $(EXTRA_LD_FLAGS)
|
||||
PROTO_SRC_DIR := ./proto/
|
||||
PROTO_SRC := $(wildcard $(PROTO_SRC_DIR)tp*.proto)
|
||||
@@ -1,5 +0,0 @@
|
||||
do_compile:prepend:gem5-atp-arm64() {
|
||||
# Export datadir paths for baremetal_atp.py script
|
||||
export GEM5_DATADIR="${STAGING_DATADIR_NATIVE}/gem5"
|
||||
export ATP_DATADIR="${STAGING_DATADIR_NATIVE}/gem5"
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
COMPATIBLE_MACHINE = "gem5-atp-arm64"
|
||||
require recipes-devtools/atp/atp-source_3.1.inc
|
||||
inherit module
|
||||
|
||||
SUMMARY = "Kernel modules for interacting wih ATP Engine and devices"
|
||||
SECTION = "kernel/modules"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "${ATP_SRC}"
|
||||
|
||||
ATP_MOD_DIR = "linux"
|
||||
|
||||
EXTRA_OEMAKE += "-C ${ATP_MOD_DIR}"
|
||||
|
||||
PROVIDES = "kernel-module-atp"
|
||||
RPROVIDES:${PN} = "kernel-module-atp"
|
||||
KERNEL_MODULE_AUTOLOAD += "atp_buffer_manager atp_device"
|
||||
MODULES_MODULE_SYMVERS_LOCATION = "${ATP_MOD_DIR}"
|
||||
|
||||
do_install:append() {
|
||||
install -d ${D}${includedir}/linux
|
||||
install -m 644 ${ATP_MOD_DIR}/atp_buffer_manager_user.h \
|
||||
${ATP_MOD_DIR}/atp_device_user.h \
|
||||
${D}${includedir}/linux
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
COMPATIBLE_MACHINE = "gem5-atp-arm64"
|
||||
require recipes-devtools/atp/atp-source_3.1.inc
|
||||
|
||||
SUMMARY = "End-to-end tests evaluating ATP kernel modules service correctness"
|
||||
SECTION = "kernel/userland"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "${ATP_SRC}"
|
||||
|
||||
EXTRA_OEMAKE += "-C linux/test"
|
||||
|
||||
do_compile() {
|
||||
oe_runmake
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake DESTDIR=${D} PREFIX=${prefix} install
|
||||
}
|
||||
|
||||
DEPENDS = "atp-uapi cppunit"
|
||||
RDEPENDS:${PN} = "atp-uapi"
|
||||
@@ -1,24 +0,0 @@
|
||||
COMPATIBLE_MACHINE = "gem5-atp-arm64"
|
||||
require recipes-devtools/atp/atp-source_3.1.inc
|
||||
|
||||
SUMMARY = "User API for accessing services from ATP kernel modules"
|
||||
SECTION = "kernel/userland"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "${ATP_SRC}"
|
||||
|
||||
# Unversioned library
|
||||
SOLIBS = ".so"
|
||||
FILES_SOLIBSDEV = ""
|
||||
|
||||
EXTRA_OEMAKE += "-C linux/uapi"
|
||||
|
||||
do_compile() {
|
||||
oe_runmake KERNEL_HDR_PATH=${STAGING_INCDIR}
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake DESTDIR=${D} PREFIX=${prefix} install
|
||||
}
|
||||
|
||||
DEPENDS = "linux-libc-headers kernel-module-atp"
|
||||
@@ -1 +0,0 @@
|
||||
# CONFIG_FTRACE is not set
|
||||
@@ -1,4 +0,0 @@
|
||||
CONFIG_IOMMU_IO_PGTABLE=y
|
||||
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
|
||||
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
|
||||
CONFIG_ARM_SMMU_V3=y
|
||||
@@ -1,2 +0,0 @@
|
||||
FILESEXTRAPATHS:prepend:gem5-atp-arm64 := "${THISDIR}/files:"
|
||||
SRC_URI:append:gem5-atp-arm64 = " file://no_ftrace.cfg file://smmuv3.cfg"
|
||||
@@ -56,7 +56,7 @@ def get_url_for_patch(layer: str, localpath: pathlib.Path, d) -> str:
|
||||
# TODO: assumes default branch
|
||||
if layer == "core":
|
||||
return f"https://git.openembedded.org/openembedded-core/tree/meta/{relative}"
|
||||
elif layer in ("meta-arm", "meta-arm-bsp", "arm-toolchain", "meta-atp", "meta-gem5"):
|
||||
elif layer in ("meta-arm", "meta-arm-bsp", "arm-toolchain", "meta-gem5"):
|
||||
return f"https://git.yoctoproject.org/meta-arm/tree/{layer}/{relative}"
|
||||
else:
|
||||
print(f"WARNING: Don't know web URL for layer {layer}", file=sys.stderr)
|
||||
|
||||
Reference in New Issue
Block a user