From 829a48548fe545a6f9cefbf043e4440fc6c746bc Mon Sep 17 00:00:00 2001 From: venkatasubramanian pattu Date: Fri, 8 May 2015 12:08:50 +0800 Subject: meta-isg: Intel DPDK v1.6 recipe under recipes-extended This is an initial version of Intel Data Plane Development Kits (DPDK) recipe support. This recipe is targeting on Intel DPDK v1.6.0r2. Intel DPDK is needed for several IoTG maintained BSPs such as Crystal Forest & Highland Forest, Mohon Peak. Therefore, we place DPDK recipe under meta-isg/common/recipes-extended folder. This recipe is cherry-picked from branch dizzy and the commit ID: c249763d3cb92bd06742b7986f08cf844ddb1d51:meta-intel/common: Initial Intel DPDK recipe under recipes-extended This commit is removed in latest dizzy (1.7) due to build failure. DPDK v1.7 & v1.6 are validated on Linux kernel v3.10 and not supported on Linux kernel v3.17. Therefore, this recipe is intended to be supported only on Linux kernel v3.10 for all CID related platforms like Crystal Forest and Highland Forest. Signed-off-by: venkatasubramanian pattu Signed-off-by: Saul Wold --- ...ix-build-switches-to-enable-cmdline-tests.patch | 52 ++++++++++++++++++++++ ...dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch | 34 ++++++++++++++ ...k-1.6.0r2-examples-qos_sched-fix-makefile.patch | 34 ++++++++++++++ .../common/recipes-extended/dpdk/dpdk_1.6.0r2.bb | 44 ++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch create mode 100644 meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch new file mode 100644 index 00000000..8ca6bfe1 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch @@ -0,0 +1,52 @@ +From cf953d2bfa7df9aa67459b333db4d4d8a9e72fd6 Mon Sep 17 00:00:00 2001 +From: Thomas Monjalon +Date: Fri, 27 Jun 2014 11:21:11 +0200 +Subject: [PATCH] app/test: fix build switches to enable cmdline tests + +Upstream-Status: backport +Imported patch from: http://dpdk.org/browse/dpdk/log/ + +There were 2 typos since these commits (in 1.6.0 releases): + 21a7f4e264 fix build without librte_cmdline + cac6d08c8b replace --use-device option by --pci-whitelist and --vdev +In makefiles, the build options are prefixed with CONFIG_RTE_ +but in .c file, it is only RTE_. + +These typos were disabling cmdline unit tests and test of "--vdev eth_ring" option. + +Signed-off-by: Thomas Monjalon +Acked-by: Pablo de Lara +Signed-off-by: Chan Wei Sern +--- + app/test/test_cmdline.c | 2 +- + app/test/test_eal_flags.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/app/test/test_cmdline.c b/app/test/test_cmdline.c +index 77475c4..10a3f77 100644 +--- a/app/test/test_cmdline.c ++++ b/app/test/test_cmdline.c +@@ -39,7 +39,7 @@ + int + test_cmdline(void) + { +-#ifdef CONFIG_RTE_LIBRTE_CMDLINE ++#ifdef RTE_LIBRTE_CMDLINE + printf("Testind parsing ethernet addresses...\n"); + if (test_parse_etheraddr_valid() < 0) + return -1; +diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c +index a862654..1b80b80 100644 +--- a/app/test/test_eal_flags.c ++++ b/app/test/test_eal_flags.c +@@ -317,7 +317,7 @@ test_whitelist_flag(void) + const char *wlval3[] = {prgname, prefix, mp_flag, "-n", "1", "-c", "1", + pci_whitelist, "09:0B.3,type=test", + pci_whitelist, "08:00.1,type=normal", +-#ifdef CONFIG_RTE_LIBRTE_PMD_RING ++#ifdef RTE_LIBRTE_PMD_RING + vdev, "eth_ring,arg=test", + #endif + }; +-- +1.9.1 diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch new file mode 100644 index 00000000..8204e5a1 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch @@ -0,0 +1,34 @@ +From be1816f59e772e427fc5815281f9458a9314973a Mon Sep 17 00:00:00 2001 +From: Pablo de Lara +Date: Thu, 19 Jun 2014 16:35:22 +0100 +Subject: [PATCH] eal: fix option --base-virtaddr + +Upstream-Status: backport +Imported patch from: http://dpdk.org/browse/dpdk/log/ + +When parsing EAL option --base-virtaddr +errno was not being set to 0 before calling strtoull, +therefore function might fail unnecesarily. + +Signed-off-by: Pablo de Lara +Signed-off-by: Aaron Campbell +Acked-by: Anatoly Burakov +Signed-off-by: Chan Wei Sern +--- + lib/librte_eal/linuxapp/eal/eal.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c +index 6994303..d204387 100644 +--- a/lib/librte_eal/linuxapp/eal/eal.c ++++ b/lib/librte_eal/linuxapp/eal/eal.c +@@ -562,6 +562,7 @@ eal_parse_base_virtaddr(const char *arg) + char *end; + uint64_t addr; + ++ errno = 0; + addr = strtoull(arg, &end, 16); + + /* check for errors */ +-- +1.9.1 diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch new file mode 100644 index 00000000..d1eb8dcf --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch @@ -0,0 +1,34 @@ +From ea9a59b26c3c86b498337e968ee8f68c4e263614 Mon Sep 17 00:00:00 2001 +From: Olivier Matz +Date: Fri, 16 May 2014 10:18:59 +0200 +Subject: [PATCH] examples/qos_sched: fix makefile + +Upstream-Status: backport +Imported patch from: http://dpdk.org/browse/dpdk/log/ + +The example does not compile as the linker complains about duplicated +symbols. + +Remove -lsched from LDLIBS, it is already present in rte.app.mk and +added by the DPDK framework automatically. + +Signed-off-by: Olivier Matz +Acked-by: Thomas Monjalon +Signed-off-by: Chan Wei Sern +--- + examples/qos_sched/Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile +index b91fe37..9366efe 100755 +--- a/examples/qos_sched/Makefile ++++ b/examples/qos_sched/Makefile +@@ -54,6 +54,4 @@ CFLAGS += $(WERROR_FLAGS) + CFLAGS_args.o := -D_GNU_SOURCE + CFLAGS_cfg_file.o := -D_GNU_SOURCE + +-LDLIBS += -lrte_sched +- + include $(RTE_SDK)/mk/rte.extapp.mk +-- +1.9.1 diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb b/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb new file mode 100644 index 00000000..a507d4e9 --- /dev/null +++ b/meta-isg/common/recipes-extended/dpdk/dpdk_1.6.0r2.bb @@ -0,0 +1,44 @@ +include dpdk.inc + + +SRC_URI = "http://dpdk.org/browse/dpdk/snapshot/dpdk-${PV}.tar.gz;name=dpdk \ + file://dpdk-1.6.0r2-examples-qos_sched-fix-makefile.patch \ + file://dpdk-1.6.0r2-app-test-fix-build-switches-to-enable-cmdline-tests.patch \ + file://dpdk-1.6.0r2-eal-fix-option-base-virtaddr.patch \ + " + + +SRC_URI[dpdk.md5sum] = "f406d027320fc8e724bff20db5397cbb" +SRC_URI[dpdk.sha256sum] = "e72fdebcf8a899fc58e60c9b6493b7457576eece60b08dea6aee96c9087df4b2" + +export EXAMPLES_BUILD_DIR = "build" + +do_compile_append () { + + ################################################################### + ### Compilation for examples + ### Skip dpdk_qat due to it has dependency with qat source code + ### Skip vhost due to it has dependency to fuse libraries + ### Skip vhost_xen due to it has dependency to xen libraries + ################################################################### + for app in ${S}/examples/* + do + + [ `basename ${app}` = "dpdk_qat" -o `basename ${app}` = "vhost" -o `basename ${app}` = "vhost_xen" ] && continue; + + cd ${app} + + ############################################################### + # netmap_compat is putting the binary in a directory path + # which is different from rest of the example apps, so this + # special case is handled here to avoid installation failure + # with dpdk-1.6.0 + ############################################################### + if [ `basename ${app}` == "netmap_compat" ]; then + oe_runmake CROSS="${TARGET_PREFIX}" O="${app}/bridge/${EXAMPLES_BUILD_DIR}/" + else + oe_runmake CROSS="${TARGET_PREFIX}" + fi + done + +} -- cgit v1.2.3-54-g00ecf