From: Chunrong Guo <chunrong....@nxp.com> *update to lsdk 1906 tag include the following changes: 0123ced - Merge pull request #966 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq 9e58741 - Merge pull request #965 in GITAM/dpdk from 18.11-qoriq-dev-ppfe to 18.11-qoriq-dev 87b8c52 - net/ppfe: add checksum offload in capability ae172a2 - bus/dpaa: fix incorrect rte_free of malloc memory 866adf5 - Merge pull request #961 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq 0b36cdd - Merge pull request #953 in GITAM/dpdk from DPDK-1790 to 18.11-qoriq-dev 7dfce10 - PVT: nxp: supress warnings from performance script 4e26967 - PVT: nxp/README: update with loopback and no prefetch devargs option 71f3ebd - PVT: net/dpaa2: add optional non-prefetch rx mode 025c689 - PVT: eth/dpaa2: reset frc and ctrl in sg tx fd 6e8d2fe - net/ppfe: fix no ports available issue 28bfd64 - PVT: examples: l3fwd: Fix spec creation for traffic split scenario 279901c - Merge pull request #946 in GITAM/dpdk from DPDK-1799-pdcp-security to 18.11-qoriq-dev 066ff8d - crypto/dpaa_sec: update dpovrd for hfn override in PDCP 73c6c39 - Merge pull request #947 in GITAM/dpdk from DPDK-1795-ecpri to 18.11-qoriq-dev ef48961 - bus/dpaa: fix static initialization to 0 29235c3 - Merge pull request #948 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq c3a19c0 - PVT: test: restructure PDCP test cases into new file 627fc3d - Merge pull request #943 in GITAM/dpdk from feature/DPDK-1595-ovs-2.11-migration to 18.11-qoriq-dev 7b9db20 - PVT: examples/l3fwd: add support for ethtype based traffic splitting
Signed-off-by: Chunrong Guo <chunrong....@nxp.com> --- recipes-extended/dpdk/dpdk.inc | 121 +++++++++++++++++++++ .../dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch | 28 +++++ .../dpdk/0001-add-Wno-cast-function-type.patch | 2 +- .../dpdk/dpdk/0004-update-WERROR_FLAGS.patch | 41 +++++++ recipes-extended/dpdk/dpdk_17.11.bb | 107 ------------------ recipes-extended/dpdk/dpdk_18.11.bb | 7 ++ 6 files changed, 198 insertions(+), 108 deletions(-) create mode 100644 recipes-extended/dpdk/dpdk.inc create mode 100644 recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch create mode 100644 recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch delete mode 100644 recipes-extended/dpdk/dpdk_17.11.bb create mode 100644 recipes-extended/dpdk/dpdk_18.11.bb diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc new file mode 100644 index 0000000..d70932c --- /dev/null +++ b/recipes-extended/dpdk/dpdk.inc @@ -0,0 +1,121 @@ +DESCRIPTION = "Data Plane Development Kit" +HOMEPAGE = "http://dpdk.org" +LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2" +LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \ + file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ + file://0001-add-Wno-cast-function-type.patch \ + file://0001-Add-RTE_KERNELDIR_OUT.patch \ + file://0004-update-WERROR_FLAGS.patch \ +" +SRCREV = "0123ced10233e7de8a72f743e2ae7e9791124f07" + +# Don't use the default value of datadir and let the dpdk set it to a dpdk +# specific directory +datadir[unexport] = "1" + +RDEPENDS_${PN} += "python-subprocess" +DEPENDS = "virtual/kernel openssl" +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +inherit module + +export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net" +export RTE_SDK = "${S}" +export RTE_TARGET = "${ARCH}-dpaa-linuxapp-gcc" +export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include" +export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib" +export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}" +export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}" +export INSTALL_PATH = "${prefix}/share/dpdk" +export RTE_OUTPUT = "${S}/${RTE_TARGET}" +export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" +export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}" +export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac" +export OPENSSL_PATH = "${STAGING_DIR_HOST}" +export EXAMPLES_BUILD_DIR = "${RTE_TARGET}" + +S = "${WORKDIR}/git" + +do_configure () { + ############################################################# + ### default value for prefix is "usr", unsetting it, so it + ### will not be concatenated in ${RTE_TARGET}/Makefile + ### which will cause compilation failure + ############################################################# + unset prefix + + make O=$RTE_TARGET T=$RTE_TARGET config +} + +do_compile () { + unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS + + cd ${S}/${RTE_TARGET} + oe_runmake CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y \ + CONFIG_RTE_LIBRTE_PMD_OPENSSL=y \ + EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ + EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ + CROSS="${TARGET_PREFIX}" \ + prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1 + + cd ${S}/examples/ + for APP in l2fwd l3fwd cmdif l2fwd-qdma l2fwd-crypto ipsec-secgw vhost kni ip_fragmentation ip_reassembly; do + temp=`basename ${APP}` + if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ + EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ + CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}" + else + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ + EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ + CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}/" + fi + done + +} + +do_install () { + oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} + oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} + oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} + + # Install examples + install -d 0644 ${D}/usr/share/dpdk/cmdif/include + install -d 0644 ${D}/usr/share/dpdk/cmdif/lib + cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \ + examples/cmdif/lib/shbp/fsl_shbp.h ${D}/usr/share/dpdk/cmdif/include + cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/usr/share/dpdk/cmdif/lib + install -d 0644 ${D}/usr/share/dpdk/examples/ipsec_secgw + cp -r ${S}/examples/ipsec-secgw/*.cfg ${D}/usr/share/dpdk/examples/ipsec_secgw + cp -rf ${S}/nxp/* ${D}/usr/share/dpdk +} + +PACKAGES += "${PN}-examples" + +FILES_${PN}-dbg += " \ + ${INSTALL_PATH}/.debug \ + ${INSTALL_PATH}/examples/*/.debug \ + " +FILES_${PN}-staticdev += "/usr/share/dpdk/cmdif/lib/*.a \ +" +FILES_${PN}-dev += " \ + ${INSTALL_PATH}/${RTE_TARGET}/.config \ + ${includedir} \ + ${includedir}/${ARCHDIR} \ + ${includedir}/exec-env \ + ${INSTALL_PATH}/buildtools/ \ + ${INSTALL_PATH}/${RTE_TARGET}/include \ + ${INSTALL_PATH}/${RTE_TARGET}/lib \ + ${INSTALL_PATH}/mk \ + " + +FILES_${PN} += " ${INSTALL_PATH}/ \ + ${prefix}/sbin/ \ + ${prefix}/bin/ \ + ${libdir}/ \ + " +FILES_${PN}-examples += " \ + ${INSTALL_PATH}/examples/* \ + " diff --git a/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch b/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch new file mode 100644 index 0000000..20a05c4 --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch @@ -0,0 +1,28 @@ +From 4ea737c1d5a185d56ee1d6da18172b389ea90760 Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong....@nxp.com> +Date: Wed, 3 Jul 2019 08:50:45 +0200 +Subject: [PATCH] Add RTE_KERNELDIR_OUT + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: C.r. Guo <nxa13...@lsv07004.swis.us-cdc01.nxp.com> +--- + kernel/linux/kni/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile +index 282be7b..dfbebdc 100644 +--- a/kernel/linux/kni/Makefile ++++ b/kernel/linux/kni/Makefile +@@ -20,7 +20,7 @@ MODULE_CFLAGS += -Wall -Werror + + ifeq ($(DISTRIB_ID),Ubuntu) + MODULE_CFLAGS += -DUBUNTU_RELEASE_CODE=$(subst .,,$(DISTRIB_RELEASE)) +-UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR)/include/generated/utsrelease.h \ ++UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR_OUT)/include/generated/utsrelease.h \ + | cut -d '"' -f2 | cut -d- -f1,2 | tr .- ,`,1) + MODULE_CFLAGS += -D"UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION($(UBUNTU_KERNEL_CODE))" + endif +-- +2.7.4 + diff --git a/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch b/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch index 0c84682..c074eac 100644 --- a/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch +++ b/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch @@ -18,7 +18,7 @@ index d28badf..4e9851c 100644 CFLAGS += -O3 -CFLAGS += $(WERROR_FLAGS) -+CFLAGS += $(WERROR_FLAGS) -Wno-cast-function-type ++CFLAGS += $(WERROR_FLAGS) -Wno-cast-function-type -Wno-missing-attributes CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib/client CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib/server diff --git a/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch b/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch new file mode 100644 index 0000000..672d976 --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch @@ -0,0 +1,41 @@ +From 3828a36fa537a187127a1c9b82ce2f5959b88367 Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong....@nxp.com> +Date: Thu, 4 Jul 2019 08:03:56 +0200 +Subject: [PATCH] update WERROR_FLAGS + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: C.r. Guo <nxa13...@lsv07004.swis.us-cdc01.nxp.com> +--- + kernel/linux/kni/Makefile | 2 +- + mk/toolchain/gcc/rte.vars.mk | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile +index dfbebdc..8b5c13e 100644 +--- a/kernel/linux/kni/Makefile ++++ b/kernel/linux/kni/Makefile +@@ -14,7 +14,7 @@ MODULE = rte_kni + MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=50 + MODULE_CFLAGS += -I$(RTE_OUTPUT)/include -I$(SRCDIR)/ethtool/ixgbe -I$(SRCDIR)/ethtool/igb + MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h +-MODULE_CFLAGS += -Wall -Werror ++MODULE_CFLAGS += -Wall -Werror -Wno-missing-attributes + + -include /etc/lsb-release + +diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk +index aa94344..81efa1c 100644 +--- a/mk/toolchain/gcc/rte.vars.mk ++++ b/mk/toolchain/gcc/rte.vars.mk +@@ -49,6 +49,7 @@ WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual + WERROR_FLAGS += -Wformat-nonliteral -Wformat-security + WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated + WERROR_FLAGS += -Wno-error=pedantic ++WERROR_FLAGS += -Wno-address-of-packed-member + + ifeq ($(RTE_DEVEL_BUILD),y) + WERROR_FLAGS += -Werror +-- +2.7.4 + diff --git a/recipes-extended/dpdk/dpdk_17.11.bb b/recipes-extended/dpdk/dpdk_17.11.bb deleted file mode 100644 index 2eceebe..0000000 --- a/recipes-extended/dpdk/dpdk_17.11.bb +++ /dev/null @@ -1,107 +0,0 @@ -DESCRIPTION = "Data Plane Development Kit" -HOMEPAGE = "http://dpdk.org" -LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2" -LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492" - -DEPENDS += "virtual/kernel openssl" -RDEPENDS_${PN} = "bash python" -RDEPENDS_${PN}-examples = "bash python-core" - -inherit module - -SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \ - file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ - file://0001-add-Wno-cast-function-type.patch \ -" -SRCREV = "c0fe1b99b562a4015423e8ff748bfb0f55a68c05" - -S = "${WORKDIR}/git" - -DPAA_VER ?= "dpaa" -export RTE_TARGET = "${ARCH}-${DPAA_VER}-linuxapp-gcc" -export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" - -EXTRA_OEMAKE += 'ARCH="${ARCH}" CROSS="${TARGET_PREFIX}" \ - CPU_CFLAGS="-fPIC --sysroot=${STAGING_DIR_HOST}" RTE_SDK="${S}" \ - OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \ - RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" \ -' - -do_configure[noexec] = "1" - -do_compile[depends] += "virtual/kernel:do_shared_workdir" -do_compile() { - oe_runmake O="${RTE_TARGET}" T="${RTE_TARGET}" config -} - -do_install() { - unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS - - oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" WERROR_FLAGS="-w" V=1 T="${RTE_TARGET}" DESTDIR="${D}" install CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y CONFIG_RTE_LIBRTE_PMD_OPENSSL=y - - # Build and install the DPDK examples - for APP in examples/l2fwd examples/l3fwd examples/l2fwd-qdma examples/l2fwd-crypto examples/ipsec-secgw examples/kni examples/ip_fragmentation examples/ip_reassembly; do - temp=`basename ${APP}` - if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then - oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y - else - oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" -C ${APP} - fi - - [ ! -d ${D}/${bindir}/dpdk-example ] && install -d 0644 ${D}/${bindir}/dpdk-example - install -m 0755 ${S}/examples/`basename ${APP}`/build/`basename ${APP}` \ - ${D}/${bindir}/dpdk-example/ - done - oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C examples/vhost - install -m 0755 ${S}/examples/vhost/build/vhost-switch ${D}/${bindir}/dpdk-example/ - oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C examples/cmdif - - install -d 0644 ${D}/usr/share/dpdk/cmdif/include - install -d 0644 ${D}/usr/share/dpdk/cmdif/lib - cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \ - examples/cmdif/lib/shbp/fsl_shbp.h ${D}/usr/share/dpdk/cmdif/include - cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/usr/share/dpdk/cmdif/lib - - install -m 0755 ${S}/${RTE_TARGET}/app/testpmd ${D}/${bindir}/dpdk-example/ - rm -fr ${D}/lib/modules/* - install -d ${D}/lib/modules/${KERNEL_VERSION}/dpdk - install -m 0755 ${S}/${RTE_TARGET}/kmod/rte_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/dpdk/ - install -d ${D}/${bindir}/dpdk-example/extras - cp -rf ${S}/nxp/* ${D}/${bindir}/dpdk-example/extras/ - rm ${D}/${datadir}/${RTE_TARGET}/app/dpdk-pmdinfogen - - chown root:root -R ${D} -} - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -PACKAGES += "${PN}-examples" - -FILES_${PN} += "${datadir}/* ${bindir}/* ${sbindir}/* /usr/share/dpdk/cmdif/include/*" -FILES_${PN}-dbg += "${bindir}/dpdk-example/.debug \ - ${datadir}/examples/kni/build/.debug \ - ${datadir}/examples/kni/build/app/.debug \ - ${datadir}/examples/l2fwd/build/.debug \ - ${datadir}/examples/l2fwd/build/app/.debug \ - ${datadir}/examples/l2fwd-crypto/build/.debug \ - ${datadir}/examples/l2fwd-crypto/build/app/.debug \ - ${datadir}/examples/l3fwd/build/.debug \ - ${datadir}/examples/l3fwd/build/app/.debug \ - ${datadir}/examples/ipsec-secgw/build/.debug \ - ${datadir}/examples/ipsec-secgw/build/app/.debug \ - ${datadir}/examples/ip_fragmentation/build/.debug \ - ${datadir}/examples/ip_fragmentation/build/app/.debug \ - ${datadir}/examples/ip_reassembly/build/.debug \ - ${datadir}/examples/ip_reassembly/build/app/.debug \ -" -FILES_${PN}-dev += "${datadir}/mk ${datadir}/scripts \ - ${datadir}/${RTE_TARGET} \ - ${includedir} \ -" -FILES_${PN}-examples += "${datadir}/examples" - -FILES_${PN}-staticdev += "/usr/share/dpdk/cmdif/lib/*.a \ - /usr/share/examples/cmdif/lib/arm64-dpaa-linuxapp-gcc/*.a \ - /usr/share/examples/cmdif/lib/arm64-dpaa-linuxapp-gcc/lib/*.a \ -" -COMPATIBLE_MACHINE = "(qoriq)" diff --git a/recipes-extended/dpdk/dpdk_18.11.bb b/recipes-extended/dpdk/dpdk_18.11.bb new file mode 100644 index 0000000..018feba --- /dev/null +++ b/recipes-extended/dpdk/dpdk_18.11.bb @@ -0,0 +1,7 @@ +include dpdk.inc + +do_install_append () { + # Remove the unneeded dir + rm -rf ${D}/${INSTALL_PATH}/${RTE_TARGET}/app +} + -- 2.7.4 -- _______________________________________________ meta-freescale mailing list meta-freescale@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-freescale