# Asus M2N MTRR setting????????

## thegoonden

I'm going gently mental trying to get 1080p video working on my machine. After some reading and swearinig it appears to be related to my having 4GB of RAM, and a problem with MTRR, which is preventing my video card from doing any acceleration on 1080p video.

(as described here http://www.gentoo.org/doc/en/nvidia-guide.xml.

Apparently all I need to do is toggle a simple setting in BIOS, called MTRR.

Thing is, that my Asus M2N32ws-Pro doesn't appear to possess any such setting in it's BIOS. I even went through all the likely looking candidates to see if any had the correct options.

Has anyone any idea where the setting is on this board (a damned expensive one so I don't expect a half-done BIOS), or perhaps under what other names MTRR may lurk?

Appreciate your advice folks, as I am not enjoying my new TV to the full  :Very Happy:  It's either fix this, or, if I've read right, ripping 2GB of RAM out of her.

----------

## eccerr0r

Usually MTRRs are set via BIOS and you really can't change it.  There potentially are things that may affect BIOS in how it programs the MTRRs, memory hole settings is one thing.

There's a sanitizer option in the kernel that should fix most MTRR programming issues in newer kernels, if BIOS reports the memory map correctly.  Else you can change via hacking /proc/mtrr manually...

----------

## thegoonden

So gentoo is, once again, posting totally fictional how-tos......what exactly is the point of that. Why direct someone to a BIOS option (MTRR, Continuous or Discreet), if it only exists in the author's drug addled mind. Do these people work for Macroshaft, trying to annoy Gentoo users by making them spend hours looking for unicorn poo?

All I need to do, is to make the word "uncachable" go away in this.......

```

hal9000 ~ # cat /proc/mtrr

reg00: base=0x00000000 (   0MB), size=2048MB: write-back, count=1

reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1

reg02: base=0xbff00000 (3071MB), size=   1MB: uncachable, count=1

reg03: base=0x100000000 (4096MB), size=1024MB: write-back, count=1

```

So I can watch 1080p video properly (it's either that or watch windows make a dog's breakfast of it again).

So, I either need to hack the kernel or drop 2GB of RAM? Surely there's an easier way?

I thought /proc/mtrr was a report, not a settings file. But I'll try deleting the offending line anyway.

Thanks.

EDIT: surprisingly enough you can't edit /proc/mtrr

----------

## eccerr0r

 *thegoonden wrote:*   

> EDIT: surprisingly enough you can't edit /proc/mtrr

 

Take a look at your kernel's Documentation/x86/mtrr.txt

Are you sure that the 1MB region is your video memory?  lspci -vv and check where your memory aperture ends up.  Of course, should be done while X is started...

BTW, I'm not very familiar with how AMD BIOS and AMD MTRRs work.  This is just based on what I own, which happen to be Intel based motherboards and BIOS...  I'm assuming they should be similar but with hypertransport there may be more options I'm not aware of.

----------

## thegoonden

The (apparently worthless) how-to referenced in my first post makes no mention of the problem being video memory. It just says that if any line reports uncachable, then NVidia acceleration will not work.

I'm moderately furious as the moron who wrote it, making up non existent bios settings to waste people's time sounds a but purile to me.

My options are now either, throw half my memory away or boot my DOS machine to watch 1080p content.

Will investigate the kernel docs, but can't see it'll do me any good since I barely know what mtrr actually is  :Sad: 

Thanks anyway though.

----------

## thegoonden

OK, I've had a look at the appropriate document, and it appears to contain the source code for making a tool that will allow me to fiddle with MTRR settings "live".

However, I am an absolute codetard, and have no idea how to compile something that's wedged in a text file. I assume I extract the code portion and save it as mtrr-hacking-flummy.c but that's about as far as my brain gets me.

Do I instead enable it in the kernel config.....I did

cat .config|grep -i mtrr

And only got the line for

MTRR=Y

If I pootle about in make menuconfig, will other MTRR options appear somewhere?

(LOL I've thusfar not found even the main setting in menuconfig, I'm not doing very well here am I).

As it happens, if I clock my AMD5600 back to it's stock speed (it usually runs underclocked for power/heat/noise reasons), it can JUST cope with most 1080p content, but I'm fairly sure life would be better if the video card's hardware codec was in gear.

Apologies for the filty attitude above, but out of date or incorrect documentaion is a severe irritant to someone like me with about 10 years of penguin love under his belt (and still can't progam, stick that up yer bum Mr Balmer LOL )....imagine the effect it has on newbies!

----------

## eccerr0r

The problem is that a lot of the documentation gets stale quickly, or applies to one specific hardware -- perhaps the writer wrote it for his hardware only.

A lot of the documentation is also on a wiki, anyone's welcome to change it too!

Again I don't know much about NVidia's driver as it's' closed source and we don't know what it's really doing.  But I would think that the MTRR settings really doesn't affect whether acceleration is enabled, rather, it's simply detrimental to speed if the memory can't be coalesced/combined or cached.  But in any case it's very strange for video to be only taking a 1M aperture.  1M is only enough for 8bpp 1024x768 plus a bit!  Most modern video cards have a lot of memory - My ATI RadeonHD 3650 with 512M RAM maps 256MB into address space at a time:

MTRR settings should be under processor options.

Strangely enough the mtrr mappings for my ATI is very odd.  I've not tried video playback but 3D acceleration (for games) appears to run at or near full speed despite the registers marking memory as uncacheable:

```
subaru ~ $ cat /proc/mtrr 

reg00: base=0x000000000 (    0MB), size= 4096MB, count=1: write-back

reg01: base=0x0e0000000 ( 3584MB), size=  512MB, count=1: uncachable

reg03: base=0x100000000 ( 4096MB), size= 1024MB, count=1: write-back

reg04: base=0x130000000 ( 4864MB), size=  256MB, count=1: uncachable

reg05: base=0x0cff00000 ( 3327MB), size=    1MB, count=1: uncachable

```

Even odder is thata there's no explicit mapping for the video card.  I assume the default as it's covered by reg00 map however...  Which is questionable as the mappings overlap each other...

```
01:00.0 VGA compatible controller: ATI Technologies Inc Mobilitiy Radeon HD 3600

 Series (prog-if 00 [VGA controller])

        Subsystem: VISIONTEK Device 3992

        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step

ping- SERR- FastB2B- DisINTx+

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 

<MAbort- >SERR- <PERR- INTx-

        Latency: 0, Cache Line Size: 32 bytes

        Interrupt: pin A routed to IRQ 30

        Region 0: Memory at d0000000 (64-bit, prefetchable) [size=256M]

        Region 2: Memory at e5000000 (64-bit, non-prefetchable) [size=64K]

        Region 4: I/O ports at a000 [size=256]

        [virtual] Expansion ROM at e4000000 [disabled] [size=128K]

        Capabilities: <access denied>

        Kernel driver in use: fglrx_pci

        Kernel modules: fglrx

```

Well, this isn't a laptop despite 'Mobility' but oh well....still stange.

----------

