From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/seastar/dpdk/drivers/common/mvep/Makefile | 38 ++++++++++++++++++ src/seastar/dpdk/drivers/common/mvep/meson.build | 19 +++++++++ src/seastar/dpdk/drivers/common/mvep/mvep_common.c | 45 ++++++++++++++++++++++ .../common/mvep/rte_common_mvep_version.map | 6 +++ .../dpdk/drivers/common/mvep/rte_mvep_common.h | 21 ++++++++++ 5 files changed, 129 insertions(+) create mode 100644 src/seastar/dpdk/drivers/common/mvep/Makefile create mode 100644 src/seastar/dpdk/drivers/common/mvep/meson.build create mode 100644 src/seastar/dpdk/drivers/common/mvep/mvep_common.c create mode 100644 src/seastar/dpdk/drivers/common/mvep/rte_common_mvep_version.map create mode 100644 src/seastar/dpdk/drivers/common/mvep/rte_mvep_common.h (limited to 'src/seastar/dpdk/drivers/common/mvep') diff --git a/src/seastar/dpdk/drivers/common/mvep/Makefile b/src/seastar/dpdk/drivers/common/mvep/Makefile new file mode 100644 index 000000000..1f5f005d9 --- /dev/null +++ b/src/seastar/dpdk/drivers/common/mvep/Makefile @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Marvell International Ltd. +# + +include $(RTE_SDK)/mk/rte.vars.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),config) +ifeq ($(LIBMUSDK_PATH),) +$(error "Please define LIBMUSDK_PATH environment variable") +endif +endif +endif + +# library name +LIB = librte_common_mvep.a + +# library version +LIBABIVER := 1 + +# versioning export map +EXPORT_MAP := rte_common_mvep_version.map + +# external library dependencies +CFLAGS += -I$($RTE_SDK)/drivers/common/mvep +CFLAGS += -I$(LIBMUSDK_PATH)/include +CFLAGS += -DMVCONF_TYPES_PUBLIC +CFLAGS += -DMVCONF_DMA_PHYS_ADDR_T_PUBLIC +CFLAGS += $(WERROR_FLAGS) +CFLAGS += -O3 +LDLIBS += -L$(LIBMUSDK_PATH)/lib +LDLIBS += -lmusdk +LDLIBS += -lrte_eal -lrte_kvargs + +# library source files +SRCS-y += mvep_common.c + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/src/seastar/dpdk/drivers/common/mvep/meson.build b/src/seastar/dpdk/drivers/common/mvep/meson.build new file mode 100644 index 000000000..8ccfacb3f --- /dev/null +++ b/src/seastar/dpdk/drivers/common/mvep/meson.build @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Marvell International Ltd. +# Copyright(c) 2018 Semihalf. +# All rights reserved. +# +path = get_option('lib_musdk_dir') +lib_dir = path + '/lib' +inc_dir = path + '/include' + +lib = cc.find_library('libmusdk', dirs: [lib_dir], required: false) +if not lib.found() + build = false +else + ext_deps += lib + includes += include_directories(inc_dir) + cflags += ['-DMVCONF_TYPES_PUBLIC', '-DMVCONF_DMA_PHYS_ADDR_T_PUBLIC'] +endif + +sources = files('mvep_common.c') diff --git a/src/seastar/dpdk/drivers/common/mvep/mvep_common.c b/src/seastar/dpdk/drivers/common/mvep/mvep_common.c new file mode 100644 index 000000000..67fa65b57 --- /dev/null +++ b/src/seastar/dpdk/drivers/common/mvep/mvep_common.c @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Marvell International Ltd. + */ + +#include + +#include +#include + +#include "rte_mvep_common.h" + +/* Memory size (in bytes) for MUSDK dma buffers */ +#define MRVL_MUSDK_DMA_MEMSIZE (40 * 1024 * 1024) + +struct mvep { + uint32_t ref_count; +}; + +static struct mvep mvep; + +int rte_mvep_init(enum mvep_module_type module __rte_unused, + struct rte_kvargs *kvlist __rte_unused) +{ + int ret; + + if (!mvep.ref_count) { + ret = mv_sys_dma_mem_init(MRVL_MUSDK_DMA_MEMSIZE); + if (ret) + return ret; + } + + mvep.ref_count++; + + return 0; +} + +int rte_mvep_deinit(enum mvep_module_type module __rte_unused) +{ + mvep.ref_count--; + + if (!mvep.ref_count) + mv_sys_dma_mem_destroy(); + + return 0; +} diff --git a/src/seastar/dpdk/drivers/common/mvep/rte_common_mvep_version.map b/src/seastar/dpdk/drivers/common/mvep/rte_common_mvep_version.map new file mode 100644 index 000000000..c71722d79 --- /dev/null +++ b/src/seastar/dpdk/drivers/common/mvep/rte_common_mvep_version.map @@ -0,0 +1,6 @@ +DPDK_18.11 { + global: + + rte_mvep_init; + rte_mvep_deinit; +}; diff --git a/src/seastar/dpdk/drivers/common/mvep/rte_mvep_common.h b/src/seastar/dpdk/drivers/common/mvep/rte_mvep_common.h new file mode 100644 index 000000000..0593cefcd --- /dev/null +++ b/src/seastar/dpdk/drivers/common/mvep/rte_mvep_common.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Marvell International Ltd. + */ + +#ifndef __RTE_MVEP_COMMON_H__ +#define __RTE_MVEP_COMMON_H__ + +#include + +enum mvep_module_type { + MVEP_MOD_T_NONE = 0, + MVEP_MOD_T_PP2, + MVEP_MOD_T_SAM, + MVEP_MOD_T_NETA, + MVEP_MOD_T_LAST +}; + +int rte_mvep_init(enum mvep_module_type module, struct rte_kvargs *kvlist); +int rte_mvep_deinit(enum mvep_module_type module); + +#endif /* __RTE_MVEP_COMMON_H__ */ -- cgit v1.2.3