dpdk/21.11: add recipe

Release notes:
https://doc.dpdk.org/guides-21.11/rel_notes/release_21_11.html

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Naveen Saini 2021-12-08 17:24:12 +08:00 committed by Anuj Mittal
parent 2fa997c389
commit d144475b16
3 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1,45 @@
include dpdk.inc
FILESEXTRAPATHS:prepend := "${THISDIR}/dpdk:"
SRC_URI += " \
file://0001-Makefile-add-makefile.patch \
"
STABLE = "-stable"
BRANCH = "21.11"
SRCREV = "45f04d88ae8fa6217812abdaa623d66b05fc7b6a"
S = "${WORKDIR}/git"
inherit module
#kernel module needs 'rte_build_config.h', which is generated at buid time
DEPENDS += "dpdk"
export S
export STAGING_KERNEL_DIR
export STAGING_INCDIR
export INSTALL_MOD_DIR="dpdk"
do_configure[noexec] = "1"
do_compile() {
cd ${S}/kernel/linux/kni
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
KERNEL_VERSION=${KERNEL_VERSION} \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
AR="${KERNEL_AR}" \
O=${STAGING_KERNEL_BUILDDIR} \
KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
${MAKE_TARGETS}
}
do_install() {
cd ${S}/kernel/linux/kni
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
O=${STAGING_KERNEL_BUILDDIR} \
${MODULES_INSTALL_TARGET}
}

View File

@ -0,0 +1,38 @@
From 9aeb0bedf63f0f8f132194705b63ed0045452354 Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Wed, 8 Dec 2021 11:48:27 +0800
Subject: [PATCH] meson.build:-march and -mcpu already passed by Yocto
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
config/meson.build | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/config/meson.build b/config/meson.build
index 805d5d51d0..620331a736 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -127,12 +127,12 @@ dpdk_conf.set('RTE_MACHINE', cpu_instruction_set)
machine_args = []
# ppc64 does not support -march= at all, use -mcpu and -mtune for that
-if host_machine.cpu_family().startswith('ppc')
- machine_args += '-mcpu=' + cpu_instruction_set
- machine_args += '-mtune=' + cpu_instruction_set
-else
- machine_args += '-march=' + cpu_instruction_set
-endif
+#if host_machine.cpu_family().startswith('ppc')
+# machine_args += '-mcpu=' + cpu_instruction_set
+# machine_args += '-mtune=' + cpu_instruction_set
+#else
+# machine_args += '-march=' + cpu_instruction_set
+#endif
toolchain = cc.get_id()
dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
--
2.17.1

View File

@ -0,0 +1,68 @@
include dpdk.inc
SRC_URI += " \
file://0001-meson.build-march-and-mcpu-already-passed-by-Yocto-21.11.patch \
"
STABLE = "-stable"
BRANCH = "21.11"
SRCREV = "45f04d88ae8fa6217812abdaa623d66b05fc7b6a"
S = "${WORKDIR}/git"
# kernel module is provide by dpdk-module recipe, so disable here
EXTRA_OEMESON = " -Denable_kmods=false \
-Dexamples=all \
"
COMPATIBLE_MACHINE = "null"
COMPATIBLE_HOST:libc-musl:class-target = "null"
COMPATIBLE_HOST:linux-gnux32 = "null"
PACKAGECONFIG ??= " "
PACKAGECONFIG[afxdp] = ",,libbpf"
PACKAGECONFIG[libvirt] = ",,libvirt"
RDEPENDS:${PN} += "pciutils python3-core"
RDEPENDS:${PN}-examples += "bash"
DEPENDS = "numactl python3-pyelftools-native"
inherit meson
INSTALL_PATH = "${prefix}/share/dpdk"
do_install:append(){
# remove source files
rm -rf ${D}/${INSTALL_PATH}/examples/*
# Install examples
install -m 0755 -d ${D}/${INSTALL_PATH}/examples/
for dirname in ${B}/examples/dpdk-*
do
if [ ! -d ${dirname} ] && [ -x ${dirname} ]; then
install -m 0755 ${dirname} ${D}/${INSTALL_PATH}/examples/
fi
done
}
PACKAGES =+ "${PN}-examples ${PN}-tools"
FILES:${PN} = " ${bindir}/dpdk-testpmd \
${bindir}/dpdk-proc-info \
${libdir}/*.so* \
${libdir}/dpdk/pmds-22.0/*.so* \
"
FILES:${PN}-examples = " \
${prefix}/share/dpdk/examples/* \
"
FILES:${PN}-tools = " \
${bindir}/dpdk-pdump \
${bindir}/dpdk-test \
${bindir}/dpdk-test-* \
${bindir}/dpdk-*.py \
"
CVE_PRODUCT = "data_plane_development_kit"
INSANE_SKIP:${PN} = "dev-so"