dpdk/Makefile - Allow dpdk target to be set according to the platform

Allows DPDK parameters to be overriden from the platform
definition.

$(PLATFORM)_dpdk_arch = "armv7a"
$(PLATFORM)_dpdk_target = "arm-armv7a-linuxapp-gcc"
$(PLATFORM)_dpdk_make_extra_args = "CONFIG_RTE_EAL_IGB_UIO=y"

Change-Id: I8c0f233942744cb82ca3ed2d65e33acee845cb4e
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
This commit is contained in:
Christophe Fontaine
2016-05-11 08:40:33 +00:00
committed by Damjan Marion
parent 95c8415531
commit 737547efc3
3 changed files with 31 additions and 4 deletions

View File

@ -17,6 +17,16 @@ DPDK_MAKE_ARGS = -C $(call find_source_fn,$(PACKAGE_SOURCE)) \
DPDK_DEBUG=$(DPDK_DEBUG)
TARGET=$(strip $($(PLATFORM)_dpdk_target))
ifneq ($(TARGET),)
DPDK_MAKE_ARGS += DPDK_TARGET=$(TARGET)
endif
DPDK_MAKE_EXTRA_ARGS = $(strip $($(PLATFORM)_dpdk_make_extra_args))
ifneq ($(DPDK_MAKE_EXTRA_ARGS),)
DPDK_MAKE_ARGS += DPDK_MAKE_EXTRA_ARGS="$(DPDK_MAKE_EXTRA_ARGS)"
endif
dpdk_configure = echo
dpdk_make_args = $(DPDK_MAKE_ARGS) config

View File

@ -15,16 +15,24 @@
arm32_arch = native
arm32_native_tools = vppapigen
arm32_uses_dpdk = no
arm32_uses_dpdk = yes
arm32_uses_openssl = no
arm32_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \
vpp-japi gmod
vlib_configure_args_arm32 = --with-pre-data=128
vnet_configure_args_arm32 = --with-dpdk --without-vcgn --without-ipsec --without-ipv6sr
vpp_configure_args_arm32 = --with-dpdk --without-vcgn --without-ipsec --without-ipv6sr
arm32_dpdk_arch = "armv7a"
arm32_dpdk_target = "arm-armv7a-linuxapp-gcc"
arm32_dpdk_make_extra_args = "CPU_CFLAGS='-mfloat-abi=hard' \
CONFIG_RTE_EAL_IGB_UIO=y \
CONFIG_RTE_LIBRTE_E1000_PMD=y \
CONFIG_RTE_MAX_LCORE=4 \
CONFIG_RTE_MAX_NUMA_NODES=1"
vnet_configure_args_arm32 = --without-vcgn --without-ipsec --without-ipv6sr
vpp_configure_args_arm32 = --without-vcgn --without-ipsec --without-ipv6sr
arm32_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \
-fstack-protector-all -fPIC -Werror

View File

@ -38,7 +38,11 @@ else
DPDK_CC=gcc
endif
ifeq (,$(DPDK_TARGET))
DPDK_TARGET := x86_64-native-linuxapp-$(DPDK_CC)
endif
JOBS := $(shell grep processor /proc/cpuinfo | wc -l)
# compiler/linker custom arguments
@ -63,6 +67,10 @@ else ifeq ($(DPDK_MARCH),core-avx-i)
DPDK_MACHINE:=ivb # Ivy Bridge
else ifeq ($(DPDK_MARCH),core-avx2)
DPDK_MACHINE:=hsw # Haswell
else ifeq ($(DPDK_MARCH),armv7a)
DPDK_MACHINE:=armv7a # ARMv7
else ifeq ($(DPDK_MARCH),armv8a)
DPDK_MACHINE:=armv8a # ARMv8
else
$(error Unknown DPDK_MARCH)
endif
@ -75,7 +83,8 @@ DPDK_MAKE_ARGS := -C $(DPDK_SOURCE) -j $(JOBS) \
EXTRA_CFLAGS="$(DPDK_EXTRA_CFLAGS)" \
EXTRA_LDFLAGS="$(DPDK_EXTRA_LDFLAGS)" \
CPU_CFLAGS="$(DPDK_CPU_CFLAGS)" \
CPU_LDFLAGS="$(DPDK_CPU_LDFLAGS)"
CPU_LDFLAGS="$(DPDK_CPU_LDFLAGS)" \
$(DPDK_MAKE_EXTRA_ARGS)
DPDK_SOURCE_FILES := $(shell [ -e $(DPDK_SOURCE) ] && find $(DPDK_SOURCE) -name "*.[chS]")