Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
From: Zhu, Lingshan <hidden>
Date: 2021-03-09 02:28:50
Also in:
kvm, lkml
On 3/9/2021 10:23 AM, Jason Wang wrote:
On 2021/3/8 4:35 下午, Zhu Lingshan wrote:quoted
This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net for vDPA Signed-off-by: Zhu Lingshan <redacted> --- drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++ drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++ 2 files changed, 10 insertions(+)diff --git a/drivers/vdpa/ifcvf/ifcvf_base.hb/drivers/vdpa/ifcvf/ifcvf_base.h index 64696d63fe07..75d9a8052039 100644--- a/drivers/vdpa/ifcvf/ifcvf_base.h +++ b/drivers/vdpa/ifcvf/ifcvf_base.h@@ -23,6 +23,11 @@#define IFCVF_SUBSYS_VENDOR_ID 0x8086 #define IFCVF_SUBSYS_DEVICE_ID 0x001A +#define C5000X_PL_VENDOR_ID 0x1AF4 +#define C5000X_PL_DEVICE_ID 0x1000 +#define C5000X_PL_SUBSYS_VENDOR_ID 0x8086 +#define C5000X_PL_SUBSYS_DEVICE_ID 0x0001I just notice that the device is a transtitional one. Any reason for doing this? Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy drive may bring many issues (e.g the definition is non-nomartive). One example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver may assume the device can bypass IOMMU. Thanks
Hi Jason, This device will support virtio1.0 by default, so has VIRTIO_F_IOMMU_PLATFORM by default. Transitional device gives the software a chance to fall back to virtio 0.95. ifcvf drives this device in virtio 1.0 mode, set features VIRTIO_F_IOMMU_PLATFORM successfully. Thanks, Zhu Lingshan
quoted
+ #define IFCVF_SUPPORTED_FEATURES \ ((1ULL << VIRTIO_NET_F_MAC) | \ (1ULL << VIRTIO_F_ANY_LAYOUT) | \diff --git a/drivers/vdpa/ifcvf/ifcvf_main.cb/drivers/vdpa/ifcvf/ifcvf_main.c index e501ee07de17..26a2dab7ca66 100644--- a/drivers/vdpa/ifcvf/ifcvf_main.c +++ b/drivers/vdpa/ifcvf/ifcvf_main.c@@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {IFCVF_DEVICE_ID, IFCVF_SUBSYS_VENDOR_ID, IFCVF_SUBSYS_DEVICE_ID) }, + { PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID, + C5000X_PL_DEVICE_ID, + C5000X_PL_SUBSYS_VENDOR_ID, + C5000X_PL_SUBSYS_DEVICE_ID) }, + { 0 }, }; MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);