aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-extended/dpdk/dpdk.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/dpdk/dpdk.inc')
-rw-r--r--recipes-extended/dpdk/dpdk.inc108
1 files changed, 108 insertions, 0 deletions
diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
new file mode 100644
index 00000000..9004acc7
--- /dev/null
+++ b/recipes-extended/dpdk/dpdk.inc
@@ -0,0 +1,108 @@
+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"
+
+RDEPENDS_${PN} += "python-subprocess"
+DEPENDS = "virtual/kernel openssl"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit module
+
+export RTE_TARGET = "${ARCH}-dpaa-linuxapp-gcc"
+export RTE_OUTPUT = "${S}/${RTE_TARGET}"
+export MODULE_DIR = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE += 'ETHTOOL_LIB_PATH="${S}/examples/ethtool/lib/${RTE_TARGET}" RTE_SDK="${S}" \
+ OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \
+ RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" EXAMPLES_BUILD_DIR="${RTE_TARGET}" \
+'
+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
+ oe_runmake 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}/${datadir}/dpdk/cmdif/include
+ install -d 0644 ${D}/${datadir}/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}/${datadir}/dpdk/cmdif/include
+ cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/${datadir}/dpdk/cmdif/lib
+ install -d 0644 ${D}/${datadir}/dpdk/examples/ipsec_secgw
+ cp -r ${S}/examples/ipsec-secgw/*.cfg ${D}/${datadir}/dpdk/examples/ipsec_secgw
+ cp -rf ${S}/nxp/* ${D}/${datadir}/dpdk
+}
+
+PACKAGES += "${PN}-examples"
+
+FILES_${PN}-dbg += " \
+ ${datadir}/dpdk/.debug \
+ ${datadir}/dpdk/examples/*/.debug \
+ "
+FILES_${PN}-staticdev += "${datadir}/dpdk/cmdif/lib/*.a \
+"
+FILES_${PN}-dev += " \
+ ${datadir}/dpdk/${RTE_TARGET}/.config \
+ ${includedir} \
+ ${includedir}/exec-env \
+ ${datadir}/dpdk/buildtools/ \
+ ${datadir}/dpdk/${RTE_TARGET}/include \
+ ${datadir}/dpdk/${RTE_TARGET}/lib \
+ ${datadir}/dpdk/mk \
+ "
+
+FILES_${PN} += " ${datadir}/ \
+ ${prefix}/sbin/ \
+ ${prefix}/bin/ \
+ ${libdir}/ \
+ "
+FILES_${PN}-examples += " \
+ ${datadir}/examples/* \
+ "