[dpdk-dev] [PATCH v2 10/33] common/cpt: add PMD ops helper functions
Akhil Goyal
akhil.goyal at nxp.com
Mon Sep 17 14:47:16 CEST 2018
On 9/4/2018 9:28 AM, Anoob Joseph wrote:
> From: Murthy NSSR <nidadavolu.murthy at caviumnetworks.com>
>
> Adding pmd ops helper functions. Control path accessed APIs would be
> added as helper functions. Adding microcode defined macros etc as
> dependencies to the helper functions.
>
> Signed-off-by: Ankur Dwivedi <ankur.dwivedi at caviumnetworks.com>
> Signed-off-by: Anoob Joseph <anoob.joseph at caviumnetworks.com>
> Signed-off-by: Murthy NSSR <nidadavolu.murthy at caviumnetworks.com>
> Signed-off-by: Nithin Dabilpuram <nithin.dabilpuram at caviumnetworks.com>
> Signed-off-by: Ragothaman Jayaraman <rjayaraman at caviumnetworks.com>
> Signed-off-by: Srisivasubramanian S <ssrinivasan at caviumnetworks.com>
> Signed-off-by: Tejasree Kondoj <kondoj.tejasree at caviumnetworks.com>
> ---
> drivers/common/Makefile | 4 +++
> drivers/common/cpt/Makefile | 25 ++++++++++++++++
> drivers/common/cpt/cpt_common.h | 41 +++++++++++++++++++++++++++
> drivers/common/cpt/cpt_mcode_defines.h | 38 +++++++++++++++++++++++++
> drivers/common/cpt/cpt_pmd_ops_helper.c | 41 +++++++++++++++++++++++++++
> drivers/common/cpt/cpt_pmd_ops_helper.h | 34 ++++++++++++++++++++++
> drivers/common/cpt/meson.build | 8 ++++++
> drivers/common/cpt/rte_common_cpt_version.map | 6 ++++
> drivers/common/meson.build | 2 +-
> mk/rte.app.mk | 4 +++
> 10 files changed, 202 insertions(+), 1 deletion(-)
> create mode 100644 drivers/common/cpt/Makefile
> create mode 100644 drivers/common/cpt/cpt_mcode_defines.h
> create mode 100644 drivers/common/cpt/cpt_pmd_ops_helper.c
> create mode 100644 drivers/common/cpt/cpt_pmd_ops_helper.h
> create mode 100644 drivers/common/cpt/meson.build
> create mode 100644 drivers/common/cpt/rte_common_cpt_version.map
>
> diff --git a/drivers/common/Makefile b/drivers/common/Makefile
> index 0fd2237..ca4e854 100644
> --- a/drivers/common/Makefile
> +++ b/drivers/common/Makefile
> @@ -8,4 +8,8 @@ ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)$(CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOO
> DIRS-y += octeontx
> endif
>
> +ifeq ($(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO),y)
> +DIRS-y += cpt
> +endif
> +
> include $(RTE_SDK)/mk/rte.subdir.mk
> diff --git a/drivers/common/cpt/Makefile b/drivers/common/cpt/Makefile
> new file mode 100644
> index 0000000..2340aa9
> --- /dev/null
> +++ b/drivers/common/cpt/Makefile
> @@ -0,0 +1,25 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright(c) 2018 Cavium, Inc
> +#
> +
> +include $(RTE_SDK)/mk/rte.vars.mk
> +
> +#
> +# library name
> +#
> +LIB = librte_common_cpt.a
> +
> +CFLAGS += $(WERROR_FLAGS)
> +CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
> +EXPORT_MAP := rte_common_cpt_version.map
> +
> +LIBABIVER := 1
> +
> +#
> +# all source are stored in SRCS-y
> +#
> +SRCS-y += cpt_pmd_ops_helper.c
> +
> +LDLIBS += -lrte_eal
> +
> +include $(RTE_SDK)/mk/rte.lib.mk
> diff --git a/drivers/common/cpt/cpt_common.h b/drivers/common/cpt/cpt_common.h
> index feca5fe..1f78d42 100644
> --- a/drivers/common/cpt/cpt_common.h
> +++ b/drivers/common/cpt/cpt_common.h
> @@ -18,6 +18,24 @@
> #define AE_TYPE 1
> #define SE_TYPE 2
>
> +#ifndef ROUNDUP4
> +#define ROUNDUP4(val) (((val) + 3) & 0xfffffffc)
> +#endif
> +
> +#ifndef ROUNDUP8
> +#define ROUNDUP8(val) (((val) + 7) & 0xfffffff8)
> +#endif
> +
> +#ifndef ROUNDUP16
> +#define ROUNDUP16(val) (((val) + 15) & 0xfffffff0)
> +#endif
> +
> +#ifndef __hot
> +#define __hot __attribute__((hot))
> +#endif
> +
> +#define MOD_INC(i, l) ((i) == (l - 1) ? (i) = 0 : (i)++)
> +
> /* cpt instance */
> struct cpt_instance {
> uint32_t queue_id;
> @@ -51,4 +69,27 @@ struct pending_queue {
> /**< Pending requests count */
> };
>
> +struct cpt_request_info {
> + /* fast path fields */
> + uint64_t dma_mode : 2;
> + /**< DMA mode */
> + uint64_t se_req : 1;
> + /**< To SE core */
> + uint64_t comp_baddr : 61;
> + volatile uint64_t *completion_addr;
> + volatile uint64_t *alternate_caddr;
> + void *op;
> + /**< Reference to operation */
better to have comments in the same line wherever possible and if not,
please check indentation.
Please check other patches as well.
More information about the dev
mailing list