|
@@ -4088,6 +4088,22 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_INTEL, 0x2f0d, PCI_CLASS_NOT_DEFINED
|
|
|
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_INTEL, 0x2f0e, PCI_CLASS_NOT_DEFINED, 8,
|
|
|
quirk_relaxedordering_disable);
|
|
|
|
|
|
+/*
|
|
|
+ * The AMD ARM A1100 (AKA "SEATTLE") SoC has a bug in its PCIe Root Complex
|
|
|
+ * where Upstream Transaction Layer Packets with the Relaxed Ordering
|
|
|
+ * Attribute clear are allowed to bypass earlier TLPs with Relaxed Ordering
|
|
|
+ * set. This is a violation of the PCIe 3.0 Transaction Ordering Rules
|
|
|
+ * outlined in Section 2.4.1 (PCI Express(r) Base Specification Revision 3.0
|
|
|
+ * November 10, 2010). As a result, on this platform we can't use Relaxed
|
|
|
+ * Ordering for Upstream TLPs.
|
|
|
+ */
|
|
|
+DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AMD, 0x1a00, PCI_CLASS_NOT_DEFINED, 8,
|
|
|
+ quirk_relaxedordering_disable);
|
|
|
+DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AMD, 0x1a01, PCI_CLASS_NOT_DEFINED, 8,
|
|
|
+ quirk_relaxedordering_disable);
|
|
|
+DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AMD, 0x1a02, PCI_CLASS_NOT_DEFINED, 8,
|
|
|
+ quirk_relaxedordering_disable);
|
|
|
+
|
|
|
/*
|
|
|
* Per PCIe r3.0, sec 2.2.9, "Completion headers must supply the same
|
|
|
* values for the Attribute as were supplied in the header of the
|