Re: [PATCH] x86/PCI: use host bridge _CRS info on ASRock ALiveSATA2-GLAN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 23 Jul 2010 12:53:27 -0600
Bjorn Helgaas <bjorn.helgaas@xxxxxx> wrote:

> 
> This DMI quirk turns on "pci=use_crs" for the ALiveSATA2-GLAN because
> amd_bus.c doesn't handle this system correctly.
> 
> The system has a single HyperTransport I/O chain, but has two PCI host
> bridges to buses 00 and 80.  amd_bus.c learns the MMIO range associated
> with buses 00-ff and that this range is routed to the HT chain hosted at
> node 0, link 0:
> 
>     bus: [00, ff] on node 0 link 0
>     bus: 00 index 1 [mem 0x80000000-0xfcffffffff]
> 
> This includes the address space for both bus 00 and bus 80, and amd_bus.c
> assumes it's all routed to bus 00.
> 
> We find device 80:01.0, which BIOS left in the middle of that space, but
> we don't find a bridge from bus 00 to bus 80, so we conclude that 80:01.0
> is unreachable from bus 00, and we move it from the original, working,
> address to something outside the bus 00 aperture, which does not work:
> 
>     pci 0000:80:01.0: reg 10: [mem 0xfebfc000-0xfebfffff 64bit]
>     pci 0000:80:01.0: BAR 0: assigned [mem 0xfd00000000-0xfd00003fff 64bit]
> 
> The BIOS told us everything we need to know to handle this correctly,
> so we're better off if we just pay attention, which lets us leave the
> 80:01.0 device at the original, working, address:
> 
>     ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7f])
>     pci_root PNP0A03:00: host bridge window [mem 0x80000000-0xff37ffff]
>     ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 80-ff])
>     pci_root PNP0A08:00: host bridge window [mem 0xfebfc000-0xfebfffff]
> 
> This was a regression between 2.6.33 and 2.6.34.  In 2.6.33, amd_bus.c
> was used only when we found multiple HT chains.  3e3da00c01d050, which
> enabled amd_bus.c even on systems with a single HT chain, caused this
> failure.
> 
> This quirk was written by Graham.  If we ever enable "pci=use_crs" for
> machines from 2006 or earlir, this quirk should be removed.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16007
> 
> Reported-by: Graham Ramsey <ramsey.graham@xxxxxxxxxxxx>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
> ---
> 
>  arch/x86/pci/acpi.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> 
> diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
> index 2ec04c4..15466c0 100644
> --- a/arch/x86/pci/acpi.c
> +++ b/arch/x86/pci/acpi.c
> @@ -34,6 +34,15 @@ static const struct dmi_system_id pci_use_crs_table[] __initconst = {
>  			DMI_MATCH(DMI_PRODUCT_NAME, "x3800"),
>  		},
>  	},
> +	/* https://bugzilla.kernel.org/show_bug.cgi?id=16007 */
> +	/* 2006 AMD HT/VIA system with two host bridges */
> +        {
> +		.callback = set_use_crs,
> +		.ident = "ASRock ALiveSATA2-GLAN",
> +		.matches = {
> +			DMI_MATCH(DMI_PRODUCT_NAME, "ALiveSATA2-GLAN"),
> +                },
> +        },
>  	{}
>  };
>  
> 
> 

Applied this to my linux-next branch and added a cc: stable@xxxxxxxxxx
so it'll get into the .35 and .34 stable releases when they come out.

-- 
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux