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

From: Colberg, Peter
Date: Fri Apr 26 2024 - 17:35:26 EST


On Fri, 2024-04-26 at 12:10 +0800, Xu Yilun wrote:
> 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.

The link is provided to point to the corresponding change in the dfl-
pci-ids registry, for someone who might not be aware of its existence.

>
> > Signed-off-by: Peter Colberg <peter.colberg@xxxxxxxxx>
> > Reviewed-by: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx>
>
> Besides,
>
> Acked-by: Xu Yilun <yilun.xu@xxxxxxxxx>

Thank you for the review.

Peter

>
> > ---
> > 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
> >
> >