2017-12-19 15:49:01 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright(c) 2010-2017 Intel Corporation
|
2014-06-05 05:08:46 +00:00
|
|
|
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
|
|
|
|
#
|
|
|
|
# library name
|
|
|
|
#
|
|
|
|
LIB = librte_pmd_i40e.a
|
|
|
|
|
|
|
|
CFLAGS += -O3
|
2015-04-30 15:03:11 +00:00
|
|
|
CFLAGS += $(WERROR_FLAGS) -DPF_DRIVER -DVF_DRIVER -DINTEGRATED_VF
|
2016-12-10 11:24:53 +00:00
|
|
|
CFLAGS += -DX722_A0_SUPPORT
|
net/i40e: add support for representor ports
Add support for virtual function representor ports to the i40e PF
driver. When SR-IOV virtual functions devices are enabled a
corresponding representor port for each VF can be enabled, in the
process in which the i40e PMD is running, by specifying the
representor devargs with the list of VF ports that representors
are to be created for.
An example of the devargs which would create VF representor for virtual
functions 0,2,4,5,6 and 7 is:
-w DBDF,representor=[0,2,4-7]
and to just specify a single representor on virtual function 3 (switch
port id):
-w DBDF,representor=3
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-26 10:41:04 +00:00
|
|
|
|
2017-10-12 16:04:21 +00:00
|
|
|
LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
|
|
|
|
LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
|
2017-10-26 10:06:08 +00:00
|
|
|
LDLIBS += -lrte_bus_pci
|
2014-06-05 05:08:46 +00:00
|
|
|
|
2015-02-02 17:40:20 +00:00
|
|
|
EXPORT_MAP := rte_pmd_i40e_version.map
|
|
|
|
|
2014-06-24 08:03:02 +00:00
|
|
|
#
|
|
|
|
# Add extra flags for base driver files (also known as shared code)
|
|
|
|
# to disable warnings
|
|
|
|
#
|
2016-05-26 11:20:14 +00:00
|
|
|
ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
|
2018-04-13 22:21:09 +00:00
|
|
|
CFLAGS_BASE_DRIVER = -diag-disable 593
|
2016-05-26 11:20:14 +00:00
|
|
|
else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
|
2014-07-07 23:36:55 +00:00
|
|
|
CFLAGS_BASE_DRIVER += -Wno-sign-compare
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-value
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-parameter
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-format
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
|
2015-05-18 15:40:56 +00:00
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-variable
|
2014-06-05 05:08:46 +00:00
|
|
|
else
|
2014-10-13 07:18:19 +00:00
|
|
|
CFLAGS_BASE_DRIVER = -Wno-sign-compare
|
2014-06-24 08:03:02 +00:00
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-value
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-parameter
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-strict-aliasing
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-format
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-format-nonliteral
|
|
|
|
CFLAGS_BASE_DRIVER += -Wno-format-security
|
2015-04-30 15:03:21 +00:00
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-variable
|
2014-10-13 07:18:19 +00:00
|
|
|
|
2015-02-24 10:46:56 +00:00
|
|
|
ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1)
|
2014-10-13 07:18:19 +00:00
|
|
|
CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
|
|
|
|
endif
|
|
|
|
|
2014-06-24 05:22:57 +00:00
|
|
|
CFLAGS_i40e_lan_hmc.o += -Wno-error
|
2014-06-05 05:08:46 +00:00
|
|
|
endif
|
2017-10-12 13:15:52 +00:00
|
|
|
OBJS_BASE_DRIVER=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
|
2014-06-24 08:03:02 +00:00
|
|
|
$(foreach obj, $(OBJS_BASE_DRIVER), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
|
2014-06-05 05:08:46 +00:00
|
|
|
|
2015-05-18 11:05:12 +00:00
|
|
|
VPATH += $(SRCDIR)/base
|
2014-06-05 05:08:46 +00:00
|
|
|
|
|
|
|
#
|
|
|
|
# all source are stored in SRCS-y
|
2016-06-14 13:56:37 +00:00
|
|
|
# base driver is based on the package of dpdk-i40e.2016.04.18.12.tar.gz.
|
2014-06-05 05:08:46 +00:00
|
|
|
#
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_adminq.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_common.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_diag.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_hmc.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_lan_hmc.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_nvm.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_dcb.c
|
|
|
|
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_rxtx.c
|
2016-10-14 04:00:01 +00:00
|
|
|
ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_neon.c
|
2017-02-23 04:39:08 +00:00
|
|
|
else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_altivec.c
|
2016-10-14 04:00:01 +00:00
|
|
|
else
|
2016-10-14 04:00:03 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_sse.c
|
2016-10-14 04:00:01 +00:00
|
|
|
endif
|
2014-06-05 05:08:46 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev_vf.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_pf.c
|
2014-11-21 00:46:35 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_fdir.c
|
2017-01-06 05:27:09 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_flow.c
|
2017-04-11 08:31:23 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += rte_pmd_i40e.c
|
2017-06-29 04:23:38 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_tm.c
|
net/i40e: add support for representor ports
Add support for virtual function representor ports to the i40e PF
driver. When SR-IOV virtual functions devices are enabled a
corresponding representor port for each VF can be enabled, in the
process in which the i40e PMD is running, by specifying the
representor devargs with the list of VF ports that representors
are to be created for.
An example of the devargs which would create VF representor for virtual
functions 0,2,4,5,6 and 7 is:
-w DBDF,representor=[0,2,4-7]
and to just specify a single representor on virtual function 3 (switch
port id):
-w DBDF,representor=3
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-26 10:41:04 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_vf_representor.c
|
2014-11-21 00:46:35 +00:00
|
|
|
|
2019-05-16 18:28:03 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR),y)
|
2018-01-09 14:32:53 +00:00
|
|
|
ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
|
|
|
|
CC_AVX2_SUPPORT=1
|
|
|
|
else
|
|
|
|
CC_AVX2_SUPPORT=\
|
|
|
|
$(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
|
|
|
|
grep -q AVX2 && echo 1)
|
|
|
|
ifeq ($(CC_AVX2_SUPPORT), 1)
|
|
|
|
ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
|
|
|
|
CFLAGS_i40e_rxtx_vec_avx2.o += -march=core-avx2
|
|
|
|
else
|
|
|
|
CFLAGS_i40e_rxtx_vec_avx2.o += -mavx2
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
2019-05-16 18:28:03 +00:00
|
|
|
endif
|
2018-01-09 14:32:53 +00:00
|
|
|
|
|
|
|
ifeq ($(CC_AVX2_SUPPORT), 1)
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_avx2.c
|
2019-05-16 18:28:03 +00:00
|
|
|
CFLAGS_i40e_rxtx.o += -DCC_AVX2_SUPPORT
|
2018-01-09 14:32:53 +00:00
|
|
|
endif
|
|
|
|
|
2017-01-17 08:45:03 +00:00
|
|
|
# install this header file
|
|
|
|
SYMLINK-$(CONFIG_RTE_LIBRTE_I40E_PMD)-include := rte_pmd_i40e.h
|
2016-04-14 16:02:35 +00:00
|
|
|
|
2014-06-05 05:08:46 +00:00
|
|
|
include $(RTE_SDK)/mk/rte.lib.mk
|