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.
some MTRR entries are pushed down by NT4/VBEMP. Does the order make the different result?
I wonder if #0 to #2 can be combined into 1 entry and it is still work as expected?
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