I thought upgrading from 4 to 8GB would be painless, as i am allready using 64bit GRML (debian).
But i was wrong!
System
- Board: Intel DG965WH
- Memory: 4x 2GB Kingmax DDR2 800
- OS: GRML, 2.6.23-grml64 (which is based on 2.6.23.16)
Installation and memtest went fine (4 runs without errors) and as soon as i boot into linux the computer speed went to a crowl.
The problem is a wrong memory mapping from newer Intel bioses:
reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
reg02: base=0xc0000000 (3072MB), size= 256MB: write-back, count=1
reg03: base=0xcf800000 (3320MB), size= 8MB: uncachable, count=1
reg04: base=0xcf700000 (3319MB), size= 1MB: uncachable, count=1
reg05: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
reg06: base=0x200000000 (8192MB), size= 512MB: write-back, count=1
reg07: base=0xd0000000 (3328MB), size= 256MB: write-combining, count=1 (bogus)
After some fiddling and searching i've found a reasonable solution:
- 64MB ram are lost because we would need one more mapping.
- Special bootparameter is needed
- Manual adjusting of /proc/mtrr
Quick and dirty
For 8GB ram append mem=8832M to your boot cmdline.
Adjust memory mapping as soon as possible in your boot process (should be done before udev starts, /etc/init.d/bootlocal.first if it's available on your system, don't forget to mount /proc if it's not allready mounted).
echo "disable=7" > /proc/mtrr
echo "base=0x220000000 size=0x8000000 type=write-back" > /proc/mtrr
This creates the missing 128MB mapping at the end. There would be another mapping with 64MB right after our new one, but that is disabled through our special mem= boot cmdline option.
The corrected mapping
reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
reg02: base=0xc0000000 (3072MB), size= 256MB: write-back, count=1
reg03: base=0xcf800000 (3320MB), size= 8MB: uncachable, count=1
reg04: base=0xcf700000 (3319MB), size= 1MB: uncachable, count=1
reg05: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
reg06: base=0x200000000 (8192MB), size= 512MB: write-back, count=1
reg07: base=0x220000000 (8704MB), size= 128MB: write-back, count=1
Con
After some time searching for a solution and a not really helpfull intel tech support these provided me with a now again useable system. Now with 8GB ram!