From: Nicolas Chautru <nicolas.chautru@intel.com>
To: thomas@monjalon.net, akhil.goyal@nxp.com, dev@dpdk.org^[\b\b
Cc: ferruh.yigit@intel.com, Nicolas Chautru <nicolas.chautru@intel.com>
Subject: [dpdk-dev] [PATCH v2 2/3] baseband/turbo_sw: option to build turbosw PMD without SDK
Date: Wed, 5 Jun 2019 13:06:35 -0700 [thread overview]
Message-ID: <1559765196-250614-3-git-send-email-nicolas.chautru@intel.com> (raw)
In-Reply-To: <1559765196-250614-1-git-send-email-nicolas.chautru@intel.com>
Adding compile flag to allow to build the turbo_sw PMD
without dependency to have the SDK libraries installed.
Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
config/common_base | 3 +-
drivers/baseband/turbo_sw/Makefile | 13 ++++----
drivers/baseband/turbo_sw/bbdev_turbo_software.c | 39 +++++++++++++++++++++++-
mk/rte.app.mk | 3 ++
4 files changed, 50 insertions(+), 8 deletions(-)
diff --git a/config/common_base b/config/common_base
index 6b96e0e..bc80209 100644
--- a/config/common_base
+++ b/config/common_base
@@ -523,6 +523,7 @@ CONFIG_RTE_PMD_PACKET_PREFETCH=y
CONFIG_RTE_LIBRTE_BBDEV=y
CONFIG_RTE_BBDEV_MAX_DEVS=128
CONFIG_RTE_BBDEV_OFFLOAD_COST=y
+CONFIG_RTE_BBDEV_SDK_AVX2=n
#
# Compile PMD for NULL bbdev device
@@ -532,7 +533,7 @@ CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL=y
#
# Compile PMD for turbo software bbdev device
#
-CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=n
+CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=y
#
# Compile generic crypto device library
diff --git a/drivers/baseband/turbo_sw/Makefile b/drivers/baseband/turbo_sw/Makefile
index d364677..414d0d9 100644
--- a/drivers/baseband/turbo_sw/Makefile
+++ b/drivers/baseband/turbo_sw/Makefile
@@ -3,9 +3,6 @@
include $(RTE_SDK)/mk/rte.vars.mk
-ifeq ($(FLEXRAN_SDK),)
-$(error "Please define FLEXRAN_SDK environment variable")
-endif
# library name
LIB = librte_pmd_bbdev_turbo_sw.a
@@ -21,17 +18,21 @@ LDLIBS += -lrte_bus_vdev
# versioning export map
EXPORT_MAP := rte_pmd_bbdev_turbo_sw_version.map
-# external library dependencies
+# external library dependencies if available
+ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
+ifeq ($(FLEXRAN_SDK),)
+$(error "Please define FLEXRAN_SDK environment variable")
+endif
CFLAGS += -I$(FLEXRAN_SDK)/lib_common
CFLAGS += -I$(FLEXRAN_SDK)/lib_turbo
CFLAGS += -I$(FLEXRAN_SDK)/lib_crc
CFLAGS += -I$(FLEXRAN_SDK)/lib_rate_matching
-
LDLIBS += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
LDLIBS += -L$(FLEXRAN_SDK)/lib_crc -lcrc
LDLIBS += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
LDLIBS += -L$(FLEXRAN_SDK)/lib_common -lcommon
-LDLIBS += -lstdc++ -lirc -limf -lipps
+LDLIBS += -lstdc++ -lirc -limf -lipps -lsvml
+endif
# library version
LIBABIVER := 1
diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
index 5204a77..4781de0 100644
--- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c
+++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
@@ -14,10 +14,11 @@
#include <rte_bbdev.h>
#include <rte_bbdev_pmd.h>
+#ifdef RTE_BBDEV_SDK_AVX2
#include <phy_turbo.h>
#include <phy_crc.h>
#include <phy_rate_match.h>
-#include <divide.h>
+#endif
#define DRIVER_NAME baseband_turbo_sw
@@ -143,6 +144,7 @@ struct turbo_sw_queue {
struct bbdev_private *internals = dev->data->dev_private;
static const struct rte_bbdev_op_cap bbdev_capabilities[] = {
+#ifdef RTE_BBDEV_SDK_AVX2
{
.type = RTE_BBDEV_OP_TURBO_DEC,
.cap.turbo_dec = {
@@ -172,6 +174,7 @@ struct turbo_sw_queue {
.num_buffers_dst = RTE_BBDEV_MAX_CODE_BLOCKS,
}
},
+#endif
RTE_BBDEV_END_OF_CAPABILITIES_LIST()
};
@@ -472,6 +475,7 @@ struct turbo_sw_queue {
struct rte_mbuf *m_out, uint16_t in_offset, uint16_t out_offset,
uint16_t in_length, struct rte_bbdev_stats *q_stats)
{
+#ifdef RTE_BBDEV_SDK_AVX2
int ret;
int16_t k_idx;
uint16_t m;
@@ -724,6 +728,22 @@ struct turbo_sw_queue {
}
*tmp_out = 0;
}
+#else
+ RTE_SET_USED(q);
+ RTE_SET_USED(op);
+ RTE_SET_USED(r);
+ RTE_SET_USED(c);
+ RTE_SET_USED(k);
+ RTE_SET_USED(ncb);
+ RTE_SET_USED(e);
+ RTE_SET_USED(m_in);
+ RTE_SET_USED(m_out_head);
+ RTE_SET_USED(m_out);
+ RTE_SET_USED(in_offset);
+ RTE_SET_USED(out_offset);
+ RTE_SET_USED(in_length);
+ RTE_SET_USED(q_stats);
+#endif
}
static inline void
@@ -856,6 +876,7 @@ struct turbo_sw_queue {
uint16_t crc24_overlap, uint16_t in_length,
struct rte_bbdev_stats *q_stats)
{
+#ifdef RTE_BBDEV_SDK_AVX2
int ret;
int32_t k_idx;
int32_t iter_cnt;
@@ -972,6 +993,22 @@ struct turbo_sw_queue {
rte_bbdev_log(ERR, "Turbo Decoder failed");
return;
}
+#else
+ RTE_SET_USED(q);
+ RTE_SET_USED(op);
+ RTE_SET_USED(c);
+ RTE_SET_USED(k);
+ RTE_SET_USED(kw);
+ RTE_SET_USED(m_in);
+ RTE_SET_USED(m_out_head);
+ RTE_SET_USED(m_out);
+ RTE_SET_USED(in_offset);
+ RTE_SET_USED(out_offset);
+ RTE_SET_USED(check_crc_24b);
+ RTE_SET_USED(crc24_overlap);
+ RTE_SET_USED(in_length);
+ RTE_SET_USED(q_stats);
+#endif
}
static inline void
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 7c9b4b5..878cc31 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -221,11 +221,14 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_NULL) += -lrte_pmd_bbdev_null
# TURBO SOFTWARE PMD is dependent on the FLEXRAN library
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lrte_pmd_bbdev_turbo_sw
+ifeq ($(CONFIG_RTE_BBDEV_SDK_AVX2),y)
+# Dependency on the FLEXRAN SDK library if available
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_crc -lcrc
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_turbo -lturbo
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_rate_matching -lrate_matching
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -L$(FLEXRAN_SDK)/lib_common -lcommon
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW) += -lirc -limf -lstdc++ -lipps
+endif # CONFIG_RTE_BBDEV_SDK_AVX2
endif # CONFIG_RTE_LIBRTE_BBDEV
ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
--
1.8.3.1
next prev parent reply other threads:[~2019-06-05 20:08 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-05 17:38 [dpdk-dev] [PATCH] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-05 17:38 ` [dpdk-dev] [PATCH] baseband/turbo_sw: Option to build turbosw PMD without SDK Nicolas Chautru
2019-06-05 17:47 ` Thomas Monjalon
2019-06-05 20:06 ` [dpdk-dev] [PATCH v2 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-05 20:06 ` [dpdk-dev] [PATCH v2 1/3] version: 19.05-rc4 Nicolas Chautru
2019-06-05 20:06 ` Nicolas Chautru [this message]
2019-06-05 20:06 ` [dpdk-dev] [PATCH v2 3/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-05 20:10 ` [dpdk-dev] [PATCH v2 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-05 20:10 ` [dpdk-dev] [PATCH v2 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-05 20:10 ` [dpdk-dev] [PATCH v2 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-06 10:34 ` Ferruh Yigit
2019-06-06 17:03 ` Chautru, Nicolas
2019-06-05 20:10 ` [dpdk-dev] [PATCH v2 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-05 21:20 ` [dpdk-dev] [PATCH v2 0/3] baseband/fpga_lte_fec: adding driver for FEC on FPGA Nicolas Chautru
2019-06-05 21:20 ` [dpdk-dev] [PATCH v2 1/3] " Nicolas Chautru
2019-06-06 9:04 ` [dpdk-dev] [PATCH v3] " Nicolas Chautru
2019-06-06 9:04 ` Nicolas Chautru
2019-06-08 0:17 ` [dpdk-dev] [PATCH v4] " Nicolas Chautru
2019-06-08 0:17 ` Nicolas Chautru
2019-06-10 17:01 ` Nicolas Chautru
2019-06-10 17:01 ` Nicolas Chautru
[not found] ` <EEA9FF629BF25B47BD67ADE995041EE2496A888B@IRSMSX103.ger.corp.intel.com>
2019-06-13 17:05 ` Chautru, Nicolas
2019-06-13 17:28 ` [dpdk-dev] [PATCH v5] " Nicolas Chautru
2019-06-13 17:28 ` Nicolas Chautru
2019-06-14 16:12 ` [dpdk-dev] [PATCH v6] " Nicolas Chautru
2019-06-14 16:12 ` [dpdk-dev] [PATCH v5] " Nicolas Chautru
2019-06-14 16:17 ` [dpdk-dev] [PATCH v6] " Nicolas Chautru
2019-06-14 16:17 ` Nicolas Chautru
2019-06-19 15:20 ` Chautru, Nicolas
[not found] ` <EEA9FF629BF25B47BD67ADE995041EE2496B2975@IRSMSX103.ger.corp.intel.com>
2019-06-20 13:35 ` Ferruh Yigit
2019-06-25 12:37 ` Akhil Goyal
2019-06-06 10:17 ` [dpdk-dev] [PATCH v3 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-06 10:17 ` [dpdk-dev] [PATCH v3 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-07 23:54 ` [dpdk-dev] [PATCH v4 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-07 23:54 ` [dpdk-dev] [PATCH v4 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-13 16:51 ` [dpdk-dev] [PATCH v5 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-13 16:51 ` [dpdk-dev] [PATCH v5 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-19 17:11 ` [dpdk-dev] [PATCH v6 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-19 17:11 ` [dpdk-dev] [PATCH v6 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-19 17:48 ` [dpdk-dev] [PATCH v7 0/3] BBDEV turbo_sw PMD compilation fix Nicolas Chautru
2019-06-19 17:48 ` [dpdk-dev] [PATCH v7 1/3] baseband/turbo_sw: option to build turbosw PMD without SDK Nicolas Chautru
2019-06-20 22:42 ` Mokhtar, Amr
2019-06-19 17:48 ` [dpdk-dev] [PATCH v7 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-07-07 8:59 ` Thomas Monjalon
2019-06-19 17:48 ` [dpdk-dev] [PATCH v7 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-20 17:33 ` [dpdk-dev] [PATCH v7 0/3] BBDEV turbo_sw PMD compilation fix Ferruh Yigit
2019-06-25 12:41 ` Akhil Goyal
2019-06-19 17:11 ` [dpdk-dev] [PATCH v6 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-19 17:11 ` [dpdk-dev] [PATCH v6 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-20 0:05 ` Aaron Conole
2019-06-20 0:34 ` Chautru, Nicolas
2019-06-13 16:51 ` [dpdk-dev] [PATCH v5 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-13 16:51 ` [dpdk-dev] [PATCH v5 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-07 23:54 ` [dpdk-dev] [PATCH v4 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-07 23:54 ` [dpdk-dev] [PATCH v4 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-06 10:17 ` [dpdk-dev] [PATCH v3 2/3] docs/guides: updating turbo_sw building steps Nicolas Chautru
2019-06-06 10:17 ` [dpdk-dev] [PATCH v3 3/3] baseband/turbo_sw: meson build support for PMD driver Nicolas Chautru
2019-06-05 21:20 ` [dpdk-dev] [PATCH v2 2/3] doc/guides: documentation for the FPGA BBDEV PMD Nicolas Chautru
2019-06-05 21:21 ` [dpdk-dev] [PATCH v2 3/3] baseband/fpga_lte_fec: meson support Nicolas Chautru
2019-06-06 8:25 ` Bruce Richardson
2019-06-06 10:16 ` Ferruh Yigit
2019-06-06 16:39 ` Chautru, Nicolas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1559765196-250614-3-git-send-email-nicolas.chautru@intel.com \
--to=nicolas.chautru@intel.com \
--cc=akhil.goyal@nxp.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).