a986c2b797
IOVA mode in DPDK is either PA or VA. The new build option enable_iova_as_pa configures the mode to PA at compile time. By default, this option is enabled. If the option is disabled, only drivers which support it are enabled. Supported driver can set the flag pmd_supports_disable_iova_as_pa in its build file. mbuf structure holds the physical (PA) and virtual address (VA). If IOVA as PA is disabled at compile time, PA field (buf_iova) of mbuf is redundant as it is the same as VA and is replaced by a dummy field. Signed-off-by: Shijith Thotton <sthotton@marvell.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
68 lines
2.0 KiB
Meson
68 lines
2.0 KiB
Meson
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2018-2021 Hisilicon Limited
|
|
|
|
if not is_linux
|
|
build = false
|
|
reason = 'only supported on Linux'
|
|
subdir_done()
|
|
endif
|
|
|
|
if arch_subdir != 'x86' and arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64')
|
|
build = false
|
|
reason = 'only supported on x86_64 and aarch64'
|
|
subdir_done()
|
|
endif
|
|
|
|
if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
|
|
build = false
|
|
reason = 'driver does not support disabling IOVA as PA mode'
|
|
subdir_done()
|
|
endif
|
|
|
|
sources = files(
|
|
'hns3_cmd.c',
|
|
'hns3_dcb.c',
|
|
'hns3_intr.c',
|
|
'hns3_ethdev.c',
|
|
'hns3_ethdev_vf.c',
|
|
'hns3_fdir.c',
|
|
'hns3_flow.c',
|
|
'hns3_mbx.c',
|
|
'hns3_regs.c',
|
|
'hns3_rss.c',
|
|
'hns3_rxtx.c',
|
|
'hns3_stats.c',
|
|
'hns3_mp.c',
|
|
'hns3_tm.c',
|
|
'hns3_ptp.c',
|
|
'hns3_common.c',
|
|
'hns3_dump.c',
|
|
)
|
|
|
|
deps += ['hash']
|
|
|
|
if arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64')
|
|
sources += files('hns3_rxtx_vec.c')
|
|
|
|
# compile SVE when:
|
|
# a. support SVE in minimum instruction set baseline
|
|
# b. it's not minimum instruction set, but compiler support
|
|
if dpdk_conf.has('RTE_HAS_SVE_ACLE')
|
|
sources += files('hns3_rxtx_vec_sve.c')
|
|
elif cc.has_argument('-march=armv8.2-a+sve') and cc.check_header('arm_sve.h')
|
|
cflags += ['-DRTE_HAS_SVE_ACLE=1']
|
|
sve_cflags = []
|
|
foreach flag: cflags
|
|
if not (flag.startswith('-march=') or flag.startswith('-mcpu=') or flag.startswith('-mtune='))
|
|
sve_cflags += flag
|
|
endif
|
|
endforeach
|
|
hns3_sve_lib = static_library('hns3_sve_lib',
|
|
'hns3_rxtx_vec_sve.c',
|
|
dependencies: [static_rte_ethdev],
|
|
include_directories: includes,
|
|
c_args: [sve_cflags, '-march=armv8.2-a+sve'])
|
|
objs += hns3_sve_lib.extract_objects('hns3_rxtx_vec_sve.c')
|
|
endif
|
|
endif
|