linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: "Kitszel, PrzemyslawX" <przemyslawx.kitszel@intel.com>
Cc: "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"Maslowski, Karol" <karol.maslowski@intel.com>,
	Andrew Murray <andrew.murray@arm.com>
Subject: Re: [PATCH v2] PCI: Add quirk for VCA NTB
Date: Mon, 30 Sep 2019 17:27:29 -0500	[thread overview]
Message-ID: <20190930222729.GA215153@google.com> (raw)
In-Reply-To: <5683A335CC8BE1438C3C30C49DCC38DF637CED8E@IRSMSX102.ger.corp.intel.com>

On Tue, Sep 17, 2019 at 09:20:48AM +0000, Kitszel, PrzemyslawX wrote:
> From 8ec717d913bba70e3e0dd783eebf355e0d64a159 Mon Sep 17 00:00:00 2001
> From: Slawomir Pawlowski <slawomir.pawlowski@intel.com>
> Date: Fri, 21 Sep 2018 15:55:12 +0200
> Subject: [PATCH v2] PCI: Add quirk for VCA NTB
> 
> Intel Visual Compute Accelerator (VCA) is a family of PCIe add-in devices
> exposing computational units via Non Transparent Bridges (NTB, PEX 87xx).
> 
> Similarly to MIC x200, there is need to add DMA aliases to allow buffer
> access when IOMMU is enabled.
> Following aliases are allowing host device and computational unit to access
> each other.
> Together those aliases marks whole VCA device as one IOMMU group.
> 
> All possible slot numbers (0x20) are used, since we are unable to tell what
> slot is used on other side.
> This quirk is intended for both host and computational unit sides.
> The VCA devices have up to 5 functions - 4 for DMA channels and one
> additional.
> 
> Signed-off-by: Slawomir Pawlowski <slawomir.pawlowski@intel.com>
> Signed-off-by: Przemek Kitszel <przemyslawx.kitszel@intel.com>

Applied to pci/virtualization for v5.5, thanks!

> ---
> Changes in v2:
>   - fix typos: s/sine/since/g
> 
>  drivers/pci/quirks.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index ded60757a573..921a080146f3 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -4062,6 +4062,38 @@ static void quirk_mic_x200_dma_alias(struct pci_dev *pdev)
>  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2260, quirk_mic_x200_dma_alias);
>  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2264, quirk_mic_x200_dma_alias);
>  
> +/*
> + * Intel Visual Compute Accelerator (VCA) is a family of PCIe add-in devices
> + * exposing computational units via Non Transparent Bridges (NTB, PEX 87xx).
> + * Similarly to MIC x200, there is need to add DMA aliases to allow buffer
> + * access when IOMMU is enabled.
> + * Following aliases are allowing host device and computational unit to access
> + * each other. Together those aliases marks whole VCA device as one IOMMU group.
> + * All possible slot numbers (0x20) are used, since we are unable to tell what
> + * slot is used on other side.
> + * This quirk is intended for both host and computational unit sides.
> + * The VCA devices have up to 5 functions (4 for DMA channels and 1 additional).
> + */
> +static void quirk_pex_vca_alias(struct pci_dev *pdev)
> +{
> +	const unsigned int num_pci_slots = 0x20;
> +	unsigned int slot;
> +
> +	for (slot = 0; slot < num_pci_slots; slot++) {
> +		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x0));
> +		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x1));
> +		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x2));
> +		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x3));
> +		pci_add_dma_alias(pdev, PCI_DEVFN(slot, 0x4));
> +	}
> +}
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2954, quirk_pex_vca_alias);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2955, quirk_pex_vca_alias);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2956, quirk_pex_vca_alias);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2958, quirk_pex_vca_alias);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2959, quirk_pex_vca_alias);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x295A, quirk_pex_vca_alias);
> +
>  /*
>   * The IOMMU and interrupt controller on Broadcom Vulcan/Cavium ThunderX2 are
>   * associated not at the root bus, but at a bridge below. This quirk avoids
> -- 
> 2.22.0
> 

      reply	other threads:[~2019-09-30 22:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-17  9:20 [PATCH v2] PCI: Add quirk for VCA NTB Kitszel, PrzemyslawX
2019-09-30 22:27 ` Bjorn Helgaas [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190930222729.GA215153@google.com \
    --to=helgaas@kernel.org \
    --cc=andrew.murray@arm.com \
    --cc=karol.maslowski@intel.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=przemyslawx.kitszel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).