From d144475b16b6c60e0a2ba5d5efce1c76dd86191d Mon Sep 17 00:00:00 2001 From: Naveen Saini Date: Wed, 8 Dec 2021 17:24:12 +0800 Subject: 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 Signed-off-by: Anuj Mittal --- recipes-extended/dpdk/dpdk-module_21.11.0.bb | 45 ++++++++++++++ ...ch-and-mcpu-already-passed-by-Yocto-21.11.patch | 38 ++++++++++++ recipes-extended/dpdk/dpdk_21.11.0.bb | 68 ++++++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 recipes-extended/dpdk/dpdk-module_21.11.0.bb create mode 100644 recipes-extended/dpdk/dpdk/0001-meson.build-march-and-mcpu-already-passed-by-Yocto-21.11.patch create mode 100644 recipes-extended/dpdk/dpdk_21.11.0.bb diff --git a/recipes-extended/dpdk/dpdk-module_21.11.0.bb b/recipes-extended/dpdk/dpdk-module_21.11.0.bb new file mode 100644 index 0000000..c21bc62 --- /dev/null +++ b/recipes-extended/dpdk/dpdk-module_21.11.0.bb @@ -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} +} diff --git a/recipes-extended/dpdk/dpdk/0001-meson.build-march-and-mcpu-already-passed-by-Yocto-21.11.patch b/recipes-extended/dpdk/dpdk/0001-meson.build-march-and-mcpu-already-passed-by-Yocto-21.11.patch new file mode 100644 index 0000000..a74869d --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-meson.build-march-and-mcpu-already-passed-by-Yocto-21.11.patch @@ -0,0 +1,38 @@ +From 9aeb0bedf63f0f8f132194705b63ed0045452354 Mon Sep 17 00:00:00 2001 +From: Naveen Saini +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 +--- + 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 + diff --git a/recipes-extended/dpdk/dpdk_21.11.0.bb b/recipes-extended/dpdk/dpdk_21.11.0.bb new file mode 100644 index 0000000..f7cdf0f --- /dev/null +++ b/recipes-extended/dpdk/dpdk_21.11.0.bb @@ -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" -- cgit v1.2.3-54-g00ecf