ebiederman@lnxi.com (Eric W. Biederman) writes:
Li-Ta Lo ollie@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
On Tue, 2004-02-10 at 20:27, Eric W. Biederman wrote:
ebiederman@lnxi.com (Eric W. Biederman) writes:
Li-Ta Lo ollie@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.
But you also used it for AGP aperture in misc_control.c. Is there any reason to do this ? Or the AGP aperture can actually be anything else.
Ollie
Li-Ta Lo ollie@lanl.gov writes:
But you also used it for AGP aperture in misc_control.c. Is there any reason to do this ? Or the AGP aperture can actually be anything else.
As I recall the AGP aperature must be at least 64M if it exists. You can read the Opteron docs to confirm this.
Eric
On Wed, 2004-02-11 at 18:23, Eric W. Biederman wrote:
Li-Ta Lo ollie@lanl.gov writes:
But you also used it for AGP aperture in misc_control.c. Is there any reason to do this ? Or the AGP aperture can actually be anything else.
As I recall the AGP aperature must be at least 64M if it exists. You can read the Opteron docs to confirm this.
Eric
No, it can be 32MBytes too. So I am confused, are you using the same #define for two different things ?
Ollie