Page 1 of 1


Posted: Thu Nov 30, 2006 2:29 pm
by DonPedro
I just realized that the tool "ctu" shows a diferent mtrr enumeration compared with what "k6speed" reports (mtrr0 becomes mtrr1 and vice versa).

a) is this of importance? can the addresses be exchanged arbitrarily (ctu allows)?
b) is there a "correct" enumeration?

also I found a "new" tool called k6msr (dated ca. 2000) that according to the screenshots and from what I have read looks and functions like ctu but works under w2k and xp too. I have not tested it yet. it is not available in k6plus' download section but if need be I would ask nohr to file it there. has anybody ever tried this tool and can share information on it?

Posted: Fri Dec 01, 2006 6:12 am
by KachiWachi
I reported this a long time ago (K6speed is reversed).

The MTRR's are interchangeable, so it doesn't matter which one you set for what.

By convention, MTRR0 is usually set to the VGA region (000A:0000 for 128 KB, 000B:FFFE, Write-Combined), while MTRR1 is set to the LFB (video card dependent).

Technically, MTRR0 is bits 0-31, and MTRR1 is bits 32-63, of MSR C0000085.

I've read about k6msr, but never tried it (I use WAMonitor personally).

Posted: Fri Dec 01, 2006 2:25 pm
by DonPedro
thank you for the response!

could you please epxlain the connex between LFB and MTRR in more detail? I can "find out" about the MTRR by looking for memory areas occupied by a graphic ccard. I do this by using the device manager / graphic card / ressources. BUT how can I find out about the LFB under win os? and is it something that can be changed arbitrarily by the user? is it fixed in hardware? does the graphic card's driver set it up? or what?

questions over questions, please help! :)

Posted: Sat Dec 02, 2006 6:59 am
by KachiWachi
You need to find out what resources the card is using for the LFB, then enter that information into the MTRR register of the CPU.

You can find this is in the Device Manager (usually the largest reserved memory area), or by using a program such as CTCM or PCI/PCI32 to find the "pre-fetchable" memory range.

Sometimes this still messes up, because you never know what the card manufacturer is actually doing in there...especially if the largest range is not "pre-fetchable".