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:
>
> 2GB
> 1GB
> 512MB
> 256MB
> 128MB
> 64MB
> ------ This is where you exhaust all six BIOS mtrrs.
> 32MB
> 16MB
> ------ 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
> mtrrs.
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
chance.
The meaning of that FIXME is that we are currently misplacing
a noticeable chunk of memory on Opteron machines with 4GB of RAM.
Eric
More information about the coreboot
mailing list