Re: "new" dependencies on ACPI/BIOS

From: Bjorn Helgaas <>
Date: Thu, 28 Jan 2010 13:04:27 -0700
On Thursday 28 January 2010 12:22:04 pm Luck, Tony wrote:
> [Bjorn: I stuck your name in the "To" list as Jesse told me that you
>  know all about this code]
> My shiniest, newest, ia64 development system used to work fine. But
> in 2.6.31 the USB keyboard and mouse on the console stopped working.
> ...
> The code now appears to walk ACPI looking for _CRS methods to find out
> which resources are attached to which busses.  When drivers are paired
> up with devices later, we check to make sure that the device has a
> correct parent.  For my system this seems to fail because the _CRS walk
> only turns up some IO resources and no MEM resources. So the echi
> (which wants mem 0x58328000 and mem 0x58324000) is out of luck and
> denied.
> ...
> ACPI: PCI Root Bridge [PCI0] (0000:00)
> pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7]
> pci_root PNP0A08:00: host bridge window [io  0x1000-0x8fff]

> ACPI: PCI Root Bridge [PCI1] (0000:80)
> pci_root PNP0A08:01: host bridge window [io  0x9000-0xfffe]

> Is this a correct understanding of what the Linux pci code now expects
> to find?  Which bit of the ACPI spec should I use to beat the BIOS
> engineers over the head to point out the error of their ways?

On ia64, we've always used _CRS to find the resources for host bridges
(though we only recently started printing out the windows), and PCI
has always relied on what we find.  But if we only find I/O port
ranges, something is seriously wrong.

It's possible we're seeing something new in _CRS that we don't handle
correctly, e.g., maybe resource_to_window() is incorrectly rejecting

I'd start with a patch like this (just the rsutils.c piece):

If you can post the output with that patch, we can manually decode the
_CRS buffer straight from ACPI, so we can at least figure out whether
to look at Linux or the BIOS.

If this is really a BIOS issue, I would expect Windows to fail
miserably as well.

To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on 2010-01-29 07:04:34

This archive was generated by hypermail 2.2.0 : 2010-01-29 07:04:44 EST