Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/44181/?format=api
http://patches.dpdk.org/api/patches/44181/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1536033560-21541-8-git-send-email-ajoseph@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": "<1536033560-21541-8-git-send-email-ajoseph@caviumnetworks.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1536033560-21541-8-git-send-email-ajoseph@caviumnetworks.com", "date": "2018-09-04T03:58:54", "name": "[v2,07/33] common/cpt: add hardware register defines", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "1e6dd38924f9ad88c9bb604683811cbf6d9dd731", "submitter": { "id": 891, "url": "http://patches.dpdk.org/api/people/891/?format=api", "name": "Anoob Joseph", "email": "ajoseph@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/1536033560-21541-8-git-send-email-ajoseph@caviumnetworks.com/mbox/", "series": [ { "id": 1164, "url": "http://patches.dpdk.org/api/series/1164/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1164", "date": "2018-09-04T03:58:47", "name": "Adding Cavium's OcteonTX crypto PMD", "version": 2, "mbox": "http://patches.dpdk.org/series/1164/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/44181/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/44181/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 CBBB84F93;\n\tTue, 4 Sep 2018 06:03:15 +0200 (CEST)", "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0082.outbound.protection.outlook.com [104.47.32.82])\n\tby dpdk.org (Postfix) with ESMTP id 1669D1BE0\n\tfor <dev@dpdk.org>; Tue, 4 Sep 2018 06:03:07 +0200 (CEST)", "from ajoseph83.caveonetworks.com.com (115.113.156.2) by\n\tBYAPR07MB4902.namprd07.prod.outlook.com (2603:10b6:a02:ef::25) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1101.15; Tue, 4 Sep 2018 04:02:12 +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=zffidsJdIglPqNa0czCLcYnIblhmYIkdVSexEPuh2j4=;\n\tb=bF2lKk7hCSYs2f/NN3ElaVDaKGcPyM9gT0PHkpx1PZMcAC74iUzZ7HtVZhCO6HuIdSkXJUvKWJujTPd9fBSc+/YavTfH/3CZrnvtLlIU7RpUxj8ZFme/0ifQDHunTEKTf3NRNvXeSPag4BQ4jRgYVRhpw3vGw5hPA2ZGB1uKbfo=", "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Anoob.Joseph@cavium.com; ", "From": "Anoob Joseph <ajoseph@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": "Anoob Joseph <anoob.joseph@caviumnetworks.com>,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tNarayana Prasad <narayanaprasad.athreya@caviumnetworks.com>,\n\tdev@dpdk.org, Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>,\n\tMurthy NSSR <nidadavolu.murthy@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>", "Date": "Tue, 4 Sep 2018 09:28:54 +0530", "Message-Id": "<1536033560-21541-8-git-send-email-ajoseph@caviumnetworks.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com>", "References": "<1528476325-15585-1-git-send-email-anoob.joseph@caviumnetworks.com>\n\t<1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Originating-IP": "[115.113.156.2]", "X-ClientProxiedBy": "BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00:d::33) To BYAPR07MB4902.namprd07.prod.outlook.com\n\t(2603:10b6:a02:ef::25)", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "15eeb741-99d3-43a0-2201-08d6121b33d8", "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BYAPR07MB4902; ", "X-Microsoft-Exchange-Diagnostics": [ "1; BYAPR07MB4902;\n\t3:jpIda1rDnD+VPTKXaExDBNl+jZY8vOp30gK4gt4h3DhFuZ4s+gyiWDgkJwFxoHXZ5Y3jxMhsivG7j3JdUP/AUAqdVYArQfw9DDLKnU05fATZsj1PRbWetEiCi17ro8vcdoxiRCQVFWW9HKon9XuraoyONdMhlu/c51VsDRdER5epYj/EAR7BvKKDXT6d3aT50JgUwMdpH993grM+/UYH6vZXmDiStipbyeX9c2nkSTepruQg5r6sTqofspZoUpPs;\n\t25:fbTXQuxFzKPnu4cQebYPWxQnFN9QW0QuCyTYJpKHOxmYySWZ89gPLPIM1fpYS9/vXnp1+JkCsi6l3vJGRxHZUyUpKTdsGRgBg8Ye1pCE6hh3oOKUOV/TqvFam76WR4cSVBWebdinZ+/+w9lbnt22ighnurIMGym4LZldjbQ9kFT71HZIX8ctnLvovwdWHTFrXYQveQtwofkMTAcignpXOgapTrxASsyKZZ7iiWKTpbqJVnKDPK8bXAjq6ypv3h1SpuYrHTXhyms79IogJvVEON0u/HIAuBOsziTy/MLdcjXbkwIsPVD0q+LDptsaPVEbutP0enxbKL/WgG6AjROclg==;\n\t31:Ldn+bgJPhUzRYDZgrmvMCQOetQ8lrYWlLWldPpWLW5d5be0FRG0UjL5pIZ/nL0GDlMoLrQmfKHBEok5+genlM6BzCp4yIWDzEVB3CANKSjKBJ57mZAftG2dmDwAOBLXOw6bkxnuqrp3ZxrDpr8ZkGhveQHsq1khD3VuJ31fEZmi36P1CvzoNy79fliyJTlhr09gXA+w2xjL+Jwkn6T8lXGGDTJbAek0PppGD0fYisXM=", "1; BYAPR07MB4902;\n\t20:y2pPpCKADicnxC7Hkt2YTsarjDe2yTrNqQiBlRHWJotlID9Ka99kX//HPEPEBLlkvWfSwnyp+FY/aDluCx5fImUfFEMwqFFOBAGYrIKtjbLe12tSP+LKgB+R09h/g/mPY4ypla097uLPplQH4+mb/yUfZY2iMzxlEGHnMO854/Q0a8Pi6H+g+Te7IRT/ocUDdawyhN8VDgDAWUwacocqv+BIcPXAs4XOK/6xZTB5MyCtf1RxTEEye3GUC09rueVieKP4KgvMsBIL5ukqpQfTwe8xbhOfx5dLqH3EVkppbCQfbm7gUmVO9Gy3gudhH3Z+/+WUfNLyN9mx7+RzvqlEGHrh2gA0GRfotecqGvUYPBcYX+ZqljQqLLrk0iWp7BGdBSOaP1JB+pBgKpxzauAVGWNe8vJeSgbXXDxrVBFu0X1bTjBy3WkD1OVMaAv43p6oKGseRJ4qDTjkg5L2uN/TeN4qzlYt30VC441rmxprZwhUzgAQCdMfVPgT1vmoXP/5oC1mhpf+Wiq7NGrThBshinWkjZOhgkJzUl9QP2pPVdHM095bXp4mS1giwcAn927gFk00UXSshQ/uaVZhUFk2l3ZvYZBzUdltRwUBU62oSJs=;\n\t4:yA/m5duexsTKrsmwg7fp1a75dMeylibDvfjptx3OppnfkhftdrktiGXUFvg0ZI6PDBrEY2T/ExCi+b4K+/DFNN4eZQTLUGVluJ16XWXN2cP0C/XM41pgI33rf+9wd0WT3nrNE0xUNUc+JGMuZlIE9ozYJGwtw/TmzX6cSdinF+/dOMwqjNfDypeJzwasWc5TGyPO2fzEhLphs1FOfeE+ESvLRX46d59zYX1kBYBLObjFe0f7RD+TUWrc+Ca4pnMTxtwonkSSXRJHGqEnSS8CgQ==", "=?us-ascii?Q?1; BYAPR07MB4902;\n\t23:HCrthRwlEY3h6LJbtpHl24tO2Nw2/dk9kNWtvXHYN?=\n\tmJrVndjGuMwrG85GXjiwBZJLV/oEU6JGMIQd84AvptA1eouJAkq3Gg4VafQ24ON06onyGAvNi8IZTHieJWUeOC8+w+13JxEBsFvoNjsQjHv1cH0aSyDAzfZ+sp4kxT5jjP+Ro6NDBulaxnsHx/7szfplFSuvIkk2RHzENlfdyskx6JrFJ+rhBxRHlJu3cRCjvnp3IpvG3sttfAom5vHhVV20OtnztkkuPRR/10uR9OagPeTPzv/bZSlo2+0k78yKtuZQvOBPagxfYgj/SBj4Aaui3hO7538keie2mim57ANfpNXvtohlAcgA6ehIUbjdcIwlU/Hp4Tkikva0oIVDHLCmIqZsgGxufXRqWyZTqvC8j38ur6rjtNlrBi5XuZ2iIzAdvy6fN0IcBMEvg61nqqa08tIPdib+YERG5NLQGeHNQ5sv5TXEpfEwNb1LTK/g7jnOQ0lRgMKS9mxy6moc3VXrYvXbsmN8yIYK1/HGVJzhUAVgGSI8DsFk4I0s+jI5K2vl/RzFYHOn1kBpEzFP2Zc6SQjcPSAkcj6tY0UgbCoH+F9h+krT6eMjiLmWzNNbJiyDrTd0Fs3kLSTbb252NtUOzVjS6iWGG6cscqM7dF+cUyUVTTW5eno9g/yAr5kVUVASsdeJjdv9XhmcdFks2dv5KgLGWx2sOVpSL0EvQp6TffiaW6QnHWyAcWxbOX2yx+88Gn6ozkcYMIv8nKBH+ite6PIqcOg7ttF4jwKxKUluWEaoJAGSMZaLvU2YzBJxEu9oKMIySv/kqH0cee8GNASOzCcffh/7/LKv690hE7Mss2/zo8dM2938VWQ116+2BVYVGguFhJSetX4tBfSuyalfMF40UfYYuRwqNPZap0dSaz626N800LhX/roD3uEtTPqA5uXA4PuwXTJI3rlQ6Ixs53CRegYkU1BB2uWhP+o3fGpb5ukPgxnnEmXLAOqmsc7Hn/F1lLd3FiwRlT+X/LGvC2Oe4V9u9WW/47hyNJHWhVZQU1bl6hhYXQwPRCrwGGx1ZvurmY4Gi4nJCnb7H3rJHpJ4+pVsx45LhHe3XoFt4P/6kMAwq7RCCniQ+leWV9pittesid1is2SY6V2NMbMriyPGX+tf5pcUj+YpF2RpVz4BMP21Ycpa+9jKBUQATd9X6Zv+Gk7djJ+0Y6/fzKCs0/Rcq9yDmEntrwwU+MYQFq196YKZxBnyN2WHbeQNLE=", "1; BYAPR07MB4902;\n\t6:uRai0f9YOHoHgkmZo7IQns8BVHqnyfIOdIEinRZKZyLkwRon1HkLULdjlJIbZVocsLxPLxeoW5PcUZKx1kv7UiVS3I4a90hAdIosYt4W5fOkC4GYCES8LR5Jn4sx62GVkVwKekQhpEqGZxmIDzyeSotB51gp5M/WzK6nmWNLQ3t0sfDoBu74aIE2/AU3Xti6wRjv5UgQ9zKOkUakdvC86ICuAbWtXxBCN4ljuLxDTX4AKRoAsG+NMuEfvw0arEy0gA2ELg1zU60E+4g95NdugBo6j3vaMjEGXCRInToXzn2Uol7GxFFgmvhCG6ueFb6TusiDVoBQM9C4JGASMyQigOg/qE8pUuMry49gfQl8NPp3tRFVLZMgoJDo2Bct4TJZrq2ZNdrQdYpcweqqXT5S8oAy/admeTFcW271fZGZLGm6XyBOPeYtqBrld5x8+PSf/fN9Ie43xQSDjlUuezYspg==;\n\t5:zfoBDHihcCb5RzRR1L+64/bQ6XuYes3D9n5BKLN/izUr9nDj4w4qAz8V9oZb3x9TWzfuT0qvsTNvjKg+NryTkxLLUgvJbG6WNyU31JbgmKE2oCNoojDxHdy17pcZnCjnGx1JMn0XGvajEBrLutHfN/BhAh86pNwQ4RoKzm794Bs=;\n\t7:yW/6vZ6mWQb9vKrJy1meWaouSw1ALNRwNRQVQNNAiAiiGJTTtI+6AKv+ROlZwOfQdhKfF2Joag3pavhXIOCBUVAo5IUHg+c7llrl/R41IuAA8HjFL1L1x+FPPIrFKNLEX+cXzhe8HXwpqOLkiKj3N6fGEovTy+z8n3X62lgu6O44sJ767mg0GNrAWPGsz3qgShPallgx8OsWkwa2c3PjmK8mMFIE3nvwGBzSjGYD7fnZVcFAPcxgF7k+iHXrsqEf" ], "X-MS-TrafficTypeDiagnostic": "BYAPR07MB4902:", "X-Microsoft-Antispam-PRVS": "<BYAPR07MB49024AB01D10A2DE11B854A3F8030@BYAPR07MB4902.namprd07.prod.outlook.com>", "X-Exchange-Antispam-Report-Test": "UriScan:;", "X-MS-Exchange-SenderADCheck": "1", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3231311)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699016);\n\tSRVR:BYAPR07MB4902; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4902; ", "X-Forefront-PRVS": "0785459C39", "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39860400002)(199004)(189003)(26005)(51416003)(52116002)(76176011)(81166006)(305945005)(81156014)(7736002)(105586002)(316002)(6506007)(106356001)(6512007)(8936002)(446003)(54906003)(25786009)(6666003)(68736007)(50226002)(110136005)(53936002)(16586007)(42882007)(386003)(5660300001)(2906002)(72206003)(50466002)(6486002)(36756003)(6116002)(107886003)(2616005)(14444005)(186003)(3846002)(478600001)(66066001)(476003)(8676002)(47776003)(486006)(956004)(48376002)(11346002)(4326008)(97736004)(16526019);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4902;\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": "wOlxmI/EEjgRvHZ3sq4cMlaFXdIRdlxgeTeJvWyfsC/PhXSY78Wy/bjk0btxHf8PMxCZ9vqVm9DDCLYeQB3XHSKeZ/Kj4+m2sYtipoEhpNYchpx7CqRKNjQ4kyEzp2HuzjPfWj/1Dm6SphSie0vqjo/0Erdx/cNqPFbBY8OEkONuyz4Nhwv1PoEm+PR+4/mTv2ckxAzl/aiN2FbfIVdtYygWUgHRy2WEWHt77XkayraL3qEx6Guc4YpuM3I/plO5KJ3E3ZhYPQkobP1Zd8Y3MHTjT7u7c9eZuHwtypJg3lWXhgZodGW5xJSmTdbZbw93lWGvkw4I6XUoK/G2aeXr1633dNdOs2o9XJswG12GNK4=", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-OriginatorOrg": "caviumnetworks.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 Sep 2018 04:02:12.4441\n\t(UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "15eeb741-99d3-43a0-2201-08d6121b33d8", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR07MB4902", "Subject": "[dpdk-dev] [PATCH v2 07/33] common/cpt: add hardware register\n\tdefines", "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: Anoob Joseph <anoob.joseph@caviumnetworks.com>\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/common/cpt/cpt_hw_types.h | 517 ++++++++++++++++++++++++++++++++++++++\n 1 file changed, 517 insertions(+)\n create mode 100644 drivers/common/cpt/cpt_hw_types.h", "diff": "diff --git a/drivers/common/cpt/cpt_hw_types.h b/drivers/common/cpt/cpt_hw_types.h\nnew file mode 100644\nindex 0000000..8cd1bf8\n--- /dev/null\n+++ b/drivers/common/cpt/cpt_hw_types.h\n@@ -0,0 +1,517 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Cavium, Inc\n+ */\n+\n+#ifndef _CPT_HW_TYPES_H_\n+#define _CPT_HW_TYPES_H_\n+\n+#include <rte_byteorder.h>\n+\n+/*\n+ * This file defines HRM specific structs.\n+ *\n+ */\n+\n+#define CPT_VF_INTR_MBOX_MASK (1<<0)\n+#define CPT_VF_INTR_DOVF_MASK (1<<1)\n+#define CPT_VF_INTR_IRDE_MASK (1<<2)\n+#define CPT_VF_INTR_NWRP_MASK (1<<3)\n+#define CPT_VF_INTR_SWERR_MASK (1<<4)\n+#define CPT_VF_INTR_HWERR_MASK (1<<5)\n+#define CPT_VF_INTR_FAULT_MASK (1<<6)\n+\n+/*\n+ * CPT_INST_S software command definitions\n+ * Words EI (0-3)\n+ */\n+typedef union {\n+\tuint64_t u64;\n+\tstruct {\n+\t\tuint16_t opcode;\n+\t\tuint16_t param1;\n+\t\tuint16_t param2;\n+\t\tuint16_t dlen;\n+\t} s;\n+} vq_cmd_word0_t;\n+\n+typedef union {\n+\tuint64_t u64;\n+\tstruct {\n+#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN\n+\t\tuint64_t grp\t: 3;\n+\t\tuint64_t cptr\t: 61;\n+#else\n+\t\tuint64_t cptr\t: 61;\n+\t\tuint64_t grp\t: 3;\n+#endif\n+\t} s;\n+} vq_cmd_word3_t;\n+\n+typedef struct cpt_vq_command {\n+\tvq_cmd_word0_t cmd;\n+\tuint64_t dptr;\n+\tuint64_t rptr;\n+\tvq_cmd_word3_t cptr;\n+} cpt_vq_cmd_t;\n+\n+/**\n+ * Structure cpt_inst_s\n+ *\n+ * CPT Instruction Structure\n+ * This structure specifies the instruction layout.\n+ * Instructions are stored in memory as little-endian unless\n+ * CPT()_PF_Q()_CTL[INST_BE] is set.\n+ */\n+typedef union cpt_inst_s {\n+\tuint64_t u[8];\n+\tstruct cpt_inst_s_8s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_17_63 : 47;\n+\t\tuint64_t doneint : 1;\n+\t\t/*< [ 16: 16] Done interrupt.\n+\t\t * 0 = No interrupts related to this instruction.\n+\t\t * 1 = When the instruction completes,CPT()_VQ()_DONE[DONE]\n+\t\t * will be incremented, and based on the rules described\n+\t\t * there an interrupt may occur.\n+\t\t */\n+\t\tuint64_t reserved_0_15 : 16;\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t reserved_0_15 : 16;\n+\t\tuint64_t doneint : 1;\n+\t\tuint64_t reserved_17_63 : 47;\n+#endif /* Word 0 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 1 - Big Endian */\n+\t\tuint64_t res_addr : 64;\n+\t\t/*< [127: 64] Result IOVA.\n+\t\t * If nonzero, specifies where to write CPT_RES_S.\n+\t\t * If zero, no result structure will be written.\n+\t\t * Address must be 16-byte aligned.\n+\n+\t\t * Bits <63:49> are ignored by hardware; software should\n+\t\t *use a sign-extended bit <48> for forward compatibility.\n+\t\t */\n+#else /* Word 1 - Little Endian */\n+\t\tuint64_t res_addr : 64;\n+#endif /* Word 1 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 2 - Big Endian */\n+\t\tuint64_t reserved_172_191 : 20;\n+\t\tuint64_t grp : 10;\n+\t\t/*< [171:162] If [WQ_PTR] is nonzero, the SSO guest-group to\n+\t\t * use when CPT submits work to SSO.\n+\t\t * For the SSO to not discard the add-work request, FPA_PF_MAP()\n+\t\t * must map [GRP] and CPT()_PF_Q()_GMCTL[GMID] as valid.\n+\t\t */\n+\t\tuint64_t tt : 2;\n+\t\t/*< [161:160] If [WQ_PTR] is nonzero, the SSO tag type to use\n+\t\t * when CPT submits work to SSO.\n+\t\t */\n+\t\tuint64_t tag : 32;\n+\t\t/*< [159:128] If [WQ_PTR] is nonzero, the SSO tag to use when\n+\t\t * CPT submits work to SSO.\n+\t\t */\n+#else /* Word 2 - Little Endian */\n+\t\tuint64_t tag : 32;\n+\t\tuint64_t tt : 2;\n+\t\tuint64_t grp : 10;\n+\t\tuint64_t reserved_172_191 : 20;\n+#endif /* Word 2 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 3 - Big Endian */\n+\t\tuint64_t wq_ptr : 64;\n+\t\t/**< [255:192] If [WQ_PTR] is nonzero, it is a pointer to a\n+\t\t * work-queue entry that CPT submits work to SSO after all\n+\t\t * context, output data, and result write operations are\n+\t\t * visible to other CNXXXX units and the cores.\n+\t\t * Bits <2:0> must be zero.\n+\t\t * Bits <63:49> are ignored by hardware; software should use a\n+\t\t * sign-extended bit <48> for forward compatibility.\n+\t\t * Internal:Bits <63:49>, <2:0> are ignored by hardware,\n+\t\t * treated as always 0x0.\n+\t\t **/\n+#else /* Word 3 - Little Endian */\n+\t\tuint64_t wq_ptr : 64;\n+#endif /* Word 3 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 4 - Big Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei0 : 64;\n+\t\t\t/**< [319:256] Engine instruction word 0. Passed to the\n+\t\t\t * AE/SE.\n+\t\t\t **/\n+\t\t\tvq_cmd_word0_t vq_cmd_w0;\n+\t\t};\n+#else /* Word 4 - Little Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei0 : 64;\n+\t\t\tvq_cmd_word0_t vq_cmd_w0;\n+\t\t};\n+#endif /* Word 4 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 5 - Big Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei1 : 64;\n+\t\t\t/**< [383:320] Engine instruction word 1. Passed to the\n+\t\t\t * AE/SE.\n+\t\t\t **/\n+\t\t\tuint64_t dptr;\n+\t\t};\n+#else /* Word 5 - Little Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei1 : 64;\n+\t\t\tuint64_t dptr;\n+\t\t};\n+#endif /* Word 5 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 6 - Big Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei2 : 64;\n+\t\t\t/**< [447:384] Engine instruction word 2. Passed to the\n+\t\t\t * AE/SE.\n+\t\t\t **/\n+\t\t\tuint64_t rptr;\n+\t\t};\n+#else /* Word 6 - Little Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei2 : 64;\n+\t\t\tuint64_t rptr;\n+\t\t};\n+#endif /* Word 6 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 7 - Big Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei3 : 64;\n+\t\t\t/**< [511:448] Engine instruction word 3. Passed to the\n+\t\t\t * AE/SE.\n+\t\t\t **/\n+\t\t\tvq_cmd_word3_t vq_cmd_w3;\n+\t\t};\n+#else /* Word 7 - Little Endian */\n+\t\tunion {\n+\t\t\tuint64_t ei3 : 64;\n+\t\t\tvq_cmd_word3_t vq_cmd_w3;\n+\t\t};\n+#endif /* Word 7 - End */\n+\t} s8x;\n+} cpt_inst_s_t;\n+\n+/**\n+ * Structure cpt_res_s\n+ *\n+ * CPT Result Structure\n+ * The CPT coprocessor writes the result structure after it completes a\n+ * CPT_INST_S instruction. The result structure is exactly 16 bytes, and each\n+ * instruction completion produces exactly one result structure.\n+ *\n+ * This structure is stored in memory as little-endian unless\n+ * CPT()_PF_Q()_CTL[INST_BE] is set.\n+ */\n+typedef union cpt_res_s {\n+\tuint64_t u[2];\n+\tstruct cpt_res_s_8s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_17_63 : 47;\n+\t\tuint64_t doneint : 1;\n+\t\t/**< [ 16: 16] Done interrupt. This bit is copied from the\n+\t\t * corresponding instruction's CPT_INST_S[DONEINT].\n+\t\t **/\n+\t\tuint64_t reserved_8_15 : 8;\n+\t\tuint64_t compcode : 8;\n+\t\t/**< [ 7: 0] Indicates completion/error status of the CPT\n+\t\t * coprocessor for the associated instruction, as enumerated by\n+\t\t * CPT_COMP_E. Core software may write the memory location\n+\t\t * containing [COMPCODE] to 0x0 before ringing the doorbell, and\n+\t\t * then poll for completion by checking for a nonzero value.\n+\n+\t\t Once the core observes a nonzero [COMPCODE] value in this case,\n+\t\t the CPT coprocessor will have also completed L2/DRAM write\n+\t\t operations.\n+\t\t */\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t compcode : 8;\n+\t\tuint64_t reserved_8_15 : 8;\n+\t\tuint64_t doneint : 1;\n+\t\tuint64_t reserved_17_63 : 47;\n+#endif /* Word 0 - End */\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 1 - Big Endian */\n+\t\tuint64_t reserved_64_127 : 64;\n+#else /* Word 1 - Little Endian */\n+\t\tuint64_t reserved_64_127 : 64;\n+#endif /* Word 1 - End */\n+\t} s8x;\n+} cpt_res_s_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_ctl\n+ *\n+ * CPT VF Queue Control Registers\n+ * This register configures queues. This register should be changed (other than\n+ * clearing [ENA]) only when quiescent (see CPT()_VQ()_INPROG[INFLIGHT]).\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_ctl_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_1_63 : 63;\n+\t\tuint64_t ena : 1;\n+\t\t/**< [ 0: 0](R/W/H) Enables the logical instruction queue.\n+\t\t * See also CPT()_PF_Q()_CTL[CONT_ERR] and\n+\t\t * CPT()_VQ()_INPROG[INFLIGHT].\n+\t\t * 1 = Queue is enabled.\n+\t\t * 0 = Queue is disabled.\n+\t\t **/\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t ena : 1;\n+\t\tuint64_t reserved_1_63 : 63;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_ctl_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_done\n+ *\n+ * CPT Queue Done Count Registers\n+ * These registers contain the per-queue instruction done count.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_done_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_20_63 : 44;\n+\t\tuint64_t done : 20;\n+\t\t/**< [ 19: 0](R/W/H) Done count. When CPT_INST_S[DONEINT] set\n+\t\t * and that instruction completes,CPT()_VQ()_DONE[DONE] is\n+\t\t * incremented when the instruction finishes. Write to this\n+\t\t * field are for diagnostic use only; instead software writes\n+\t\t * CPT()_VQ()_DONE_ACK with the number of decrements for this\n+\t\t * field.\n+\n+\t\tInterrupts are sent as follows:\n+\n+\t\t * When CPT()_VQ()_DONE[DONE] = 0, then no results are pending,\n+\t\t * the interrupt coalescing timer is held to zero, and an\n+\t\t * interrupt is not sent.\n+\n+\t\t * When CPT()_VQ()_DONE[DONE] != 0, then the interrupt\n+\t\t * coalescing timer counts. If the counter is >= CPT()_VQ()_DONE\n+\t\t * _WAIT[TIME_WAIT]*1024, or CPT()_VQ()_DONE[DONE] >= CPT()_VQ()\n+\t\t * _DONE_WAIT[NUM_WAIT], i.e. enough time has passed or enough\n+\t\t * results have arrived, then the interrupt is sent. Otherwise,\n+\t\t * it is not sent due to coalescing.\n+\n+\t\t* When CPT()_VQ()_DONE_ACK is written (or CPT()_VQ()_DONE is\n+\t\t* written but this is not typical), the interrupt coalescing\n+\t\t* timer restarts. Note after decrementing this interrupt\n+\t\t* equation is recomputed, for example if CPT()_VQ()_DONE[DONE]\n+\t\t* >= CPT()_VQ()_DONE_WAIT[NUM_WAIT] and because the timer is\n+\t\t* zero, the interrupt will be resent immediately. (This covers\n+\t\t* the race case between software acknowledging an interrupt and\n+\t\t* a result returning.)\n+\n+\t\t* When CPT()_VQ()_DONE_ENA_W1S[DONE] = 0, interrupts are not\n+\t\t* sent, but the counting described above still occurs.\n+\n+\t\tSince CPT instructions complete out-of-order, if software is\n+\t\tusing completion interrupts the suggested scheme is to request a\n+\t\tDONEINT on each request, and when an interrupt arrives perform a\n+\t\t\"greedy\" scan for completions; even if a later command is\n+\t\tacknowledged first this will not result in missing a completion.\n+\n+\t\tSoftware is responsible for making sure [DONE] does not overflow\n+\t\t; for example by insuring there are not more than 2^20-1\n+\t\tinstructions in flight that may request interrupts.\n+\t\t */\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t done : 20;\n+\t\tuint64_t reserved_20_63 : 44;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_done_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_done_ack\n+ *\n+ * CPT Queue Done Count Ack Registers\n+ * This register is written by software to acknowledge interrupts.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_done_ack_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_20_63 : 44;\n+\t\tuint64_t done_ack : 20;\n+\t\t/**< [ 19: 0](R/W/H) Number of decrements to CPT()_VQ()_DONE\n+\t\t * [DONE]. Reads CPT()_VQ()_DONE[DONE].\n+\n+\t\tWritten by software to acknowledge interrupts. If CPT()_VQ()_\n+\t\tDONE[DONE] is still nonzero the interrupt will be re-sent if the\n+\t\tconditions described in CPT()_VQ()_DONE[DONE] are satisfied.\n+\t\t */\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t done_ack : 20;\n+\t\tuint64_t reserved_20_63 : 44;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_done_ack_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_done_wait\n+ *\n+ * CPT Queue Done Interrupt Coalescing Wait Registers\n+ * Specifies the per queue interrupt coalescing settings.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_done_wait_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_48_63 : 16;\n+\t\tuint64_t time_wait : 16;\n+\t\t/**< [ 47: 32](R/W) Time hold-off. When CPT()_VQ()_DONE[DONE] =\n+\t\t * 0, or CPT()_VQ()_DONE_ACK is written a timer is cleared. When\n+\t\t * the timer reaches [TIME_WAIT]*1024 then interrupt coalescing\n+\t\t * ends; see CPT()_VQ()_DONE[DONE]. If 0x0, time coalescing is\n+\t\t * disabled.\n+\t\t **/\n+\t\tuint64_t reserved_20_31 : 12;\n+\t\tuint64_t num_wait : 20;\n+\t\t/**< [ 19: 0](R/W) Number of messages hold-off. When\n+\t\t * CPT()_VQ()_DONE[DONE] >= [NUM_WAIT] then interrupt coalescing\n+\t\t * ends; see CPT()_VQ()_DONE[DONE]. If 0x0, same behavior as\n+\t\t * 0x1.\n+\t\t **/\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t num_wait : 20;\n+\t\tuint64_t reserved_20_31 : 12;\n+\t\tuint64_t time_wait : 16;\n+\t\tuint64_t reserved_48_63 : 16;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_done_wait_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_doorbell\n+ *\n+ * CPT Queue Doorbell Registers\n+ * Doorbells for the CPT instruction queues.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_doorbell_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_20_63 : 44;\n+\t\tuint64_t dbell_cnt : 20;\n+\t\t/**< [ 19: 0](R/W/H) Number of instruction queue 64-bit words\n+\t\t * to add to the CPT instruction doorbell count. Readback value\n+\t\t * is the the current number of pending doorbell requests.\n+\n+\t\tIf counter overflows CPT()_VQ()_MISC_INT[DBELL_DOVF] is set.\n+\n+\t\tTo reset the count back to zero, write one to clear\n+\t\tCPT()_VQ()_MISC_INT_ENA_W1C[DBELL_DOVF], then write a value of\n+\t\t2^20 minus the read [DBELL_CNT], then write one to\n+\t\tCPT()_VQ()_MISC_INT_W1C[DBELL_DOVF] and\n+\t\tCPT()_VQ()_MISC_INT_ENA_W1S[DBELL_DOVF].\n+\n+\t\tMust be a multiple of 8. All CPT instructions are 8 words and\n+\t\trequire a doorbell count of multiple of 8.\n+\t\t */\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t dbell_cnt : 20;\n+\t\tuint64_t reserved_20_63 : 44;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_doorbell_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_inprog\n+ *\n+ * CPT Queue In Progress Count Registers\n+ * These registers contain the per-queue instruction in flight registers.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_inprog_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_8_63 : 56;\n+\t\tuint64_t inflight : 8;\n+\t\t/**< [ 7: 0](RO/H) Inflight count. Counts the number of\n+\t\t * instructions for the VF for which CPT is fetching, executing\n+\t\t * or responding to instructions. However this does not include\n+\t\t * any interrupts that are awaiting software handling\n+\t\t * (CPT()_VQ()_DONE[DONE] != 0x0).\n+\n+\t\tA queue may not be reconfigured until:\n+\t\t1. CPT()_VQ()_CTL[ENA] is cleared by software.\n+\t\t2. [INFLIGHT] is polled until equals to zero.\n+\t\t */\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t inflight : 8;\n+\t\tuint64_t reserved_8_63 : 56;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_inprog_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_misc_int\n+ *\n+ * CPT Queue Misc Interrupt Register\n+ * These registers contain the per-queue miscellaneous interrupts.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_misc_int_s {\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_7_63 : 57;\n+\t\tuint64_t fault\t\t : 1;\n+\t\t/**< [ 6: 6](R/W1C/H) Translation fault detected. */\n+\t\tuint64_t hwerr\t\t : 1;\n+\t\t/**< [ 5: 5](R/W1C/H) Hardware error from engines. */\n+\t\tuint64_t swerr : 1;\n+\t\t/**< [ 4: 4](R/W1C/H) Software error from engines. */\n+\t\tuint64_t nwrp : 1;\n+\t\t/**< [ 3: 3](R/W1C/H) NCB result write response error. */\n+\t\tuint64_t irde : 1;\n+\t\t/**< [ 2: 2](R/W1C/H) Instruction NCB read response error. */\n+\t\tuint64_t dovf : 1;\n+\t\t/**< [ 1: 1](R/W1C/H) Doorbell overflow. */\n+\t\tuint64_t mbox : 1;\n+\t\t/**< [ 0: 0](R/W1C/H) PF to VF mailbox interrupt. Set when\n+\t\t * CPT()_VF()_PF_MBOX(0) is written.\n+\t\t **/\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t mbox : 1;\n+\t\tuint64_t dovf : 1;\n+\t\tuint64_t irde : 1;\n+\t\tuint64_t nwrp : 1;\n+\t\tuint64_t swerr : 1;\n+\t\tuint64_t hwerr\t\t : 1;\n+\t\tuint64_t fault\t\t : 1;\n+\t\tuint64_t reserved_5_63 : 59;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_misc_int_t;\n+\n+/**\n+ * Register (NCB) cpt#_vq#_saddr\n+ *\n+ * CPT Queue Starting Buffer Address Registers\n+ * These registers set the instruction buffer starting address.\n+ */\n+typedef union {\n+\tuint64_t u;\n+\tstruct cptx_vqx_saddr_s\t{\n+#if (RTE_BYTE_ORDER == RTE_BIG_ENDIAN) /* Word 0 - Big Endian */\n+\t\tuint64_t reserved_49_63 : 15;\n+\t\tuint64_t ptr : 43;\n+\t\t/**< [ 48: 6](R/W/H) Instruction buffer IOVA <48:6>\n+\t\t * (64-byte aligned). When written, it is the initial buffer\n+\t\t * starting address; when read, it is the next read pointer to\n+\t\t * be requested from L2C. The PTR field is overwritten with the\n+\t\t * next pointer each time that the command buffer segment is\n+\t\t * exhausted. New commands will then be read from the newly\n+\t\t * specified command buffer pointer.\n+\t\t **/\n+\t\tuint64_t reserved_0_5 : 6;\n+#else /* Word 0 - Little Endian */\n+\t\tuint64_t reserved_0_5 : 6;\n+\t\tuint64_t ptr : 43;\n+\t\tuint64_t reserved_49_63 : 15;\n+#endif /* Word 0 - End */\n+\t} s;\n+} cptx_vqx_saddr_t;\n+\n+#endif /*_CPT_HW_TYPES_H_ */\n", "prefixes": [ "v2", "07/33" ] }{ "id": 44181, "url": "