Re: [PATCH] fpga: dfl-pci: add PCI subdevice ID for Intel D5005 card

From: Xu Yilun
Date: Fri Apr 26 2024 - 00:15:55 EST


On Mon, Apr 22, 2024 at 07:02:57PM -0400, Peter Colberg wrote:
> Add PCI subdevice ID for the Intel D5005 Stratix 10 FPGA card as
> used with the Open FPGA Stack (OFS) FPGA Interface Manager (FIM).
>
> Unlike the Intel D5005 PAC FIM which exposed a separate PCI device ID,
> the OFS FIM reuses the same device ID for all DFL-based FPGA cards
> and differentiates on the subdevice ID. The subdevice ID values were
> chosen as the numeric part of the FPGA card names in hexadecimal.
>
> Link: https://github.com/OFS/dfl-feature-id/pull/4

Any reason to put the Link in changelog. I didn't see it provide any
extra info.

> Signed-off-by: Peter Colberg <peter.colberg@xxxxxxxxx>
> Reviewed-by: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx>

Besides,

Acked-by: Xu Yilun <yilun.xu@xxxxxxxxx>

> ---
> This patch was applied to Linux v6.9-rc5 and tested on an Intel D5005
> card flashed with the latest released OFS 2024.1-1 D5005 FIM.
>
> # fpgainfo fme D8:00.0
> Intel FPGA Programmable Acceleration Card D5005
> Board Management Controller, MAX10 NIOS FW version: 2.0.12
> Board Management Controller, MAX10 Build version: 2.0.8
> //****** FME ******//
> Interface : DFL
> Object Id : 0xED00002
> PCIe s:b:d.f : 0000:D8:00.0
> Vendor Id : 0x8086
> Device Id : 0xBCCE
> SubVendor Id : 0x8086
> SubDevice Id : 0x138D
> Socket Id : 0x00
> Ports Num : 01
> Bitstream Id : 0x4010002183C88A9
> Bitstream Version : 4.0.1
> Pr Interface Id : a195b6f7-cf23-5a2b-8ef9-1161e184ec4e
> Boot Page : user
>
> Link: https://github.com/OFS/ofs-d5005/releases/tag/ofs-2024.1-1
> ---
> The missing subdevice ID 0x138d was noticed while testing the patch
> series "fpga: dfl: fix kernel warning on port release/assign for SRIOV"
> applied to v6.9-rc4 on an Intel D5005 card. The absence of the subdevice
> ID was shadowed by an internal patch in the downstream Linux DFL kernel
> ("fpga: dfl: Add wildcard sub-device ID for intel DFL devs").
>
> Link: https://github.com/OFS/linux-dfl/commit/27d3d71824f086acae86e41a87b591838b7fa9d1
> ---
> drivers/fpga/dfl-pci.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/fpga/dfl-pci.c b/drivers/fpga/dfl-pci.c
> index 98b8fd16183e..80cac3a5f976 100644
> --- a/drivers/fpga/dfl-pci.c
> +++ b/drivers/fpga/dfl-pci.c
> @@ -78,6 +78,7 @@ static void cci_pci_free_irq(struct pci_dev *pcidev)
> #define PCIE_DEVICE_ID_SILICOM_PAC_N5011 0x1001
> #define PCIE_DEVICE_ID_INTEL_DFL 0xbcce
> /* PCI Subdevice ID for PCIE_DEVICE_ID_INTEL_DFL */
> +#define PCIE_SUBDEVICE_ID_INTEL_D5005 0x138d
> #define PCIE_SUBDEVICE_ID_INTEL_N6000 0x1770
> #define PCIE_SUBDEVICE_ID_INTEL_N6001 0x1771
> #define PCIE_SUBDEVICE_ID_INTEL_C6100 0x17d4
> @@ -101,6 +102,8 @@ static struct pci_device_id cci_pcie_id_tbl[] = {
> {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_PAC_D5005_VF),},
> {PCI_DEVICE(PCI_VENDOR_ID_SILICOM_DENMARK, PCIE_DEVICE_ID_SILICOM_PAC_N5010),},
> {PCI_DEVICE(PCI_VENDOR_ID_SILICOM_DENMARK, PCIE_DEVICE_ID_SILICOM_PAC_N5011),},
> + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL,
> + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_D5005),},
> {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL,
> PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_N6000),},
> {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL_VF,
> --
> 2.44.0
>
>