get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 112501,
    "url": "https://patches.dpdk.org/api/patches/112501/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220607213149.1980193-2-ed.czeck@atomicrules.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20220607213149.1980193-2-ed.czeck@atomicrules.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220607213149.1980193-2-ed.czeck@atomicrules.com",
    "date": "2022-06-07T21:31:44",
    "name": "[v4,2/7] net/ark: update MPU functions for firmware update",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "7eb14b161b5eea82ef2183f255cbe07ca4922fcd",
    "submitter": {
        "id": 699,
        "url": "https://patches.dpdk.org/api/people/699/?format=api",
        "name": "Ed Czeck",
        "email": "ed.czeck@atomicrules.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220607213149.1980193-2-ed.czeck@atomicrules.com/mbox/",
    "series": [
        {
            "id": 23391,
            "url": "https://patches.dpdk.org/api/series/23391/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=23391",
            "date": "2022-06-07T21:31:43",
            "name": "[v4,1/7] devtools: add Atomic Rules acronyms for commit checks",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/23391/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/112501/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/112501/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 3006BA0548;\n\tTue,  7 Jun 2022 23:32:03 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D9C9F42685;\n\tTue,  7 Jun 2022 23:32:00 +0200 (CEST)",
            "from mail-qv1-f43.google.com (mail-qv1-f43.google.com\n [209.85.219.43]) by mails.dpdk.org (Postfix) with ESMTP id 642FB41614\n for <dev@dpdk.org>; Tue,  7 Jun 2022 23:31:59 +0200 (CEST)",
            "by mail-qv1-f43.google.com with SMTP id u8so13241461qvj.2\n for <dev@dpdk.org>; Tue, 07 Jun 2022 14:31:59 -0700 (PDT)",
            "from z390.czeck.local (pool-173-48-102-189.bstnma.fios.verizon.net.\n [173.48.102.189]) by smtp.gmail.com with ESMTPSA id\n x6-20020ae9f806000000b006a6cdc79229sm3774711qkh.55.2022.06.07.14.31.56\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Jun 2022 14:31:56 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=atomicrules-com.20210112.gappssmtp.com; s=20210112;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=qvTUaqwqtjeRBlvgqVDFNGm6RKYwUEmvu/7/Y4Gcb0g=;\n b=Cz+qEQfFLthzdiuBKIMfd8MGHp8Hh7Px+1h6cyln8MCdIM9dlHRFRUXBOSE+YTPO7l\n RLubpfPEeKU51w82v139EAhlyKhUnQk3nmpYDfH1AyxuLGssi1+fQ9qVvhjFmdCMk1m+\n +SkM11o+xPTWFoGt2dVcJk0UbcOxMvMd7Pmhipb/upKlvB2N3LHJ0GcFmKDzWnnO+dGW\n 4AwB5/skMIHWRuBIoVnMOnpvBl03AS4TCYOFcd5XD6fmqx4d0aZ2060diRz0tmwdh7UN\n EnQI1JrjMYfSM1jv13MGYM4SzZS5V+8NwZRYjktIC1PGPfS7yAGEhP1omH58+tpewYrV\n aDzw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=qvTUaqwqtjeRBlvgqVDFNGm6RKYwUEmvu/7/Y4Gcb0g=;\n b=zqV+z7m3NErwAFdrK2Z3/KbnthaaRvuQXEjdKULHwov8pLTwEeb9scBncpzD92rez6\n 2Dvus1NQHkyywgA2NT802Ab1x4hRfApSMNg/1cHsOa7TJuKCN6XB8ssEG9mz68kyOe3+\n OwZTbDiii03Ta0BAfwt+eu+q4U8hXhSsuBtbPaecRQMl9oSb0AkLHi5dQNj3lbeJ2rzo\n hj+e6xWMZU2z+5OL5jm/HqdWM6AtgRVdLaUwAPKtNvYz/Du1joSYGN6zQMANHDZnoeps\n Z9I53Kk25kIY1e/AApzlj7E09xyi6bCf6d1ETcGqwhqP+8fQgjHwvjg2ziKSgmeJsOzD\n iVGg==",
        "X-Gm-Message-State": "AOAM530rPwuxH3Jub6UruelACEUWVjj/bi9bu1EgN4z32sAVQS6IOZmI\n DQagMCi4PZCdNmKqcuNYkffiHTi82A/EKQ==",
        "X-Google-Smtp-Source": "\n ABdhPJzfSmeWvtqnA1q8mHHM+5d6j7g3Z8W6y+NvhfEcaL3OXZuftawHThvlw3qMuRvozXM2kkmkuA==",
        "X-Received": "by 2002:a05:6214:234f:b0:467:cb08:ae57 with SMTP id\n hu15-20020a056214234f00b00467cb08ae57mr22194272qvb.36.1654637517424;\n Tue, 07 Jun 2022 14:31:57 -0700 (PDT)",
        "From": "Ed Czeck <ed.czeck@atomicrules.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@xilinx.com, ktraynor@redhat.com, bluca@debian.org,\n Shepard Siegel <shepard.siegel@atomicrules.com>,\n John Miller <john.miller@atomicrules.com>",
        "Subject": "[PATCH v4 2/7] net/ark: update MPU functions for firmware update",
        "Date": "Tue,  7 Jun 2022 17:31:44 -0400",
        "Message-Id": "<20220607213149.1980193-2-ed.czeck@atomicrules.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220607213149.1980193-1-ed.czeck@atomicrules.com>",
        "References": "<20220502212232.1283-1-ed.czeck@atomicrules.com>\n <20220607213149.1980193-1-ed.czeck@atomicrules.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "new firmware version for MPU (Mbuf Prefetch Unit)\nremove device-level global operations\nremove ark_mpu_reset_stats function\n\nSigned-off-by: Ed Czeck <ed.czeck@atomicrules.com>\n\n---\nv2:\n- document version compatibility between firmware and DPDK\n- reword commit message\nv4:\n- clarify version compatibility note\n- firmware change requirement added to release notes\n---\n doc/guides/nics/ark.rst                | 19 +++++++++++++++++\n doc/guides/rel_notes/release_22_07.rst |  3 +++\n drivers/net/ark/ark_ethdev.c           |  2 --\n drivers/net/ark/ark_ethdev_rx.c        |  4 ----\n drivers/net/ark/ark_mpu.c              | 21 ++++---------------\n drivers/net/ark/ark_mpu.h              | 29 ++------------------------\n 6 files changed, 28 insertions(+), 50 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/ark.rst b/doc/guides/nics/ark.rst\nindex 60b61e08e8..d8acb36d74 100644\n--- a/doc/guides/nics/ark.rst\n+++ b/doc/guides/nics/ark.rst\n@@ -300,6 +300,25 @@ ARK PMD supports the following Arkville RTL PCIe instances including:\n * ``1d6c:101e`` - AR-ARKA-FX1 [Arkville 64B DPDK Data Mover for Agilex R-Tile]\n * ``1d6c:101f`` - AR-TK242 [2x100GbE Packet Capture Device]\n \n+DPDK and Arkville Firmware Versioning\n+-------------------------------------\n+\n+Arkville's firmware releases and its PMD have version dependencies which\n+must be stepped together at certain releases. PMD code ensures the\n+versions are compatible. The following lists shows where version\n+compatible steps have occurred between DPDK releases and the corresponding\n+Arkville releases.  Intermediate releases not listed below remain\n+compatible, e.g., DPDK releases 21.05, 21.08, and 21.11 are all compatible\n+with Arkville releases 21.05, 21.08 and 21.11. LTS versions of DPDK remain\n+compatible with the corresponding Arkville version.  If other combinations\n+are required, please contact Atomic Rules support.\n+\n+* DPDK 22.07 requires Arkville 22.07.\n+* DPDK 22.03 requires Arkville 22.03.\n+* DPDK 21.05 requires Arkville 21.05.\n+* DPDK 18.11 requires Arkville 18.11.\n+* DPDK 17.05 requires Arkville 17.05 -- initial version.\n+\n Supported Operating Systems\n ---------------------------\n \ndiff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst\nindex d46f773df0..aca946cea6 100644\n--- a/doc/guides/rel_notes/release_22_07.rst\n+++ b/doc/guides/rel_notes/release_22_07.rst\n@@ -170,6 +170,9 @@ New Features\n   This is a fall-back implementation for platforms that\n   don't support vector operations.\n \n+* **Updated Atomic Rules' Arkville PMD.**\n+\n+  A firmware version update to Arkville 22.07 is required.\n \n Removed Items\n -------------\ndiff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c\nindex 76b88c62d0..c0578b85ce 100644\n--- a/drivers/net/ark/ark_ethdev.c\n+++ b/drivers/net/ark/ark_ethdev.c\n@@ -524,7 +524,6 @@ ark_config_device(struct rte_eth_dev *dev)\n \tnum_q = ark_api_num_queues(mpu);\n \tark->rx_queues = num_q;\n \tfor (i = 0; i < num_q; i++) {\n-\t\tark_mpu_reset(mpu);\n \t\tmpu = RTE_PTR_ADD(mpu, ARK_MPU_QOFFSET);\n \t}\n \n@@ -536,7 +535,6 @@ ark_config_device(struct rte_eth_dev *dev)\n \tnum_q = ark_api_num_queues(mpu);\n \tark->tx_queues = num_q;\n \tfor (i = 0; i < num_q; i++) {\n-\t\tark_mpu_reset(mpu);\n \t\tmpu = RTE_PTR_ADD(mpu, ARK_MPU_QOFFSET);\n \t}\n \ndiff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c\nindex 0fbb2603db..85e34d0bb8 100644\n--- a/drivers/net/ark/ark_ethdev_rx.c\n+++ b/drivers/net/ark/ark_ethdev_rx.c\n@@ -91,9 +91,6 @@ eth_ark_rx_hw_setup(struct rte_eth_dev *dev,\n \n \tark_udm_write_addr(queue->udm, phys_addr_prod_index);\n \n-\t/* advance the valid pointer, but don't start until the queue starts */\n-\tark_mpu_reset_stats(queue->mpu);\n-\n \t/* The seed is the producer index for the HW */\n \tark_mpu_set_producer(queue->mpu, queue->seed_index);\n \tdev->data->rx_queue_state[rx_queue_idx] = RTE_ETH_QUEUE_STATE_STOPPED;\n@@ -589,7 +586,6 @@ eth_rx_queue_stats_reset(void *vqueue)\n \tif (queue == 0)\n \t\treturn;\n \n-\tark_mpu_reset_stats(queue->mpu);\n \tark_udm_queue_stats_reset(queue->udm);\n }\n \ndiff --git a/drivers/net/ark/ark_mpu.c b/drivers/net/ark/ark_mpu.c\nindex b8e94b6ed3..9d5ee7841b 100644\n--- a/drivers/net/ark/ark_mpu.c\n+++ b/drivers/net/ark/ark_mpu.c\n@@ -24,10 +24,10 @@ ark_mpu_verify(struct ark_mpu_t *mpu, uint32_t obj_size)\n {\n \tuint32_t version;\n \n-\tversion = mpu->id.vernum & 0x0000fF00;\n-\tif ((mpu->id.idnum != 0x2055504d) ||\n-\t    (mpu->hw.obj_size != obj_size) ||\n-\t    (version != 0x00003100)) {\n+\tversion = mpu->id.vernum;\n+\tif (mpu->id.idnum != ARK_MPU_MODID ||\n+\t    version != ARK_MPU_MODVER ||\n+\t    mpu->hw.obj_size != obj_size) {\n \t\tARK_PMD_LOG(ERR,\n \t\t\t    \"   MPU module not found as expected %08x\"\n \t\t\t    \" \\\"%c%c%c%c %c%c%c%c\\\"\\n\",\n@@ -79,16 +79,9 @@ ark_mpu_reset(struct ark_mpu_t *mpu)\n \t\tmpu->cfg.command = MPU_CMD_FORCE_RESET;\n \t\tusleep(10);\n \t}\n-\tark_mpu_reset_stats(mpu);\n \treturn mpu->cfg.command != MPU_CMD_IDLE;\n }\n \n-void\n-ark_mpu_reset_stats(struct ark_mpu_t *mpu)\n-{\n-\tmpu->stats.pci_request = 1;\t/* reset stats */\n-}\n-\n int\n ark_mpu_configure(struct ark_mpu_t *mpu, rte_iova_t ring, uint32_t ring_size,\n \t\t  int is_tx)\n@@ -118,12 +111,6 @@ ark_mpu_dump(struct ark_mpu_t *mpu, const char *code, uint16_t qid)\n \tARK_PMD_LOG(DEBUG, \"MPU: %s Q: %3u sw_prod %u, hw_cons: %u\\n\",\n \t\t      code, qid,\n \t\t      mpu->cfg.sw_prod_index, mpu->cfg.hw_cons_index);\n-\tARK_PMD_LOG(DEBUG, \"MPU: %s state: %d count %d, reserved %d\"\n-\t\t      \"\\n\",\n-\t\t      code,\n-\t\t      mpu->debug.state, mpu->debug.count,\n-\t\t      mpu->debug.reserved\n-\t\t      );\n }\n \n void\ndiff --git a/drivers/net/ark/ark_mpu.h b/drivers/net/ark/ark_mpu.h\nindex 92c3e67c86..9d2b70d35f 100644\n--- a/drivers/net/ark/ark_mpu.h\n+++ b/drivers/net/ark/ark_mpu.h\n@@ -15,6 +15,8 @@\n  * there is minimal documentation.\n  */\n \n+#define ARK_MPU_MODID 0x2055504d\n+#define ARK_MPU_MODVER 0x37313232\n /*\n  * MPU hardware structures\n  * These are overlay structures to a memory mapped FPGA device.  These\n@@ -64,26 +66,6 @@ enum ARK_MPU_COMMAND {\n \tMPU_COMMAND_LIMIT = 0xfFFFFFFF\n };\n \n-#define ARK_MPU_STATS 0x080\n-struct ark_mpu_stats_t {\n-\tvolatile uint64_t pci_request;\n-\tvolatile uint64_t q_empty;\n-\tvolatile uint64_t q_q1;\n-\tvolatile uint64_t q_q2;\n-\tvolatile uint64_t q_q3;\n-\tvolatile uint64_t q_q4;\n-\tvolatile uint64_t q_full;\n-};\n-\n-#define ARK_MPU_DEBUG 0x0C0\n-struct ark_mpu_debug_t {\n-\tvolatile uint32_t state;\n-\tuint32_t reserved;\n-\tvolatile uint32_t count;\n-\tvolatile uint32_t take;\n-\tvolatile uint32_t peek[4];\n-};\n-\n /*  Consolidated structure */\n struct ark_mpu_t {\n \tstruct ark_mpu_id_t id;\n@@ -93,12 +75,6 @@ struct ark_mpu_t {\n \tuint8_t reserved1[(ARK_MPU_CFG - ARK_MPU_HW) -\n \t\t\t  sizeof(struct ark_mpu_hw_t)];\n \tstruct ark_mpu_cfg_t cfg;\n-\tuint8_t reserved2[(ARK_MPU_STATS - ARK_MPU_CFG) -\n-\t\t\t  sizeof(struct ark_mpu_cfg_t)];\n-\tstruct ark_mpu_stats_t stats;\n-\tuint8_t reserved3[(ARK_MPU_DEBUG - ARK_MPU_STATS) -\n-\t\t\t  sizeof(struct ark_mpu_stats_t)];\n-\tstruct ark_mpu_debug_t debug;\n };\n \n uint16_t ark_api_num_queues(struct ark_mpu_t *mpu);\n@@ -113,7 +89,6 @@ int ark_mpu_configure(struct ark_mpu_t *mpu, rte_iova_t ring,\n \n void ark_mpu_dump(struct ark_mpu_t *mpu, const char *msg, uint16_t idx);\n void ark_mpu_dump_setup(struct ark_mpu_t *mpu, uint16_t qid);\n-void ark_mpu_reset_stats(struct ark_mpu_t *mpu);\n \n /*  this action is in a performance critical path */\n static inline void\n",
    "prefixes": [
        "v4",
        "2/7"
    ]
}