From c44f0f238a1878b0db0c59e4c34a652d469f0090 Mon Sep 17 00:00:00 2001 From: Sachin Saxena Date: Fri, 4 May 2018 16:08:43 +0530 Subject: build-data: Common makefile for NXP DPAA1/DPAA2 platforms - Same makefile will be used to support DPAA1 and DPAA2 platforms. - Support added to have both on Host compilation as well as Cross compilation. - If Cross compiling, by default NXP cutomized toolchain "aarch64-fsl-linux" will be used. To use Linaro toolchains, please set env variable CROSS_PREFIX. Like: export CROSS_PREFIX=aarch64-linux-gnu - Added CPU_MTUNE to modify xxx_mtune , if CPU is not A72 which is default. - You may set DPDK_PATH to dpdk installation folder, if wish to use locally compiled DPDK. - In case of Cross compilation, OPENSSL_PATH will be required to include OPENSSL libs. Change-Id: I9057dfc57522b60e306810f684b3085bfccf85e9 Signed-off-by: Sachin Saxena --- build-data/platforms/dpaa.mk | 87 +++++++++++++++++++++++++++++++++++++++++++ build-data/platforms/dpaa2.mk | 66 -------------------------------- 2 files changed, 87 insertions(+), 66 deletions(-) create mode 100644 build-data/platforms/dpaa.mk delete mode 100644 build-data/platforms/dpaa2.mk (limited to 'build-data/platforms') diff --git a/build-data/platforms/dpaa.mk b/build-data/platforms/dpaa.mk new file mode 100644 index 00000000000..3ccabefec99 --- /dev/null +++ b/build-data/platforms/dpaa.mk @@ -0,0 +1,87 @@ +# Copyright 2018 NXP +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Configuration for NXP DPAA1/DPAA2 ARM64 based platform +MACHINE=$(shell uname -m) + +dpaa_mtune = cortex-A72 +dpaa_march = "armv8-a+fp+simd+crc+crypto" + +ifeq ($(MACHINE),aarch64) +dpaa_arch = native +else +dpaa_arch = aarch64 +dpaa_os = linux-gnu +dpaa_target = aarch64-fsl-linux +dpaa_cross_ldflags = \ + -Wl,--dynamic-linker=/lib/ld-linux-aarch64.so.1 \ + -Wl,-rpath=/usr/lib64 \ + -Wl,-rpath=./.libs \ + -Wl,-rpath=$(OPENSSL_PATH)/lib +endif + +# Re-write Default configuration, if requied +ifneq ($(CROSS_PREFIX),) +# like: aarch64-linux-gnu +dpaa_target = $(CROSS_PREFIX) +endif + +ifneq ($(CPU_MTUNE),) +# like: cortex-A53 +dpaa_mtune = $(CPU_MTUNE) +endif + +dpaa_native_tools = vppapigen +dpaa_root_packages = vpp + +# DPDK configuration parameters +dpaa_uses_dpdk = yes + +# Compile with external DPDK only if "DPDK_PATH" variable is defined where we have +# installed DPDK libraries and headers. +ifeq ($(PLATFORM),dpaa) +ifneq ($(DPDK_PATH),) +#dpaa_dpdk_shared_lib = yes +dpaa_uses_external_dpdk = yes +dpaa_dpdk_inc_dir = $(DPDK_PATH)/include/dpdk +dpaa_dpdk_lib_dir = $(DPDK_PATH)/lib +else +# compile using internal DPDK + NXP DPAA2 Driver patch +dpaa_dpdk_arch = "armv8a" +dpaa_dpdk_target = "arm64-dpaa-linuxapp-gcc" +dpaa_dpdk_make_extra_args = "CONFIG_RTE_KNI_KMOD=n" +endif +endif + +# Disable the unused plugins in order to decrease the VPP pacakage size. +vpp_configure_args_dpaa = --without-ipv6sr --with-pre-data=128 + +# Other optional vpp_configure_args +ifneq ($(VPP_CFG_ARGS),) +vpp_configure_args_dpaa += $(VPP_CFG_ARGS) +endif + + +dpaa_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -fPIC -fstack-protector-all -DFORTIFY_SOURCE=2 \ + -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include +dpaa_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -fstack-protector-all -DFORTIFY_SOURCE=2 \ + -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib + + +# Use -rdynamic is for stack tracing, O0 for debugging....default is O2 +# Use -DCLIB_LOG2_CACHE_LINE_BYTES to change cache line size +dpaa_TAG_CFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) \ + -mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include +dpaa_TAG_LDFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) \ + -mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib + diff --git a/build-data/platforms/dpaa2.mk b/build-data/platforms/dpaa2.mk deleted file mode 100644 index 2d4745acc56..00000000000 --- a/build-data/platforms/dpaa2.mk +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Configuration for NXP DPAA2 ARM64 based platform -dpaa2_arch = aarch64 -dpaa2_os = linux-gnu -dpaa2_target = aarch64-linux-gnu -dpaa2_mtune = cortex-A57 -dpaa2_march = "armv8-a+fp+simd+crc+crypto" -dpaa2_cross_ldflags = \ - -Wl,--dynamic-linker=/lib/ld-linux-aarch64.so.1 \ - -Wl,-rpath=/usr/lib64 - -dpaa2_native_tools = vppapigen -dpaa2_root_packages = vpp vlib vlib-api vnet svm vpp-api-test - -# DPDK configuration parameters -dpaa2_uses_dpdk = yes -# Compile with external DPDK only if "DPDK_PATH" variable is defined where we have -# installed DPDK libraries and headers. -ifeq ($(PLATFORM),dpaa2) -ifneq ($(DPDK_PATH),) -dpaa2_uses_dpdk = yes -dpaa2_uses_external_dpdk = yes -dpaa2_dpdk_inc_dir = $(DPDK_PATH)/include/dpdk -dpaa2_dpdk_lib_dir = $(DPDK_PATH)/lib -else -# compile using internal DPDK + NXP DPAA2 Driver patch -dpaa2_dpdk_arch = "armv8a" -dpaa2_dpdk_target = "arm64-dpaa2-linuxapp-gcc" -dpaa2_dpdk_make_extra_args = "CROSS=$(dpaa2_target)- DPDK_PKTMBUF_HEADROOM=256" -endif -endif - -vpp_configure_args_dpaa2 = --with-dpdk --without-libssl \ - --with-sysroot=$(SYSROOT) -vnet_configure_args_dpaa2 = --with-dpdk --without-libssl \ - --with-sysroot=$(SYSROOT) - -# Set these parameters carefully. The vlib_buffer_t is 256 bytes, i.e. -vlib_configure_args_dpaa2 = --with-pre-data=256 - - -dpaa2_debug_TAG_CFLAGS = -g -O2 -DCLIB_DEBUG -fPIC -fstack-protector-all \ - -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -dpaa2_debug_TAG_LDFLAGS = -g -O2 -DCLIB_DEBUG -fstack-protector-all \ - -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 - -# Use -rdynamic is for stack tracing, O0 for debugging....default is O2 -# Use -DCLIB_LOG2_CACHE_LINE_BYTES to change cache line size -dpaa2_TAG_CFLAGS = -g -O2 -fPIC -march=$(MARCH) -mcpu=$(dpaa2_mtune) \ - -mtune=$(dpaa2_mtune) -funroll-all-loops -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -dpaa2_TAG_LDFLAGS = -g -O2 -fPIC -march=$(MARCH) -mcpu=$(dpaa2_mtune) \ - -mtune=$(dpaa2_mtune) -funroll-all-loops -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 - - -- cgit 1.2.3-korg