Re: [Fwd: Re: [PATCH 0/5]PCI: x86 MMCONFIG]

From: Matthew Wilcox
Date: Thu Dec 20 2007 - 13:36:55 EST


On Thu, Dec 20, 2007 at 01:30:16PM -0500, Tony Camuso wrote:
> Matthew Wilcox wrote:
>
> >Bad deduction. What's happening is that the write to the BAR is causing
> >it to overlap the decode for mmconfig space. So the mmconfig write to
> >set the BAR back never gets through.
> >
> >I have a different idea to fix this problem. Instead of writing
> >0xffffffff, we could look for an unused bit of space in the E820 map and
> >write, say, 0xdfffffff to the low 32-bits of a BAR. Then it wouldn't
> >overlap, and we could find its size using MMCONFIG.
> >
> The BAR claims to be a 64-bit BAR.

And what's in the upper 32 bits by default? I'm guessing all zeroes.
We size 64-bit BARs by writing to each half individually. So I bet this
one still overlaps the MMCONFIG space at 0xf0000000.

> As far as I know, Windows has a blacklist that limits systems with these
> devices to legacy PCI config access.

I don't think that's true. If the people designing these machines had
noticed Windows failing to boot on them, they'd've fixed the BIOS to put
the MMCONFIG region elsewhere, not hacked Windows until it worked.

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
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/