Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

MTRR mystery (Announce)

posted by RayeR Homepage, CZ, 03.02.2012, 19:19
(edited by RayeR on 03.02.2012, 23:25)

Thanks for debug reports. Please remove my email address from your post. I can see that your C2D machine has more intelligent BIOS (What mobo? mine is gigabyte GA-P31...). It mapped user RAM area to 3 smaller blocks set to write-back that doesnt't spread entire address space but ending probably at CDFFFFFFh. So when I add new MTRR for LFB area it doesn't conflict (overlap) with any other area and it works as expected. Please send logs with remapping enabled too, I'd like to compare them. I don't have such option in BIOS. AFAIK remapping use PAE (36bit phys addr) some way...

But your i7 system really confusing me:
MTRR #0 = 000000000h, 000000000h, 06h, used
MTRR #1 = 0E0000000h, 0E0000000h, 00h, used
MTRR #2 = 0DE000000h, 0FE000000h, 00h, used
MTRR #3 = 0DD800000h, 0FF800000h, 00h, used
MTRR #4 = 000000000h, 000000000h, 06h, used - WTF? why duplicate MTRR0?
MTRR #5 = 000000000h, 000000000h, 06h, used - WTF? why duplicate MTRR0?
MTRR #6 = 000000000h, 0E0000000h, 06h, used - WTF? why duplicate range of MTRR1 with different caching?

As I think that less caching should have higher priority, so LFB is still uncached.

Looking at MTRRs after:
MTRR #0 = 000000000h, 080000000h, 06h, used - well my hardcoded setting
MTRR #1 = 0E0000000h, 0FE010000h, 00h, used - WTF? why still uncached? Didn't you made typo error and set "UC" instead "WC"? Please try again. I cannot imagine what error could cause that base and mask was set but mode not.
MTRR #2 = 0DE000000h, 0FE000000h, 00h, used
MTRR #3 = 0DD800000h, 0FF800000h, 00h, used
MTRR #4 = 000000000h, 000000000h, 06h, used - still overlaping entire 4G
MTRR #5 = 000000000h, 000000000h, 06h, used - still overlaping entire 4G
MTRR #6 = 000000000h, 0E0000000h, 06h, used

Looking at MTRRs after FastVid:
MTRR #0 = 000000000h, 080000000h, 06h, used - well my hardcoded setting
MTRR #1 = 0E0000000h, 0FE010000h, 01h, used - WTF? why there's 1 now?
MTRR #2 = 0DE000000h, 0FE000000h, 00h, used
MTRR #3 = 0DD800000h, 0FF800000h, 00h, used
MTRR #4 = 000000000h, 000000000h, 06h, used - still overlaping entire 4G
MTRR #5 = 000000000h, 000000000h, 06h, used - still overlaping entire 4G
MTRR #6 = 000000000h, 0E0000000h, 06h, used
MTRR #7 = 0E0000000h, 0FE100000h, 01h, used - new LFB area setting by fastvid

I can see there's a difference how fastvid calculated the mask: FE100000 vs FE010000. LFB size is for some strange reason not aligned to 32MB but 32MB-64kB. This may cause problem, maybe my mask calculation is wrong. If I calculate well, fastvid covers only 31744kB of 32704kB - not entire LFB area. But available VESA modes doesn't need 32MB at all.
Anyway because of MTRR 4 and 5 is still set I wonder that this setting has any effect. Really confused... :surprised:

---
DOS gives me freedom to unlimited HW access.

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 374 users online (0 registered, 374 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum