From: wangzhou1@hisilicon•com (Zhou Wang)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v9 4/4] PCI: hisi: blacklist hip06/hip07 controllers behind SMMUv3
Date: Mon, 9 Oct 2017 16:32:15 +0800 [thread overview]
Message-ID: <59DB340F.3010906@hisilicon.com> (raw)
In-Reply-To: <20171006140450.89652-5-shameerali.kolothum.thodi@huawei.com>
On 2017/10/6 22:04, Shameer Kolothum wrote:
> The HiSilicon erratum 161010801 describes the limitation of
> HiSilicon platforms hip06/hip07 to support the SMMUv3 mappings
> for MSI transactions.
>
> PCIe controller on these platforms has to differentiate the MSI
> payload against other DMA payload and has to modify the MSI
> payload. This basically makes it difficult for this platforms to
> have a SMMU translation for MSI. In order to workaround this, ARM
> SMMUv3 driver requires a quirk to treat the MSI regions separately.
> Such a quirk is currently missing for DT based systems and therefore
> we need to blacklist the hip06/hip07 PCIe controllers.
>
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei•com>
> ---
> drivers/pci/dwc/pcie-hisi.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/pci/dwc/pcie-hisi.c b/drivers/pci/dwc/pcie-hisi.c
> index a201791..6800747 100644
> --- a/drivers/pci/dwc/pcie-hisi.c
> +++ b/drivers/pci/dwc/pcie-hisi.c
> @@ -270,6 +270,12 @@ static int hisi_pcie_probe(struct platform_device *pdev)
> struct resource *reg;
> int ret;
>
> + if ((IS_BUILTIN(CONFIG_ARM_SMMU_V3)) &&
> + of_property_read_bool(dev->of_node, "iommu-map")) {
> + dev_warn(dev, "HiSilicon erratum 161010801: blacklisting PCIe controllers behind SMMUv3\n");
> + return -ENODEV;
> + }
> +
> hisi_pcie = devm_kzalloc(dev, sizeof(*hisi_pcie), GFP_KERNEL);
> if (!hisi_pcie)
> return -ENOMEM;
> @@ -340,6 +346,12 @@ static int hisi_pcie_almost_ecam_probe(struct platform_device *pdev)
> struct device *dev = &pdev->dev;
> struct pci_ecam_ops *ops;
>
> + if ((IS_BUILTIN(CONFIG_ARM_SMMU_V3)) &&
> + of_property_read_bool(dev->of_node, "iommu-map")) {
> + dev_warn(dev, "HiSilicon erratum 161010801: blacklisting PCIe controllers behind SMMUv3\n");
> + return -ENODEV;
> + }
> +
> ops = (struct pci_ecam_ops *)of_device_get_match_data(dev);
> return pci_host_common_probe(pdev, ops);
> }
>
Acked-by: Zhou Wang <wangzhou1@hisilicon•com>
Thanks,
Zhou
next prev parent reply other threads:[~2017-10-09 8:32 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-06 14:04 [PATCH v9 0/4] iommu/smmu-v3: Workaround for hisilicon 161010801 erratum(reserve HW MSI) Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 1/4] ACPI/IORT: Add msi address regions reservation helper Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 2/4] iommu/dma: Add a helper function to reserve HW MSI address regions for IOMMU drivers Shameer Kolothum
2017-10-13 19:23 ` Will Deacon
2017-10-16 16:09 ` Shameerali Kolothum Thodi
2017-10-18 12:34 ` Robin Murphy
2017-10-18 14:23 ` Shameerali Kolothum Thodi
2017-10-26 10:11 ` Shameerali Kolothum Thodi
2017-11-03 11:35 ` Lorenzo Pieralisi
2017-11-07 9:37 ` Shameerali Kolothum Thodi
2017-10-06 14:04 ` [PATCH v9 3/4] iommu/arm-smmu-v3:Enable ACPI based HiSilicon erratum 161010801 Shameer Kolothum
2017-10-06 14:04 ` [PATCH v9 4/4] PCI: hisi: blacklist hip06/hip07 controllers behind SMMUv3 Shameer Kolothum
2017-10-06 14:27 ` Gabriele Paoloni
2017-10-09 8:32 ` Zhou Wang [this message]
2017-10-09 23:54 ` Bjorn Helgaas
2017-10-10 0:15 ` Bjorn Helgaas
2017-10-10 9:42 ` Shameerali Kolothum Thodi
2017-10-10 10:06 ` Lorenzo Pieralisi
2017-10-10 10:19 ` Gabriele Paoloni
2017-10-10 10:51 ` Bjorn Helgaas
2017-10-13 19:22 ` Will Deacon
2017-10-15 7:46 ` Shameerali Kolothum Thodi
2017-10-18 10:51 ` Will Deacon
2017-10-18 12:25 ` Shameerali Kolothum Thodi
2017-10-18 13:45 ` Will Deacon
2017-10-11 11:34 ` [PATCH v9 0/4] iommu/smmu-v3: Workaround for hisilicon 161010801 erratum(reserve HW MSI) Shameerali Kolothum Thodi
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=59DB340F.3010906@hisilicon.com \
--to=wangzhou1@hisilicon$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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