get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/46328/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 46328,
    "url": "http://patches.dpdk.org/api/patches/46328/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1539076076-19786-8-git-send-email-anoob.joseph@caviumnetworks.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1539076076-19786-8-git-send-email-anoob.joseph@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1539076076-19786-8-git-send-email-anoob.joseph@caviumnetworks.com",
    "date": "2018-10-09T09:07:40",
    "name": "[v4,07/23] crypto/octeontx: add mailbox routines",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "614b16b62e184b7d466c540e0de8fc209ad0a0a1",
    "submitter": {
        "id": 893,
        "url": "http://patches.dpdk.org/api/people/893/?format=api",
        "name": "Anoob Joseph",
        "email": "anoob.joseph@caviumnetworks.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1539076076-19786-8-git-send-email-anoob.joseph@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 1770,
            "url": "http://patches.dpdk.org/api/series/1770/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1770",
            "date": "2018-10-09T09:07:33",
            "name": "Adding Cavium's OCTEON TX crypto PMD",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/1770/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/46328/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/46328/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 179B91B178;\n\tTue,  9 Oct 2018 11:09:11 +0200 (CEST)",
            "from NAM05-CO1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr720075.outbound.protection.outlook.com [40.107.72.75])\n\tby dpdk.org (Postfix) with ESMTP id 933EF1B178\n\tfor <dev@dpdk.org>; Tue,  9 Oct 2018 11:09:09 +0200 (CEST)",
            "from ajoseph83.caveonetworks.com.com (115.113.156.2) by\n\tBN7PR07MB4897.namprd07.prod.outlook.com (2603:10b6:406:ef::26) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1207.28; Tue, 9 Oct 2018 09:09:03 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=nYTIGpWZFFk5lrYW4jyfMTOo755hM2UG7ypMVvjRTKg=;\n\tb=HfEzZBM50tSjup3LIS/vF8KREhyXUTsoLSDCnMkp4pK77KkpCrTz5vKz1WVhX2sFVnlCIfhO2Z8ChVNfusOLUPyOTJE62kPz0DWvXTE0bQdYzpKdyq9mToclNWmULDzeSBe4niJcsDkB+43Sh4eDmaukznI0P0YOFf8tV+VEbvo=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Anoob.Joseph@cavium.com; ",
        "From": "Anoob Joseph <anoob.joseph@caviumnetworks.com>",
        "To": "Akhil Goyal <akhil.goyal@nxp.com>,\n\tPablo de Lara <pablo.de.lara.guarch@intel.com>,\n\tThomas Monjalon <thomas@monjalon.net>",
        "Cc": "Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tNarayana Prasad <narayanaprasad.athreya@caviumnetworks.com>,\n\tAnkur Dwivedi <ankur.dwivedi@caviumnetworks.com>,\n\tAnoob Joseph <anoob.joseph@caviumnetworks.com>,\n\tNithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>,\n\tRagothaman Jayaraman <rjayaraman@caviumnetworks.com>,\n\tSrisivasubramanian S <ssrinivasan@caviumnetworks.com>,\n\tTejasree Kondoj <kondoj.tejasree@caviumnetworks.com>, dev@dpdk.org",
        "Date": "Tue,  9 Oct 2018 14:37:40 +0530",
        "Message-Id": "<1539076076-19786-8-git-send-email-anoob.joseph@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1539076076-19786-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "References": "<1538744363-30340-1-git-send-email-anoob.joseph@caviumnetworks.com>\n\t<1539076076-19786-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[115.113.156.2]",
        "X-ClientProxiedBy": "PN1PR0101CA0004.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:c00:e::14) To BN7PR07MB4897.namprd07.prod.outlook.com\n\t(2603:10b6:406:ef::26)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "f4aacb0c-7dab-4a09-0cf4-08d62dc6de67",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BN7PR07MB4897; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BN7PR07MB4897;\n\t3:SQkYxZj7SUAtcvt31xCa7ALw7oOQeFAam3aUh3ZJM8wTUgkKImLe3Vv83g9vNPX+49vVwH1Sa6LvC+4VXPOJTEJjjk1JxJl2wDuS9v8WGm4mXp6jSoKGI7CMU5Ndj+iST9hECOD57k11hsepoX14EHkEAhEFVfMse6RwJZupWZ0QIQH74lShOSUBZJ/BfSjyKIPjrpHn/nQJBNwv1Qk+tNXCcsSxq2OpRBo4aUE4DRfuOsLVK40X4Ayy32oEtVAr;\n\t25:SLcZU6ngjuKxEs4T3RgCQoPmMISTyfNNBqaG7tTdb3N3Mupm+poqBn1iDanRSbCfQPjGp+CmnAzPt9hPV2CKUjEYDAsxkkIjy7YhdCZtjmHV3pPUvJSmoBw5I9IJhfGGOnz7VXZqza7Lt9Go4u5lXJbm5WIFQG6f4sY2iozscNsDLijDnQvv1V9CI8Oy99kK9IJuBU+D1Y5Uvi1JdNGiGjXxGj3gaX0Asva+/SwpUOtkJieM02GVekLueoE7HhDWdYGaA/TVB4ywsLnMV5Qkm6uml8knerM0Ul+K/YtYMYww8RBwgDA3gjhcjy94psC9R4gWIhr6hHZmoCrwENFmcA==;\n\t31:niZ6/J6iMuj5YyS/bSg/41naE6m4kikmio/NWi4ECtpdaOaH0/AtWhf6zBsowRpdNsF+pqVnS7N7FOJG2qu9xsX2u+IxPdtaCwk9rAE/gic38oM1whtzKCSAIlAHx+u1js5GjJ1pyTUkndrG7I6RFFwP+tn2hSipimy7mkTQmUC7PeWittetsL76Y0wisZWhtKL6V4+ycHJEChRnA9XHIqArvuuGm49jSDCVpAkGar4=",
            "1; BN7PR07MB4897;\n\t20:3kwD/NFJP0MeMSp89ojWq4ZtG5xI3uM0HWofUO/mQurMhpfdfXHzUFlGyEi0BNfJjT3KHINaDs2uF1ODsxlNT6EmjCEPUYd4jfUJ8m0ExAd/sKGQKuTrmLwL8qfRA6rK5HEdI33VeCNsPAGEmAKMJqRFHth00ckVftSItnbpX6DdIfkHCeF1vrgLYoMzXES7zFrustByRcZ230Yi74zhmfTHoGN7eLx8eMpFw8q/AppmE382Fv+/CtT23SzXE72xmEvrAYNOQlEihhvzOBeos3II40wOJwhB3n/8iLWuywNBM9wIwVR/8vmySYdXPcqftLeeDMWBRlqMdSpcTawitOer4npiDTa6JrwhcDvSUXRb3zo/hCk0Kh6enW648qQqucdYMr647ZhOBXR4qyoqt04Q+G/vL/jwVHGAWYdd2GE7l30YxA3ZYCurRJpjuH4TlYbcOJgq0iRLtph56QmGp8o5ccrUjAQlgSpjDtUMd3wU47w1BDdrq1eB7zJFAfcCB82vLeChZkuFvUrbDJJ1U2bCLTxQnhI6KEjGSd6RRhr7rSkWQmYA0vvk5b/1GacsbxpM2iP2l1UwNecWJMspljcwGyd6n87PNLD8P3Y2SV0=;\n\t4:cBJbe0NZC5QqJ4xxqsVWcWK0lZOCV1xKQ/v3HWOMnBp0gqARxuz6bjibpHcn6P/AyAujbC6SW/pU5BfUoPa3sic6K/GO7LWzizyLxdURAx8lABjkNzaGDpquRE+yWLxYhvvOmSzAoQntDzrUiV2lw0ihXft5kWQyFO0jBIir2Qva0xofiqGCDcd+vna1V/vvukK2p9leSwG9WRlFGIW7TDSTkjOidLHsuQVPSeZXbkqu8Hb2EylbsYUEAXQhJgl256CY6Q5Q5A/x/BUnoWBBuJtmZvhm8GiIfZ00vFPWahFdV4pqSpiTSSAGh5O9Ne1r",
            "=?us-ascii?Q?1; BN7PR07MB4897;\n\t23:EK0u5Zb2TFFUXSgekMAoTQJ9csKAPg9MB4Q7ieGh1?=\n\t8IuoJJncqcMjhu5u9SfANqDuyVYdZKB52t0fdQMn0Y7VZTAzneOKU9TaNlwn5YE593qn3SFfBwanvirsQ6fKCcNnbWTb+O/kxzyLJu3Wh0wVdimrk4b+fBuwLb+5qI26aknfLnVaU6UqvxjdgvhRMILTa4gmihubNeBqccNLmpRjaKuM76om8PfzKc07K+byf7dCI7syVBEnmFNA/ZmmdaembQhJq8TsOLrn85aqOo486H/AoyFi1AM1y3it0go5wfGT6qGTjb/Ryhy4UxLgJsx+dEd1e3uhHxuxLAmc2nQaaqTBgTIfKtygKRvDjwzBNCDXfjp4pnl4xpvp8kZkIeqtUxiMqouLryohX3WQt/8+5ckb3YQkq8viqlcQM747RtrwaG+qVc6X4rTlOWYfVKGCQVuEllm0kOfC9fuEYqvt7S1I00S8toz+PYtoGcBhEySbEXqP9fO9WaxLt7BCh1elTrT+KR9daWWMJzQ9dmbC+NOUUMn9Ddh+hHnEsl8vIhtOhE2Nm/6fgl/LHXbAQ+3FRJWSbMLRUpKDhxZvzLUmC0iyJL7Za48ogRdF3ZSkqkmmDkoYhyoHMQLKFVW1jAwR17IcsWvXixaxWNPIbKy71dXhonvqN0EoGmrQ4cYH9IIMdW0AA/4v29h81eXE2y6M5mNbuPdUM9k8KI4diFDDuHiFq3LT5VGxQ8xFIN3IguEPEyWFNLRuu+UWLZXd6I3iXBdZkPTxeXMtMxarBpGqeGselkh0RWoSA55qI3NJRmwcy3UjvTmNTD0GRFd+b01YK166sVtYngz1PLx2PHsaNkJT6JadlSfXyVviR3kppK6ILzoQRzB1R20r07p4TfFlykXknQ07+yAtbnuW0Um/jc0GeFWJdos3ekjEfNFtj6hV3VoISiwlraXG71bUuyx5guBsdfhP4jPXoWkZd/KkFNcbGOtWUH+mlwftVyTmnjYJzj/3Y4KT83DoG+wCewYnSIqkOh2EoaAeWvxcS+eNdhRVrRlRxJSwUX/6k2oBZoxAtHJ12DIZWnLpokZx2wNmMuBJu+1FQ6L/zNHSzu23am9+b7cjnvvqMbNJ77o2E8kZry4Z4dacF8tuWGFwv9dBlBicwv4Dha2hzC9QVjS5L9tGE+pWrTLVJ7S8g1OM8Kms53iMaZeQNIPoKhBQAxRBfIoM3kYhZCYrHpHBAmKcV2B8fLIsYrj4pgYdKJJWsvWN22TsLZ6Bp7MTDcbjbnn9BpWIq3o72l+3rCaB9VSg9b31Sqjz1QDvYU1Z1ulLSeVYT5V4aJ1rIhYIioFzRQf",
            "1; BN7PR07MB4897;\n\t6:LNOtMxIlerubfxCFpaVIuEnZt7ABzLcrRK9fgaFokFyKNY7YbW+OSt/Y3BbzPVTgSogaqLTKlDm1Ol8oXiUvTZPwtvKazheg8U8AYf+PHiR6yc/jCGxGjg+W8fFiZ9uMYbJplM7Cqn2TxIxXWhX1uFh4+0ZTdqlBOTkbVm4beWXg0yfW/6sOmHSWXlQ9cMRtxxuf+GWHNgto8wtpekk43UxzWY7knKXaZzvcTbN0Ry2OB8gxeBJLwP1UjmPfsFzFNS6bCX7HpNQc7BA2tcYRcaSzb9P3ldfuSlEnMtaBy7KFRQYqgdS6lEx/Hifr0qm75UG9gT+PjdHiNazLNTno7RI0Y2sIo/wJGjl8Y7jUHi1OmR9i6CZ38cV5N96sbsBD18gYwRQ+6z2nJskHdcTO89/c0HrQCBQQMcsp11bsN86Y4WlEJj4Jr8k2YPTW+aNu7pdp8vVmJeUEZ0vcGl5Jeg==;\n\t5:Xpu8Tvnp9IBlRttkj/hrNFWMoRN9AIIK0F275VXXtPZBJZSk4l4M3uyG8k+MKGztFoBp/qIkSK9lwRe2+5LGTdXwGKDOZpUW5BNIk7/ZYGEh5A9Gwq5aZLWpFXmvOsQEyA/gErOmv6LQVi2m7D4bdvmF/6zeRYlPrYMlkX9hzmY=;\n\t7:r4HiDyTaLkGhQEMuPVNV88P98bm+pyc9dkh4PQakh5VWmL9Q5nznqCRpfZp+QYwOevCBNI1j/QJyGx+BFKiq6TU0NgTmawdcVijQPV8BBPyT6vF2Ecj09qx4poT7Pq5hz1JXYqxCL8+mfhFYhiHKPelkrJM0W+znpBB/9E8+l3o9A6wGjYNJ3LXU7IIBI27CqQjvmnBgvslbtYjgMVv9nlyp4IliMPHXt4R3tpYn7ca8a61SVEDpzm/RRrMojhNU"
        ],
        "X-MS-TrafficTypeDiagnostic": "BN7PR07MB4897:",
        "X-Microsoft-Antispam-PRVS": "<BN7PR07MB4897693122D605F5E33AB0D2F8E70@BN7PR07MB4897.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(35073007944872);",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(10201501046)(3231355)(944501410)(52105095)(149066)(150057)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(201708071742011)(7699051);\n\tSRVR:BN7PR07MB4897; BCL:0; PCL:0; RULEID:; SRVR:BN7PR07MB4897; ",
        "X-Forefront-PRVS": "08200063E9",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(396003)(366004)(376002)(136003)(346002)(39860400002)(199004)(189003)(42882007)(47776003)(106356001)(6666003)(186003)(5660300001)(26005)(68736007)(16526019)(8936002)(25786009)(6116002)(2906002)(81156014)(50226002)(305945005)(81166006)(7736002)(3846002)(105586002)(15650500001)(478600001)(8676002)(54906003)(110136005)(48376002)(16586007)(14444005)(575784001)(6486002)(6506007)(50466002)(316002)(53936002)(386003)(51416003)(52116002)(76176011)(11346002)(6512007)(44832011)(446003)(36756003)(55236004)(956004)(2616005)(486006)(4326008)(66066001)(97736004)(72206003)(476003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN7PR07MB4897;\n\tH:ajoseph83.caveonetworks.com.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "Fg26+8u5/iD8Ld40YZEAEssXv8o2ZNpJM8ncR7ZO+g1Wwkw3E2ArDuw4Otf/KIk0C4YWqEj9YgWq3oVyzBMWqiT5vq5Y0oUb26X/qAvjOqAehA/b8Nz7ZXORyLT4N1wFE9kDeIHYhsetnoWC3BV6lOYk1C8uQWI+zmXelBqMJTWPWaBMRKQcEcMQtt78wR4zMozvaD35WQhTFNctx7wjuF5WkiZrhL3HNKnLg1hf0jeD1uY9r0a7yKW33ZLNyDXjITyQw+AXVvVpdEi2fCDYxpxuO30hoHaQcJzxRtBLCmn1x6K4ZQBlrszfJupsOpk4mY+WwVKAQKkN1R/d8Z1Zp2H2zZfAAV9UK+ye9oILDj8=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Oct 2018 09:09:03.6705\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "f4aacb0c-7dab-4a09-0cf4-08d62dc6de67",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN7PR07MB4897",
        "Subject": "[dpdk-dev] [PATCH v4 07/23] crypto/octeontx: add mailbox routines",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>\n\nAdding mailbox routines to interact with the pf driver\n\nSigned-off-by: Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>\nSigned-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>\nSigned-off-by: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>\nSigned-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>\nSigned-off-by: Ragothaman Jayaraman <rjayaraman@caviumnetworks.com>\nSigned-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>\nSigned-off-by: Tejasree Kondoj <kondoj.tejasree@caviumnetworks.com>\n---\n drivers/crypto/octeontx/Makefile                  |   1 +\n drivers/crypto/octeontx/meson.build               |   1 +\n drivers/crypto/octeontx/otx_cryptodev_hw_access.c |  13 ++\n drivers/crypto/octeontx/otx_cryptodev_mbox.c      | 178 ++++++++++++++++++++++\n drivers/crypto/octeontx/otx_cryptodev_mbox.h      |  92 +++++++++++\n 5 files changed, 285 insertions(+)\n create mode 100644 drivers/crypto/octeontx/otx_cryptodev_mbox.c\n create mode 100644 drivers/crypto/octeontx/otx_cryptodev_mbox.h",
    "diff": "diff --git a/drivers/crypto/octeontx/Makefile b/drivers/crypto/octeontx/Makefile\nindex 1808244..2e78e69 100644\n--- a/drivers/crypto/octeontx/Makefile\n+++ b/drivers/crypto/octeontx/Makefile\n@@ -27,6 +27,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/common/cpt\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev.c\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_capabilities.c\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_hw_access.c\n+SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_mbox.c\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev_ops.c\n \n # export include files\ndiff --git a/drivers/crypto/octeontx/meson.build b/drivers/crypto/octeontx/meson.build\nindex 7f65476..6511b40 100644\n--- a/drivers/crypto/octeontx/meson.build\n+++ b/drivers/crypto/octeontx/meson.build\n@@ -11,6 +11,7 @@ name = 'octeontx_crypto'\n sources = files('otx_cryptodev.c',\n \t\t'otx_cryptodev_capabilities.c',\n \t\t'otx_cryptodev_hw_access.c',\n+\t\t'otx_cryptodev_mbox.c',\n \t\t'otx_cryptodev_ops.c')\n \n includes += include_directories('../../common/cpt')\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\nindex e8a2b0b..eb9fbcf 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\n+++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\n@@ -7,6 +7,7 @@\n #include <rte_common.h>\n \n #include \"otx_cryptodev_hw_access.h\"\n+#include \"otx_cryptodev_mbox.h\"\n \n #include \"cpt_pmd_logs.h\"\n #include \"cpt_hw_types.h\"\n@@ -22,8 +23,19 @@ otx_cpt_vf_init(struct cpt_vf *cptvf)\n {\n \tint ret = 0;\n \n+\t/* Check ready with PF */\n+\t/* Gets chip ID / device Id from PF if ready */\n+\tret = otx_cpt_check_pf_ready(cptvf);\n+\tif (ret) {\n+\t\tCPT_LOG_ERR(\"%s: PF not responding to READY msg\",\n+\t\t\t\tcptvf->dev_name);\n+\t\tret = -EBUSY;\n+\t\tgoto exit;\n+\t}\n+\n \tCPT_LOG_DP_DEBUG(\"%s: %s done\", cptvf->dev_name, __func__);\n \n+exit:\n \treturn ret;\n }\n \n@@ -178,6 +190,7 @@ otx_cpt_poll_misc(struct cpt_vf *cptvf)\n \tif (likely(intr & CPT_VF_INTR_MBOX_MASK)) {\n \t\tCPT_LOG_DP_DEBUG(\"%s: Mailbox interrupt 0x%lx on CPT VF %d\",\n \t\t\tcptvf->dev_name, (unsigned int long)intr, cptvf->vfid);\n+\t\totx_cpt_handle_mbox_intr(cptvf);\n \t\totx_cpt_clear_mbox_intr(cptvf);\n \t} else if (unlikely(intr & CPT_VF_INTR_IRDE_MASK)) {\n \t\totx_cpt_clear_irde_intr(cptvf);\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_mbox.c b/drivers/crypto/octeontx/otx_cryptodev_mbox.c\nnew file mode 100644\nindex 0000000..a8e51a8\n--- /dev/null\n+++ b/drivers/crypto/octeontx/otx_cryptodev_mbox.c\n@@ -0,0 +1,178 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Cavium, Inc\n+ */\n+\n+#include <unistd.h>\n+\n+#include \"otx_cryptodev_hw_access.h\"\n+#include \"otx_cryptodev_mbox.h\"\n+\n+void\n+otx_cpt_handle_mbox_intr(struct cpt_vf *cptvf)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\t/*\n+\t * MBOX[0] contains msg\n+\t * MBOX[1] contains data\n+\t */\n+\tmbx.msg  = CPT_READ_CSR(CPT_CSR_REG_BASE(cptvf),\n+\t\t\t\tCPTX_VFX_PF_MBOXX(0, 0, 0));\n+\tmbx.data = CPT_READ_CSR(CPT_CSR_REG_BASE(cptvf),\n+\t\t\t\tCPTX_VFX_PF_MBOXX(0, 0, 1));\n+\n+\tCPT_LOG_DP_DEBUG(\"%s: Mailbox msg 0x%lx from PF\",\n+\t\t    cptvf->dev_name, (unsigned int long)mbx.msg);\n+\tswitch (mbx.msg) {\n+\tcase OTX_CPT_MSG_READY:\n+\t\t{\n+\t\t\totx_cpt_chipid_vfid_t cid;\n+\n+\t\t\tcid.u64 = mbx.data;\n+\t\t\tcptvf->pf_acked = true;\n+\t\t\tcptvf->vfid = cid.s.vfid;\n+\t\t\tCPT_LOG_DP_DEBUG(\"%s: Received VFID %d chip_id %d\",\n+\t\t\t\t\t cptvf->dev_name,\n+\t\t\t\t\t cptvf->vfid, cid.s.chip_id);\n+\t\t}\n+\t\tbreak;\n+\tcase OTX_CPT_MSG_QBIND_GRP:\n+\t\tcptvf->pf_acked = true;\n+\t\tcptvf->vftype = mbx.data;\n+\t\tCPT_LOG_DP_DEBUG(\"%s: VF %d type %s group %d\",\n+\t\t\t\t cptvf->dev_name, cptvf->vfid,\n+\t\t\t\t ((mbx.data == SE_TYPE) ? \"SE\" : \"AE\"),\n+\t\t\t\t cptvf->vfgrp);\n+\t\tbreak;\n+\tcase OTX_CPT_MBOX_MSG_TYPE_ACK:\n+\t\tcptvf->pf_acked = true;\n+\t\tbreak;\n+\tcase OTX_CPT_MBOX_MSG_TYPE_NACK:\n+\t\tcptvf->pf_nacked = true;\n+\t\tbreak;\n+\tdefault:\n+\t\tCPT_LOG_DP_DEBUG(\"%s: Invalid msg from PF, msg 0x%lx\",\n+\t\t\t\t cptvf->dev_name, (unsigned int long)mbx.msg);\n+\t\tbreak;\n+\t}\n+}\n+\n+/* Send a mailbox message to PF\n+ * @vf: vf from which this message to be sent\n+ * @mbx: Message to be sent\n+ */\n+static void\n+otx_cpt_send_msg_to_pf(struct cpt_vf *cptvf, struct cpt_mbox *mbx)\n+{\n+\t/* Writing mbox(1) causes interrupt */\n+\tCPT_WRITE_CSR(CPT_CSR_REG_BASE(cptvf),\n+\t\t      CPTX_VFX_PF_MBOXX(0, 0, 0), mbx->msg);\n+\tCPT_WRITE_CSR(CPT_CSR_REG_BASE(cptvf),\n+\t\t      CPTX_VFX_PF_MBOXX(0, 0, 1), mbx->data);\n+}\n+\n+static int32_t\n+otx_cpt_send_msg_to_pf_timeout(struct cpt_vf *cptvf, struct cpt_mbox *mbx)\n+{\n+\tint timeout = OTX_CPT_MBOX_MSG_TIMEOUT;\n+\tint sleep_ms = 10;\n+\n+\tcptvf->pf_acked = false;\n+\tcptvf->pf_nacked = false;\n+\n+\totx_cpt_send_msg_to_pf(cptvf, mbx);\n+\n+\t/* Wait for previous message to be acked, timeout 2sec */\n+\twhile (!cptvf->pf_acked) {\n+\t\tif (cptvf->pf_nacked)\n+\t\t\treturn -EINVAL;\n+\t\tusleep(sleep_ms * 1000);\n+\t\totx_cpt_poll_misc(cptvf);\n+\t\tif (cptvf->pf_acked)\n+\t\t\tbreak;\n+\t\ttimeout -= sleep_ms;\n+\t\tif (!timeout) {\n+\t\t\tCPT_LOG_ERR(\"%s: PF didn't ack mbox msg %lx(vfid %u)\",\n+\t\t\t\t    cptvf->dev_name,\n+\t\t\t\t    (unsigned int long)(mbx->msg & 0xFF),\n+\t\t\t\t    cptvf->vfid);\n+\t\t\treturn -EBUSY;\n+\t\t}\n+\t}\n+\treturn 0;\n+}\n+\n+int\n+otx_cpt_check_pf_ready(struct cpt_vf *cptvf)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\tmbx.msg = OTX_CPT_MSG_READY;\n+\tif (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {\n+\t\tCPT_LOG_ERR(\"%s: PF didn't respond to READY msg\",\n+\t\t\t    cptvf->dev_name);\n+\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\n+\n+int\n+otx_cpt_send_vq_size_msg(struct cpt_vf *cptvf)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\tmbx.msg = OTX_CPT_MSG_QLEN;\n+\n+\tmbx.data = cptvf->qsize;\n+\tif (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {\n+\t\tCPT_LOG_ERR(\"%s: PF didn't respond to vq_size msg\",\n+\t\t\t    cptvf->dev_name);\n+\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\n+\n+int\n+otx_cpt_send_vf_grp_msg(struct cpt_vf *cptvf, uint32_t group)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\tmbx.msg = OTX_CPT_MSG_QBIND_GRP;\n+\n+\t/* Convey group of the VF */\n+\tmbx.data = group;\n+\tif (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {\n+\t\tCPT_LOG_ERR(\"%s: PF didn't respond to vf_type msg\",\n+\t\t\t    cptvf->dev_name);\n+\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\n+\n+int\n+otx_cpt_send_vf_up(struct cpt_vf *cptvf)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\tmbx.msg = OTX_CPT_MSG_VF_UP;\n+\tif (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {\n+\t\tCPT_LOG_ERR(\"%s: PF didn't respond to UP msg\",\n+\t\t\t    cptvf->dev_name);\n+\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\n+\n+int\n+otx_cpt_send_vf_down(struct cpt_vf *cptvf)\n+{\n+\tstruct cpt_mbox mbx = {0, 0};\n+\n+\tmbx.msg = OTX_CPT_MSG_VF_DOWN;\n+\tif (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {\n+\t\tCPT_LOG_ERR(\"%s: PF didn't respond to DOWN msg\",\n+\t\t\t    cptvf->dev_name);\n+\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_mbox.h b/drivers/crypto/octeontx/otx_cryptodev_mbox.h\nnew file mode 100644\nindex 0000000..b05d1c5\n--- /dev/null\n+++ b/drivers/crypto/octeontx/otx_cryptodev_mbox.h\n@@ -0,0 +1,92 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Cavium, Inc\n+ */\n+\n+#ifndef _OTX_CRYPTODEV_MBOX_H_\n+#define _OTX_CRYPTODEV_MBOX_H_\n+\n+#include <rte_byteorder.h>\n+#include <rte_common.h>\n+\n+#include \"cpt_common.h\"\n+#include \"cpt_pmd_logs.h\"\n+\n+#include \"otx_cryptodev_hw_access.h\"\n+\n+#define OTX_CPT_MBOX_MSG_TIMEOUT    2000 /* In Milli Seconds */\n+\n+#define OTX_CPT_MBOX_MSG_TYPE_REQ\t0\n+#define OTX_CPT_MBOX_MSG_TYPE_ACK\t1\n+#define OTX_CPT_MBOX_MSG_TYPE_NACK\t2\n+#define OTX_CPT_MBOX_MSG_TYPE_NOP\t3\n+\n+/* CPT mailbox structure */\n+struct cpt_mbox {\n+\t/** Message type MBOX[0] */\n+\tuint64_t msg;\n+\t/** Data         MBOX[1] */\n+\tuint64_t data;\n+};\n+\n+typedef enum {\n+\tOTX_CPT_MSG_VF_UP = 1,\n+\tOTX_CPT_MSG_VF_DOWN,\n+\tOTX_CPT_MSG_READY,\n+\tOTX_CPT_MSG_QLEN,\n+\tOTX_CPT_MSG_QBIND_GRP,\n+\tOTX_CPT_MSG_VQ_PRIORITY,\n+\tOTX_CPT_MSG_PF_TYPE,\n+} otx_cpt_mbox_opcode_t;\n+\n+typedef union {\n+\tuint64_t u64;\n+\tstruct {\n+#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN\n+\t\tuint32_t chip_id;\n+\t\tuint8_t vfid;\n+\t\tuint8_t reserved[3];\n+#else\n+\t\tuint8_t reserved[3];\n+\t\tuint8_t vfid;\n+\t\tuint32_t chip_id;\n+#endif\n+\t} s;\n+} otx_cpt_chipid_vfid_t;\n+\n+/* Poll handler to handle mailbox messages from VFs */\n+void\n+otx_cpt_handle_mbox_intr(struct cpt_vf *cptvf);\n+\n+/*\n+ * Checks if VF is able to comminicate with PF\n+ * and also gets the CPT number this VF is associated to.\n+ */\n+int\n+otx_cpt_check_pf_ready(struct cpt_vf *cptvf);\n+\n+/*\n+ * Communicate VQs size to PF to program CPT(0)_PF_Q(0-15)_CTL of the VF.\n+ * Must be ACKed.\n+ */\n+int\n+otx_cpt_send_vq_size_msg(struct cpt_vf *cptvf);\n+\n+/*\n+ * Communicate VF group required to PF and get the VQ binded to that group\n+ */\n+int\n+otx_cpt_send_vf_grp_msg(struct cpt_vf *cptvf, uint32_t group);\n+\n+/*\n+ * Communicate to PF that VF is UP and running\n+ */\n+int\n+otx_cpt_send_vf_up(struct cpt_vf *cptvf);\n+\n+/*\n+ * Communicate to PF that VF is DOWN and running\n+ */\n+int\n+otx_cpt_send_vf_down(struct cpt_vf *cptvf);\n+\n+#endif /* _OTX_CRYPTODEV_MBOX_H_ */\n",
    "prefixes": [
        "v4",
        "07/23"
    ]
}