mbox series

[Linaro-uefi,v2,0/2] Platforms/AMD: fix legacy interrupt routing

Message ID 20170408171453.13450-1-ard.biesheuvel@linaro.org
Headers show
Series Platforms/AMD: fix legacy interrupt routing | expand

Message

Ard Biesheuvel April 8, 2017, 5:14 p.m. UTC
Update the DTS and ACPI descriptions with correct information about the
routing of legacy interrupts.

For DT, this comes down to updating the interrupt-map with distinct sets
of 4 GIC interrupt lines per PCIe slot.

For ACPI, we need to update the PNP0A08 node and add three companion devices,
one for each slot, whose _PRT methods describe the legacy interrupt routing
of each respective slot. The _PRT method at the root of the PCI ACPI hierarchy
is updated to map INTA (which is shared by all functions of the bridge device)
to GIC interrupt #320. With this change, the boot log is free of warnings and
non-MSI capable devices work as expected.

Tested on Cello with xhci_hcd.quirks=64 passed on the kernel command line, in
which case the xhci interrupt is routed to GIC interrupt #324

Ard Biesheuvel (2):
  Platforms/AMD: correct legacy PCI interrupt routing in DSDT
  Platforms/AMD: correct legacy PCI interrupt routing in DTS

 Platforms/AMD/Styx/AcpiTables/Dsdt.asl                       |  63 +++++++++++---------
 Platforms/AMD/Styx/OverdriveBoard/FdtBlob/styx-overdrive.dtb | Bin 7973 -> 8123 bytes
 Platforms/AMD/Styx/OverdriveBoard/FdtBlob/styx-overdrive.dts |  20 +++++--
 3 files changed, 49 insertions(+), 34 deletions(-)

Comments

Leif Lindholm April 11, 2017, 6:40 p.m. UTC | #1
On Sat, Apr 08, 2017 at 06:14:51PM +0100, Ard Biesheuvel wrote:
> Update the DTS and ACPI descriptions with correct information about the
> routing of legacy interrupts.
> 
> For DT, this comes down to updating the interrupt-map with distinct sets
> of 4 GIC interrupt lines per PCIe slot.
> 
> For ACPI, we need to update the PNP0A08 node and add three companion devices,
> one for each slot, whose _PRT methods describe the legacy interrupt routing
> of each respective slot. The _PRT method at the root of the PCI ACPI hierarchy
> is updated to map INTA (which is shared by all functions of the bridge device)
> to GIC interrupt #320. With this change, the boot log is free of warnings and
> non-MSI capable devices work as expected.
> 
> Tested on Cello with xhci_hcd.quirks=64 passed on the kernel command line, in
> which case the xhci interrupt is routed to GIC interrupt #324

Even if this is not proven to be fully resolved, it certainly seems
like an improvement - so:
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> Ard Biesheuvel (2):
>   Platforms/AMD: correct legacy PCI interrupt routing in DSDT
>   Platforms/AMD: correct legacy PCI interrupt routing in DTS
> 
>  Platforms/AMD/Styx/AcpiTables/Dsdt.asl                       |  63 +++++++++++---------
>  Platforms/AMD/Styx/OverdriveBoard/FdtBlob/styx-overdrive.dtb | Bin 7973 -> 8123 bytes
>  Platforms/AMD/Styx/OverdriveBoard/FdtBlob/styx-overdrive.dts |  20 +++++--
>  3 files changed, 49 insertions(+), 34 deletions(-)
> 
> -- 
> 2.9.3
>
Ard Biesheuvel April 12, 2017, 9:59 a.m. UTC | #2
On 11 April 2017 at 19:40, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Sat, Apr 08, 2017 at 06:14:51PM +0100, Ard Biesheuvel wrote:
>> Update the DTS and ACPI descriptions with correct information about the
>> routing of legacy interrupts.
>>
>> For DT, this comes down to updating the interrupt-map with distinct sets
>> of 4 GIC interrupt lines per PCIe slot.
>>
>> For ACPI, we need to update the PNP0A08 node and add three companion devices,
>> one for each slot, whose _PRT methods describe the legacy interrupt routing
>> of each respective slot. The _PRT method at the root of the PCI ACPI hierarchy
>> is updated to map INTA (which is shared by all functions of the bridge device)
>> to GIC interrupt #320. With this change, the boot log is free of warnings and
>> non-MSI capable devices work as expected.
>>
>> Tested on Cello with xhci_hcd.quirks=64 passed on the kernel command line, in
>> which case the xhci interrupt is routed to GIC interrupt #324
>
> Even if this is not proven to be fully resolved, it certainly seems
> like an improvement - so:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>

Since Alan confirmed that legacy interrupts work for him on slots
other than the first one, both on DT and ACPI, I have pushed these
patches.