First of all i have a gigabyte x48-dq6 mobo, not asus.. but maybe the problem is also related to MTRR.
Right now i'm using open source ati driver, and my lspci -v output looks like this:
I don't know why there are only 256 MB, when the card has 512 (and should not be a bios problem, because from my windows system it detects the card with all its memory available).
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon HD 3870 (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Unknown device 022a
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at e5000000 (64-bit, non-prefetchable) [size=64K]
I/O ports at 9000 [size=256]
[virtual] Expansion ROM at e4000000 [disabled] [size=128K]
Capabilities: <access denied>
My /proc/mtrr file is:
Again a 256 MB range for the card.
reg00: base=0x00000000 ( 0MB), size=4096MB: write-back, count=1
reg01: base=0xe0000000 (3584MB), size= 512MB: uncachable, count=1
reg02: base=0xd0000000 (3328MB), size= 256MB: uncachable, count=1
reg03: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
reg04: base=0x200000000 (8192MB), size=1024MB: write-back, count=1
reg05: base=0x230000000 (8960MB), size= 256MB: uncachable, count=1
reg06: base=0xcff00000 (3327MB), size= 1MB: uncachable, count=1
As you can see there are 2 ranges with 4 GB, that cover all my 8 GB of RAM. I was thinking about extending directly the range for the card, but it may be a problem, because right next there's another extra 512 MB range, and I don't know what's it for.
How can I know the meaning of all remaining ranges? (all but 00, 02 and 03)
According to the post related previously the RAM range should be set as write-back, so a way here could be removing 01 and 02, because 00 should cover the hole 4 GB range, including those directions.
Anyway, how can a different memory caching strategy make a system freeze? IMHO it makes no sense, but probably there's an explanation for this (assuming it gets confirmed, of course).