lkml.org 
[lkml]   [2007]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Fwd: Re: [PATCH 0/5]PCI: x86 MMCONFIG]
Matthew Wilcox wrote:

> Here's how BARs work ... when you write 0xffffffff to the BAR, it
> ignores all the set bits that are less than the size of the BAR. So,
> assuming this is a 256MB BAR (like my G33 is), what ends up written to
> this BAR is 0xf0000000. Now, because this is graphics, apparently it's
> special and embedded in the chipset, even though it looks like it's a
> PCI device. So it actually gets priority over MMCONFIG which is also
> mapped to 0xf0000000.
>
> For your case of a 64-bit BAR, you could write 0xffffffff to the high
> 32-bits first, then write to the low 32-bits, then reset the low, then
> high bits, and you'd avoid the problem. But the G33 has a 32-bit BAR
> with the same problem, so it won't work for that case.
>
> BARs that are behind bridges don't have this problem (they can't decode
> memory accesses that aren't forwarded to them). BARs on devices which
> have memory IO disabled also don't have theis problem, but disabling
> devices has its problems (as does probing BARs for active devices anyway
> ...).
>
Thanks for the detailed explanation.

> The question is how large can 32-bit BARs get. As we've seen, 256MB
> exist, and are causing pain. I can't imagine any PCI device
> manufacturer thinks they can allocate 2GB of the low space, but we could
> potentially mis-size a large BAR by not using 0xffffffff.
>

Point well taken. Graphics devices understandably consume a lot of memory
space, and are likely to consume even more in the not-too-distant future.

> I'm really not clear on the purpose of your patchset. Was it all to
> address this one problem?
>

No. My patch-set does not address this problem at all, but rather the
larger problem of having mmconfig-unfriendly devices on buses that are
out of reach of the unreachable_devices() routine and bitmap.

This problem is one I encountered during my testing and mentioned in
my preamble as not being fixable by my patch-set.




\
 
 \ /
  Last update: 2007-12-20 21:17    [W:0.044 / U:1.692 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site