From: Anoob Joseph <anoobj@marvell.com>
To: Akhil Goyal <gakhil@marvell.com>, Thomas Monjalon <thomas@monjalon.net>
Cc: Vidya Sagar Velumuri <vvelumuri@marvell.com>,
Jerin Jacob <jerinj@marvell.com>,
Ankur Dwivedi <adwivedi@marvell.com>,
Tejasree Kondoj <ktejasree@marvell.com>, <dev@dpdk.org>,
Anoob Joseph <anoobj@marvell.com>
Subject: [dpdk-dev] [PATCH 01/11] common/cnxk: add CPT HW defines
Date: Wed, 2 Jun 2021 21:26:15 +0530 [thread overview]
Message-ID: <1622649385-22652-2-git-send-email-anoobj@marvell.com> (raw)
In-Reply-To: <1622649385-22652-1-git-send-email-anoobj@marvell.com>
From: Vidya Sagar Velumuri <vvelumuri@marvell.com>
Add CPT hardware definitions. CPT is the hardware block on
cnxk family of processors, that can be used to offload
cryptographic operations.
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Vidya Sagar Velumuri <vvelumuri@marvell.com>
---
drivers/common/cnxk/hw/cpt.h | 201 ++++++++++++++++++++++++++++++++++++++++++
drivers/common/cnxk/roc_api.h | 6 ++
2 files changed, 207 insertions(+)
create mode 100644 drivers/common/cnxk/hw/cpt.h
diff --git a/drivers/common/cnxk/hw/cpt.h b/drivers/common/cnxk/hw/cpt.h
new file mode 100644
index 0000000..d6a935c
--- /dev/null
+++ b/drivers/common/cnxk/hw/cpt.h
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#ifndef __CPT_HW_H__
+#define __CPT_HW_H__
+
+/* Register offsets */
+
+#define CPT_COMP_NOT_DONE (0x0ull)
+#define CPT_COMP_GOOD (0x1ull)
+#define CPT_COMP_FAULT (0x2ull)
+#define CPT_COMP_SWERR (0x3ull)
+#define CPT_COMP_HWERR (0x4ull)
+#define CPT_COMP_INSTERR (0x5ull)
+#define CPT_COMP_WARN (0x6ull) /* [CN10K, .) */
+
+#define CPT_LF_INT_VEC_MISC (0x0ull)
+#define CPT_LF_INT_VEC_DONE (0x1ull)
+#define CPT_LF_CTL (0x10ull)
+#define CPT_LF_DONE_WAIT (0x30ull)
+#define CPT_LF_INPROG (0x40ull)
+#define CPT_LF_DONE (0x50ull)
+#define CPT_LF_DONE_ACK (0x60ull)
+#define CPT_LF_DONE_INT_ENA_W1S (0x90ull)
+#define CPT_LF_DONE_INT_ENA_W1C (0xa0ull)
+#define CPT_LF_MISC_INT (0xb0ull)
+#define CPT_LF_MISC_INT_W1S (0xc0ull)
+#define CPT_LF_MISC_INT_ENA_W1S (0xd0ull)
+#define CPT_LF_MISC_INT_ENA_W1C (0xe0ull)
+#define CPT_LF_Q_BASE (0xf0ull)
+#define CPT_LF_Q_SIZE (0x100ull)
+#define CPT_LF_Q_INST_PTR (0x110ull)
+#define CPT_LF_Q_GRP_PTR (0x120ull)
+#define CPT_LF_NQX(a) (0x400ull | (uint64_t)(a) << 3)
+#define CPT_LF_CTX_CTL (0x500ull)
+#define CPT_LF_CTX_FLUSH (0x510ull)
+#define CPT_LF_CTX_ERR (0x520ull)
+#define CPT_LF_CTX_ENC_BYTE_CNT (0x530ull)
+#define CPT_LF_CTX_ENC_PKT_CNT (0x540ull)
+#define CPT_LF_CTX_DEC_BYTE_CNT (0x550ull)
+#define CPT_LF_CTX_DEC_PKT_CNT (0x560ull)
+
+#define CPT_AF_LFX_CTL(a) (0x27000ull | (uint64_t)(a) << 3)
+#define CPT_AF_LFX_CTL2(a) (0x29000ull | (uint64_t)(a) << 3)
+
+/* Structures definitions */
+
+union cpt_lf_ctl {
+ uint64_t u;
+ struct cpt_lf_ctl_s {
+ uint64_t ena : 1;
+ uint64_t fc_ena : 1;
+ uint64_t fc_up_crossing : 1;
+ uint64_t reserved_3_3 : 1;
+ uint64_t fc_hyst_bits : 4;
+ uint64_t reserved_8_63 : 56;
+ } s;
+};
+
+union cpt_lf_ctx_flush {
+ uint64_t u;
+ struct {
+ uint64_t cptr : 46;
+ uint64_t inval : 1;
+ uint64_t res : 1;
+ uint64_t pf_func : 16;
+ } s;
+};
+
+union cpt_lf_inprog {
+ uint64_t u;
+ struct cpt_lf_inprog_s {
+ uint64_t inflight : 9;
+ uint64_t reserved_9_15 : 7;
+ uint64_t eena : 1;
+ uint64_t grp_drp : 1;
+ uint64_t reserved_18_30 : 13;
+ uint64_t grb_partial : 1;
+ uint64_t grb_cnt : 8;
+ uint64_t gwb_cnt : 8;
+ uint64_t reserved_48_63 : 16;
+ } s;
+};
+
+union cpt_lf_q_base {
+ uint64_t u;
+ struct cpt_lf_q_base_s {
+ uint64_t fault : 1;
+ uint64_t stopped : 1;
+ uint64_t reserved_2_6 : 5;
+ uint64_t addr : 46;
+ uint64_t reserved_53_63 : 11;
+ } s;
+};
+
+union cpt_lf_q_size {
+ uint64_t u;
+ struct cpt_lf_q_size_s {
+ uint64_t size_div40 : 15;
+ uint64_t reserved_15_63 : 49;
+ } s;
+};
+
+union cpt_lf_misc_int {
+ uint64_t u;
+ struct cpt_lf_misc_int_s {
+ uint64_t reserved_0_0 : 1;
+ uint64_t nqerr : 1;
+ uint64_t irde : 1;
+ uint64_t nwrp : 1;
+ uint64_t reserved_4_4 : 1;
+ uint64_t hwerr : 1;
+ uint64_t fault : 1;
+ uint64_t reserved_7_63 : 57;
+ } s;
+};
+
+union cpt_inst_w4 {
+ uint64_t u64;
+ struct {
+ uint64_t dlen : 16;
+ uint64_t param2 : 16;
+ uint64_t param1 : 16;
+ uint64_t opcode_major : 8;
+ uint64_t opcode_minor : 8;
+ } s;
+};
+
+union cpt_inst_w7 {
+ uint64_t u64;
+ struct {
+ uint64_t cptr : 60;
+ uint64_t ctx_val : 1;
+ uint64_t egrp : 3;
+ } s;
+};
+
+struct cpt_inst_s {
+ union cpt_inst_w0 {
+ struct {
+ uint64_t nixtxl : 3;
+ uint64_t doneint : 1;
+ uint64_t nixtx_addr : 60;
+ } s;
+ uint64_t u64;
+ } w0;
+
+ uint64_t res_addr;
+
+ union cpt_inst_w2 {
+ struct {
+ uint64_t tag : 32;
+ uint64_t tt : 2;
+ uint64_t grp : 10;
+ uint64_t reserved_172_175 : 4;
+ uint64_t rvu_pf_func : 16;
+ } s;
+ uint64_t u64;
+ } w2;
+
+ union cpt_inst_w3 {
+ struct {
+ uint64_t qord : 1;
+ uint64_t reserved_194_193 : 2;
+ uint64_t wqe_ptr : 61;
+ } s;
+ uint64_t u64;
+ } w3;
+
+ union cpt_inst_w4 w4;
+
+ uint64_t dptr;
+
+ uint64_t rptr;
+
+ union cpt_inst_w7 w7;
+};
+
+union cpt_res_s {
+ struct cpt_cn10k_res_s {
+ uint64_t compcode : 7;
+ uint64_t doneint : 1;
+ uint64_t uc_compcode : 8;
+ uint64_t rlen : 16;
+ uint64_t spi : 32;
+
+ uint64_t esn;
+ } cn10k;
+
+ struct cpt_cn9k_res_s {
+ uint64_t compcode : 8;
+ uint64_t uc_compcode : 8;
+ uint64_t doneint : 1;
+ uint64_t reserved_17_63 : 47;
+
+ uint64_t reserved_64_127;
+ } cn9k;
+};
+
+#endif /* __CPT_HW_H__ */
diff --git a/drivers/common/cnxk/roc_api.h b/drivers/common/cnxk/roc_api.h
index 67f5d13..049854d 100644
--- a/drivers/common/cnxk/roc_api.h
+++ b/drivers/common/cnxk/roc_api.h
@@ -54,6 +54,11 @@
#define PCI_DEVID_CN9K_CGX 0xA059
#define PCI_DEVID_CN10K_RPM 0xA060
+#define PCI_DEVID_CN9K_RVU_CPT_PF 0xA0FD
+#define PCI_DEVID_CN9K_RVU_CPT_VF 0xA0FE
+#define PCI_DEVID_CN10K_RVU_CPT_PF 0xA0F2
+#define PCI_DEVID_CN10K_RVU_CPT_VF 0xA0F3
+
#define PCI_SUBSYSTEM_DEVID_CN10KA 0xB900
#define PCI_SUBSYSTEM_DEVID_CN10KAS 0xB900
@@ -64,6 +69,7 @@
#define PCI_SUBSYSTEM_DEVID_CN9KE 0xB100
/* HW structure definition */
+#include "hw/cpt.h"
#include "hw/nix.h"
#include "hw/npa.h"
#include "hw/npc.h"
--
2.7.4
next prev parent reply other threads:[~2021-06-02 15:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-02 15:56 [dpdk-dev] [PATCH 00/11] Add CPT in Marvell CNXK common driver Anoob Joseph
2021-06-02 15:56 ` Anoob Joseph [this message]
2021-06-14 6:35 ` [dpdk-dev] [PATCH 01/11] common/cnxk: add CPT HW defines Akhil Goyal
2021-06-02 15:56 ` [dpdk-dev] [PATCH 02/11] common/cnxk: add CPT dev config routines Anoob Joseph
2021-06-14 6:34 ` Akhil Goyal
2021-06-02 15:56 ` [dpdk-dev] [PATCH 03/11] common/cnxk: add mbox to configure RXC Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 04/11] common/cnxk: add CPT LF config Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 05/11] common/cnxk: add CPT diagnostics Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 06/11] common/cnxk: add CPT LF flush Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 07/11] common/cnxk: add SE microcode defines Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 08/11] common/cnxk: add IE " Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 09/11] common/cnxk: add AE " Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 10/11] common/cnxk: add lmtline init Anoob Joseph
2021-06-02 15:56 ` [dpdk-dev] [PATCH 11/11] common/cnxk: add fpm tables Anoob Joseph
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1622649385-22652-2-git-send-email-anoobj@marvell.com \
--to=anoobj@marvell.com \
--cc=adwivedi@marvell.com \
--cc=dev@dpdk.org \
--cc=gakhil@marvell.com \
--cc=jerinj@marvell.com \
--cc=ktejasree@marvell.com \
--cc=thomas@monjalon.net \
--cc=vvelumuri@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.