From patchwork Sat Oct 9 16:31:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 100922 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id AA17CA0C47; Sat, 9 Oct 2021 18:32:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 380EF40040; Sat, 9 Oct 2021 18:32:29 +0200 (CEST) Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by mails.dpdk.org (Postfix) with ESMTP id 27ABF4003C for ; Sat, 9 Oct 2021 18:32:28 +0200 (CEST) Received: by mail-pg1-f180.google.com with SMTP id v11so6329071pgb.8 for ; Sat, 09 Oct 2021 09:32:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wsbo1bF0FeQtlxDlWmkx/vF0DhmpDbK9lzIzFMU4ZB8=; b=OdvsZICCTZWhYPj/DSoGr0GE/6zkwUKvC6qsxcOiTug2Zu6qbFJqqyrT++IgCczPYY Ds2Xz00X3d81KkVP4978iBC8+MKmchgzdMdAOUfHmOc/oihQQKtUH+Rqhvcxj9GcS31e XoRTd2tYuSjTKT8UkLD/zDmN4ar4xK47E+tEEIVXyAlLEUETkWi2pTTTo/tXiw1K6puA BZa2/aZL9NDr8NAdAXqYupCcIDvmX7bQnYRO+Xe5OK8jB5Y9KS42w9jUv8+3Spn0TbC6 cBVEHFuw3piQzkXoOnCPu2NeTQBBQQ5ubFa53p49YDQ1bPUISC1Q4BSR42ppIWPb5pfB +Vlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wsbo1bF0FeQtlxDlWmkx/vF0DhmpDbK9lzIzFMU4ZB8=; b=WRk5n5eyozM0a4ZVvyckV1XygJsKgggeMgESvSkgZoJ/Qdmi0lmVE6hSB2BoLHnW0q HFx36SRfa/DmP93Q88clA9dQJVY1IJA65FzTCnBtW3aoy6W0nC54WC85YiEnzhckWgtR cKQR9hMadzG1avU3oYord/0WIPG5iU5LNDQS7MQirr/D6mVvvGcmOzz9z9Sut0eIYPXW AJqWZjMM0jW3rjVsSTi4w2TqHDrckNtt2rEuaG7aiO+wbNpdJZuGZ1q1OvWxvXP/JoJy fiy2ohPce7uY7+TaRqSnYigJnQmPmy+UcfEov1aq4ojgFQeRObv532Mml8/bYFkPLudl Mq5A== X-Gm-Message-State: AOAM532exIS9J8GmdN3tjOtT/SgPcZ/fMQGB22m5uTGl0eTNCwmYlqf4 F3irDPKDRiUhW56UoZ6X8IuhBK2y4ck= X-Google-Smtp-Source: ABdhPJyqF9KfU3AodlS1vRWqbfEAeDNDsbIqblNA+eqlzhWkQuX4cKIUZuNglcIHt7i8hws4nQfZAQ== X-Received: by 2002:a63:ab06:: with SMTP id p6mr10374739pgf.112.1633797146707; Sat, 09 Oct 2021 09:32:26 -0700 (PDT) Received: from localhost.localdomain (c-67-160-105-174.hsd1.wa.comcast.net. [67.160.105.174]) by smtp.gmail.com with ESMTPSA id p13sm14082082pjb.44.2021.10.09.09.32.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Oct 2021 09:32:26 -0700 (PDT) From: William Tu To: dev@dpdk.org Cc: Haiyue Wang , Pallavi Kadam , Dmitry Kozlyuk Date: Sat, 9 Oct 2021 09:31:03 -0700 Message-Id: <20211009163103.297-1-u9012063@gmail.com> X-Mailer: git-send-email 2.33.0.windows.2 In-Reply-To: <20211008135346.875-1-u9012063@gmail.com> References: <20211008135346.875-1-u9012063@gmail.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3] net/e1000: build on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch enables building the e1000 driver for Windows. I tested using two Windows VM on top of VMware Fusion, creating two e1000 devices with device ID 0x10D3 (8274L), verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode. Signed-off-by: William Tu Acked-by: Haiyue Wang Acked-by: Pallavi Kadam Tested-by: Dmitry Kozlyuk Tested-by: Pallavi Kadam --- v3: * Add acked and tested by tags * @Dmitry: I think it's better keep the doc for people to reference NetUIO setup. * I will send corresponding netuio device id patch to dpdk-kmods A short demo: https://youtu.be/UZ9hm2jQa2Y Example when running: PS C:\dpdk> .\build\app\dpdk-testpmd.exe EAL: Detected CPU lcores: 4 EAL: Detected NUMA nodes: 1 EAL: Multi-process support is requested, but not available. EAL: WARNING: TSC frequency estimated roughly - clock timings may be less accurate. EAL: Probe PCI driver: net_e1000_em (8086:10d3) device: 0000:03:00.0 (socket 0) EAL: Requested device 0000:1b:00.0 cannot be used testpmd: create a new mbuf pool : n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc Warning! port-topology=paired and odd forward ports number, the last port will p air with itself. Configuring Port 0 (socket 0) Port 0: 00:50:56:3A:4D:A6 Checking link statuses... Done No commandline core given, start packet forwarding allocation mode: native Logical Core 1 (socket 0) forwards packets on 1 streams: RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00 io packet forwarding packets/burst=32 nb forwarding cores=1 - nb forwarding ports=1 port 0: RX queue number: 1 Tx queue number: 1 Rx offloads=0x0 Tx offloads=0x0 RX queue: 0 RX desc=256 - RX free threshold=0 TX desc=256 - TX free threshold=32 TX offloads=0x0 - TX RS bit threshold=32 Press enter to exit Telling cores to stop... Waiting for lcores to finish... ---------------------- Forward statistics for port 0 ------------------ RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616 ------------------------------------------------------------------------ +++++++++++++++ Accumulated forward statistics for all ports+++++++++++ RX-packets: 40361 RX-dropped: 0 RX-total: 40361 TX-packets: 40616 TX-dropped: 0 TX-total: 40616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- --- doc/guides/nics/e1000em.rst | 13 +++++++++++++ doc/guides/nics/features/e1000.ini | 1 + doc/guides/rel_notes/release_21_11.rst | 4 ++++ drivers/net/e1000/base/e1000_osdep.h | 2 ++ drivers/net/e1000/e1000_ethdev.h | 1 + drivers/net/e1000/meson.build | 6 ------ 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/doc/guides/nics/e1000em.rst b/doc/guides/nics/e1000em.rst index 041c9a09a3a5..03ae23838bfa 100644 --- a/doc/guides/nics/e1000em.rst +++ b/doc/guides/nics/e1000em.rst @@ -1,6 +1,8 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2010-2014 Intel Corporation. +.. include:: + Driver for VM Emulated Devices ============================== @@ -153,3 +155,14 @@ The following are known limitations: #. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive. #. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up. + +Windows Configuration +--------------------- + +- Follow the :doc:`guide for Windows <../windows_gsg/run_apps>` + to setup the basic DPDK environment. + +- Identify the Intel\ |reg| Ethernet adapter. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + `_. diff --git a/doc/guides/nics/features/e1000.ini b/doc/guides/nics/features/e1000.ini index 5af6040e375b..b33f5a86e2e9 100644 --- a/doc/guides/nics/features/e1000.ini +++ b/doc/guides/nics/features/e1000.ini @@ -27,6 +27,7 @@ Tx descriptor status = Y Basic stats = Y FreeBSD = Y Linux = Y +Windows = Y x86-32 = Y x86-64 = Y diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst index efeffe37a0e2..e4a092e562e3 100644 --- a/doc/guides/rel_notes/release_21_11.rst +++ b/doc/guides/rel_notes/release_21_11.rst @@ -73,6 +73,10 @@ New Features * Implement support for tunnel offload. * Updated HWRM API to version 1.10.2.44 +* **Updated Intel e1000 emulated driver.** + + * Added Intel e1000 support on Windows. + * **Updated Intel iavf driver.** * Added Intel iavf support on Windows. diff --git a/drivers/net/e1000/base/e1000_osdep.h b/drivers/net/e1000/base/e1000_osdep.h index 94a49f340446..cd90228cef59 100644 --- a/drivers/net/e1000/base/e1000_osdep.h +++ b/drivers/net/e1000/base/e1000_osdep.h @@ -34,7 +34,9 @@ #define DEBUGOUT6(S, args...) DEBUGOUT(S, ##args) #define DEBUGOUT7(S, args...) DEBUGOUT(S, ##args) +#ifndef UNREFERENCED_PARAMETER #define UNREFERENCED_PARAMETER(_p) +#endif #define UNREFERENCED_1PARAMETER(_p) #define UNREFERENCED_2PARAMETER(_p, _q) #define UNREFERENCED_3PARAMETER(_p, _q, _r) diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h index 3b4d9c3ee6f4..613b81f03092 100644 --- a/drivers/net/e1000/e1000_ethdev.h +++ b/drivers/net/e1000/e1000_ethdev.h @@ -6,6 +6,7 @@ #define _E1000_ETHDEV_H_ #include +#include #include #include diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build index c5e48c6bc7fc..296ec25f2ce7 100644 --- a/drivers/net/e1000/meson.build +++ b/drivers/net/e1000/meson.build @@ -1,12 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -if is_windows - build = false - reason = 'not supported on Windows' - subdir_done() -endif - subdir('base') objs = [base_objs]