From: Srujana Challa <scha...@marvell.com> Updates CPT inbound inline IPsec configuration mailbox to provide opcode and CPT credit from VF. This patch also adds mailbox for reading inbound IPsec configuration.
Signed-off-by: Srujana Challa <scha...@marvell.com> --- drivers/common/cnxk/roc_cpt.c | 15 +++++++++++++++ drivers/common/cnxk/roc_cpt.h | 2 ++ drivers/common/cnxk/roc_mbox.h | 12 +++++++++--- drivers/common/cnxk/version.map | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/common/cnxk/roc_cpt.c b/drivers/common/cnxk/roc_cpt.c index f1be6a3401..d607bde3c4 100644 --- a/drivers/common/cnxk/roc_cpt.c +++ b/drivers/common/cnxk/roc_cpt.c @@ -260,6 +260,21 @@ roc_cpt_inline_ipsec_cfg(struct dev *cpt_dev, uint8_t lf_id, return cpt_lf_outb_cfg(cpt_dev, sso_pf_func, nix_pf_func, lf_id, ena); } +int +roc_cpt_inline_ipsec_inb_cfg_read(struct roc_cpt *roc_cpt, + struct nix_inline_ipsec_cfg *inb_cfg) +{ + struct cpt *cpt = roc_cpt_to_cpt_priv(roc_cpt); + struct dev *dev = &cpt->dev; + struct msg_req *req; + + req = mbox_alloc_msg_nix_read_inline_ipsec_cfg(dev->mbox); + if (req == NULL) + return -EIO; + + return mbox_process_msg(dev->mbox, (void *)&inb_cfg); +} + int roc_cpt_inline_ipsec_inb_cfg(struct roc_cpt *roc_cpt, uint16_t param1, uint16_t param2) diff --git a/drivers/common/cnxk/roc_cpt.h b/drivers/common/cnxk/roc_cpt.h index a3a65f1e94..4e3a078a90 100644 --- a/drivers/common/cnxk/roc_cpt.h +++ b/drivers/common/cnxk/roc_cpt.h @@ -158,6 +158,8 @@ int __roc_api roc_cpt_lf_ctx_flush(struct roc_cpt_lf *lf, void *cptr, int __roc_api roc_cpt_lf_ctx_reload(struct roc_cpt_lf *lf, void *cptr); int __roc_api roc_cpt_inline_ipsec_cfg(struct dev *dev, uint8_t slot, struct roc_nix *nix); +int __roc_api roc_cpt_inline_ipsec_inb_cfg_read( + struct roc_cpt *roc_cpt, struct nix_inline_ipsec_cfg *inb_cfg); int __roc_api roc_cpt_inline_ipsec_inb_cfg(struct roc_cpt *roc_cpt, uint16_t param1, uint16_t param2); int __roc_api roc_cpt_afs_print(struct roc_cpt *roc_cpt); diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h index 965c704322..912de1121b 100644 --- a/drivers/common/cnxk/roc_mbox.h +++ b/drivers/common/cnxk/roc_mbox.h @@ -263,7 +263,9 @@ struct mbox_msghdr { nix_bp_cfg_rsp) \ M(NIX_CPT_BP_DISABLE, 0x8021, nix_cpt_bp_disable, nix_bp_cfg_req, \ msg_rsp) \ - M(NIX_RX_SW_SYNC, 0x8022, nix_rx_sw_sync, msg_req, msg_rsp) + M(NIX_RX_SW_SYNC, 0x8022, nix_rx_sw_sync, msg_req, msg_rsp) \ + M(NIX_READ_INLINE_IPSEC_CFG, 0x8023, nix_read_inline_ipsec_cfg, \ + msg_req, nix_inline_ipsec_cfg) /* Messages initiated by AF (range 0xC00 - 0xDFF) */ #define MBOX_UP_CGX_MESSAGES \ @@ -1161,7 +1163,9 @@ struct nix_inline_ipsec_cfg { uint32_t __io cpt_credit; struct { uint8_t __io egrp; - uint8_t __io opcode; + uint16_t __io opcode; + uint16_t __io param1; + uint16_t __io param2; } gen_cfg; struct { uint16_t __io cpt_pf_func; @@ -1465,7 +1469,9 @@ struct cpt_rx_inline_lf_cfg_msg { uint16_t __io sso_pf_func; uint16_t __io param1; uint16_t __io param2; - uint16_t __io reserved; + uint16_t __io opcode; + uint32_t __io credit; + uint32_t __io reserved; }; enum cpt_eng_type { diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index 019f53173f..a2d99e1f4a 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -65,6 +65,7 @@ INTERNAL { roc_cpt_dev_init; roc_cpt_eng_grp_add; roc_cpt_inline_ipsec_cfg; + roc_cpt_inline_ipsec_inb_cfg_read; roc_cpt_inline_ipsec_inb_cfg; roc_cpt_iq_disable; roc_cpt_iq_enable; -- 2.25.1