1
0
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:
Ross Burton
2022-12-09 13:44:58 +00:00
parent 64d1f783b9
commit c7b85230a2
22 changed files with 2 additions and 274 deletions
+1 -4
View File
@@ -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
-4
View File
@@ -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.
-15
View File
@@ -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
View File
@@ -1 +0,0 @@
See ../README.md
-9
View File
@@ -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"
-15
View File
@@ -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"
-13
View File
@@ -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...]
```
-37
View File
@@ -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
```
-11
View File
@@ -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"
+1 -1
View File
@@ -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)