Ubuntu – Why is more than 3 GB of RAM not recognised when using AMD64

64-bitArchitectureram

Why does Ubuntu 10.10 amd64 (Maverick Meerkat) not address more of 3 GB RAM?

My machine is a Toshiba P205-S6287 Intel Centrino Duo 64 bits processor and 4 GB RAM at 667 MHz.

According to the detailed specifications, the notebook runs a 64-bit Core 2 Duo T5300 processor and has a 945GM Express chipset.

Best Answer

This is due to the Mobile Intel 945GM Express in your laptop.

I own a Thinkpad T60, which uses the same chipset. It was one of the first northbridges from intel for the Core2Duo 64-bit CPUs. They failed in designing it.

The chipset can only theoretically address 4GB of RAM, yet also has to address other hardware (I/O memory). It reserves the upper 1GB memory range for that. The 64bit logical memory address support in the Linux kernel doesn't help, because the mainboard and northbridge only provide for a 32bit physical address bus to the CPU. And there is no workaround.
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad/Thinkpad-s-and-N100-s-w-945PM-chipset-can-t-address-gt-3G-Ram/m-p/2730

There is a theoretical option in devising memory bank switching. Yet the kernel does not support it, nor would it make sense on the x86 architecture. The i810 memory controller of the 945GM is probably too lazy for that to make sense.

Related Question