[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#641176: [bug?] Radeon 9200SE, memory overlapping



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


Reply to: