get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 76897,
    "url": "http://patches.dpdk.org/api/patches/76897/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1599556475-27820-4-git-send-email-arybchenko@solarflare.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": "<1599556475-27820-4-git-send-email-arybchenko@solarflare.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1599556475-27820-4-git-send-email-arybchenko@solarflare.com",
    "date": "2020-09-08T09:14:23",
    "name": "[02/14] net/sfc: introduce common driver library",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8ab5d79a8c771e4ea12e03c4ca142cb45b395172",
    "submitter": {
        "id": 607,
        "url": "http://patches.dpdk.org/api/people/607/?format=api",
        "name": "Andrew Rybchenko",
        "email": "arybchenko@solarflare.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1599556475-27820-4-git-send-email-arybchenko@solarflare.com/mbox/",
    "series": [
        {
            "id": 12014,
            "url": "http://patches.dpdk.org/api/series/12014/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12014",
            "date": "2020-09-08T09:14:20",
            "name": "net/sfc: factor out common driver library",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/12014/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/76897/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/76897/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 1B1E1A04AA;\n\tTue,  8 Sep 2020 11:17:50 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0753C1C1A8;\n\tTue,  8 Sep 2020 11:16:09 +0200 (CEST)",
            "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id ABB451C0DB\n for <dev@dpdk.org>; Tue,  8 Sep 2020 11:16:03 +0200 (CEST)",
            "from mx1-us1.ppe-hosted.com (unknown [10.110.50.144])\n by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id\n 51FD420065 for <dev@dpdk.org>; Tue,  8 Sep 2020 09:16:03 +0000 (UTC)",
            "from us4-mdac16-41.at1.mdlocal (unknown [10.110.48.12])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id B9E3B800EC\n for <dev@dpdk.org>; Tue,  8 Sep 2020 09:16:02 +0000 (UTC)",
            "from mx1-us1.ppe-hosted.com (unknown [10.110.50.12])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id B28BA40131\n for <dev@dpdk.org>; Tue,  8 Sep 2020 09:14:55 +0000 (UTC)",
            "from webmail.solarflare.com (uk.solarflare.com [193.34.186.16])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n (No client certificate requested)\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 2606340062\n for <dev@dpdk.org>; Tue,  8 Sep 2020 09:14:55 +0000 (UTC)",
            "from ukex01.SolarFlarecom.com (10.17.10.4) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id\n 15.0.1497.2; Tue, 8 Sep 2020 10:14:49 +0100",
            "from opal.uk.solarflarecom.com (10.17.10.1) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id\n 15.0.1497.2 via Frontend Transport; Tue, 8 Sep 2020 10:14:49 +0100",
            "from ukv-loginhost.uk.solarflarecom.com\n (ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 0889EnCb032407\n for <dev@dpdk.org>; Tue, 8 Sep 2020 10:14:49 +0100",
            "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 431FD1613AB\n for <dev@dpdk.org>; Tue,  8 Sep 2020 10:14:49 +0100 (BST)"
        ],
        "X-Virus-Scanned": "Proofpoint Essentials engine",
        "From": "Andrew Rybchenko <arybchenko@solarflare.com>",
        "To": "<dev@dpdk.org>",
        "Date": "Tue, 8 Sep 2020 10:14:23 +0100",
        "Message-ID": "<1599556475-27820-4-git-send-email-arybchenko@solarflare.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1599556475-27820-1-git-send-email-arybchenko@solarflare.com>",
        "References": "<1599556475-27820-1-git-send-email-arybchenko@solarflare.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.6.1012-25652.003",
        "X-TM-AS-Result": "No-13.911400-8.000000-10",
        "X-TMASE-MatchedRID": "CzrRmG7Jh68kVMQcdgU2qW6HurDH4PpP+WsBL5B3ZTHfUZT83lbkED6P\n hj6DfZCEtZt7pZct9Kv+UA6OdqfdifV+NbN27IZWoprTEHvewAAEa8g1x8eqF1fLpI8fOvDuHfA\n CHvXeibIHQ6X2WXCI3iU+uzi8gTG2RZJ90/Q8Spmdx4sU8R+eYKld1ZriBTRLGukEjITkpiJdaO\n 8DxOlYWJgxtRFzQurYRXWLuHFe7bfyNWG6Utfmrz9B1SHosSXQljXTOadSXWkHZBaLwEXlKC2Ng\n sVnbGZK2B0q6PyRn98sXNQR30ZuabhYaHW9RIv/D3uYMxd01bdDMa/OS9k9gWPK/53RnQ7FXUHY\n lz+7vydSv1u9wBe+HVS0GixpdR65bOQiEknMHoEgCPGiZqtI8CKpn/iCVxz8KBVvFbsUM5XnDEj\n LKFGJ49zTdKYcHA6ApxUVxpAT4EFyOVk+FPzL10dwfgSciXneXccelkX/ubBPIi6bm6Wq5oI5IE\n vkmJtD1UVeRhm40I8HtbigP+IJHx8MyvfwOitdZacDbE73ZSmuWmaqaW5SP8eQfu6iwSfsb7Ah9\n 7+dVMHE0AQvp+oKYZ3uaNcnu0yTd3WlHgjh+h0h/RMTVV2425wE50C6MzyIrq9Rw9qmVpg56GdZ\n xUF9VkPZL5UZCKGfuKCwA5lSqrnHPqim4ABQknCO70QAsBdCV9/n5IZng2TmTInKzpSFSYZzi8n\n 5csaz3HbmaxD3kak7pHnzpyV/bnHxC4bPmCOyalRqQPhHMT66hgVvSdGKo9TSDdVx8njucb0X5x\n eTKWKng751ZztrlZbybMtrsqDzG86R6Zxt6qaeAiCmPx4NwBnUJ0Ek6yhjxEHRux+uk8jpP8tMO\n yYmaA==",
        "X-TM-AS-User-Approved-Sender": "Yes",
        "X-TM-AS-User-Blocked-Sender": "No",
        "X-TMASE-Result": "10--13.911400-8.000000",
        "X-TMASE-Version": "SMEX-12.5.0.1300-8.6.1012-25652.003",
        "X-MDID": "1599556562-yLOcrAl0dQj4",
        "Subject": "[dpdk-dev] [PATCH 02/14] net/sfc: introduce common driver library",
        "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 <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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Move libefx (base driver) into common driver.\n\nPrepare to add vDPA driver which will use the common driver as well.\n\nSigned-off-by: Andrew Rybchenko <arybchenko@solarflare.com>\n---\n MAINTAINERS                                   |   1 +\n drivers/common/Makefile                       |   4 +\n drivers/common/meson.build                    |   2 +-\n drivers/common/sfc_efx/Makefile               | 111 ++++++++++++++++\n .../{net/sfc => common/sfc_efx}/base/README   |   0\n .../sfc => common/sfc_efx}/base/ef10_ev.c     |   0\n .../sfc => common/sfc_efx}/base/ef10_evb.c    |   0\n .../sfc => common/sfc_efx}/base/ef10_filter.c |   0\n .../sfc_efx}/base/ef10_firmware_ids.h         |   0\n .../sfc => common/sfc_efx}/base/ef10_image.c  |   0\n .../sfc => common/sfc_efx}/base/ef10_impl.h   |   0\n .../sfc => common/sfc_efx}/base/ef10_intr.c   |   0\n .../sfc => common/sfc_efx}/base/ef10_mac.c    |   0\n .../sfc => common/sfc_efx}/base/ef10_mcdi.c   |   0\n .../sfc => common/sfc_efx}/base/ef10_nic.c    |   0\n .../sfc => common/sfc_efx}/base/ef10_nvram.c  |   0\n .../sfc => common/sfc_efx}/base/ef10_phy.c    |   0\n .../sfc => common/sfc_efx}/base/ef10_proxy.c  |   0\n .../sfc => common/sfc_efx}/base/ef10_rx.c     |   0\n .../sfc_efx}/base/ef10_signed_image_layout.h  |   0\n .../sfc_efx}/base/ef10_tlv_layout.h           |   0\n .../sfc => common/sfc_efx}/base/ef10_tx.c     |   0\n .../sfc => common/sfc_efx}/base/ef10_vpd.c    |   0\n .../{net/sfc => common/sfc_efx}/base/efx.h    |   0\n .../sfc => common/sfc_efx}/base/efx_annote.h  |   0\n .../sfc => common/sfc_efx}/base/efx_bootcfg.c |   0\n .../sfc => common/sfc_efx}/base/efx_check.h   |   0\n .../sfc => common/sfc_efx}/base/efx_crc32.c   |   0\n .../{net/sfc => common/sfc_efx}/base/efx_ev.c |   0\n .../sfc => common/sfc_efx}/base/efx_evb.c     |   0\n .../sfc => common/sfc_efx}/base/efx_filter.c  |   0\n .../sfc => common/sfc_efx}/base/efx_hash.c    |   0\n .../sfc => common/sfc_efx}/base/efx_impl.h    |   0\n .../sfc => common/sfc_efx}/base/efx_intr.c    |   0\n .../sfc => common/sfc_efx}/base/efx_lic.c     |   0\n .../sfc => common/sfc_efx}/base/efx_mac.c     |   0\n .../sfc => common/sfc_efx}/base/efx_mcdi.c    |   0\n .../sfc => common/sfc_efx}/base/efx_mcdi.h    |   0\n .../sfc => common/sfc_efx}/base/efx_mon.c     |   0\n .../sfc => common/sfc_efx}/base/efx_nic.c     |   0\n .../sfc => common/sfc_efx}/base/efx_nvram.c   |   0\n .../sfc => common/sfc_efx}/base/efx_phy.c     |   0\n .../sfc => common/sfc_efx}/base/efx_phy_ids.h |   0\n .../sfc => common/sfc_efx}/base/efx_port.c    |   0\n .../sfc => common/sfc_efx}/base/efx_proxy.c   |   0\n .../sfc => common/sfc_efx}/base/efx_regs.h    |   0\n .../sfc_efx}/base/efx_regs_ef10.h             |   0\n .../sfc_efx}/base/efx_regs_mcdi.h             |   0\n .../sfc_efx}/base/efx_regs_mcdi_aoe.h         |   0\n .../sfc_efx}/base/efx_regs_mcdi_strs.h        |   0\n .../sfc_efx}/base/efx_regs_pci.h              |   0\n .../{net/sfc => common/sfc_efx}/base/efx_rx.c |   0\n .../sfc => common/sfc_efx}/base/efx_sram.c    |   0\n .../sfc => common/sfc_efx}/base/efx_tunnel.c  |   0\n .../{net/sfc => common/sfc_efx}/base/efx_tx.c |   0\n .../sfc => common/sfc_efx}/base/efx_types.h   |   0\n .../sfc => common/sfc_efx}/base/efx_vpd.c     |   0\n .../sfc => common/sfc_efx}/base/hunt_impl.h   |   0\n .../sfc => common/sfc_efx}/base/hunt_nic.c    |   0\n .../sfc => common/sfc_efx}/base/mcdi_mon.c    |   0\n .../sfc => common/sfc_efx}/base/mcdi_mon.h    |   0\n .../sfc_efx}/base/medford2_impl.h             |   0\n .../sfc_efx}/base/medford2_nic.c              |   0\n .../sfc_efx}/base/medford_impl.h              |   0\n .../sfc => common/sfc_efx}/base/medford_nic.c |   0\n .../sfc => common/sfc_efx}/base/meson.build   |   0\n .../sfc => common/sfc_efx}/base/siena_flash.h |   0\n .../sfc => common/sfc_efx}/base/siena_impl.h  |   0\n .../sfc => common/sfc_efx}/base/siena_mac.c   |   0\n .../sfc => common/sfc_efx}/base/siena_mcdi.c  |   0\n .../sfc => common/sfc_efx}/base/siena_nic.c   |   0\n .../sfc => common/sfc_efx}/base/siena_nvram.c |   0\n .../sfc => common/sfc_efx}/base/siena_phy.c   |   0\n .../sfc => common/sfc_efx}/base/siena_sram.c  |   0\n .../sfc => common/sfc_efx}/base/siena_vpd.c   |   0\n drivers/{net/sfc => common/sfc_efx}/efsys.h   |  58 ++++-----\n drivers/common/sfc_efx/meson.build            |  39 ++++++\n .../sfc_efx/rte_common_sfc_efx_version.map    | 122 ++++++++++++++++++\n drivers/common/sfc_efx/sfc_efx.c              |  23 ++++\n drivers/common/sfc_efx/sfc_efx_debug.h        |  29 +++++\n drivers/common/sfc_efx/sfc_efx_log.h          |  22 ++++\n drivers/net/sfc/Makefile                      |  70 +---------\n drivers/net/sfc/meson.build                   |   6 +-\n mk/rte.app.mk                                 |   1 +\n 84 files changed, 386 insertions(+), 102 deletions(-)\n create mode 100644 drivers/common/sfc_efx/Makefile\n rename drivers/{net/sfc => common/sfc_efx}/base/README (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_ev.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_evb.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_filter.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_firmware_ids.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_image.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_intr.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_proxy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_rx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_signed_image_layout.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_tlv_layout.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_tx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/ef10_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_annote.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_bootcfg.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_check.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_crc32.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_ev.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_evb.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_filter.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_hash.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_intr.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_lic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mcdi.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_mon.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_phy_ids.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_port.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_proxy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_ef10.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi_aoe.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_mcdi_strs.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_regs_pci.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_rx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_sram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_tunnel.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_tx.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_types.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/efx_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/hunt_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/hunt_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/mcdi_mon.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/mcdi_mon.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford2_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford2_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/medford_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/meson.build (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_flash.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_impl.h (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_mac.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_mcdi.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_nic.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_nvram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_phy.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_sram.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/base/siena_vpd.c (100%)\n rename drivers/{net/sfc => common/sfc_efx}/efsys.h (93%)\n create mode 100644 drivers/common/sfc_efx/meson.build\n create mode 100644 drivers/common/sfc_efx/rte_common_sfc_efx_version.map\n create mode 100644 drivers/common/sfc_efx/sfc_efx.c\n create mode 100644 drivers/common/sfc_efx/sfc_efx_debug.h\n create mode 100644 drivers/common/sfc_efx/sfc_efx_log.h",
    "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex ed163f5d59..ee20e261d5 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -872,6 +872,7 @@ F: doc/guides/nics/features/qede*.ini\n \n Solarflare sfc_efx\n M: Andrew Rybchenko <arybchenko@solarflare.com>\n+F: drivers/common/sfc_efx/\n F: drivers/net/sfc/\n F: doc/guides/nics/sfc_efx.rst\n F: doc/guides/nics/features/sfc_efx.ini\ndiff --git a/drivers/common/Makefile b/drivers/common/Makefile\nindex cfb6b4dc88..378ab4281c 100644\n--- a/drivers/common/Makefile\n+++ b/drivers/common/Makefile\n@@ -36,4 +36,8 @@ ifneq (,$(findstring y,$(IAVF-y)))\n DIRS-y += iavf\n endif\n \n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD)),y)\n+DIRS-y += sfc_efx\n+endif\n+\n include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/common/meson.build b/drivers/common/meson.build\nindex 9ed4c04ba5..7ac1ca73a2 100644\n--- a/drivers/common/meson.build\n+++ b/drivers/common/meson.build\n@@ -6,6 +6,6 @@ if is_windows\n endif\n \n std_deps = ['eal']\n-drivers = ['cpt', 'dpaax', 'iavf', 'mvep', 'octeontx', 'octeontx2', 'qat']\n+drivers = ['cpt', 'dpaax', 'iavf', 'mvep', 'octeontx', 'octeontx2', 'qat', 'sfc_efx']\n config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'\n driver_name_fmt = 'rte_common_@0@'\ndiff --git a/drivers/common/sfc_efx/Makefile b/drivers/common/sfc_efx/Makefile\nnew file mode 100644\nindex 0000000000..0bd6a593e9\n--- /dev/null\n+++ b/drivers/common/sfc_efx/Makefile\n@@ -0,0 +1,111 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+#\n+# Copyright(c) 2019-2020 Xilinx, Inc.\n+#\n+# This software was jointly developed between OKTET Labs (under contract\n+# for Solarflare) and Solarflare Communications, Inc.\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+#\n+# library name\n+#\n+LIB = librte_common_sfc_efx.a\n+\n+CFLAGS += -I$(SRCDIR)/base/\n+CFLAGS += -I$(SRCDIR)\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+# Enable extra warnings\n+CFLAGS += -Wextra\n+\n+# More warnings not enabled by above aggregators\n+CFLAGS += -Wdisabled-optimization\n+\n+# Extra CFLAGS for base driver files\n+CFLAGS_BASE_DRIVER += -Wno-sign-compare\n+CFLAGS_BASE_DRIVER += -Wno-unused-parameter\n+CFLAGS_BASE_DRIVER += -Wno-unused-variable\n+\n+# Compiler and version dependent flags\n+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)\n+CFLAGS += -Waggregate-return\n+CFLAGS += -Wnested-externs\n+CFLAGS_BASE_DRIVER += -Wno-empty-body\n+CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable\n+else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)\n+CFLAGS += -Waggregate-return\n+CFLAGS += -Wbad-function-cast\n+CFLAGS_BASE_DRIVER += -Wno-empty-body\n+else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)\n+CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable\n+endif\n+LDLIBS += -lrte_eal\n+\n+#\n+# List of base driver object files for which\n+# special CFLAGS above should be applied\n+#\n+BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))\n+$(foreach obj, $(BASE_DRIVER_OBJS), \\\n+  $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))\n+\n+EXPORT_MAP := rte_common_sfc_efx_version.map\n+\n+#\n+# all source are stored in SRCS-y\n+#\n+\n+SRCS-y += sfc_efx.c\n+\n+VPATH += $(SRCDIR)/base\n+\n+SRCS-y += efx_bootcfg.c\n+SRCS-y += efx_crc32.c\n+SRCS-y += efx_ev.c\n+SRCS-y += efx_evb.c\n+SRCS-y += efx_filter.c\n+SRCS-y += efx_hash.c\n+SRCS-y += efx_intr.c\n+SRCS-y += efx_lic.c\n+SRCS-y += efx_mac.c\n+SRCS-y += efx_mcdi.c\n+SRCS-y += efx_mon.c\n+SRCS-y += efx_nic.c\n+SRCS-y += efx_nvram.c\n+SRCS-y += efx_phy.c\n+SRCS-y += efx_port.c\n+SRCS-y += efx_proxy.c\n+SRCS-y += efx_rx.c\n+SRCS-y += efx_sram.c\n+SRCS-y += efx_tunnel.c\n+SRCS-y += efx_tx.c\n+SRCS-y += efx_vpd.c\n+SRCS-y += mcdi_mon.c\n+SRCS-y += siena_mac.c\n+SRCS-y += siena_mcdi.c\n+SRCS-y += siena_nic.c\n+SRCS-y += siena_nvram.c\n+SRCS-y += siena_phy.c\n+SRCS-y += siena_sram.c\n+SRCS-y += siena_vpd.c\n+SRCS-y += ef10_ev.c\n+SRCS-y += ef10_evb.c\n+SRCS-y += ef10_filter.c\n+SRCS-y += ef10_intr.c\n+SRCS-y += ef10_image.c\n+SRCS-y += ef10_mac.c\n+SRCS-y += ef10_mcdi.c\n+SRCS-y += ef10_nic.c\n+SRCS-y += ef10_nvram.c\n+SRCS-y += ef10_phy.c\n+SRCS-y += ef10_proxy.c\n+SRCS-y += ef10_rx.c\n+SRCS-y += ef10_tx.c\n+SRCS-y += ef10_vpd.c\n+SRCS-y += hunt_nic.c\n+SRCS-y += medford_nic.c\n+SRCS-y += medford2_nic.c\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/net/sfc/base/README b/drivers/common/sfc_efx/base/README\nsimilarity index 100%\nrename from drivers/net/sfc/base/README\nrename to drivers/common/sfc_efx/base/README\ndiff --git a/drivers/net/sfc/base/ef10_ev.c b/drivers/common/sfc_efx/base/ef10_ev.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_ev.c\nrename to drivers/common/sfc_efx/base/ef10_ev.c\ndiff --git a/drivers/net/sfc/base/ef10_evb.c b/drivers/common/sfc_efx/base/ef10_evb.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_evb.c\nrename to drivers/common/sfc_efx/base/ef10_evb.c\ndiff --git a/drivers/net/sfc/base/ef10_filter.c b/drivers/common/sfc_efx/base/ef10_filter.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_filter.c\nrename to drivers/common/sfc_efx/base/ef10_filter.c\ndiff --git a/drivers/net/sfc/base/ef10_firmware_ids.h b/drivers/common/sfc_efx/base/ef10_firmware_ids.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_firmware_ids.h\nrename to drivers/common/sfc_efx/base/ef10_firmware_ids.h\ndiff --git a/drivers/net/sfc/base/ef10_image.c b/drivers/common/sfc_efx/base/ef10_image.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_image.c\nrename to drivers/common/sfc_efx/base/ef10_image.c\ndiff --git a/drivers/net/sfc/base/ef10_impl.h b/drivers/common/sfc_efx/base/ef10_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_impl.h\nrename to drivers/common/sfc_efx/base/ef10_impl.h\ndiff --git a/drivers/net/sfc/base/ef10_intr.c b/drivers/common/sfc_efx/base/ef10_intr.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_intr.c\nrename to drivers/common/sfc_efx/base/ef10_intr.c\ndiff --git a/drivers/net/sfc/base/ef10_mac.c b/drivers/common/sfc_efx/base/ef10_mac.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_mac.c\nrename to drivers/common/sfc_efx/base/ef10_mac.c\ndiff --git a/drivers/net/sfc/base/ef10_mcdi.c b/drivers/common/sfc_efx/base/ef10_mcdi.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_mcdi.c\nrename to drivers/common/sfc_efx/base/ef10_mcdi.c\ndiff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/common/sfc_efx/base/ef10_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_nic.c\nrename to drivers/common/sfc_efx/base/ef10_nic.c\ndiff --git a/drivers/net/sfc/base/ef10_nvram.c b/drivers/common/sfc_efx/base/ef10_nvram.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_nvram.c\nrename to drivers/common/sfc_efx/base/ef10_nvram.c\ndiff --git a/drivers/net/sfc/base/ef10_phy.c b/drivers/common/sfc_efx/base/ef10_phy.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_phy.c\nrename to drivers/common/sfc_efx/base/ef10_phy.c\ndiff --git a/drivers/net/sfc/base/ef10_proxy.c b/drivers/common/sfc_efx/base/ef10_proxy.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_proxy.c\nrename to drivers/common/sfc_efx/base/ef10_proxy.c\ndiff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/common/sfc_efx/base/ef10_rx.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_rx.c\nrename to drivers/common/sfc_efx/base/ef10_rx.c\ndiff --git a/drivers/net/sfc/base/ef10_signed_image_layout.h b/drivers/common/sfc_efx/base/ef10_signed_image_layout.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_signed_image_layout.h\nrename to drivers/common/sfc_efx/base/ef10_signed_image_layout.h\ndiff --git a/drivers/net/sfc/base/ef10_tlv_layout.h b/drivers/common/sfc_efx/base/ef10_tlv_layout.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_tlv_layout.h\nrename to drivers/common/sfc_efx/base/ef10_tlv_layout.h\ndiff --git a/drivers/net/sfc/base/ef10_tx.c b/drivers/common/sfc_efx/base/ef10_tx.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_tx.c\nrename to drivers/common/sfc_efx/base/ef10_tx.c\ndiff --git a/drivers/net/sfc/base/ef10_vpd.c b/drivers/common/sfc_efx/base/ef10_vpd.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/ef10_vpd.c\nrename to drivers/common/sfc_efx/base/ef10_vpd.c\ndiff --git a/drivers/net/sfc/base/efx.h b/drivers/common/sfc_efx/base/efx.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx.h\nrename to drivers/common/sfc_efx/base/efx.h\ndiff --git a/drivers/net/sfc/base/efx_annote.h b/drivers/common/sfc_efx/base/efx_annote.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_annote.h\nrename to drivers/common/sfc_efx/base/efx_annote.h\ndiff --git a/drivers/net/sfc/base/efx_bootcfg.c b/drivers/common/sfc_efx/base/efx_bootcfg.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_bootcfg.c\nrename to drivers/common/sfc_efx/base/efx_bootcfg.c\ndiff --git a/drivers/net/sfc/base/efx_check.h b/drivers/common/sfc_efx/base/efx_check.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_check.h\nrename to drivers/common/sfc_efx/base/efx_check.h\ndiff --git a/drivers/net/sfc/base/efx_crc32.c b/drivers/common/sfc_efx/base/efx_crc32.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_crc32.c\nrename to drivers/common/sfc_efx/base/efx_crc32.c\ndiff --git a/drivers/net/sfc/base/efx_ev.c b/drivers/common/sfc_efx/base/efx_ev.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_ev.c\nrename to drivers/common/sfc_efx/base/efx_ev.c\ndiff --git a/drivers/net/sfc/base/efx_evb.c b/drivers/common/sfc_efx/base/efx_evb.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_evb.c\nrename to drivers/common/sfc_efx/base/efx_evb.c\ndiff --git a/drivers/net/sfc/base/efx_filter.c b/drivers/common/sfc_efx/base/efx_filter.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_filter.c\nrename to drivers/common/sfc_efx/base/efx_filter.c\ndiff --git a/drivers/net/sfc/base/efx_hash.c b/drivers/common/sfc_efx/base/efx_hash.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_hash.c\nrename to drivers/common/sfc_efx/base/efx_hash.c\ndiff --git a/drivers/net/sfc/base/efx_impl.h b/drivers/common/sfc_efx/base/efx_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_impl.h\nrename to drivers/common/sfc_efx/base/efx_impl.h\ndiff --git a/drivers/net/sfc/base/efx_intr.c b/drivers/common/sfc_efx/base/efx_intr.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_intr.c\nrename to drivers/common/sfc_efx/base/efx_intr.c\ndiff --git a/drivers/net/sfc/base/efx_lic.c b/drivers/common/sfc_efx/base/efx_lic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_lic.c\nrename to drivers/common/sfc_efx/base/efx_lic.c\ndiff --git a/drivers/net/sfc/base/efx_mac.c b/drivers/common/sfc_efx/base/efx_mac.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_mac.c\nrename to drivers/common/sfc_efx/base/efx_mac.c\ndiff --git a/drivers/net/sfc/base/efx_mcdi.c b/drivers/common/sfc_efx/base/efx_mcdi.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_mcdi.c\nrename to drivers/common/sfc_efx/base/efx_mcdi.c\ndiff --git a/drivers/net/sfc/base/efx_mcdi.h b/drivers/common/sfc_efx/base/efx_mcdi.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_mcdi.h\nrename to drivers/common/sfc_efx/base/efx_mcdi.h\ndiff --git a/drivers/net/sfc/base/efx_mon.c b/drivers/common/sfc_efx/base/efx_mon.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_mon.c\nrename to drivers/common/sfc_efx/base/efx_mon.c\ndiff --git a/drivers/net/sfc/base/efx_nic.c b/drivers/common/sfc_efx/base/efx_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_nic.c\nrename to drivers/common/sfc_efx/base/efx_nic.c\ndiff --git a/drivers/net/sfc/base/efx_nvram.c b/drivers/common/sfc_efx/base/efx_nvram.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_nvram.c\nrename to drivers/common/sfc_efx/base/efx_nvram.c\ndiff --git a/drivers/net/sfc/base/efx_phy.c b/drivers/common/sfc_efx/base/efx_phy.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_phy.c\nrename to drivers/common/sfc_efx/base/efx_phy.c\ndiff --git a/drivers/net/sfc/base/efx_phy_ids.h b/drivers/common/sfc_efx/base/efx_phy_ids.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_phy_ids.h\nrename to drivers/common/sfc_efx/base/efx_phy_ids.h\ndiff --git a/drivers/net/sfc/base/efx_port.c b/drivers/common/sfc_efx/base/efx_port.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_port.c\nrename to drivers/common/sfc_efx/base/efx_port.c\ndiff --git a/drivers/net/sfc/base/efx_proxy.c b/drivers/common/sfc_efx/base/efx_proxy.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_proxy.c\nrename to drivers/common/sfc_efx/base/efx_proxy.c\ndiff --git a/drivers/net/sfc/base/efx_regs.h b/drivers/common/sfc_efx/base/efx_regs.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs.h\nrename to drivers/common/sfc_efx/base/efx_regs.h\ndiff --git a/drivers/net/sfc/base/efx_regs_ef10.h b/drivers/common/sfc_efx/base/efx_regs_ef10.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs_ef10.h\nrename to drivers/common/sfc_efx/base/efx_regs_ef10.h\ndiff --git a/drivers/net/sfc/base/efx_regs_mcdi.h b/drivers/common/sfc_efx/base/efx_regs_mcdi.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs_mcdi.h\nrename to drivers/common/sfc_efx/base/efx_regs_mcdi.h\ndiff --git a/drivers/net/sfc/base/efx_regs_mcdi_aoe.h b/drivers/common/sfc_efx/base/efx_regs_mcdi_aoe.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs_mcdi_aoe.h\nrename to drivers/common/sfc_efx/base/efx_regs_mcdi_aoe.h\ndiff --git a/drivers/net/sfc/base/efx_regs_mcdi_strs.h b/drivers/common/sfc_efx/base/efx_regs_mcdi_strs.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs_mcdi_strs.h\nrename to drivers/common/sfc_efx/base/efx_regs_mcdi_strs.h\ndiff --git a/drivers/net/sfc/base/efx_regs_pci.h b/drivers/common/sfc_efx/base/efx_regs_pci.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_regs_pci.h\nrename to drivers/common/sfc_efx/base/efx_regs_pci.h\ndiff --git a/drivers/net/sfc/base/efx_rx.c b/drivers/common/sfc_efx/base/efx_rx.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_rx.c\nrename to drivers/common/sfc_efx/base/efx_rx.c\ndiff --git a/drivers/net/sfc/base/efx_sram.c b/drivers/common/sfc_efx/base/efx_sram.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_sram.c\nrename to drivers/common/sfc_efx/base/efx_sram.c\ndiff --git a/drivers/net/sfc/base/efx_tunnel.c b/drivers/common/sfc_efx/base/efx_tunnel.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_tunnel.c\nrename to drivers/common/sfc_efx/base/efx_tunnel.c\ndiff --git a/drivers/net/sfc/base/efx_tx.c b/drivers/common/sfc_efx/base/efx_tx.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_tx.c\nrename to drivers/common/sfc_efx/base/efx_tx.c\ndiff --git a/drivers/net/sfc/base/efx_types.h b/drivers/common/sfc_efx/base/efx_types.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_types.h\nrename to drivers/common/sfc_efx/base/efx_types.h\ndiff --git a/drivers/net/sfc/base/efx_vpd.c b/drivers/common/sfc_efx/base/efx_vpd.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/efx_vpd.c\nrename to drivers/common/sfc_efx/base/efx_vpd.c\ndiff --git a/drivers/net/sfc/base/hunt_impl.h b/drivers/common/sfc_efx/base/hunt_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/hunt_impl.h\nrename to drivers/common/sfc_efx/base/hunt_impl.h\ndiff --git a/drivers/net/sfc/base/hunt_nic.c b/drivers/common/sfc_efx/base/hunt_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/hunt_nic.c\nrename to drivers/common/sfc_efx/base/hunt_nic.c\ndiff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/common/sfc_efx/base/mcdi_mon.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/mcdi_mon.c\nrename to drivers/common/sfc_efx/base/mcdi_mon.c\ndiff --git a/drivers/net/sfc/base/mcdi_mon.h b/drivers/common/sfc_efx/base/mcdi_mon.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/mcdi_mon.h\nrename to drivers/common/sfc_efx/base/mcdi_mon.h\ndiff --git a/drivers/net/sfc/base/medford2_impl.h b/drivers/common/sfc_efx/base/medford2_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/medford2_impl.h\nrename to drivers/common/sfc_efx/base/medford2_impl.h\ndiff --git a/drivers/net/sfc/base/medford2_nic.c b/drivers/common/sfc_efx/base/medford2_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/medford2_nic.c\nrename to drivers/common/sfc_efx/base/medford2_nic.c\ndiff --git a/drivers/net/sfc/base/medford_impl.h b/drivers/common/sfc_efx/base/medford_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/medford_impl.h\nrename to drivers/common/sfc_efx/base/medford_impl.h\ndiff --git a/drivers/net/sfc/base/medford_nic.c b/drivers/common/sfc_efx/base/medford_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/medford_nic.c\nrename to drivers/common/sfc_efx/base/medford_nic.c\ndiff --git a/drivers/net/sfc/base/meson.build b/drivers/common/sfc_efx/base/meson.build\nsimilarity index 100%\nrename from drivers/net/sfc/base/meson.build\nrename to drivers/common/sfc_efx/base/meson.build\ndiff --git a/drivers/net/sfc/base/siena_flash.h b/drivers/common/sfc_efx/base/siena_flash.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_flash.h\nrename to drivers/common/sfc_efx/base/siena_flash.h\ndiff --git a/drivers/net/sfc/base/siena_impl.h b/drivers/common/sfc_efx/base/siena_impl.h\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_impl.h\nrename to drivers/common/sfc_efx/base/siena_impl.h\ndiff --git a/drivers/net/sfc/base/siena_mac.c b/drivers/common/sfc_efx/base/siena_mac.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_mac.c\nrename to drivers/common/sfc_efx/base/siena_mac.c\ndiff --git a/drivers/net/sfc/base/siena_mcdi.c b/drivers/common/sfc_efx/base/siena_mcdi.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_mcdi.c\nrename to drivers/common/sfc_efx/base/siena_mcdi.c\ndiff --git a/drivers/net/sfc/base/siena_nic.c b/drivers/common/sfc_efx/base/siena_nic.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_nic.c\nrename to drivers/common/sfc_efx/base/siena_nic.c\ndiff --git a/drivers/net/sfc/base/siena_nvram.c b/drivers/common/sfc_efx/base/siena_nvram.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_nvram.c\nrename to drivers/common/sfc_efx/base/siena_nvram.c\ndiff --git a/drivers/net/sfc/base/siena_phy.c b/drivers/common/sfc_efx/base/siena_phy.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_phy.c\nrename to drivers/common/sfc_efx/base/siena_phy.c\ndiff --git a/drivers/net/sfc/base/siena_sram.c b/drivers/common/sfc_efx/base/siena_sram.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_sram.c\nrename to drivers/common/sfc_efx/base/siena_sram.c\ndiff --git a/drivers/net/sfc/base/siena_vpd.c b/drivers/common/sfc_efx/base/siena_vpd.c\nsimilarity index 100%\nrename from drivers/net/sfc/base/siena_vpd.c\nrename to drivers/common/sfc_efx/base/siena_vpd.c\ndiff --git a/drivers/net/sfc/efsys.h b/drivers/common/sfc_efx/efsys.h\nsimilarity index 93%\nrename from drivers/net/sfc/efsys.h\nrename to drivers/common/sfc_efx/efsys.h\nindex c94e6c0b93..657b45e05d 100644\n--- a/drivers/net/sfc/efsys.h\n+++ b/drivers/common/sfc_efx/efsys.h\n@@ -25,8 +25,8 @@\n #include <rte_log.h>\n #include <rte_io.h>\n \n-#include \"sfc_debug.h\"\n-#include \"sfc_log.h\"\n+#include \"sfc_efx_debug.h\"\n+#include \"sfc_efx_log.h\"\n \n #ifdef __cplusplus\n extern \"C\" {\n@@ -224,8 +224,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile uint32_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_dword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_dword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_addr = (volatile uint32_t *)(_base + (_offset));\t\\\n \t\t(_edp)->ed_u32[0] = _addr[0];\t\t\t\t\\\n@@ -242,8 +242,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile uint64_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_qword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_qword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_addr = (volatile uint64_t *)(_base + (_offset));\t\\\n \t\t(_eqp)->eq_u64[0] = _addr[0];\t\t\t\t\\\n@@ -261,8 +261,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile __m128i *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_oword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_oword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_addr = (volatile __m128i *)(_base + (_offset));\t\\\n \t\t(_eop)->eo_u128[0] = _addr[0];\t\t\t\t\\\n@@ -283,8 +283,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile uint32_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_dword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_dword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\tEFSYS_PROBE2(mem_writed, unsigned int, (_offset),\t\\\n \t\t\t\t\t uint32_t, (_edp)->ed_u32[0]);\t\\\n@@ -301,8 +301,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile uint64_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_qword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_qword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\tEFSYS_PROBE3(mem_writeq, unsigned int, (_offset),\t\\\n \t\t\t\t\t uint32_t, (_eqp)->eq_u32[1],\t\\\n@@ -320,8 +320,8 @@ typedef struct efsys_mem_s {\n \t\tvolatile __m128i *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_oword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_oword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\tEFSYS_PROBE5(mem_writeo, unsigned int, (_offset),\t\\\n@@ -386,8 +386,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile uint32_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_dword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_dword_t)));\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n \t\tif (_lock)\t\t\t\t\t\t\\\n \t\t\tSFC_BAR_LOCK(_esbp);\t\t\t\t\\\n@@ -411,8 +411,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile uint64_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_qword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_qword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\tSFC_BAR_LOCK(_esbp);\t\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n@@ -434,8 +434,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile __m128i *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_oword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_oword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n \t\tif (_lock)\t\t\t\t\t\t\\\n@@ -465,8 +465,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile uint32_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_dword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_dword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n \t\tif (_lock)\t\t\t\t\t\t\\\n@@ -491,8 +491,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile uint64_t *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_qword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_qword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\tSFC_BAR_LOCK(_esbp);\t\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n@@ -526,8 +526,8 @@ typedef struct efsys_bar_s {\n \t\tvolatile __m128i *_addr;\t\t\t\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n-\t\tSFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\t\\\n-\t\t\t\t\t    sizeof(efx_oword_t)));\t\\\n+\t\tSFC_EFX_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset,\t\\\n+\t\t\t\t\t\tsizeof(efx_oword_t)));\t\\\n \t\t\t\t\t\t\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n \t\tif (_lock)\t\t\t\t\t\t\\\n@@ -625,7 +625,7 @@ typedef rte_spinlock_t efsys_lock_t;\n #define SFC_EFSYS_UNLOCK(_eslp)\t\t\t\t\\\n \trte_spinlock_unlock((_eslp))\n #define SFC_EFSYS_LOCK_ASSERT_OWNED(_eslp)\t\t\\\n-\tSFC_ASSERT(rte_spinlock_is_locked((_eslp)))\n+\tSFC_EFX_ASSERT(rte_spinlock_is_locked((_eslp)))\n \n typedef int efsys_lock_state_t;\n \n@@ -640,7 +640,7 @@ typedef int efsys_lock_state_t;\n \n #define EFSYS_UNLOCK(_lockp, _state)\t\t\t\t\\\n \tdo {\t\t\t\t\t\t\t\\\n-\t\tSFC_ASSERT((_state) == EFSYS_LOCK_MAGIC);\t\\\n+\t\tSFC_EFX_ASSERT((_state) == EFSYS_LOCK_MAGIC);\t\\\n \t\tSFC_EFSYS_UNLOCK(_lockp);\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\\\n \t} while (B_FALSE)\n@@ -697,7 +697,7 @@ typedef uint64_t\tefsys_stat_t;\n #define EFSYS_ERR(_esip, _code, _dword0, _dword1)\t\t\t\\\n \tdo {\t\t\t\t\t\t\t\t\\\n \t\t(void)(_esip);\t\t\t\t\t\t\\\n-\t\tSFC_GENERIC_LOG(ERR, \"FATAL ERROR #%u (0x%08x%08x)\",\t\\\n+\t\tSFC_EFX_LOG(ERR, \"FATAL ERROR #%u (0x%08x%08x)\",\t\\\n \t\t\t(_code), (_dword0), (_dword1));\t\t\t\\\n \t\t_NOTE(CONSTANTCONDITION);\t\t\t\t\\\n \t} while (B_FALSE)\ndiff --git a/drivers/common/sfc_efx/meson.build b/drivers/common/sfc_efx/meson.build\nnew file mode 100644\nindex 0000000000..8fab4df792\n--- /dev/null\n+++ b/drivers/common/sfc_efx/meson.build\n@@ -0,0 +1,39 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+#\n+# Copyright(c) 2019-2020 Xilinx, Inc.\n+#\n+# This software was jointly developed between OKTET Labs (under contract\n+# for Solarflare) and Solarflare Communications, Inc.\n+\n+if arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')\n+\tbuild = false\n+\treason = 'only supported on x86_64'\n+endif\n+\n+extra_flags = []\n+\n+# Enable more warnings\n+extra_flags += [\n+\t'-Wdisabled-optimization'\n+]\n+\n+# Compiler and version dependent flags\n+extra_flags += [\n+\t'-Waggregate-return',\n+\t'-Wbad-function-cast'\n+]\n+\n+foreach flag: extra_flags\n+\tif cc.has_argument(flag)\n+\t\tcflags += flag\n+\tendif\n+endforeach\n+\n+subdir('base')\n+objs = [base_objs]\n+\n+sources = files(\n+\t'sfc_efx.c',\n+)\n+\n+includes += include_directories('base')\ndiff --git a/drivers/common/sfc_efx/rte_common_sfc_efx_version.map b/drivers/common/sfc_efx/rte_common_sfc_efx_version.map\nnew file mode 100644\nindex 0000000000..0c719e8250\n--- /dev/null\n+++ b/drivers/common/sfc_efx/rte_common_sfc_efx_version.map\n@@ -0,0 +1,122 @@\n+DPDK_21 {\n+\tglobal:\n+\n+\tefx_ev_fini;\n+\tefx_ev_init;\n+\tefx_ev_qcreate;\n+\tefx_ev_qdestroy;\n+\tefx_ev_qpoll;\n+\tefx_ev_qprime;\n+\n+\tefx_evb_fini;\n+\tefx_evb_init;\n+\tefx_evb_vswitch_create;\n+\tefx_evb_vswitch_destroy;\n+\tefx_evq_size;\n+\n+\tefx_family;\n+\n+\tefx_filter_fini;\n+\tefx_filter_init;\n+\tefx_filter_insert;\n+\tefx_filter_remove;\n+\tefx_filter_supported_filters;\n+\n+\tefx_intr_disable;\n+\tefx_intr_enable;\n+\tefx_intr_fatal;\n+\tefx_intr_fini;\n+\tefx_intr_init;\n+\tefx_intr_status_line;\n+\tefx_intr_status_message;\n+\n+\tefx_mac_addr_set;\n+\tefx_mac_drain;\n+\tefx_mac_fcntl_get;\n+\tefx_mac_fcntl_set;\n+\tefx_mac_filter_default_rxq_clear;\n+\tefx_mac_filter_default_rxq_set;\n+\tefx_mac_filter_get_all_ucast_mcast;\n+\tefx_mac_filter_set;\n+\tefx_mac_multicast_list_set;\n+\tefx_mac_pdu_set;\n+\tefx_mac_stat_name;\n+\tefx_mac_stats_clear;\n+\tefx_mac_stats_get_mask;\n+\tefx_mac_stats_periodic;\n+\tefx_mac_stats_update;\n+\tefx_mac_stats_upload;\n+\n+\tefx_mcdi_fini;\n+\tefx_mcdi_get_proxy_handle;\n+\tefx_mcdi_init;\n+\tefx_mcdi_new_epoch;\n+\tefx_mcdi_request_abort;\n+\tefx_mcdi_request_poll;\n+\tefx_mcdi_request_start;\n+\n+\tefx_nic_cfg_get;\n+\tefx_nic_create;\n+\tefx_nic_destroy;\n+\tefx_nic_fini;\n+\tefx_nic_get_fw_subvariant;\n+\tefx_nic_get_fw_version;\n+\tefx_nic_get_vi_pool;\n+\tefx_nic_init;\n+\tefx_nic_probe;\n+\tefx_nic_reset;\n+\tefx_nic_set_drv_limits;\n+\tefx_nic_set_fw_subvariant;\n+\tefx_nic_unprobe;\n+\n+\tefx_phy_adv_cap_get;\n+\tefx_phy_adv_cap_set;\n+\n+\tefx_port_fini;\n+\tefx_port_init;\n+\tefx_port_loopback_set;\n+\tefx_port_poll;\n+\n+\tefx_pseudo_hdr_hash_get;\n+\tefx_pseudo_hdr_pkt_length_get;\n+\n+\tefx_rx_fini;\n+\tefx_rx_hash_default_support_get;\n+\tefx_rx_init;\n+\tefx_rx_qcreate;\n+\tefx_rx_qcreate_es_super_buffer;\n+\tefx_rx_qdestroy;\n+\tefx_rx_qenable;\n+\tefx_rx_qflush;\n+\tefx_rx_qpost;\n+\tefx_rx_qpush;\n+\tefx_rx_scale_context_alloc;\n+\tefx_rx_scale_context_free;\n+\tefx_rx_scale_default_support_get;\n+\tefx_rx_scale_hash_flags_get;\n+\tefx_rx_scale_key_set;\n+\tefx_rx_scale_mode_set;\n+\tefx_rx_scale_tbl_set;\n+\tefx_rxq_size;\n+\n+\tefx_tunnel_config_udp_add;\n+\tefx_tunnel_config_udp_remove;\n+\tefx_tunnel_fini;\n+\tefx_tunnel_init;\n+\tefx_tunnel_reconfigure;\n+\n+\tefx_tx_fini;\n+\tefx_tx_init;\n+\tefx_tx_qcreate;\n+\tefx_tx_qdesc_dma_create;\n+\tefx_tx_qdesc_post;\n+\tefx_tx_qdesc_tso2_create;\n+\tefx_tx_qdesc_vlantci_create;\n+\tefx_tx_qdestroy;\n+\tefx_tx_qenable;\n+\tefx_tx_qflush;\n+\tefx_tx_qpush;\n+\tefx_txq_size;\n+\n+\tlocal: *;\n+};\ndiff --git a/drivers/common/sfc_efx/sfc_efx.c b/drivers/common/sfc_efx/sfc_efx.c\nnew file mode 100644\nindex 0000000000..0b8d5efee9\n--- /dev/null\n+++ b/drivers/common/sfc_efx/sfc_efx.c\n@@ -0,0 +1,23 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ *\n+ * Copyright(c) 2019-2020 Xilinx, Inc.\n+ * Copyright(c) 2019 Solarflare Communications Inc.\n+ *\n+ * This software was jointly developed between OKTET Labs (under contract\n+ * for Solarflare) and Solarflare Communications, Inc.\n+ */\n+\n+#include <rte_log.h>\n+\n+#include \"sfc_efx_log.h\"\n+\n+uint32_t sfc_efx_logtype;\n+\n+RTE_INIT(sfc_efx_register_logtype)\n+{\n+\tint ret;\n+\n+\tret = rte_log_register_type_and_pick_level(\"pmd.common.sfc_efx\",\n+\t\t\t\t\t\t   RTE_LOG_NOTICE);\n+\tsfc_efx_logtype = (ret < 0) ? RTE_LOGTYPE_PMD : ret;\n+}\ndiff --git a/drivers/common/sfc_efx/sfc_efx_debug.h b/drivers/common/sfc_efx/sfc_efx_debug.h\nnew file mode 100644\nindex 0000000000..e0bdeeb5a4\n--- /dev/null\n+++ b/drivers/common/sfc_efx/sfc_efx_debug.h\n@@ -0,0 +1,29 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ *\n+ * Copyright(c) 2019-2020 Xilinx, Inc.\n+ * Copyright(c) 2019 Solarflare Communications Inc.\n+ *\n+ * This software was jointly developed between OKTET Labs (under contract\n+ * for Solarflare) and Solarflare Communications, Inc.\n+ */\n+\n+#ifndef _SFC_EFX_DEBUG_H_\n+#define _SFC_EFX_DEBUG_H_\n+\n+#include <rte_debug.h>\n+\n+#ifndef RTE_DEBUG_COMMON_SFC_EFX\n+#define RTE_DEBUG_COMMON_SFC_EFX\t0\n+#endif\n+\n+#ifdef RTE_DEBUG_COMMON_SFC_EFX\n+/* Avoid dependency from RTE_LOG_DP_LEVEL to be able to enable debug check\n+ * in the driver only.\n+ */\n+#define SFC_EFX_ASSERT(exp)\t\tRTE_VERIFY(exp)\n+#else\n+/* If the driver debug is not enabled, follow DPDK debug/non-debug */\n+#define SFC_EFX_ASSERT(exp)\t\tRTE_ASSERT(exp)\n+#endif\n+\n+#endif /* _SFC_EFX_DEBUG_H_ */\ndiff --git a/drivers/common/sfc_efx/sfc_efx_log.h b/drivers/common/sfc_efx/sfc_efx_log.h\nnew file mode 100644\nindex 0000000000..f4417ffc30\n--- /dev/null\n+++ b/drivers/common/sfc_efx/sfc_efx_log.h\n@@ -0,0 +1,22 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ *\n+ * Copyright(c) 2019-2020 Xilinx, Inc.\n+ * Copyright(c) 2019 Solarflare Communications Inc.\n+ *\n+ * This software was jointly developed between OKTET Labs (under contract\n+ * for Solarflare) and Solarflare Communications, Inc.\n+ */\n+\n+#ifndef _SFC_EFX_LOG_H_\n+#define _SFC_EFX_LOG_H_\n+\n+/** Generic driver log type */\n+extern uint32_t sfc_efx_logtype;\n+\n+/** Log message, add a prefix and a line break */\n+#define SFC_EFX_LOG(level, ...) \\\n+\trte_log(RTE_LOG_ ## level, sfc_efx_logtype,\t\t\t\\\n+\t\tRTE_FMT(\"sfc_efx: \" RTE_FMT_HEAD(__VA_ARGS__ ,) \"\\n\",\t\\\n+\t\t\tRTE_FMT_TAIL(__VA_ARGS__ ,)))\n+\n+#endif /* _SFC_EFX_LOG_H_ */\ndiff --git a/drivers/net/sfc/Makefile b/drivers/net/sfc/Makefile\nindex 20bf343814..648527f4b8 100644\n--- a/drivers/net/sfc/Makefile\n+++ b/drivers/net/sfc/Makefile\n@@ -13,7 +13,8 @@ include $(RTE_SDK)/mk/rte.vars.mk\n #\n LIB = librte_pmd_sfc_efx.a\n \n-CFLAGS += -I$(SRCDIR)/base/\n+CFLAGS += -I$(RTE_SDK)/drivers/common/sfc_efx/base\n+CFLAGS += -I$(RTE_SDK)/drivers/common/sfc_efx\n CFLAGS += -I$(SRCDIR)\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n@@ -26,39 +27,23 @@ CFLAGS += -Wextra\n # More warnings not enabled by above aggregators\n CFLAGS += -Wdisabled-optimization\n \n-# Extra CFLAGS for base driver files\n-CFLAGS_BASE_DRIVER += -Wno-sign-compare\n-CFLAGS_BASE_DRIVER += -Wno-unused-parameter\n-CFLAGS_BASE_DRIVER += -Wno-unused-variable\n-\n # Compiler and version dependent flags\n ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)\n CFLAGS += -Waggregate-return\n CFLAGS += -Wnested-externs\n-CFLAGS_BASE_DRIVER += -Wno-empty-body\n-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable\n else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)\n CFLAGS += -Waggregate-return\n CFLAGS += -Wbad-function-cast\n-CFLAGS_BASE_DRIVER += -Wno-empty-body\n else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)\n-CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable\n # Suppress ICC false positive warning on 'bulk' may be used before its\n # value is set\n CFLAGS_sfc_ef10_tx.o += -diag-disable 3656\n endif\n+LDLIBS += -lrte_common_sfc_efx\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs\n LDLIBS += -lrte_bus_pci -lrte_pci\n \n-#\n-# List of base driver object files for which\n-# special CFLAGS above should be applied\n-#\n-BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))\n-$(foreach obj, $(BASE_DRIVER_OBJS), \\\n-  $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))\n-\n EXPORT_MAP := rte_pmd_sfc_version.map\n \n #\n@@ -81,53 +66,4 @@ SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_rx.c\n SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_essb_rx.c\n SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_tx.c\n \n-VPATH += $(SRCDIR)/base\n-\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_bootcfg.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_crc32.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_ev.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_evb.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_filter.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_hash.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_intr.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_lic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mac.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mcdi.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mon.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nvram.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_phy.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_port.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_proxy.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_rx.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_sram.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tunnel.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tx.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_vpd.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += mcdi_mon.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mac.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mcdi.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nvram.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_phy.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_sram.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_vpd.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_ev.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_evb.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_filter.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_intr.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_image.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mac.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mcdi.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nvram.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_phy.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_proxy.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_rx.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_tx.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_vpd.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += hunt_nic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford_nic.c\n-SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford2_nic.c\n-\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build\nindex 35c05ac1dd..26f0323738 100644\n--- a/drivers/net/sfc/meson.build\n+++ b/drivers/net/sfc/meson.build\n@@ -33,9 +33,7 @@ foreach flag: extra_flags\n \tendif\n endforeach\n \n-subdir('base')\n-objs = [base_objs]\n-\n+deps += ['common_sfc_efx']\n sources = files(\n \t'sfc_ethdev.c',\n \t'sfc_kvargs.c',\n@@ -54,5 +52,3 @@ sources = files(\n \t'sfc_ef10_essb_rx.c',\n \t'sfc_ef10_tx.c'\n )\n-\n-includes += include_directories('base')\ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex a544259970..d3c165f720 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -234,6 +234,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC)      += -lrte_pmd_softnic\n endif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD)    += -lrte_pmd_sfc_efx\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD)    += -lrte_common_sfc_efx\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2)   += -lrte_pmd_szedata2 -lsze2\n _LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD)        += -lrte_pmd_nfb\n _LDLIBS-$(CONFIG_RTE_LIBRTE_NFB_PMD)        +=  $(shell command -v pkg-config > /dev/null 2>&1 && pkg-config --libs netcope-common)\n",
    "prefixes": [
        "02/14"
    ]
}