MTRR mystery (Announce)
> When I come at home I'll try pull one DIMM out.
Yes, I was right! I pulled 1 DIMM out and got back my VESA hyper speed. But why? I did some comparison. First here's output of Japhet's memstat.
for 2GB:
Int 15h, ah=88h, extended memory: 0 kB
Int 15h, ax=E801h:
ext. memory below 16 MB: 15360 (0x3c00) KB
ext. memory above 16 MB: 32494 64 KB blocks = 2030 MB [1000000-7fedffff]
Int 15h, eax=E820h:
addr 000000000, size 00009f800, type 1 (available)
addr 0000f0000, size 000010000, type 2 (reserved)
addr 0fec00000, size 001400000, type 2 (reserved)
addr 0f0000000, size 004000000, type 2 (reserved)
addr 00009f800, size 000000800, type 2 (reserved)
addr 07fef0000, size 000010000, type 2 (reserved)
addr 000100000, size 07fde0000, type 1 (available)
addr 07fee3000, size 00000d000, type 3 (ACPI)
for 4GB:
Int 15h, ah=88h, extended memory: 0 kB
Int 15h, ax=E801h:
ext. memory below 16 MB: 15360 (0x3c00) KB
ext. memory above 16 MB: 57070 64 KB blocks = 3566 MB [1000000-dfedffff]
Int 15h, eax=E820h:
addr 000000000, size 00009f800, type 1 (available)
addr 0000f0000, size 000010000, type 2 (reserved)
addr 0fec00000, size 001400000, type 2 (reserved)
addr 0f0000000, size 004000000, type 2 (reserved)
addr 00009f800, size 000000800, type 2 (reserved)
addr 0dfef0000, size 000010000, type 2 (reserved)
addr 000100000, size 0dfde0000, type 1 (available)
addr 0dfee3000, size 00000d000, type 3 (ACPI)
addr 0dfee0000, size 000003000, type 4 (ACPI)
Then I checked how MTRRs are set with 2GB.
before:
VESA 3.0 NVIDIA [262144 kB]
LFB address: E0000000h
MTRR #0 = 000000000, 06; 080000000, 1
MTRR #1 = 07FF00000, 00; 0FFF00000, 1
MTRR #2 = 000000000, 00; 000000000, 0
MTRR #3 = 000000000, 00; 000000000, 0
MTRR #4 = 000000000, 00; 000000000, 0
MTRR #5 = 000000000, 00; 000000000, 0
MTRR #6 = 000000000, 00; 000000000, 0
MTRR #7 = 000000000, 00; 000000000, 0
MTRR area E0000000-EFFFFFFFh was set to mode: WC
after:
VESA 3.0 NVIDIA [262144 kB]
LFB address: E0000000h
MTRR #0 = 000000000, 06; 080000000, 1
MTRR #1 = 07FF00000, 00; 0FFF00000, 1
MTRR #2 = 0E0000000, 01; 0F0000000, 1
MTRR area E0000000-EFFFFFFFh was set to mode: WC
And now with 4GB.
before:
VESA 3.0 NVIDIA [262144 kB]
LFB address: E0000000h
MTRR #0 = 000000000, 06; 000000000, used
MTRR #1 = 0E0000000, 00; 0E0000000, used
MTRR #2 = 000000000, 06; 0E0000000, used
MTRR #3 = 0DFF00000, 00; 0FFF00000, used
MTRR #4 = 000000000, 00; 000000000, unused
MTRR #5 = 000000000, 00; 000000000, unused
MTRR #6 = 000000000, 00; 000000000, unused
MTRR #7 = 000000000, 00; 000000000, unused
MTRR area E0000000-EFFFFFFFh was set to mode: WC
after:
VESA 3.0 NVIDIA [262144 kB]
LFB address: E0000000h
MTRR #0 = 000000000, 06; 000000000, used
MTRR #1 = 0E0000000, 01; 0F0000000, used
MTRR #2 = 000000000, 06; 0E0000000, used
MTRR #3 = 0DFF00000, 00; 0FFF00000, used
MTRR #4 = 000000000, 00; 000000000, unused
MTRR #5 = 000000000, 00; 000000000, unused
MTRR #6 = 000000000, 00; 000000000, unused
MTRR #7 = 000000000, 00; 000000000, unused
MTRR area E0000000-EFFFFFFFh was set to mode: WC
I also tested Windows NT 4.0 with VBEMP driver and they was not affected (run fast as usual). So I dumped MTRRs with my CPUID utility and hardcoded to MTRRLFBE:
This is how WinNT 4.0 + VBEMP set MTRRs:
MTRR RAW values
MSR [00000200h] = 0000000000000006h MSR [00000201h] = 0000000F80000800h
MSR [00000202h] = 0000000080000006h MSR [00000203h] = 0000000FC0000800h
MSR [00000204h] = 00000000C0000006h MSR [00000205h] = 0000000FE0000800h
MSR [00000206h] = 00000000DFF00000h MSR [00000207h] = 0000000FFFF00800h
MSR [00000208h] = 00000000E0000001h MSR [00000209h] = 0000000FF0000800h
MSR [0000020Ah] = 00000000F0000006h MSR [0000020Bh] = 0000000FF0000800h
MSR [0000020Ch] = 0000000100000006h MSR [0000020Dh] = 0000000FE0000800h
MSR [0000020Eh] = 0000000000000000h MSR [0000020Fh] = 0000000000000000h
MTRR parsed values
VESA 3.0 NVIDIA [262144 kB]
LFB address: E0000000h
MTRR #0 = 000000000, 06; 080000000, used
MTRR #1 = 080000000, 06; 0C0000000, used
MTRR #2 = 0C0000000, 06; 0E0000000, used
MTRR #3 = 0DFF00000, 00; 0FFF00000, used
MTRR #4 = 0E0000000, 01; 0F0000000, used
MTRR #5 = 0F0000000, 06; 0F0000000, used
MTRR #6 = 000000000, 06; 0E0000000, used
MTRR #7 = 000000000, 00; 000000000, unused
MTRR area E0000000-EFFFFFFFh was set to mode: WC
And gues what? I got fast LFB even in pure DOS. So as you can see my tool set the MTRR for LFB properly (MTRR #4 = 0E0000000, 01; 0F0000000, used). But it seems to interfere with other MTRRs that was set by silly BIOS. I tried to clear them out 1 by 1 but didn't helped. Do you see the problem? Please help.
---
DOS gives me freedom to unlimited HW access.
Complete thread:
- New DJGPP Mplayer build from SVN - Khusraw, 23.01.2012, 18:42 (Announce)
- New DJGPP Mplayer build from SVN - ron, 23.01.2012, 21:21
- New DJGPP Mplayer build from SVN - ron, 23.01.2012, 22:39
- New DJGPP Mplayer build from SVN - glennmcc, 24.01.2012, 00:24
- New DJGPP Mplayer build from SVN - ron, 24.01.2012, 00:46
- New DJGPP Mplayer build from SVN - Khusraw, 24.01.2012, 09:24
- New DJGPP Mplayer build from SVN - Khusraw, 24.01.2012, 09:22
- New DJGPP Mplayer build from SVN - glennmcc, 24.01.2012, 00:24
- New DJGPP Mplayer build from SVN - ron, 23.01.2012, 22:39
- New DJGPP Mplayer build from SVN - Doug, 24.01.2012, 04:58
- New DJGPP Mplayer build from SVN - RayeR, 24.01.2012, 10:26
- Mplayer with fixed ao wss problems - Khusraw, 24.01.2012, 13:54
- Mplayer with fixed ao wss problems - ron, 24.01.2012, 22:41
- Mplayer with fixed ao wss problems - ron, 25.01.2012, 03:51
- Mplayer with fixed ao wss problems - ron, 25.01.2012, 21:49
- Mplayer with fixed ao wss problems - ron, 25.01.2012, 03:51
- Mplayer with fixed ao wss problems - glennmcc, 25.01.2012, 01:34
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 09:03
- Mplayer with fixed ao wss problems - glennmcc, 25.01.2012, 17:32
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 21:40
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 02:19
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 03:03
- Mplayer with fixed ao wss problems - RayeR, 26.01.2012, 10:31
- Mplayer with fixed ao wss problems - Khusraw, 26.01.2012, 10:43
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 23:32
- Mplayer with fixed ao wss problems - Zyzzle, 26.01.2012, 23:52
- Mplayer with fixed ao wss problems - RayeR, 27.01.2012, 03:06
- Mplayer with fixed ao wss problems - Zyzzle, 26.01.2012, 23:52
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 23:32
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 03:03
- Mplayer with fixed ao wss problems - glennmcc, 26.01.2012, 02:19
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 21:40
- Mplayer with fixed ao wss problems - glennmcc, 25.01.2012, 17:32
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 09:03
- Mplayer with fixed ao wss problems - RayeR, 25.01.2012, 03:44
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 09:05
- Mplayer with fixed ao wss problems - Doug, 25.01.2012, 05:59
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 09:07
- Mplayer with fixed ao wss problems - Doug, 25.01.2012, 17:48
- Mplayer with fixed ao wss problems - RayeR, 25.01.2012, 16:05
- Mplayer with fixed ao wss problems - Doug, 25.01.2012, 17:45
- Mplayer with fixed ao wss problems - RayeR, 25.01.2012, 17:53
- Mplayer with fixed ao wss problems - Doug, 25.01.2012, 17:45
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 17:12
- Mplayer with fixed ao wss problems - Doug, 25.01.2012, 17:54
- Mplayer with fixed ao wss problems - my "kludgy" solution - Doug, 25.01.2012, 18:06
- Mplayer with fixed ao wss problems - Khusraw, 25.01.2012, 09:07
- Mplayer with fixed ao wss problems - ron, 24.01.2012, 22:41
- New DJGPP Mplayer build from SVN - Zyzzle, 26.01.2012, 04:52
- New DJGPP Mplayer build from SVN - Khusraw, 26.01.2012, 09:29
- New DJGPP Mplayer build from SVN - Zyzzle, 26.01.2012, 22:13
- New DJGPP Mplayer build from SVN - Khusraw, 26.01.2012, 23:14
- New DJGPP Mplayer build from SVN - RayeR, 27.01.2012, 03:12
- New DJGPP Mplayer build from SVN - Khusraw, 27.01.2012, 10:25
- New DJGPP Mplayer build from SVN - Zyzzle, 28.01.2012, 01:54
- New DJGPP Mplayer build from SVN - Khusraw, 28.01.2012, 09:23
- New DJGPP Mplayer build from SVN - Zyzzle, 28.01.2012, 13:51
- New DJGPP Mplayer build from SVN - RayeR, 28.01.2012, 14:46
- New DJGPP Mplayer build from SVN - Khusraw, 28.01.2012, 14:47
- New DJGPP Mplayer build from SVN - Zyzzle, 29.01.2012, 04:40
- MTRR mystery - RayeR, 30.01.2012, 15:03
- MTRR mystery - RayeR, 31.01.2012, 02:38
- MTRR mystery - RayeR, 31.01.2012, 02:39
- MTRR mystery - roytam, 31.01.2012, 05:38
- MTRR mystery - RayeR, 31.01.2012, 13:02
- MTRR mystery - RayeR, 02.02.2012, 04:13
- MTRR mystery - Zyzzle, 02.02.2012, 05:46
- MTRR mystery - RayeR, 02.02.2012, 10:51
- MTRR mystery - RayeR, 02.02.2012, 20:44
- MTRR mystery - Zyzzle, 03.02.2012, 08:20
- MTRR mystery - RayeR, 03.02.2012, 19:19
- MTRR mystery - Zyzzle, 04.02.2012, 07:08
- MTRR mystery - RayeR, 05.02.2012, 02:20
- MTRR mystery - RayeR, 06.02.2012, 02:23
- MTRR mystery - RayeR, 06.02.2012, 12:14
- MTRR mystery - Zyzzle, 07.02.2012, 08:04
- MTRR mystery - RayeR, 07.02.2012, 16:53
- MTRR mystery - Laaca, 11.02.2012, 08:49
- MTRR mystery - RayeR, 11.02.2012, 13:22
- MTRR mystery - Zyzzle, 12.02.2012, 08:11
- MTRR mystery - RayeR, 11.02.2012, 13:22
- MTRR mystery - Laaca, 11.02.2012, 08:49
- MTRR mystery - RayeR, 07.02.2012, 16:53
- MTRR mystery - Zyzzle, 07.02.2012, 08:04
- MTRR mystery - RayeR, 06.02.2012, 12:14
- MTRR mystery - RayeR, 06.02.2012, 02:23
- MTRR mystery - RayeR, 05.02.2012, 02:20
- MTRR mystery - Zyzzle, 04.02.2012, 07:08
- MTRR mystery - RayeR, 03.02.2012, 19:19
- MTRR mystery - Zyzzle, 03.02.2012, 08:20
- MTRR mystery - RayeR, 02.02.2012, 20:44
- MTRR mystery - RayeR, 02.02.2012, 10:51
- MTRR mystery - Zyzzle, 02.02.2012, 05:46
- MTRR mystery - RayeR, 31.01.2012, 02:38
- MTRR mystery - RayeR, 30.01.2012, 15:03
- New DJGPP Mplayer build from SVN - Zyzzle, 29.01.2012, 04:40
- New DJGPP Mplayer build from SVN - Zyzzle, 28.01.2012, 13:51
- New DJGPP Mplayer build from SVN - Khusraw, 28.01.2012, 09:23
- New DJGPP Mplayer build from SVN - Zyzzle, 28.01.2012, 02:09
- New DJGPP Mplayer build from SVN - Khusraw, 28.01.2012, 09:03
- New DJGPP Mplayer build from SVN - RayeR, 28.01.2012, 14:56
- New DJGPP Mplayer build from SVN - Zyzzle, 28.01.2012, 01:54
- New DJGPP Mplayer build from SVN - Zyzzle, 26.01.2012, 22:13
- New DJGPP Mplayer build from SVN - ron, 26.01.2012, 11:52
- New DJGPP Mplayer build from SVN - Khusraw, 26.01.2012, 09:29
- New DJGPP Mplayer build from SVN - Deniska, 27.01.2012, 12:47
- New DJGPP Mplayer build from SVN - Khusraw, 27.01.2012, 14:41
- New DJGPP Mplayer build from SVN - Deniska, 28.01.2012, 06:04
- New DJGPP Mplayer build from SVN - Khusraw, 28.01.2012, 14:34
- New DJGPP Mplayer build from SVN - Khusraw, 29.01.2012, 12:09
- New DJGPP Mplayer build from SVN - Deniska, 28.01.2012, 06:04
- New DJGPP Mplayer build from SVN - Khusraw, 27.01.2012, 14:41
- New DJGPP Mplayer build from SVN - Laaca, 27.01.2012, 15:21
- New DJGPP Mplayer build from SVN - Khusraw, 27.01.2012, 15:25
- New DJGPP Mplayer build from SVN - Laaca, 28.01.2012, 21:32
- New DJGPP Mplayer build from SVN - Khusraw, 29.01.2012, 09:46
- New DJGPP Mplayer build from SVN - Laaca, 28.01.2012, 21:32
- New DJGPP Mplayer build from SVN - Khusraw, 27.01.2012, 15:25
- New DJGPP Mplayer build from SVN - dalmudlee, 01.02.2012, 16:28
- New DJGPP Mplayer build from SVN - Khusraw, 01.02.2012, 17:09
- New DJGPP Mplayer build from SVN - dalmudlee, 01.02.2012, 18:33
- New DJGPP Mplayer build from SVN - Khusraw, 01.02.2012, 18:40
- New DJGPP Mplayer build from SVN - dalmudlee, 01.02.2012, 18:33
- New DJGPP Mplayer build from SVN - Khusraw, 01.02.2012, 17:09
- Final Mplayer DJGPP build for this "season" - Khusraw, 04.02.2012, 23:08
- Final Mplayer DJGPP build for this "season" - Zyzzle, 06.02.2012, 06:39
- Final Mplayer DJGPP build for this "season" - Khusraw, 06.02.2012, 09:54
- Final Mplayer DJGPP build for this "season" - Zyzzle, 06.02.2012, 06:39
- Yet another small update - Khusraw, 08.02.2012, 17:15
- Yet another small update - glennmcc, 11.02.2012, 00:53
- Yet another small update - ron, 11.02.2012, 07:56
- Yet another small update | OMP | works mostly - DOS386, 24.02.2012, 01:52
- Yet another small update | OMP | works mostly - Khusraw, 24.02.2012, 13:05
- Yet another small update | OMP | works mostly - DOS386, 05.03.2012, 07:47
- Yet another small update | OMP | works mostly - Khusraw, 05.03.2012, 09:02
- OMP | works mostly | OGG Theora+Vorbis issues - DOS386, 11.03.2012, 15:57
- OMP | works mostly | OGG Theora+Vorbis issues - Khusraw, 11.03.2012, 16:18
- MPLAYER 1.1 is out 2012-Jun-10 - DOS386, 13.06.2012, 11:28
- MPLAYER 1.1 is out 2012-Jun-10 - Khusraw, 14.06.2012, 20:33
- MPLAYER 1.1 is out 2012-Jun-10 - DOS386, 13.06.2012, 11:28
- OMP | works mostly | OGG Theora+Vorbis issues - Khusraw, 11.03.2012, 16:18
- OMP | works mostly | OGG Theora+Vorbis issues - DOS386, 11.03.2012, 15:57
- Yet another small update | OMP | works mostly - Khusraw, 05.03.2012, 09:02
- Yet another small update | OMP | works mostly - DOS386, 05.03.2012, 07:47
- Yet another small update | OMP | works mostly - Khusraw, 24.02.2012, 13:05
- Yet another small update - glennmcc, 11.02.2012, 00:53
- New DJGPP Mplayer build from SVN - ron, 23.01.2012, 21:21