Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA

Jason Wang
2021-03-09T02:24:35Z

On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
> for vDPA
>
> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
> ---
> 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.h b/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 0x0001

I 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

> +
> #define IFCVF_SUPPORTED_FEATURES \
> ((1ULL << VIRTIO_NET_F_MAC) | \
> (1ULL << VIRTIO_F_ANY_LAYOUT) | \
> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/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);