Savage driver problem with mtrrs on Thinkpad T21

re2823 at re2823 at
Wed Feb 14 03:49:06 PST 2007

Hi all.

I get an error message when I run xine-check (from xine-ui package) 
which says:

"you have MTRR support but it's unused. It seems like your X server 
didn't set any MTRR ranges for the graphics card. Maybe upgrading your X 
server helps..."

My /proc/mtrr currently looks like this:
reg00: base=0x00000000 (   0MB), size= 512MB: write-back, count=1

I've found some information about mtrrs here:
which make me think that the command I need is:
echo "base=0xf0000000 size=0x800000 type=write-combining" > /proc/mtrr

This appears to work - the following line is added to /proc/mtrr:
reg01: base=0xf0000000 (3840MB), size=   8MB: write-combining, count=1

But then when I restart X, that additional "write-combining" line disappears
from /proc/mtrr again.

"x86info --mtrr" returns (but only once I've manually modprobe'd "msr"):
Found 1 CPU
Found unknown cache descriptors: 01 02 03 04 08 0c 82
Family: 6 Model: 8 Stepping: 6 Type: 0 Brand: 2
CPU Model: Pentium III-M (Coppermine) [cC0] Original OEM
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
L1 Instruction cache:
        Size: 16KB      4-way associative.
        line size=32 bytes.
L1 Data cache:
        Size: 16KB      4-way associative.
        line size=32 bytes.
L2 unified cache:
        Size: 256KB     8-way associative.
        line size=32 bytes.
Instruction TLB: 4KB pages, 4-way associative, 32 entries
Instruction TLB: 4MB pages, fully associative, 2 entries
Found unknown cache descriptors: 01 02 03 04 08 0c 82
Data TLB: 4KB pages, 4-way associative, 64 entries
Data TLB: 4MB pages, 4-way associative, 8 entries
MTRR registers:
MTRRcap (0xfe): 0x0000000000000508
MTRRphysBase0 (0x200): 0x0000000000000006
MTRRphysMask0 (0x201): 0x0000000fe0000800
MTRRphysBase1 (0x202): 0x00000000f0000001
MTRRphysMask1 (0x203): 0x0000000fff800800
MTRRphysBase2 (0x204): 0x0000000000000000
MTRRphysMask2 (0x205): 0x0000000000000000
MTRRphysBase3 (0x206): 0x0000000000000000
MTRRphysMask3 (0x207): 0x0000000000000000
MTRRphysBase4 (0x208): 0x0000000000000000
MTRRphysMask4 (0x209): 0x0000000000000000
MTRRphysBase5 (0x20a): 0x0000000000000000
MTRRphysMask5 (0x20b): 0x0000000000000000
MTRRphysBase6 (0x20c): 0x0000000000000000
MTRRphysMask6 (0x20d): 0x0000000000000000
MTRRphysBase7 (0x20e): 0x0000000000000000
MTRRphysMask7 (0x20f): 0x0000000000000000
MTRRfix64K_00000 (0x250): 0x0606060606060606
MTRRfix16K_80000 (0x258): 0x0606060606060606
MTRRfix16K_A0000 (0x259): 0x0000000000000000
MTRRfix4K_C8000 (0x269): 0x0000000005050505
MTRRfix4K_D0000 0x26a: 0x0000000000000000
MTRRfix4K_D8000 0x26b: 0x0000000000000000
MTRRfix4K_E0000 0x26c: 0x0505050505050505
MTRRfix4K_E8000 0x26d: 0x0505050505050505
MTRRfix4K_F0000 0x26e: 0x0505050505050505
MTRRfix4K_F8000 0x26f: 0x0505050505050505
MTRRdefType (0x2ff): 0x0000000000000c00

"lspci -v -v" returns:
 01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 13) (prog-if 00 [VGA])
Subsystem: IBM Thinkpad T20/T22
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (1000ns min, 63750ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=128M]
[virtual] Expansion ROM at 38000000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 1
        Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] AGP version 1.0
        Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2
        Command: RQ=32 ArqSz=0 Cal=0 SBA- AGP+ GART64- 64bit- FW- Rate=x2

I've attached my xorg.log in case it helps.

I've checked xorg's bugzilla for any open savage bugs to do with mtrrs, but
there's nothing there.

Could anyone please tell me whether this behaviour is a bug? (should the savage
driver setup mtrrs when it starts, or should I have to do this manually
myself?) Or could it be a kernel bug? Also, why doesn't my xorg.log mention
anything about mtrrs?

Many thanks for any help you can offer, Jaime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.0.log
Type: text/x-log
Size: 45041 bytes
Desc: not available
URL: <>

More information about the xorg mailing list