Problems with AMD64 and 8 GB RAM?

Scott Long scottl at
Wed Mar 30 15:03:20 PST 2005

Greg 'groggy' Lehey wrote:
> On Wednesday, 30 March 2005 at 14:35:46 -0800, Steve Kargl wrote:
>>On Thu, Mar 31, 2005 at 07:54:39AM +0930, Greg 'groggy' Lehey wrote:
>>>None of these problems occur when I use 4 GB memory.  About the only
>>>strangeness, which seems to come from the BIOS, is that it recognizes
>>>only 3.5 GB.  If I put all DIMMS in, it recognizes the full 8 GB
>>>I realize that this isn't enough to diagnose the problem.  The reason
>>>for this message now is to ask:
>>>1.  Has anybody else seen this problem?
>>>2.  Has anybody else used this hardware configuration and *not* seen
>>>    this problem?
>>>3.  Where should I look next?
>>Have you run sysutils/memtest86 with the 8 GB?
> Heh.  Difficult when the system doesn't run.
>>I had 4 bad out of 12 tested where the DIMMs were Crucial PC2700 2GB
>>Reg. ECC DIMMs.
> OK, this makes sense.  It might also explain why the 4 GB
> configuration only recognizes 3.5 GB.

No, and I'm going to make this an FAQ and post it in a very obvious
place, since 4+ GB is so easy to get and people don't seem to understand
the PC architecture very well.

Almost all systems put the PCI Memory Mapped IO window into the 3.75-4GB
region of the physical memory map.  The registers for the APICs and
other system resources are also typically in this region.  Now with
PCI-Express, the Memory Mapped PCI config registers are typically being
mapped in the 3.5-3.75GB range.  The memory controllers, host bridges,
north-bridges, and/or whatever else glues the memory to the bus to the
CPU decode these addresses into PCI cycles, not RAM cycles.  Some
systems are smart and re-map the RAM that is hidden by these holes into
a region >4GB.  Some systems are dumb, though, and just deny you access
to the RAM that is covered up.  It's very much like the old days of the
XT/AT architecture when you had 1MB of RAM but everything above 640k was
hidden by the VGA framebuffer, ISA option ROMs, and system BIOS, but
some systems where smart enough to relocate the hidden RAM.

So, your missing .5GB is almost certainly not due to defective RAM, it's
just due to The Way Things Are.  It's a lot harder for Opteron systems
to be smart about this than Xeon systems since all of the remapping
magic can happen in the hostbridge on the Xeon, while the Opertons need
to have their built-in memory controllers programmed specially for it.


More information about the freebsd-stable mailing list