From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E041AA0561; Wed, 3 Mar 2021 19:47:15 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5B0F7160744; Wed, 3 Mar 2021 19:47:15 +0100 (CET) Received: from out0-158.mail.aliyun.com (out0-158.mail.aliyun.com [140.205.0.158]) by mails.dpdk.org (Postfix) with ESMTP id 5EE4840683 for ; Wed, 3 Mar 2021 19:47:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1614797231; h=From:To:Subject:Date:Message-Id; bh=eMFXmOiH0cuBzoSlasPbU7VdOD7kyfQjv8jGDfRFVJ0=; b=tRk4xUHH794V3/s4dxgAydTI6gJrMiczQqCEBSB1CAs6D3eU9O03Z7gKqHq0tS8WZv5wNV3pn0OiZ2RyIX6xSYcdMyn34vy0i1S7y7WgUSMYtp6sRrtjjb66CC1CBMc4JMK+p+HnAGr2dmDMG4cKepw82q4vs1aqAhXdjNAB4sQ= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R681e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=ay29a033018047201; MF=huawei.xhw@alibaba-inc.com; NM=1; PH=DS; RN=9; SR=0; TI=SMTPD_---.Jg0HuXE_1614797228; Received: from rs3a10040.et2sqa.z1.et2sqa.tbsite.net(mailfrom:huawei.xhw@alibaba-inc.com fp:SMTPD_---.Jg0HuXE_1614797228) by smtp.aliyun-inc.com(127.0.0.1); Thu, 04 Mar 2021 02:47:10 +0800 From: "=?UTF-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?=" To: ferruh.yigit@intel.com, maxime.coquelin@redhat.com, david.marchand@redhat.com Cc: , , , , , "=?UTF-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?=" Date: Thu, 04 Mar 2021 02:47:03 +0800 Message-Id: <1614797225-114594-1-git-send-email-huawei.xhw@alibaba-inc.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1614793612-91528-1-git-send-email-huawei.xhw@alibaba-inc.com> References: <1614793612-91528-1-git-send-email-huawei.xhw@alibaba-inc.com> Subject: [dpdk-dev] [PATCH v10 0/2] support both PIO and MMIO BAR for legacy virito device 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" virtio PMD assumes legacy device only supports PIO(port-mapped) BAR resource. This is wrong. As we need to create lots of devices, as PIO resource on x86 is very limited, we expose MMIO(memory-mapped I/O) BAR. Kernel supports both PIO and MMIO BAR for legacy virtio-pci device, and for all other pci devices. This patchset handles different type of BAR in the similar way. In previous implementation, under igb_uio driver we get PIO address from igb_uio sysfs entry; with uio_pci_generic, we get PIO address from /proc/ioports for x86, and for other ARCHs, we get PIO address from standard PCI sysfs entry. For PIO/MMIO RW, there is different path for different drivers and arch. All of the above is too much twisted. This patchset unifies the way to get both PIO and MMIO address for different driver and ARCHs, all from standard resource attr under pci sysfs. This is most generic. We distinguish PIO and MMIO by their address range like how kernel does. It is ugly but works. v2 changes: - add more explanation in the commit message v3 changes: - fix patch format issues v4 changes: - fixes for RTE_KDRV_UIO_GENERIC -> RTE_PCI_KDRV_UIO_GENERIC v5 changes: - split into three seperate patches v6 changes: - change to DEBUG level for IO bar detection in pci_uio_ioport_map - rework the code in iobar branch - fixes commit message format issue - temporarily remove the 3rd patch for vfio path, leave it for future discusssion - rework against virtio_pmd_rework_v2 v7 changes: - fix compilation issues of in/out instruction on non X86 archs v8 changes: - change the word fix to refactor in patch 1's commit message v9 changes: - keep pause version in in/out instructions v10 changes: - trival fixes in commit message, like > 75 chars huawei.xhw (2): bus/pci: use PCI standard sysfs entry to get PIO address bus/pci: support MMIO in PCI ioport accessors drivers/bus/pci/linux/pci.c | 81 ---------------- drivers/bus/pci/linux/pci_uio.c | 202 +++++++++++++++++++++++++++++----------- 2 files changed, 150 insertions(+), 133 deletions(-) -- 1.8.3.1