64MB MMIO Hole ?
Eric W. Biederman
ebiederman at lnxi.com
Tue Feb 10 22:08:00 CET 2004
ebiederman at lnxi.com (Eric W. Biederman) writes:
> Li-Ta Lo <ollie at lanl.gov> writes:
> > Eric,
> > You put a preprocessor warnning for 64MB MMIO Hole in
> > the amdk8/northbridge.c.
> > #warning "FIXME improve mtrr.c so we don't use up all of the mtrrs with
> > a 64M MMIO hole"
> > What exactly is it ? Is that for the AGP aperture (you call it
> > IOMMU_APERTURE) ?
> No, although the IOMMU_APERATURE plays a role there. But this
> was implemented before I implemented the IOMMU_APERATURE code
> in misc_control.c
The IOMMU_APERATURE is just another large I/O region as far
as that code is concerned.
> Consider a machine with 4GB of RAM. Not all of the RAM can
> be used as there are PCI I/O devices at the end of memory.
> With just positive mtrrs you get:
> ------ This is where you exhaust all six BIOS mtrrs.
> ------ All 8 mtrrs are exhausted.
> So we need to find a way to assign MTRRS. But still be able
> to assign a write-combining area to the video frame buffer.
> The linux mtrr support does not know how to cope with overlapping
I forgot to mention the very elegant solution to this problem.
At some simple power of 2 the Opteron memory is hoisted above
4G. The overlapping mtrrs do not need to be implemented. This
is something I would like to play with but I have not yet had the
The meaning of that FIXME is that we are currently misplacing
a noticeable chunk of memory on Opteron machines with 4GB of RAM.
More information about the coreboot