Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/104097/?format=api
http://patchwork.dpdk.org/api/patches/104097/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20211110074829.16654-2-apeksha.gupta@nxp.com/", "project": { "id": 1, "url": "http://patchwork.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": "<20211110074829.16654-2-apeksha.gupta@nxp.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20211110074829.16654-2-apeksha.gupta@nxp.com", "date": "2021-11-10T07:48:25", "name": "[v9,1/5] net/enetfec: introduce NXP ENETFEC driver", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "5eb690b2b8e8bb33d9720e7c43d51653a1bf9078", "submitter": { "id": 1570, "url": "http://patchwork.dpdk.org/api/people/1570/?format=api", "name": "Apeksha Gupta", "email": "apeksha.gupta@nxp.com" }, "delegate": { "id": 319, "url": "http://patchwork.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20211110074829.16654-2-apeksha.gupta@nxp.com/mbox/", "series": [ { "id": 20445, "url": "http://patchwork.dpdk.org/api/series/20445/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=20445", "date": "2021-11-10T07:48:24", "name": "drivers/net: add NXP ENETFEC driver", "version": 9, "mbox": "http://patchwork.dpdk.org/series/20445/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/104097/comments/", "check": "success", "checks": "http://patchwork.dpdk.org/api/patches/104097/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 75F1FA034F;\n\tWed, 10 Nov 2021 08:48:38 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8BD7C410EF;\n\tWed, 10 Nov 2021 08:48:37 +0100 (CET)", "from inva021.nxp.com (inva021.nxp.com [92.121.34.21])\n by mails.dpdk.org (Postfix) with ESMTP id 8B41B40142\n for <dev@dpdk.org>; Wed, 10 Nov 2021 08:48:34 +0100 (CET)", "from inva021.nxp.com (localhost [127.0.0.1])\n by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 622B6200D9C;\n Wed, 10 Nov 2021 08:48:34 +0100 (CET)", "from aprdc01srsp001v.ap-rdc01.nxp.com\n (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16])\n by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 01EFF200D70;\n Wed, 10 Nov 2021 08:48:34 +0100 (CET)", "from lsv03186.swis.in-blr01.nxp.com (lsv03186.swis.in-blr01.nxp.com\n [92.120.146.182])\n by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id 02A9F183ACDD;\n Wed, 10 Nov 2021 15:48:32 +0800 (+08)" ], "From": "Apeksha Gupta <apeksha.gupta@nxp.com>", "To": "ferruh.yigit@intel.com, david.marchand@redhat.com,\n andrew.rybchenko@oktetlabs.ru", "Cc": "dev@dpdk.org, sachin.saxena@nxp.com, hemant.agrawal@nxp.com,\n Apeksha Gupta <apeksha.gupta@nxp.com>", "Date": "Wed, 10 Nov 2021 13:18:25 +0530", "Message-Id": "<20211110074829.16654-2-apeksha.gupta@nxp.com>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": "<20211110074829.16654-1-apeksha.gupta@nxp.com>", "References": "<20211109113432.11876-6-apeksha.gupta@nxp.com>\n <20211110074829.16654-1-apeksha.gupta@nxp.com>", "X-Virus-Scanned": "ClamAV using ClamSMTP", "Subject": "[dpdk-dev] [PATCH v9 1/5] net/enetfec: introduce NXP ENETFEC driver", "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", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "ENETFEC (Fast Ethernet Controller) is a network poll mode driver\nfor NXP SoC i.MX 8M Mini.\n\nThis patch adds skeleton for enetfec driver with probe function.\n\nSigned-off-by: Sachin Saxena <sachin.saxena@nxp.com>\nSigned-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>\n---\nv9:\n - Fix document build warning\n\nv8:\n - Rework of technical comments\n\nv7:\n - Fix compilation\n - code cleanup\n\nv6:\n - Fix document build errors\n---\n MAINTAINERS | 7 ++\n doc/guides/nics/enetfec.rst | 133 +++++++++++++++++++++++++\n doc/guides/nics/features/enetfec.ini | 9 ++\n doc/guides/nics/index.rst | 1 +\n doc/guides/rel_notes/release_21_11.rst | 5 +\n drivers/net/enetfec/enet_ethdev.c | 84 ++++++++++++++++\n drivers/net/enetfec/enet_ethdev.h | 46 +++++++++\n drivers/net/enetfec/enet_pmd_logs.h | 31 ++++++\n drivers/net/enetfec/meson.build | 9 ++\n drivers/net/enetfec/version.map | 3 +\n drivers/net/meson.build | 1 +\n 11 files changed, 329 insertions(+)\n create mode 100644 doc/guides/nics/enetfec.rst\n create mode 100644 doc/guides/nics/features/enetfec.ini\n create mode 100644 drivers/net/enetfec/enet_ethdev.c\n create mode 100644 drivers/net/enetfec/enet_ethdev.h\n create mode 100644 drivers/net/enetfec/enet_pmd_logs.h\n create mode 100644 drivers/net/enetfec/meson.build\n create mode 100644 drivers/net/enetfec/version.map", "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex e157e12f88..2aa81efe20 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -889,6 +889,13 @@ F: drivers/net/enetc/\n F: doc/guides/nics/enetc.rst\n F: doc/guides/nics/features/enetc.ini\n \n+NXP enetfec - EXPERIMENTAL\n+M: Apeksha Gupta <apeksha.gupta@nxp.com>\n+M: Sachin Saxena <sachin.saxena@nxp.com>\n+F: drivers/net/enetfec/\n+F: doc/guides/nics/enetfec.rst\n+F: doc/guides/nics/features/enetfec.ini\n+\n NXP pfe\n M: Gagandeep Singh <g.singh@nxp.com>\n F: doc/guides/nics/pfe.rst\ndiff --git a/doc/guides/nics/enetfec.rst b/doc/guides/nics/enetfec.rst\nnew file mode 100644\nindex 0000000000..2c29ad362c\n--- /dev/null\n+++ b/doc/guides/nics/enetfec.rst\n@@ -0,0 +1,133 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\n+ Copyright 2021 NXP\n+\n+ENETFEC Poll Mode Driver\n+========================\n+\n+The ENETFEC NIC PMD (**librte_net_enetfec**) provides poll mode driver\n+support for the inbuilt NIC found in the ** NXP i.MX 8M Mini** SoC.\n+\n+More information can be found at NXP Official Website\n+<https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-processors/i-mx-8m-mini-arm-cortex-a53-cortex-m4-audio-voice-video:i.MX8MMINI>\n+\n+ENETFEC\n+-------\n+\n+This section provides an overview of the NXP ENETFEC and how it is\n+integrated into the DPDK. Driver is taken as **experimental** as driver\n+itself detects the uio device, reads address and mmap them within the\n+driver.\n+\n+Contents summary\n+\n+- ENETFEC overview\n+- ENETFEC features\n+- Supported ENETFEC SoCs\n+- Prerequisites\n+- Driver compilation and testing\n+- Limitations\n+\n+ENETFEC Overview\n+~~~~~~~~~~~~~~~~\n+The i.MX 8M Mini Media Applications Processor is built to achieve both\n+high performance and low power consumption. ENETFEC PMD is a hardware\n+programmable packet forwarding engine to provide high performance\n+Ethernet interface. It has only 1 GB Ethernet interface with RJ45\n+connector.\n+\n+The diagram below shows a system level overview of ENETFEC:\n+\n+ .. code-block:: console\n+\n+ =====================================================\n+ Userspace\n+ +-----------------------------------------+\n+ | ENETFEC Driver |\n+ | +-------------------------+ |\n+ | | virtual ethernet device | |\n+ +-----------------------------------------+\n+ ^ |\n+ | |\n+ | |\n+ RXQ | |\tTXQ\n+ | |\n+ | v\n+ =====================================================\n+ Kernel Space\n+ +---------+\n+ | fec-uio |\n+ ====================+=========+======================\n+ Hardware\n+ +-----------------------------------------+\n+ | i.MX 8M MINI EVK |\n+ | +-----+ |\n+ | | MAC | |\n+ +---------------+-----+-------------------+\n+ | PHY |\n+ +-----+\n+\n+ENETFEC Ethernet driver is traditional DPDK PMD driver running in the\n+userspace.'fec-uio' is the kernel driver. The MAC and PHY are the hardware\n+blocks. ENETFEC PMD uses standard UIO interface to access kernel for PHY\n+initialisation and for mapping the allocated memory of register & buffer\n+descriptor with DPDK which gives access to non-cacheable memory for buffer\n+descriptor. net_enetfec is logical Ethernet interface, created by ENETFEC\n+driver.\n+\n+- ENETFEC driver registers the device in virtual device driver.\n+- RTE framework scans and will invoke the probe function of ENETFEC driver.\n+- The probe function will set the basic device registers and also setups BD rings.\n+- On packet Rx the respective BD Ring status bit is set which is then used for\n+ packet processing.\n+- Then Tx is done first followed by Rx via logical interfaces.\n+\n+ENETFEC Features\n+~~~~~~~~~~~~~~~~~\n+\n+- Linux\n+- ARMv8\n+\n+Supported ENETFEC SoCs\n+~~~~~~~~~~~~~~~~~~~~~~\n+\n+- i.MX 8M Mini\n+\n+Prerequisites\n+~~~~~~~~~~~~~\n+\n+There are three main pre-requisites for executing ENETFEC PMD on a i.MX 8M Mini\n+compatible board:\n+\n+1. **ARM 64 Tool Chain**\n+\n+ For example, the `*aarch64* Linaro Toolchain <https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz>`_.\n+\n+2. **Linux Kernel**\n+\n+ It can be obtained from `NXP's Github hosting <https://source.codeaurora.org/external/qoriq/qoriq-components/linux>`_.\n+\n+.. note::\n+\n+ Branch is 'lf-5.10.y'\n+\n+3. **Rootfile system**\n+\n+ Any *aarch64* supporting filesystem can be used. For example,\n+ Ubuntu 18.04 LTS (Bionic) or 20.04 LTS(Focal) userland which can be obtained\n+ from `here <http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.1-base-arm64.tar.gz>`_.\n+\n+4. The Ethernet device will be registered as virtual device, so ENETFEC has dependency on\n+ **rte_bus_vdev** library and it is mandatory to use `--vdev` with value `net_enetfec` to\n+ run DPDK application.\n+\n+Driver compilation and testing\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+Follow instructions available in the document\n+:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`\n+to launch **dpdk-testpmd**\n+\n+Limitations\n+~~~~~~~~~~~\n+\n+- Multi queue is not supported.\ndiff --git a/doc/guides/nics/features/enetfec.ini b/doc/guides/nics/features/enetfec.ini\nnew file mode 100644\nindex 0000000000..bdfbdbd9d4\n--- /dev/null\n+++ b/doc/guides/nics/features/enetfec.ini\n@@ -0,0 +1,9 @@\n+;\n+; Supported features of the 'enetfec' network poll mode driver.\n+;\n+; Refer to default.ini for the full list of available PMD features.\n+;\n+[Features]\n+Linux\t\t = Y\n+ARMv8\t\t = Y\n+Usage doc\t = Y\ndiff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst\nindex 784d5d39f6..777fdab4a0 100644\n--- a/doc/guides/nics/index.rst\n+++ b/doc/guides/nics/index.rst\n@@ -26,6 +26,7 @@ Network Interface Controller Drivers\n e1000em\n ena\n enetc\n+ enetfec\n enic\n fm10k\n hinic\ndiff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst\nindex 01923e2deb..6e80805cfd 100644\n--- a/doc/guides/rel_notes/release_21_11.rst\n+++ b/doc/guides/rel_notes/release_21_11.rst\n@@ -221,6 +221,11 @@ New Features\n * Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).\n * Added socket direct mode bonding support.\n \n+* **Added NXP ENETFEC PMD.**\n+\n+ Added the new ENETFEC driver for the NXP IMX8MMEVK platform. See the\n+ :doc:`../nics/enetfec` NIC driver guide for more details on this new driver.\n+\n * **Updated Solarflare network PMD.**\n \n Updated the Solarflare ``sfc_efx`` driver with changes including:\ndiff --git a/drivers/net/enetfec/enet_ethdev.c b/drivers/net/enetfec/enet_ethdev.c\nnew file mode 100644\nindex 0000000000..50390f4ea4\n--- /dev/null\n+++ b/drivers/net/enetfec/enet_ethdev.c\n@@ -0,0 +1,84 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2020-2021 NXP\n+ */\n+\n+#include <stdio.h>\n+#include <fcntl.h>\n+#include <stdlib.h>\n+#include <unistd.h>\n+#include <errno.h>\n+#include <sys/mman.h>\n+#include <rte_kvargs.h>\n+#include <ethdev_vdev.h>\n+#include <rte_bus_vdev.h>\n+#include <rte_dev.h>\n+#include <rte_ether.h>\n+#include \"enet_pmd_logs.h\"\n+#include \"enet_ethdev.h\"\n+\n+#define ENETFEC_NAME_PMD net_enetfec\n+\n+static int\n+enetfec_eth_init(struct rte_eth_dev *dev)\n+{\n+\trte_eth_dev_probing_finish(dev);\n+\treturn 0;\n+}\n+\n+static int\n+pmd_enetfec_probe(struct rte_vdev_device *vdev)\n+{\n+\tstruct rte_eth_dev *dev = NULL;\n+\tstruct enetfec_private *fep;\n+\tconst char *name;\n+\tint rc;\n+\n+\tname = rte_vdev_device_name(vdev);\n+\tif (name == NULL)\n+\t\treturn -EINVAL;\n+\tENETFEC_PMD_LOG(INFO, \"Initializing pmd_fec for %s\", name);\n+\n+\tdev = rte_eth_vdev_allocate(vdev, sizeof(*fep));\n+\tif (dev == NULL)\n+\t\treturn -ENOMEM;\n+\n+\t/* setup board info structure */\n+\tfep = dev->data->dev_private;\n+\tfep->dev = dev;\n+\trc = enetfec_eth_init(dev);\n+\tif (rc)\n+\t\tgoto failed_init;\n+\n+\treturn 0;\n+\n+failed_init:\n+\tENETFEC_PMD_ERR(\"Failed to init\");\n+\treturn rc;\n+}\n+\n+static int\n+pmd_enetfec_remove(struct rte_vdev_device *vdev)\n+{\n+\tstruct rte_eth_dev *eth_dev = NULL;\n+\tint ret;\n+\n+\t/* find the ethdev entry */\n+\teth_dev = rte_eth_dev_allocated(rte_vdev_device_name(vdev));\n+\tif (eth_dev == NULL)\n+\t\treturn -ENODEV;\n+\n+\tret = rte_eth_dev_release_port(eth_dev);\n+\tif (ret != 0)\n+\t\treturn -EINVAL;\n+\n+\tENETFEC_PMD_INFO(\"Release enetfec sw device\");\n+\treturn 0;\n+}\n+\n+static struct rte_vdev_driver pmd_enetfec_drv = {\n+\t.probe = pmd_enetfec_probe,\n+\t.remove = pmd_enetfec_remove,\n+};\n+\n+RTE_PMD_REGISTER_VDEV(ENETFEC_NAME_PMD, pmd_enetfec_drv);\n+RTE_LOG_REGISTER_DEFAULT(enetfec_logtype_pmd, NOTICE);\ndiff --git a/drivers/net/enetfec/enet_ethdev.h b/drivers/net/enetfec/enet_ethdev.h\nnew file mode 100644\nindex 0000000000..e6b55e1ae6\n--- /dev/null\n+++ b/drivers/net/enetfec/enet_ethdev.h\n@@ -0,0 +1,46 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2020-2021 NXP\n+ */\n+\n+#ifndef __ENETFEC_ETHDEV_H__\n+#define __ENETFEC_ETHDEV_H__\n+\n+/*\n+ * ENETFEC can support 1 rx and tx queue..\n+ */\n+\n+#define ENETFEC_MAX_Q\t\t1\n+\n+struct enetfec_private {\n+\tstruct rte_eth_dev\t*dev;\n+\tstruct rte_eth_stats\tstats;\n+\tstruct rte_mempool\t*pool;\n+\tuint16_t\t\tmax_rx_queues;\n+\tuint16_t\t\tmax_tx_queues;\n+\tunsigned int\t\ttotal_tx_ring_size;\n+\tunsigned int\t\ttotal_rx_ring_size;\n+\tbool\t\t\tbufdesc_ex;\n+\tint\t\t\tfull_duplex;\n+\tuint32_t\t\tquirks;\n+\tuint32_t\t\tenetfec_e_cntl;\n+\tint\t\t\tflag_csum;\n+\tint\t\t\tflag_pause;\n+\tbool\t\t\trgmii_txc_delay;\n+\tbool\t\t\trgmii_rxc_delay;\n+\tint\t\t\tlink;\n+\tvoid\t\t\t*hw_baseaddr_v;\n+\tuint64_t\t\thw_baseaddr_p;\n+\tvoid\t\t\t*bd_addr_v;\n+\tuint64_t\t\tbd_addr_p;\n+\tuint64_t\t\tbd_addr_p_r[ENETFEC_MAX_Q];\n+\tuint64_t\t\tbd_addr_p_t[ENETFEC_MAX_Q];\n+\tvoid\t\t\t*dma_baseaddr_r[ENETFEC_MAX_Q];\n+\tvoid\t\t\t*dma_baseaddr_t[ENETFEC_MAX_Q];\n+\tuint64_t\t\tcbus_size;\n+\tunsigned int\t\treg_size;\n+\tunsigned int\t\tbd_size;\n+\tstruct enetfec_priv_rx_q *rx_queues[ENETFEC_MAX_Q];\n+\tstruct enetfec_priv_tx_q *tx_queues[ENETFEC_MAX_Q];\n+};\n+\n+#endif /*__ENETFEC_ETHDEV_H__*/\ndiff --git a/drivers/net/enetfec/enet_pmd_logs.h b/drivers/net/enetfec/enet_pmd_logs.h\nnew file mode 100644\nindex 0000000000..e7b3964a0e\n--- /dev/null\n+++ b/drivers/net/enetfec/enet_pmd_logs.h\n@@ -0,0 +1,31 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2020-2021 NXP\n+ */\n+\n+#ifndef _ENETFEC_LOGS_H_\n+#define _ENETFEC_LOGS_H_\n+\n+extern int enetfec_logtype_pmd;\n+\n+/* PMD related logs */\n+#define ENETFEC_PMD_LOG(level, fmt, args...) \\\n+\trte_log(RTE_LOG_ ## level, enetfec_logtype_pmd, \"\\nfec_net: %s()\" \\\n+\t\tfmt \"\\n\", __func__, ##args)\n+\n+#define PMD_INIT_FUNC_TRACE() ENET_PMD_LOG(DEBUG, \" >>\")\n+\n+#define ENETFEC_PMD_DEBUG(fmt, args...) \\\n+\tENETFEC_PMD_LOG(DEBUG, fmt, ## args)\n+#define ENETFEC_PMD_ERR(fmt, args...) \\\n+\tENETFEC_PMD_LOG(ERR, fmt, ## args)\n+#define ENETFEC_PMD_INFO(fmt, args...) \\\n+\tENETFEC_PMD_LOG(INFO, fmt, ## args)\n+\n+#define ENETFEC_PMD_WARN(fmt, args...) \\\n+\tENETFEC_PMD_LOG(WARNING, fmt, ## args)\n+\n+/* DP Logs, toggled out at compile time if level lower than current level */\n+#define ENETFEC_DP_LOG(level, fmt, args...) \\\n+\tRTE_LOG_DP(level, PMD, fmt, ## args)\n+\n+#endif /* _ENETFEC_LOGS_H_ */\ndiff --git a/drivers/net/enetfec/meson.build b/drivers/net/enetfec/meson.build\nnew file mode 100644\nindex 0000000000..6d6c64c94b\n--- /dev/null\n+++ b/drivers/net/enetfec/meson.build\n@@ -0,0 +1,9 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2021 NXP\n+\n+if not is_linux\n+\tbuild = false\n+\treason = 'only supported on linux'\n+endif\n+\n+sources = files('enet_ethdev.c')\ndiff --git a/drivers/net/enetfec/version.map b/drivers/net/enetfec/version.map\nnew file mode 100644\nindex 0000000000..b66517b171\n--- /dev/null\n+++ b/drivers/net/enetfec/version.map\n@@ -0,0 +1,3 @@\n+DPDK_22 {\n+ local: *;\n+};\ndiff --git a/drivers/net/meson.build b/drivers/net/meson.build\nindex bcf488f203..04be346509 100644\n--- a/drivers/net/meson.build\n+++ b/drivers/net/meson.build\n@@ -19,6 +19,7 @@ drivers = [\n 'e1000',\n 'ena',\n 'enetc',\n+ 'enetfec',\n 'enic',\n 'failsafe',\n 'fm10k',\n", "prefixes": [ "v9", "1/5" ] }{ "id": 104097, "url": "