crypto: cavium/nitrox - Add mailbox message to get mcode info in VF
authorNagadheeraj Rottela <rnagadheeraj@marvell.com>
Wed, 18 Sep 2019 09:39:34 +0000 (09:39 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 4 Oct 2019 15:06:18 +0000 (01:06 +1000)
Add support to get microcode information in VF from PF via mailbox
message.

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Reviewed-by: Srikanth Jampala <jsrikanth@marvell.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/cavium/nitrox/nitrox_dev.h
drivers/crypto/cavium/nitrox/nitrox_mbx.c

index 2217a27..c2d0c23 100644 (file)
@@ -109,6 +109,13 @@ struct nitrox_q_vector {
        };
 };
 
+enum mcode_type {
+       MCODE_TYPE_INVALID,
+       MCODE_TYPE_AE,
+       MCODE_TYPE_SE_SSL,
+       MCODE_TYPE_SE_IPSEC,
+};
+
 /**
  * mbox_msg - Mailbox message data
  * @type: message type
@@ -128,6 +135,14 @@ union mbox_msg {
                u64 chipid: 8;
                u64 vfid: 8;
        } id;
+       struct {
+               u64 type: 2;
+               u64 opcode: 6;
+               u64 count: 4;
+               u64 info: 40;
+               u64 next_se_grp: 3;
+               u64 next_ae_grp: 3;
+       } mcode_info;
 };
 
 /**
index 02ee950..b51b044 100644 (file)
@@ -25,6 +25,7 @@ enum mbx_msg_opcode {
        MSG_OP_VF_UP,
        MSG_OP_VF_DOWN,
        MSG_OP_CHIPID_VFID,
+       MSG_OP_MCODE_INFO = 11,
 };
 
 struct pf2vf_work {
@@ -73,6 +74,13 @@ static void pf2vf_send_response(struct nitrox_device *ndev,
                vfdev->nr_queues = 0;
                atomic_set(&vfdev->state, __NDEV_NOT_READY);
                break;
+       case MSG_OP_MCODE_INFO:
+               msg.data = 0;
+               msg.mcode_info.count = 2;
+               msg.mcode_info.info = MCODE_TYPE_SE_SSL | (MCODE_TYPE_AE << 5);
+               msg.mcode_info.next_se_grp = 1;
+               msg.mcode_info.next_ae_grp = 1;
+               break;
        default:
                msg.type = MBX_MSG_TYPE_NOP;
                break;