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, 06.02.2012, 12:14

I finally got full performance on my i5 @work! But it was not fully automatic process, one "bad" MTRR still caused overlaping and I must manually clear it via my CPUID tool. Also fixed MTRR prints now started to give a sense to me.

before:

VESA 3.0 NVIDIA [14336 kB]
LFB address: CF000000h
MTRR #0: base = 000000000h ( 0MB), mask = E00000000h (8192MB), WB, used
MTRR #1: base = 200000000h (8192MB), mask = FE0000000h ( 512MB), WB, used
MTRR #2: base = 220000000h (8704MB), mask = FF0000000h ( 256MB), WB, used
MTRR #3: base = 230000000h (8960MB), mask = FFC000000h ( 64MB), WB, used
MTRR #4: base = 0CC000000h (3264MB), mask = FFC000000h ( 64MB), UC, used
MTRR #5: base = 0D0000000h (3328MB), mask = FF0000000h ( 256MB), UC, used
MTRR #6: base = 0E0000000h (3584MB), mask = FE0000000h ( 512MB), UC, used
MTRR #7: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
Setting MTRR #7...
MTRR area CF000000-CFDFFFFFh was set to mode: WC

after:

VESA 3.0 NVIDIA [14336 kB]
LFB address: CF000000h
MTRR #0: base = 000000000h ( 0MB), mask = F80000000h (2048MB), WB, used - patched to not overlap LFB
MTRR #1: base = 200000000h (8192MB), mask = FE0000000h ( 512MB), WB, used
MTRR #2: base = 220000000h (8704MB), mask = FF0000000h ( 256MB), WB, used
MTRR #3: base = 230000000h (8960MB), mask = FFC000000h ( 64MB), WB, used
MTRR #4: base = 0CC000000h (3264MB), mask = FFC000000h ( 64MB), UC, used - but this bastard overlaps LFB too. It covers some MMIO that should be uncached but I really don't know what area is really used. If I can shrink it to 32MB. This is BIOS specific issue that will complicate MTRR setting routine. I would add checking of all MTRRs if not overlaps...
MTRR #5: base = 0D0000000h (3328MB), mask = FF0000000h ( 256MB), UC, used
MTRR #6: base = 0E0000000h (3584MB), mask = FE0000000h ( 512MB), UC, used
MTRR #7: base = 0CF000000h (3312MB), mask = FFF800000h ( 8MB), WC, used - my LFB setting, now with correct continuous mask
Setting MTRR #7...
MTRR area CF000000-CFDFFFFFh was set to mode: WC

Now I got 2054 MB/s wow. As it grows to complexity it more and more suggests to use PAT. But I'd like to see your logs too to getting more understand how BIOS set MTRRs...

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

 

Complete thread:

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