Large mmio resources and 4G+ of RAM...

Eric W. Biederman ebiederman at
Tue Jun 1 12:16:00 CEST 2004

YhLu <YhLu at> writes:

> Eric,
> There is something called Memory lifting or memory remapping for Opteron.
> For example if 2G for one Opteron and two ways system.
> Then the CPU 0 will use [0,2G), and CPU 1 will use [4G, 6G).
> If the RAM for CPU is above 4G, then We must lost 1/2G for MMIO range, the
> reason is Opteron only has two reg for RAM LOW and HIGH limit. And there is
> no other regs to record the memory hole. But it seems Intel CPU has more
> regs to remember the memory hole.

Memory lifting is nice.  And in certain specific instances it is useful.
On the Opteron it is possible to move either Memory controllers, or
DIMMS.  At 4G per memory controller it does not work to move memory
controllers, at paired singled sided 2G DIMMS you can't move DIMMS.

So the other solution is to move the large MMIO resources.  Moving the
MMIO resources has the advantage that
A) It is simple.
B) It works in all circumstances (baring issues with bridges)
C) Is needed if you have many large MMIO regions.
D) It works on all CPUs.
E) A 32bit kernel could support it with highmem type tricks...

So I think I would rather pursue moving the large MMIO resources
first.  The limited utility of memory lifting doesn't inspire me
to worry about it.  

Although the few circumstances the Opteron memory lifting applies to
may be the only cases people really care about loosing that much


More information about the coreboot mailing list