Only 3.2GB of 4GB RAM detected on 64-bit Debian

PCI also uses some of the address space. Both PCI cards and PCI devices build into the motherboard (such as the chipset).

Usually this meant that out of 4GB only 3¼ to 3½ GB was available, even if you did not use a modern GPU with a lot of onboard RAM.


You need to turn Memory Remapping ON in the BIOS. Otherwise, it won't remap memory above the 4GB boundary and some memory will be covered up by hardware mappings.


Your missing RAM is used by the firmware:

# ./smem -R 4G -w
Area                           Used      Cache   Noncache
firmware/hardware            843592          0     843592
kernel image                      0          0          0
kernel dynamic memory        181116     134616      46500
userspace memory             287784      19736     268048
free memory                 2881812    2881812          0

Summing up:

echo $((181116 + 287784 + 2881812 + 843592))
4194304

So you see, it sums up to 4GB. And here's the ~ 800M you report missing:

firmware/hardware            843592          0     843592