On Sat, 2011-09-24 at 12:30 +0300, Tomi Leppänen wrote: > With Radeon 9200SE I'm not able to use X, apparently because its memory > can't be used. > > With any kernel (tried 2.6.32, 3.0.0, 3.1-rc6) I will get dmesg lines > about overlapping. > [ 0.073187] pnp 00:00: disabling [mem 0x000cd000-0x000cffff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > [ 0.073205] pnp 00:00: disabling [mem 0x000f0000-0x000f7fff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > [ 0.073223] pnp 00:00: disabling [mem 0x000f8000-0x000fbfff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > [ 0.073241] pnp 00:00: disabling [mem 0x000fc000-0x000fffff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > [ 0.073259] pnp 00:00: disabling [mem 0x00000000-0x0009ffff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > [ 0.073277] pnp 00:00: disabling [mem 0x00100000-0x1ffeffff] because > it overlaps 0000:01:00.0 BAR 0 [mem 0x00000000-0x0fffffff pref] > This happens always and then I can't use X. It will tell me that no > screens was found. System works fine with ATI Rage 128VR (32MB, PCI). > With 2.6.32 I get also: [drm] Detected VRAM RAM=0M, BAR=0M > and with 3.0.0: [drm] Detected VRAM RAM=128M, BAR=0M > 3.1-rc6 doesn't seem to have anything about this. Otherwise they seem to > be correct. > > System I used has Gigabyte GA-6BXE motherboard (rev 2.1, Intel 440BX > chipset) and VIA C3 (1 GHz, Nehemiah-core) in addition to Radeon 9200SE > (R92LE, 128MB). BIOS is the latest available from Gigabyte. OS is Debian > Wheezy with Experimental kernel (for testing). > > I have already reported this to Debian as bug #641176. > > Logs and stuff with 3.1-rc6 from Debian Experimental: > dmesg: http://pastebin.com/66k1syCf > lspci -vvxxx: http://pastebin.com/eqAQcCXy [...] The graphics card apparently requires 256 MB of address space (prefetchable), not 128 MB. The BIOS programs the bridge to its slot to cover this much address space: [ 0.065815] pci 0000:00:01.0: PCI bridge to [bus 01-01] [ 0.065827] pci 0000:00:01.0: bridge window [io 0x9000-0x9fff] [ 0.065839] pci 0000:00:01.0: bridge window [mem 0xe8000000-0xe9ffffff] [ 0.065853] pci 0000:00:01.0: bridge window [mem 0xd8000000-0xe7ffffff pref] But PCI devices require their address assignments to be aligned to multiples of their size, and that bridge window is only aligned to a multiple of 128 MB. So when the kernel looks at the graphics card, it finds that the address assignment doesn't match the bridge window and cannot be used: [ 0.069846] pci 0000:01:00.0: no compatible bridge window for [mem 0xd0000000-0xdfffffff pref] ... [ 0.123099] pci 0000:01:00.0: BAR 0: can't assign mem pref (size 0x10000000) [ 0.123114] pci 0000:01:00.0: BAR 0: trying firmware assignment [mem 0xd0000000-0xdfffffff pref] [ 0.123132] pci 0000:01:00.0: BAR 0: [mem 0xd0000000-0xdfffffff pref] conflicts with PCI Bus 0000:01 [mem 0xd8000000-0xe7ffffff pref] This seems like a BIOS bug to me - it has programmed the bridge and the graphics card inconsistently. Ben. -- Ben Hutchings If you seem to know what you are doing, you'll be given more to do.
Attachment:
signature.asc
Description: This is a digitally signed message part