From: Nirmoy Das <nirmoyd@nvidia.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: <linux-pci@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Jason Gunthorpe <jgg@nvidia.com>, Will Deacon <will@kernel.org>,
Joerg Roedel <joro@8bytes.org>, <iommu@lists.linux.dev>,
<jammy_huang@aspeedtech.com>, Nirmoy Das <nirmoyd@nvidia.com>
Subject: [PATCH] PCI: Add quirk for ASPEED AST1150 bridge to prevent false RID aliasing
Date: Wed, 17 Dec 2025 05:32:32 -0800 [thread overview]
Message-ID: <20251217133232.274942-1-nirmoyd@nvidia.com> (raw)
ASPEED BMC controllers have VGA and USB functions behind a PCIe-to-PCI
bridge that causes them to share the same stream ID:
[e0]---00.0-[e1-e2]----00.0-[e2]--+-00.0 ASPEED Graphics Family
\-02.0 ASPEED USB Controller
Both devices get stream ID 0x5e200 due to bridge aliasing, causing the
USB controller to be rejected with 'Aliasing StreamID unsupported'.
Per ASPEED, the AST1150 operates in PCI mode where downstream devices
generate their own distinct Requester IDs. Set
PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT to stop false alias detection.
Signed-off-by: Nirmoy Das <nirmoyd@nvidia.com>
---
drivers/pci/quirks.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index b9c252aa6fe0..a7a1bf4c4354 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4453,6 +4453,20 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000,
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084,
quirk_bridge_cavm_thrx2_pcie_root);
+/*
+ * ASPEED AST1150 is a PCIe-to-PCI bridge that operates in PCI mode (not PCI-X).
+ * Although it reports as a PCIe-to-PCI bridge, the downstream PCI bus does not
+ * perform conventional Requester ID aliasing - each device behind the bridge
+ * generates its own distinct Requester ID. This quirk stops false alias
+ * detection at the bridge, fixing IOMMU StreamID conflicts that break DMA for
+ * devices like the USB controller behind this bridge.
+ */
+static void quirk_aspeed_ast1150_bridge(struct pci_dev *pdev)
+{
+ pdev->dev_flags |= PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT;
+}
+DECLARE_PCI_FIXUP_HEADER(0x1a03, 0x1150, quirk_aspeed_ast1150_bridge);
+
/*
* Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero)
* class code. Fix it.
--
2.43.0
next reply other threads:[~2025-12-17 19:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-17 13:32 Nirmoy Das [this message]
2025-12-17 13:36 ` [PATCH] PCI: Add quirk for ASPEED AST1150 bridge to prevent false RID aliasing Jason Gunthorpe
2025-12-17 13:48 ` Robin Murphy
2025-12-17 15:37 ` Nirmoy Das
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=20251217133232.274942-1-nirmoyd@nvidia.com \
--to=nirmoyd@nvidia.com \
--cc=bhelgaas@google.com \
--cc=iommu@lists.linux.dev \
--cc=jammy_huang@aspeedtech.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/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