[Linux-Biella] PROBLEM: MTRR wrong inizialization

Daniele (Mastro) daniele.bilug a gmail.com
Gio 9 Nov 2006 17:05:00 CET


ditemi che ne pensate.. manderei questa alla lista
linux-kernel a vger.kernel.org

correzioni.. consigli.. parti da rimuovere o aggiungere... correzioni
ortografiche o di forma sull'inglese.. ecc.. ecc..

anche l'oggetto sarà quello...

mi sono attenuto, per quanto possibile, a quanto spiegato qua:
http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html

hi,

Problem:
all (8) the MTRR registers get occupied in a strange way

Full description:
i have a laptop (asus a4k) and i know this problem happend to other with
the same laptop or similar.. (see as an example this different model has
the same problem:
http://forums.amd.com/lofiversion/index.php/t37084-50.html)

when i boot i found this /proc/mtrr

reg00: base=0x00000000 (   0MB), size=  16MB: write-back, count=1
reg01: base=0x01000000 (  16MB), size=  16MB: write-back, count=1
reg02: base=0x02000000 (  32MB), size=  32MB: write-back, count=1
reg03: base=0x04000000 (  64MB), size=  64MB: write-back, count=1
reg04: base=0x08000000 ( 128MB), size= 128MB: write-back, count=1
reg05: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
reg06: base=0x20000000 ( 512MB), size= 512MB: write-back, count=1
reg07: base=0x40000000 (1024MB), size=1024MB: write-back, count=1

i have 2 GB of ram (2 block of 1GB each)

as you see all the register get occupied

this caused me some problem with the graphic card (ex.: no/very slow 3d
acceleration) and video buffer so I "solved" placing this as a boot script:

for i in 1 2 3 4 5 0 6 7; do echo "disable=$i" >| /proc/mtrr; done; echo
"base=0x00000000 size=0x40000000 type=write-back" >| /proc/mtrr; echo
"base=0x40000000 size=0x40000000 type=write-back" >| /proc/mtrr

now it's better:
reg00: base=0x00000000 (   0MB), size=1024MB: write-back, count=1
reg01: base=0x40000000 (1024MB), size=1024MB: write-back, count=1
reg02: base=0xe0000000 (3584MB), size=  64MB: write-combining, count=8
reg03: base=0xf0000000 (3840MB), size= 128MB: write-combining, count=1

but still have some problem:

agpgart: Setting up Nforce3 AGP.
agpgart: AGP aperture is 128M @ 0xf0000000
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKE] -> GSI 11 (level,
low) -> IRQ 11
radeonfb: Retrieved PLL infos from BIOS
radeonfb: Reference=27.00 MHz (RefDiv=6) Memory=390.00 Mhz,
System=230.00 MHz
radeonfb: PLL min 20000 max 40000
Non-DDC laptop panel detected
radeonfb: Monitor 1 type LCD found
radeonfb: Monitor 2 type no found
radeonfb: panel ID string: Samsung LTN154X1 WXGA
radeonfb: detected LVDS panel size from BIOS: 1280x800
radeondb: BIOS provided dividers will be used
radeonfb: Dynamic Clock Power Management enabled
Console: switching to colour frame buffer device 160x50
mtrr: no more MTRRs available
radeonfb (0000:01:00.0): ATI Radeon NP
vesafb: cannot reserve video memory at 0xe0000000
vesafb: framebuffer at 0xe0000000, mapped to 0xf9900000, using 4608k,
total 65536k
vesafb: mode is 1024x768x24, linelength=3072, pages=27
vesafb: protected mode interface info at c000:563b
vesafb: pmi: set display start = c00c56a9, set palette = c00c56e3
vesafb: pmi: ports = b010 b016 b054 b038 b03c b05c b000 b004 b0b0 b0b2 b0b4
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0
fb1: VESA VGA frame buffer device

this happen before any script, so i can't "fix" it

i don't know how this work, and why i have this problem.. but i've seen
there is some specific fix in the mtrr code for other specific hardware...

i think this is a bios bug.. but i have already tried all the bios
version from asus web site without luck..

Kernel Version:
Linux version 2.6.18-gentoo-r1 (root a mastro) (gcc version 4.1.1 (Gentoo
4.1.1-r1)) #7 PREEMPT Mon Nov 6 22:29:29 CET 2006

same problem with other version, too.. i've tried
debian/ubuntu/mandriva from kernel 2.6.15 to the last one


Environment:

My hardware in short:
Laptop AMD 64 3200+, ATI Mobility Radeon 9700 128 MB VideoRam, Bus
NVidia N-Force3, 2 Block of 1 GB each of RAM DDR400

# lspci
00:00.0 Host bridge: nVidia Corporation nForce3 Host Bridge (rev a4)
00:01.0 ISA bridge: nVidia Corporation nForce3 LPC Bridge (rev f6)
00:01.1 SMBus: nVidia Corporation nForce3 SMBus (rev a4)
00:02.0 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
00:02.1 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
00:02.2 USB Controller: nVidia Corporation nForce3 USB 2.0 (rev a2)
00:06.0 Multimedia audio controller: nVidia Corporation nForce3 Audio
(rev a2)
00:06.1 Modem: nVidia Corporation nForce3 Audio (rev a2)
00:08.0 IDE interface: nVidia Corporation nForce3 IDE (rev a5)
00:0a.0 PCI bridge: nVidia Corporation nForce3 PCI Bridge (rev a2)
00:0b.0 PCI bridge: nVidia Corporation nForce3 AGP Bridge (rev a4)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility
Radeon 9600 M10]
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001
Gigabit Ethernet Controller (rev 13)
02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
02:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller
(rev 08)
02:01.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
Adapter (rev 17)
02:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host
Adapter (rev 08)


Software:
Linux mastro 2.6.18-gentoo-r1 #7 PREEMPT Mon Nov 6 22:29:29 CET 2006
i686 Mobile AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux

Gnu C                  4.1.1
Gnu make               3.81
binutils               2.17
util-linux             2.12r
mount                  2.12r
module-init-tools      3.2.2
e2fsprogs              1.39
jfsutils               1.1.11
reiser4progs           1.0.5
xfsprogs               2.8.11
Linux C Library        > libc.2.5
Dynamic linker (ldd)   2.5
Procps                 3.2.7
Net-tools              1.60
Kbd                    1.12
Sh-utils               6.4
udev                   103
Modules Loaded         fglrx snd_pcm_oss snd_mixer_oss snd_seq_oss
snd_seq_midi_event snd_seq snd_seq_device serio_raw sdhci mmc_core
parport_pc yenta_socket skge rsrc_nonstatic pcmcia_core parport 8250_pci
8250 serial_core snd_intel8x0m snd_intel8x0 snd_ac97_codec snd_ac97_bus
snd_pcm snd_timer snd i2c_nforce2 snd_page_alloc


Processor:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 4
model name      : Mobile AMD Athlon(tm) 64 Processor 3200+
stepping        : 10
cpu MHz         : 2000.000
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm
3dnowext 3dnow ts fid vid ttp
bogomips        : 4198.31


Modules:
fglrx 410412 8 - Live 0xf9ef3000
snd_pcm_oss 42528 0 - Live 0xf9e6d000
snd_mixer_oss 17152 1 snd_pcm_oss, Live 0xf9e3d000
snd_seq_oss 32896 0 - Live 0xf9e55000
snd_seq_midi_event 7680 1 snd_seq_oss, Live 0xf9dab000
snd_seq 51280 4 snd_seq_oss,snd_seq_midi_event, Live 0xf9e47000
snd_seq_device 8396 2 snd_seq_oss,snd_seq, Live 0xf9da7000
serio_raw 7172 0 - Live 0xf9da4000
sdhci 17676 0 - Live 0xf98fa000
mmc_core 24912 1 sdhci, Live 0xf9db6000
parport_pc 24292 0 - Live 0xf9d81000
yenta_socket 26444 0 - Live 0xf9dae000
skge 37264 0 - Live 0xf9d99000
rsrc_nonstatic 12096 1 yenta_socket, Live 0xf98e9000
pcmcia_core 40208 2 yenta_socket,rsrc_nonstatic, Live 0xf9d8e000
parport 25920 1 parport_pc, Live 0xf98f2000
8250_pci 21184 0 - Live 0xf98d3000
8250 21732 1 8250_pci, Live 0xf98e2000
serial_core 21440 1 8250, Live 0xf98db000
snd_intel8x0m 17036 0 - Live 0xf98cd000
snd_intel8x0 32092 1 - Live 0xf8877000
snd_ac97_codec 90912 2 snd_intel8x0m,snd_intel8x0, Live 0xf98a0000
snd_ac97_bus 2368 1 snd_ac97_codec, Live 0xf886d000
snd_pcm 77832 4 snd_pcm_oss,snd_intel8x0m,snd_intel8x0,snd_ac97_codec,
Live 0xf98b8000
snd_timer 23108 2 snd_seq,snd_pcm, Live 0xf9881000
snd 51748 12
snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_intel8x0m,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer,
Live 0xf9892000
i2c_nforce2 7104 0 - Live 0xf8874000
snd_page_alloc 10120 3 snd_intel8x0m,snd_intel8x0,snd_pcm, Live 0xf8870000


Loaded Driver and Hardware information:
 # cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial
0376-0376 : ide1
0378-037a : parport0
03c0-03df : vesafb
03f6-03f6 : ide0
0a00-0a0f : pnp 00:07
0cf8-0cff : PCI conf1
4000-4003 : ACPI PM1a_EVT_BLK
4004-4005 : ACPI PM1a_CNT_BLK
4008-400b : ACPI PM_TMR
401c-401c : ACPI PM2_CNT_BLK
4020-4027 : ACPI GPE0_BLK
44a0-44af : ACPI GPE1_BLK
5000-503f : 0000:00:01.1
  5000-503f : nForce2_smbus
5040-507f : 0000:00:01.1
  5040-507f : nForce2_smbus
9000-bfff : PCI Bus #01
  b000-b0ff : 0000:01:00.0
c000-dfff : PCI Bus #02
  c000-c0ff : PCI CardBus #03
  c400-c4ff : PCI CardBus #03
  d800-d8ff : 0000:02:00.0
    d800-d8ff : skge
e080-e0ff : 0000:00:06.0
  e080-e0ff : NVidia nForce3
e400-e4ff : 0000:00:06.0
  e400-e4ff : NVidia nForce3
e800-e8ff : 0000:00:06.1
  e800-e8ff : NVidia nForce3 Modem
ec00-ec7f : 0000:00:06.1
  ec00-ec7f : NVidia nForce3 Modem
ffa0-ffaf : 0000:00:08.0
  ffa0-ffa7 : ide0
  ffa8-ffaf : ide1

# cat /proc/iomem
00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000cefff : Video ROM
000f0000-000fffff : System ROM
00100000-7ff3ffff : System RAM
  00100000-004113cb : Kernel code
  004113cc-0056728f : Kernel data
7ff40000-7ff4ffff : ACPI Tables
7ff50000-7fffffff : ACPI Non-volatile Storage
88000000-89ffffff : PCI Bus #02
  88000000-89ffffff : PCI CardBus #03
db800000-eb7fffff : PCI Bus #01
  e0000000-e7ffffff : 0000:01:00.0
    e0000000-e7ffffff : radeonfb framebuffer
f0000000-f7ffffff : 0000:00:00.0
  f0000000-f7ffffff : aperture
fb900000-fb9fffff : PCI Bus #01
  fb9c0000-fb9dffff : 0000:01:00.0
  fb9f0000-fb9fffff : 0000:01:00.0
    fb9f0000-fb9fffff : radeonfb mmio
fba00000-feafffff : PCI Bus #02
  fc600000-fd1fffff : PCI CardBus #03
  fd200000-fd200fff : 0000:02:01.0
    fd200000-fd200fff : yenta_socket
  feac0000-feadffff : 0000:02:00.0
  feaf8000-feafbfff : 0000:02:00.0
    feaf8000-feafbfff : skge
  feaff000-feaff7ff : 0000:02:01.1
    feaff000-feaff7ff : ohci1394
  feaff800-feaff8ff : 0000:02:01.2
    feaff800-feaff8ff : sdhci:slot0
  feaffc00-feaffcff : 0000:02:01.3
febfb000-febfbfff : 0000:00:02.0
  febfb000-febfbfff : ohci_hcd
febfc000-febfcfff : 0000:00:02.1
  febfc000-febfcfff : ohci_hcd
febfdc00-febfdcff : 0000:00:02.2
  febfdc00-febfdcff : ehci_hcd
febfe000-febfefff : 0000:00:06.0
  febfe000-febfefff : NVidia nForce3
febff000-febfffff : 0000:00:06.1
  febff000-febfffff : NVidia nForce3 Modem
fec00000-fec00fff : reserved
fee00000-fee00fff : reserved


PCI info:

# lspci -vvv
00:00.0 Host bridge: nVidia Corporation nForce3 Host Bridge (rev a4)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
        Region 0: Memory at f0000000 (32-bit, prefetchable) [size=128M]
        Capabilities: [44] HyperTransport: Slave or Primary Interface
                Command: BaseUnitID=0 UnitCnt=12 MastHost- DefDir- DUL-
                Link Control 0: CFlE+ CST- CFE- <LkFail- Init+ EOC- TXO-
<CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                Link Config 0: MLWI=16bit DwFcIn- MLWO=8bit DwFcOut-
LWI=16bit DwFcInEn- LWO=8bit DwFcOutEn-
                Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+
<CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                Link Config 1: MLWI=8bit DwFcIn- MLWO=8bit DwFcOut-
LWI=8bit DwFcInEn- LWO=8bit DwFcOutEn-
                Revision ID: 1.03
                Link Frequency 0: 400MHz
                Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
                Link Frequency Capability 0: 200MHz+ 300MHz+ 400MHz+
500MHz+ 600MHz+ 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                Feature Capability: IsocFC+ LDTSTOP+ CRCTM- ECTLT- 64bA-
UIDRD-
                Link Frequency 1: 200MHz
                Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
                Link Frequency Capability 1: 200MHz- 300MHz- 400MHz-
500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE-
SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
                Prefetchable memory behind bridge Upper: 00-00
                Bus Number: 00
        Capabilities: [c0] AGP version 3.0
                Status: RQ=32 Iso- ArqSz=2 Cal=0 SBA+ ITACoh- GART64-
HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
                Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW+
Rate=x8

00:01.0 ISA bridge: nVidia Corporation nForce3 LPC Bridge (rev f6)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0

00:01.1 SMBus: nVidia Corporation nForce3 SMBus (rev a4)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin A routed to IRQ 0
        Region 4: I/O ports at 5000 [size=64]
        Region 5: I/O ports at 5040 [size=64]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.0 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
(prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (750ns min, 250ns max)
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at febfb000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.1 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)
(prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (750ns min, 250ns max)
        Interrupt: pin B routed to IRQ 11
        Region 0: Memory at febfc000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.2 USB Controller: nVidia Corporation nForce3 USB 2.0 (rev a2)
(prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (750ns min, 250ns max)
        Interrupt: pin C routed to IRQ 4
        Region 0: Memory at febfdc00 (32-bit, non-prefetchable) [size=256]
        Capabilities: [44] Debug port
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:06.0 Multimedia audio controller: nVidia Corporation nForce3 Audio
(rev a2)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1983
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (500ns min, 1250ns max)
        Interrupt: pin A routed to IRQ 5
        Region 0: I/O ports at e400 [size=256]
        Region 1: I/O ports at e080 [size=128]
        Region 2: Memory at febfe000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:06.1 Modem: nVidia Corporation nForce3 Audio (rev a2) (prog-if 00
[Generic])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1856
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (500ns min, 1250ns max)
        Interrupt: pin B routed to IRQ 10
        Region 0: I/O ports at e800 [size=256]
        Region 1: I/O ports at ec00 [size=128]
        Region 2: Memory at febff000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:08.0 IDE interface: nVidia Corporation nForce3 IDE (rev a5) (prog-if
8a [Master SecP PriP])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0 (750ns min, 250ns max)
        Region 4: I/O ports at ffa0 [size=16]
        Capabilities: [44] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0a.0 PCI bridge: nVidia Corporation nForce3 PCI Bridge (rev a2)
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR+ <PERR-
        Latency: 0
        Bus: primary=00, secondary=02, subordinate=06, sec-latency=128
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: fba00000-feafffff
        Prefetchable memory behind bridge: 88000000-89ffffff
        Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR+
        BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-

00:0b.0 PCI bridge: nVidia Corporation nForce3 AGP Bridge (rev a4)
(prog-if 00 [Normal decode])
        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
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
        I/O behind bridge: 00009000-0000bfff
        Memory behind bridge: fb900000-fb9fffff
        Prefetchable memory behind bridge: db800000-eb7fffff
        Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
        BridgeCtl: Parity+ SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
HyperTransport Technology Configuration
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Capabilities: [80] HyperTransport: Host or Secondary Interface
                !!! Possibly incomplete decoding
                Command: WarmRst+ DblEnd-
                Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
<CRCErr=0
                Link Config: MLWI=16bit MLWO=16bit LWI=8bit LWO=16bit
                Revision ID: 1.02

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Address Map
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
DRAM Controller
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Miscellaneous Control
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-

01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility
Radeon 9600 M10] (prog-if 00 [VGA])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1942
        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: 255 (2000ns min), Cache Line Size: 256 bytes
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at e0000000 (32-bit, prefetchable) [size=128M]
        Region 1: I/O ports at b000 [size=256]
        Region 2: Memory at fb9f0000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at fb9c0000 [disabled] [size=128K]
        Capabilities: [58] AGP version 3.0
                Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64-
HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
                Command: RQ=32 ArqSz=2 Cal=0 SBA+ AGP+ GART64- 64bit-
FW+ Rate=x8
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001
Gigabit Ethernet Controller (rev 13)
        Subsystem: ASUSTeK Computer Inc. Marvell 88E8001 Gigabit
Ethernet Controller (Asus)
        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 (5750ns min, 7750ns max), Cache Line Size: 256 bytes
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at feaf8000 (32-bit, non-prefetchable) [size=16K]
        Region 1: I/O ports at d800 [size=256]
        Expansion ROM at feac0000 [disabled] [size=128K]
        Capabilities: [48] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [50] Vital Product Data

02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
        Subsystem: ASUSTeK Computer Inc. Asus A4K and Z81K notebooks,
possibly others ( mid-2005 machines )
        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: 168
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at fd200000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
        Memory window 0: 88000000-89fff000 (prefetchable)
        Memory window 1: fc600000-fd1ff000
        I/O window 0: 0000c000-0000c0ff
        I/O window 1: 0000c400-0000c4ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+
PostWrite+
        16-bit legacy interface ports at 0001

02:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller
(rev 08) (prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        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 (500ns min, 1000ns max)
        Interrupt: pin B routed to IRQ 10
        Region 0: Memory at feaff000 (32-bit, non-prefetchable) [size=2K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=2 PME+

02:01.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
Adapter (rev 17)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        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
        Interrupt: pin C routed to IRQ 10
        Region 0: Memory at feaff800 (32-bit, non-prefetchable) [size=256]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=2 PME-

02:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host
Adapter (rev 08)
        Subsystem: ASUSTeK Computer Inc. Unknown device 1987
        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-
        Interrupt: pin C routed to IRQ 10
        Region 0: Memory at feaffc00 (32-bit, non-prefetchable) [size=256]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=2 PME-


SCSI info:
none


Other:
# cat /proc/mtrr

reg00: base=0x00000000 (   0MB), size=  16MB: write-back, count=1
reg01: base=0x01000000 (  16MB), size=  16MB: write-back, count=1
reg02: base=0x02000000 (  32MB), size=  32MB: write-back, count=1
reg03: base=0x04000000 (  64MB), size=  64MB: write-back, count=1
reg04: base=0x08000000 ( 128MB), size= 128MB: write-back, count=1
reg05: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
reg06: base=0x20000000 ( 512MB), size= 512MB: write-back, count=1
reg07: base=0x40000000 (1024MB), size=1024MB: write-back, count=1

and the and of dmesg without the workaround:
[fglrx] Maximum main memory to use for locked dma buffers: 1899 MBytes.
[fglrx] module loaded - fglrx 8.27.10 [Jul 27 2006] on minor 0
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKE] -> GSI 11 (level,
low) -> IRQ 11
mtrr: no more MTRRs available
[fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-28)
[fglrx] Internal AGP support requested, but kernel AGP support active.
[fglrx] Have to use kernel AGP support to avoid conflicts.
[fglrx] AGP detected, AgpState   = 0x1f00421b (hardware caps of chipset)
mtrr: no more MTRRs available
[fglrx:firegl_unlock] *ERROR* Process 4540 using kernel context 0

Work around:

this script as boot script

for i in 1 2 3 4 5 0 6 7; do echo "disable=$i" >| /proc/mtrr; done; echo
"base=0x00000000 size=0x40000000 type=write-back" >| /proc/mtrr; echo
"base=0x40000000 size=0x40000000 type=write-back" >| /proc/mtrr

after the boot script it allocate 2 more register for the 3D card when X
starts (02 and 03)

# cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size=1024MB: write-back, count=1
reg01: base=0x40000000 (1024MB), size=1024MB: write-back, count=1
reg02: base=0xe0000000 (3584MB), size=  64MB: write-combining, count=8
reg03: base=0xf0000000 (3840MB), size= 128MB: write-combining, count=1

another try i've done was to patch the fglrx module to think that mtrr
was not compiled in the kernel, but the graphic card was slowly.

Final note:
the Kernel driver of Ati Card didn't work with my laptop, don't know
why.. so i have to use the proprietary one

--
thank you and goodbye,
Daniele



Maggiori informazioni sulla lista Linux