linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs
@ 2022-06-09 17:41 Michael Chan
  2022-06-09 18:58 ` Bjorn Helgaas
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Chan @ 2022-06-09 17:41 UTC (permalink / raw)
  To: davem, bhelgaas; +Cc: netdev, linux-pci, kuba, gospo, Pavan Chebbi

[-- Attachment #1: Type: text/plain, Size: 1342 bytes --]

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


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4209 bytes --]

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs
  2022-06-09 17:41 [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs Michael Chan
@ 2022-06-09 18:58 ` Bjorn Helgaas
  2022-06-14  0:15   ` Bjorn Helgaas
  0 siblings, 1 reply; 4+ messages in thread
From: Bjorn Helgaas @ 2022-06-09 18:58 UTC (permalink / raw)
  To: Michael Chan
  Cc: davem, bhelgaas, netdev, linux-pci, kuba, gospo, Pavan Chebbi

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
> 



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs
  2022-06-09 18:58 ` Bjorn Helgaas
@ 2022-06-14  0:15   ` Bjorn Helgaas
  2022-06-27  7:30     ` Michael Chan
  0 siblings, 1 reply; 4+ messages in thread
From: Bjorn Helgaas @ 2022-06-14  0:15 UTC (permalink / raw)
  To: Michael Chan
  Cc: davem, bhelgaas, netdev, linux-pci, kuba, gospo, Pavan Chebbi

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs
  2022-06-14  0:15   ` Bjorn Helgaas
@ 2022-06-27  7:30     ` Michael Chan
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Chan @ 2022-06-27  7:30 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: David Miller, Bjorn Helgaas, Netdev, linux-pci, Jakub Kicinski,
	Andrew Gospodarek, Pavan Chebbi

[-- Attachment #1: Type: text/plain, Size: 1164 bytes --]

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.

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4209 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-06-27  7:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-09 17:41 [PATCH] PCI: Add ACS quirk for Broadcom BCM5750x NICs Michael Chan
2022-06-09 18:58 ` Bjorn Helgaas
2022-06-14  0:15   ` Bjorn Helgaas
2022-06-27  7:30     ` Michael Chan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).