Re: [PATCH] update MMConfig patches w/915 support

From: Olivier Galibert
Date: Tue Jan 16 2007 - 14:28:25 EST


On Mon, Jan 08, 2007 at 01:27:15PM -0800, Jesse Barnes wrote:
> On Monday, January 8, 2007 12:45 pm, Olivier Galibert wrote:
> > On Sun, Jan 07, 2007 at 11:44:16AM -0800, Jesse Barnes wrote:
> > > For reference, here's the probe routine I tried for 965, probably
> > > something dumb wrong with it that I'm not seeing atm.
> >
> > It shouldn't have mattered in your case, but base_address is limited
> > to 32bits. There is a 32 bits reserved zone after it so hope is not
> > to be lost, but in any case the current code can't handle over-4G
> > base addresses at that point.
> >
> > Does the bios or your '965 give a correct acpi mmconfig entry?
>
> I should have captured the debug printk I put in while testing. I think
> the base address specified in the register was 0xf0000000, with a size
> of 256M marked enabled. Arjan points out that this likely conflicts
> with other BIOS mappings, which is probably why I saw my machine hang
> when I tried to use it.
>
> As for ACPI, I assume you mean the MCFG table? I haven't looked at it,
> but the stock kernel complains about a lack of the MCFG range in the
> e820 table and subsequently disables mmconfig.
>
> But won't the bridge register value control what actually gets decoded?
> If so, it sounds like this BIOS is buggy wrt mmconfig mapping in
> general; good thing I'm not using any PCIe devices I guess...

Yeah. I've checked the docs, I think I know what's going on. On one
hand, if the chipset is configured to have the range somewhere, it is
decoded before anything external to the chipset, be it ram or mmaped
i/o. So the information you get from the chipset should not be able
to conflict with anything by definition, it's the anything that
wouldn't be visible.

But in your case of a f0000000-ffffffff mapping, something else
interesting is going on: it's conflicting with other internal
registers of the chipset, which, being fixed address, probably have
priority. So you probably have to either reduce the range so that the
chipset registers aren't touched, or drop mmconfig if the address is
f0000000.

Technically, we can have the exact same problem with the other
chipsets. BIOSen suck.

OG.

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