Re: [PATCH 1/1] PCI: tune up ICH4 quirk for broken BIOSes

From: Robert Hancock
Date: Sat Jan 15 2011 - 10:39:28 EST


On 01/14/2011 10:10 AM, Bjorn Helgaas wrote:
On Friday, January 14, 2011 03:31:16 am Jiri Slaby wrote:
On 01/14/2011 01:15 AM, Linus Torvalds wrote:
On Thu, Jan 13, 2011 at 3:19 PM, Bjorn Helgaas<bjorn.helgaas@xxxxxx> wrote:

I think we're back to the question of why we have the ICH4 quirk in
the first place, and I don't know the answer to that.

Iirc, there were several laptops that didn't have the ACPI region
mentioned in any of the regular places, and we'd allocate the PCMCIA
IO region on top of them. The machine would boot, but if anybody ever
inserted a PCCard into the machine, the first access to the IO region
would generally just halt it (because it was trying to read the
PCCard, but the APCI region decodes first, and then the read from that
usually put the CPU in a sleep state that it would never wake up from
for obvious reasons).

So we do want the ICH4 quirk.

Yes, this is an "official" way how ICH4 (and later) advertises the region.

The quirk is a bug workaround, *not* the "official, planned" way to
deal with these regions. The official way is to use ACPI, because
that's a generic way that doesn't require changes for new versions
of ICH.

The bug might be that BIOS didn't mention the region in the expected
places. Or it might be that the BIOS mentioned it, but Linux didn't
deal with it correctly. For example, the Linux ACPI/PNP core mostly
ignores the resources mentioned in ACPI _CRS methods. We only look
at those in individual drivers. The PNP system.c driver reserves
PNP0C01/02 resources, but the BIOS could use other PNP IDs, and Linux
would ignore them (PNPACPI parses them, but doesn't reserve them in
any way).

The patch to add the quirk was added back in 2003, and I believe using ACPI in Linux (other than for HT sibling discovery) was an uncommon configuration back then. It's quite possible the resources were reserved in ACPI on such systems and the quirk was only needed for systems with ACPI disabled in either the BIOS or the kernel.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/