2014-10-02 13:06:06

by Marti Raudsepp

[permalink] [raw]
Subject: [PATCH] PCI: Add ACS support for AMD A88X southbridge devices

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 <[email protected]>
---
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


2014-10-02 13:43:11

by Marti Raudsepp

[permalink] [raw]
Subject: Re: [PATCH] PCI: Add ACS support for AMD A88X southbridge devices

On Thu, Oct 2, 2014 at 4:05 PM, Marti Raudsepp <[email protected]> wrote:
> 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

2014-10-02 13:47:28

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] PCI: Add ACS support for AMD A88X southbridge devices

On Thu, 2014-10-02 at 16:05 +0300, Marti Raudsepp wrote:
> 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 <[email protected]>

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

> ---
> 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 }
> };


2014-10-02 14:51:50

by Joel Schopp

[permalink] [raw]
Subject: Re: [PATCH] PCI: Add ACS support for AMD A88X southbridge devices


On 10/02/2014 08:47 AM, Alex Williamson wrote:
> On Thu, 2014-10-02 at 16:05 +0300, Marti Raudsepp wrote:
>> 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 <[email protected]>
> 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.

>
> Alex
>
>> ---
>> 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 <[email protected]>

2014-10-02 15:00:29

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: Add ACS support for AMD A88X southbridge devices

On Thu, Oct 02, 2014 at 04:05:37PM +0300, Marti Raudsepp wrote:
> 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 <[email protected]>

Applied with Joel's ack to pci/virtualization for v3.18, thanks!

> ---
> 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
>