Message ID | 1654796507-28610-1-git-send-email-michael.chan@broadcom.com (mailing list archive) |
---|---|
State | Accepted |
Commit | afd306a65cedb9589564bdb23a0c368abc4215fd |
Headers | show |
Series | PCI: Add ACS quirk for Broadcom BCM5750x NICs | expand |
On Thu, Jun 09, 2022 at 01:41:47PM -0400, Michael Chan wrote: > From: Pavan Chebbi <pavan.chebbi@broadcom.com> > > The Broadcom BCM5750x NICs may be multi-function devices. They do > not advertise ACS capability. Peer-to-peer transactions are not > possible between the individual functions, so it is safe to treat > them as fully isolated. > > Add an ACS quirk for these devices so the functions can be in > independent IOMMU groups and attached individually to userspace > applications using VFIO. > > Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com> > Signed-off-by: Michael Chan <michael.chan@broadcom.com> Applied to pci/virtualization for v5.20, thanks! > --- > drivers/pci/quirks.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 41aeaa235132..2e68f50bc7ae 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -4924,6 +4924,9 @@ static const struct pci_dev_acs_enabled { > { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs }, > /* Broadcom multi-function device */ > { PCI_VENDOR_ID_BROADCOM, 0x16D7, pci_quirk_mf_endpoint_acs }, > + { PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs }, > + { PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs }, > + { PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs }, > { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs }, > /* Amazon Annapurna Labs */ > { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs }, > -- > 2.18.1 >
On Thu, Jun 09, 2022 at 01:58:13PM -0500, Bjorn Helgaas wrote: > On Thu, Jun 09, 2022 at 01:41:47PM -0400, Michael Chan wrote: > > From: Pavan Chebbi <pavan.chebbi@broadcom.com> > > > > The Broadcom BCM5750x NICs may be multi-function devices. They do > > not advertise ACS capability. Peer-to-peer transactions are not > > possible between the individual functions, so it is safe to treat > > them as fully isolated. > > > > Add an ACS quirk for these devices so the functions can be in > > independent IOMMU groups and attached individually to userspace > > applications using VFIO. > > > > Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com> > > Signed-off-by: Michael Chan <michael.chan@broadcom.com> > > Applied to pci/virtualization for v5.20, thanks! I forgot to ask: is there a plan for future devices to include an ACS capability? Or will we be stuck adding quirks forever? > > --- > > drivers/pci/quirks.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index 41aeaa235132..2e68f50bc7ae 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -4924,6 +4924,9 @@ static const struct pci_dev_acs_enabled { > > { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs }, > > /* Broadcom multi-function device */ > > { PCI_VENDOR_ID_BROADCOM, 0x16D7, pci_quirk_mf_endpoint_acs }, > > + { PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs }, > > + { PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs }, > > + { PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs }, > > { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs }, > > /* Amazon Annapurna Labs */ > > { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs }, > > -- > > 2.18.1 > > > >
On Mon, Jun 13, 2022 at 5:16 PM Bjorn Helgaas <helgaas@kernel.org> wrote: > > On Thu, Jun 09, 2022 at 01:58:13PM -0500, Bjorn Helgaas wrote: > > On Thu, Jun 09, 2022 at 01:41:47PM -0400, Michael Chan wrote: > > > From: Pavan Chebbi <pavan.chebbi@broadcom.com> > > > > > > The Broadcom BCM5750x NICs may be multi-function devices. They do > > > not advertise ACS capability. Peer-to-peer transactions are not > > > possible between the individual functions, so it is safe to treat > > > them as fully isolated. > > > > > > Add an ACS quirk for these devices so the functions can be in > > > independent IOMMU groups and attached individually to userspace > > > applications using VFIO. > > > > > > Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com> > > > Signed-off-by: Michael Chan <michael.chan@broadcom.com> > > > > Applied to pci/virtualization for v5.20, thanks! > > I forgot to ask: is there a plan for future devices to include an ACS > capability? Or will we be stuck adding quirks forever? > I still have not heard back definitively from the hardware team yet. It's likely that the next device will not have ACS but the one after that will have it.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 41aeaa235132..2e68f50bc7ae 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4924,6 +4924,9 @@ static const struct pci_dev_acs_enabled { { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs }, /* Broadcom multi-function device */ { PCI_VENDOR_ID_BROADCOM, 0x16D7, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs }, /* Amazon Annapurna Labs */ { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs },