Discussion:
[PATCH] PCI: Add ACS support for AMD A88X southbridge devices
Marti Raudsepp
2014-10-02 13:05:37 UTC
Permalink
AMD has confirmed that peer-to-peer between two southbridge functions
does not occur.

Joel Schopp at https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+-14.4-[01]----05.0 Dialogic Corporation PRI
The legacy PCI should be isolated from the other devices identified.
Not sure what is going on here.
+-14.5 Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller
This OHCI Controller should also be isolated from the other devices.
Signed-off-by: Marti Raudsepp <***@juffo.org>
---
drivers/pci/quirks.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 80c2d01..ce43316 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3582,6 +3582,11 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
* 1002:439d SB7x0/SB8x0/SB9x0 LPC host controller
* 1002:4384 SBx00 PCI to PCI Bridge
* 1002:4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
+ *
+ * https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+ *
+ * 1022:780f [AMD] FCH PCI Bridge
+ * 1022:7809 [AMD] FCH USB OHCI Controller
*/
static int pci_quirk_amd_sb_acs(struct pci_dev *dev, u16 acs_flags)
{
@@ -3675,6 +3680,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ATI, 0x439d, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4384, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4399, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x780f, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x7809, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
{ 0 }
};
--
2.1.1
Marti Raudsepp
2014-10-02 13:42:38 UTC
Permalink
Post by Marti Raudsepp
Joel Schopp at https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+-14.4-[01]----05.0 Dialogic Corporation PRI
The legacy PCI should be isolated from the other devices identified.
Not sure what is going on here.
+-14.5 Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller
This OHCI Controller should also be isolated from the other devices.
To clarify, I realize the phrases "Not sure what is going on here" and
"should also be isolated" don't inspire much confidence, but I have
not managed to obtain more concrete statements in the bugzilla entry
for a month and a half. So I decided to try and push it.

I guess that the integrated devices 0000:00:15.2 (Ethernet) and
0000:00:15.3 (USB host controller) should also be isolated, but again,
I have no evidence, and it's not relevant to my use case.

Regards,
Marti Raudsepp
Alex Williamson
2014-10-02 13:47:19 UTC
Permalink
Post by Marti Raudsepp
AMD has confirmed that peer-to-peer between two southbridge functions
does not occur.
Joel Schopp at https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+-14.4-[01]----05.0 Dialogic Corporation PRI
The legacy PCI should be isolated from the other devices identified.
Not sure what is going on here.
+-14.5 Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller
This OHCI Controller should also be isolated from the other devices.
The bugzilla comments aren't quite as decisive as I'd like to see for a
quirk, so I think we should probably get an ACK from Joel before
including this. Thanks,

Alex
Post by Marti Raudsepp
---
drivers/pci/quirks.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 80c2d01..ce43316 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3582,6 +3582,11 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
* 1002:439d SB7x0/SB8x0/SB9x0 LPC host controller
* 1002:4384 SBx00 PCI to PCI Bridge
* 1002:4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
+ *
+ * https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+ *
+ * 1022:780f [AMD] FCH PCI Bridge
+ * 1022:7809 [AMD] FCH USB OHCI Controller
*/
static int pci_quirk_amd_sb_acs(struct pci_dev *dev, u16 acs_flags)
{
@@ -3675,6 +3680,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ATI, 0x439d, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4384, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4399, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x780f, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x7809, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
{ 0 }
};
Joel Schopp
2014-10-02 14:18:32 UTC
Permalink
Post by Alex Williamson
Post by Marti Raudsepp
AMD has confirmed that peer-to-peer between two southbridge functions
does not occur.
Joel Schopp at https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+-14.4-[01]----05.0 Dialogic Corporation PRI
The legacy PCI should be isolated from the other devices identified.
Not sure what is going on here.
+-14.5 Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller
This OHCI Controller should also be isolated from the other devices.
The bugzilla comments aren't quite as decisive as I'd like to see for a
quirk, so I think we should probably get an ACK from Joel before
including this. Thanks,
My apologies for not being as clear as I could have been in the
bugzilla. These are isolated. Acked-by is below.
Post by Alex Williamson
Alex
Post by Marti Raudsepp
---
drivers/pci/quirks.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 80c2d01..ce43316 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3582,6 +3582,11 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
* 1002:439d SB7x0/SB8x0/SB9x0 LPC host controller
* 1002:4384 SBx00 PCI to PCI Bridge
* 1002:4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
+ *
+ * https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+ *
+ * 1022:780f [AMD] FCH PCI Bridge
+ * 1022:7809 [AMD] FCH USB OHCI Controller
*/
static int pci_quirk_amd_sb_acs(struct pci_dev *dev, u16 acs_flags)
{
@@ -3675,6 +3680,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ATI, 0x439d, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4384, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4399, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x780f, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x7809, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
{ 0 }
};
Acked-by: Joel Schopp <***@amd.com>
Bjorn Helgaas
2014-10-02 15:00:21 UTC
Permalink
Post by Marti Raudsepp
AMD has confirmed that peer-to-peer between two southbridge functions
does not occur.
Joel Schopp at https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+-14.4-[01]----05.0 Dialogic Corporation PRI
The legacy PCI should be isolated from the other devices identified.
Not sure what is going on here.
+-14.5 Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller
This OHCI Controller should also be isolated from the other devices.
Applied with Joel's ack to pci/virtualization for v3.18, thanks!
Post by Marti Raudsepp
---
drivers/pci/quirks.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 80c2d01..ce43316 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3582,6 +3582,11 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
* 1002:439d SB7x0/SB8x0/SB9x0 LPC host controller
* 1002:4384 SBx00 PCI to PCI Bridge
* 1002:4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
+ *
+ * https://bugzilla.kernel.org/show_bug.cgi?id=81841#c15
+ *
+ * 1022:780f [AMD] FCH PCI Bridge
+ * 1022:7809 [AMD] FCH USB OHCI Controller
*/
static int pci_quirk_amd_sb_acs(struct pci_dev *dev, u16 acs_flags)
{
@@ -3675,6 +3680,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ATI, 0x439d, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4384, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_ATI, 0x4399, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x780f, pci_quirk_amd_sb_acs },
+ { PCI_VENDOR_ID_AMD, 0x7809, pci_quirk_amd_sb_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
{ 0 }
};
--
2.1.1
Loading...