PDA

View Full Version : ATI X1650pro VideoRam Problem?


tinux
09-28-2007, 09:33 PM
Hello everyone ! I have a x1650pro ATI card, and if i dont set VideoRam to 393216 in xorg.conf, i get a blank screen when i startx (whatever WM i use). I have had this problem for some months, with different linux kernels/fglrx/Xorg versions. My question : Is it a knowm problem with the proprietary drivers ? Cause the onboard memory is supposed to have 512MB and the board is AGP (and not PCIE)... Or is my x1650 possibly defect ? Thanks in advance for your inputs. (appart from that, hardware acceleration works fine).

(II) Module fglrxdrm: vendor="FireGL - ATI Technologies Inc."
compiled for 7.1.0, module version = 8.40.4
ABI class: X.Org Server Extension, version 0.3
(II) fglrx(0): Video RAM override, using 393216 kB instead of 524288 kB
(**) fglrx(0): VideoRAM: 262144 kByte, Type: DDR2
(II) fglrx(0): PCIE card detected

peol
09-28-2007, 11:30 PM
Have you checked your BIOS setup? Maybe there's any options on this?

Is it a genuine ATI card or is it some cheaper model? Some models come with not-so-great memory chips I'm afraid.

tinux
09-29-2007, 10:50 AM
Hello Peol, thanks for your input.
Have you checked your BIOS setup? Maybe there's any options on this?
As far as i can see, the only options related to the GC are « AGP aperture » size (set to 256 but other values dont fix the problem) and "primary video controler" set to AGP.
Is it a genuine ATI card or is it some cheaper model? Some models come with not-so-great memory chips I'm afraid.
It is a HS X1650pro IceQ 512MB (http://www.hisdigital.com/html/product_ov.php?id=256&view=yes). Is there any tool which could help diagnose if this is a memory chip problem ?

Alistair
09-29-2007, 12:02 PM
You need to set
AGP Aperture=512Mb
remove the videomem size in /etc/X11/xorg.conf
if you use a framebuffer on your console you may need to pass
videomem=512mb as a kernel boot parameter.
the AGP version of teh 1650pro works with older ATI drivers, but although it does indeed come up iwth DRI and acceleration with 8.41 -- It DOES NOT enable AGP modes
see bug 780 on unofficial ati linux bugs pages.

Alistair
09-29-2007, 12:04 PM
Ohh -- post the content of /proc/mtrr
There are some ram combinations that dont map well

tinux
09-29-2007, 12:57 PM
(sorry to moderators for having sent a billion times the same post... now i read the message displayed a couple of secs after "submit" ;-)

EDIT : oh... now this message goes through directly and i still can't see my answer to Alistair ?!

tinux
09-29-2007, 01:37 PM
Ohh -- post the content of /proc/mtrr
There are some ram combinations that dont map well
Hello Alistair, and thanks for your input. If you're talking about the AGP aperture size i can set up in the bios of the motherboard, the highest value i can set is 256 (Dell dimension 8300). I've made the changes you suggested in grub.conf and kernel (removed fb support) :
# cat /boot/grub/grub.conf | grep -A 1 Trims
title Gentoo Trims
kernel (hd0,5)/boot/vmlinuz real_root=/dev/sda6 videomem=512mb

# grep CONFIG_FB /usr/src/linux/.config
# CONFIG_FB is not set
Also :
# cat /proc/mtrr
reg00: base=0x00000000 ( 0MB), size=1024MB: write-back, count=1
reg01: base=0xe0000000 (3584MB), size= 256MB: write-combining, count=1

And i commented the "VideoRam" in my xorg.conf. X is still crashing (blank screen and PC almost frozen. Only option is to reboot with magik keys).

Attaching Xorg logs. The first one when i get a blank screen with no "VideoRam" entry in xorg.conf. The second one when i add "VideoRam 393216" in xorg.conf and X doesnt crash. I think 8.40.4 drivers are not supposed to work for my Xorg version, but the problem was exactly the same with older versions.
log -- X crash (http://rafb.net/p/lCmNoj12.html)
log 2 -- X does not crash (http://rafb.net/p/icLloh11.html)

Michael
09-29-2007, 02:07 PM
(sorry to moderators for having sent a billion times the same post... now i read the message displayed a couple of secs after "submit" ;-)

EDIT : oh... now this message goes through directly and i still can't see my answer to Alistair ?!

Your posts should appear now that they have cleared the moderation queue.

Alistair
09-30-2007, 02:09 PM
Hello Alistair, and thanks for your input. If you're talking about the AGP aperture size i can set up in the bios of the motherboard, the highest value i can set is 256 (Dell dimension 8300). I've made the changes you suggested in grub.conf and kernel (removed fb support) :
# cat /boot/grub/grub.conf | grep -A 1 Trims
title Gentoo Trims
kernel (hd0,5)/boot/vmlinuz real_root=/dev/sda6 videomem=512mb

# grep CONFIG_FB /usr/src/linux/.config
# CONFIG_FB is not set
Also :
# cat /proc/mtrr
reg00: base=0x00000000 ( 0MB), size=1024MB: write-back, count=1
reg01: base=0xe0000000 (3584MB), size= 256MB: write-combining, count=1

And i commented the "VideoRam" in my xorg.conf. X is still crashing (blank screen and PC almost frozen. Only option is to reboot with magik keys).

Attaching Xorg logs. The first one when i get a blank screen with no "VideoRam" entry in xorg.conf. The second one when i add "VideoRam 393216" in xorg.conf and X doesnt crash. I think 8.40.4 drivers are not supposed to work for my Xorg version, but the problem was exactly the same with older versions.
log -- X crash (http://rafb.net/p/lCmNoj12.html)
log 2 -- X does not crash (http://rafb.net/p/icLloh11.html)

in your kernel boot option match the videomem= to the size of your agp gart (in your case 256mb) and set (under the fglrx device section of xorg.conf)
MaxGARTSize=256

Neither of your logs survived my oncall week from hell

Your mtrr list shows that you've pageallocated the mtrr for the gart to the card **above** the 3gb boundary -- how much ram in this lappy? If its less than 2Gb you might want to recompile with a different memory split option.

I had a heck of a time with my X1650Pro agp - the gart size and the mtrr, and xorg have to line up on memory allocation, or either X locks up or DRI doesnt fire ...

tinux
10-01-2007, 12:42 AM
in your kernel boot option match the videomem= to the size of your agp gart (in your case 256mb) and set (under the fglrx device section of xorg.conf)
MaxGARTSize=256

Neither of your logs survived my oncall week from hell

Your mtrr list shows that you've pageallocated the mtrr for the gart to the card **above** the 3gb boundary -- how much ram in this lappy? If its less than 2Gb you might want to recompile with a different memory split option.

I had a heck of a time with my X1650Pro agp - the gart size and the mtrr, and xorg have to line up on memory allocation, or either X locks up or DRI doesnt fire ...
Thanks again for your help Alistair, i realy appreciate :)

I have 1GB RAM on my system. So, i have tried everything you suggested ! For the "memory split" kernel option, i had first to modify the /usr/src/linux/arch/i386/Kconfig file : Removed "if EMBEDDED" from the line
prompt "Memory split" if EMBEDDED
(That is for Gentoo-kernel-2.6.22-r8)

I was then abble to try : VMSPLIT_3G; VMSPLIT_3G_OPT; VMSPLIT_3G/1G and VMSPLIT_1G/3G, but none of them fixed the problem... Still have to try with VMSPLIT_{2G,2G_OPT,2G/2G} though (i'll post the results when it's done). I also added 'Option "MaxGARTSize" "256"' in the fglrx device section of xorg.log and changed the kermel boot parameter to videomem=256M.

For the log files, i forgot the time limit was 24hours on the server i chose. So... here are the files on a server with 30 days retention, just in case...
X crashes (no VideoRam entry in xorg.conf) (http://nopaste.ch/1cd72e5e793f458.html)
X does not crash (VideoRam 393216 in xorg.conf) (http://nopaste.ch/571faab50576eea.html)

Kano
10-01-2007, 06:57 AM
Do you use HIGHMEM?

tinux
10-01-2007, 09:56 AM
Do you use HIGHMEM?
Hello Kano, thanks for dropping in. No i don't :

# grep HIGHMEM .config
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set

Kano
10-01-2007, 12:23 PM
1 GB without HIGHMEM you loose about 100 MB. Why don't you try a standard kernel with HIGHMEM?

tinux
10-02-2007, 12:24 AM
1 GB without HIGHMEM you loose about 100 MB. Why don't you try a standard kernel with HIGHMEM?
Oh, didnt know that. Thanks! I changed it to CONFIG_HIGHMEM4G=y.

I think i'm going to give up with this issue. I would still like to know what the problem is... my hardware (memory chip defect), the linux-kernel, fglrx driver, or a configuration problem ? Googling a bit, it looks like i'm not alone... so i guess (hope) it's not a hardware problem.

I made some more attemps to fix it by modifying mtrr (following advices given here (http://www.rage3d.com/board/showthread.php?t=33821469)). I tried to do things like :

echo "base=0x40000000 size=0x20000000 type=write-combining" >| /proc/mtrr

with various "base" values, and various sizes. Whenever i try to use 512MB size, i get hard locks. But low level memory stuff puzzle me. It's totally obscure to me. I dont understand why the kernel puts some stuff above 3Gigs, i dont understand how AGP memory mixes with the 512MB of x1650pro memory, i don't know at which stage the AGP memory is "mapped" to 0xd0000000 and who/what decides ATI memory starts at 0xe0000000, and how to reallocate it after agpgart has been loaded, etc. I'm a low quality geek and i would probably have to read much stuff before i'm up to the task.

Anyway, thx to all who have popped in, and if it doesn't take too much knowledge/time, i'll try anything you might suggest ;-)

Kano
10-02-2007, 01:34 AM
The 3G/1G split is normal for 32 bit. Usually set by

CONFIG_VMSPLIT_3G=y

tinux
10-02-2007, 02:09 AM
The 3G/1G split is normal for 32 bit. Usually set by

CONFIG_VMSPLIT_3G=y
Thanks Kano. My current kernel was built with 3G/1G split (and i tried most of the other splits too). Xorg still gives a blank screen if i dont add "VideoRam 393216" to my fglrx device section.

Kano
10-02-2007, 07:28 AM
Same problem with Windows?

tinux
10-02-2007, 12:48 PM
Same problem with Windows?
No, both catalyst info and windows driver info report 512MB for the x1650pro. But windows, in the details of the main card (PCI 1.0.0), also reports the main memory range beeing 0xE0000000-0xEFFFFFFF, which, if i'm not wrong, translates to a size of 256MB !?

tinux
10-05-2007, 06:29 PM
Ah, it looks like it is a power supply problem. The recommended power for the
x1650pro is 450W and the power delivered by my Dell Dimension 8300 is 305W. So
with my normal setup i get

# grep "PCI Bus #01" /etc/iomem
e0000000-efffffff : PCI Bus #01
...

And when i remove 2 hd's, 2 CD-Rom readers, 1 floppy reader, the sound card,
one of the 2 RAM modules and the main fan i get

# grep "PCI Bus #01" /etc/iomem
d4000000-efffffff : PCI Bus #01

... better but still not the 512MB. At least i understand why it will never
work :)

Kano
10-05-2007, 07:15 PM
The only thing that could make a difference is a PCI device, so let's say your soundcard.

tinux
10-05-2007, 09:50 PM
The only thing that could make a difference is a PCI device, so let's say your soundcard.
Oh... so the external power supply of the x1650 is only for the cooling system ?

Michael
10-05-2007, 09:57 PM
Oh... so the external power supply of the x1650 is only for the cooling system ?

The PCI Express 6-pin connectors on graphics cards aren't used just for fans... Generally the graphics cards with these external PCI-E connectors will not even function if there is no power source connected.

Alistair
10-06-2007, 12:39 AM
Ah, it looks like it is a power supply problem. The recommended power for the
x1650pro is 450W and the power delivered by my Dell Dimension 8300 is 305W. So
with my normal setup i get

# grep "PCI Bus #01" /etc/iomem
e0000000-efffffff : PCI Bus #01
...

And when i remove 2 hd's, 2 CD-Rom readers, 1 floppy reader, the sound card,
one of the 2 RAM modules and the main fan i get

# grep "PCI Bus #01" /etc/iomem
d4000000-efffffff : PCI Bus #01

... better but still not the 512MB. At least i understand why it will never
work :)


Okay --

I dont have my X1650Pro AGP installed atm - however I do recall that it DID NOT do what my 9550 does, and that is map *all* of the ram to *both* heads on the card. It created two unique 256mb memory blocks.
Now -- this might just be something horrid with the driver or it might be an architectural issue with the card --
a) pcie based engine, with an extra AGP to PCIE bridge chip --
b) you noted that the card only shows 256mb in windows?

this is from my 9550 card - also with two heads and with 256mb of ram on board:

lspci -vv -s 01:00
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550] (prog-if 00 [VGA])
Subsystem: ATI Technologies Inc Unknown device 0402
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: 32 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 1: I/O ports at 9000 [size=256]
Region 2: Memory at f1000000 (32-bit, non-prefetchable) [size=64K]
[virtual] Expansion ROM at f0000000 [disabled] [size=128K]
Capabilities: <access denied>

01:00.1 Display controller: ATI Technologies Inc RV350 ?? [Radeon 9550] (Secondary)
Subsystem: ATI Technologies Inc Unknown device 0403
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: 32 (2000ns min), Cache Line Size: 32 bytes
Region 0: Memory at e0000000 (32-bit, prefetchable) [size=256M]
Region 1: Memory at f1010000 (32-bit, non-prefetchable) [size=64K]
Capabilities: <access denied>


and the mtrr map


cat /proc/mtrr
reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
reg01: base=0xc0000000 (3072MB), size= 256MB: write-combining, count=2
reg02: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=1

and from iomem

d0000000-efffffff : PCI Bus #01
d0000000-dfffffff : 0000:01:00.0
d0000000-d0ffffff : vesafb
e0000000-efffffff : 0000:01:00.1



My GART size is set in bios and with kernel boot param videomem=256m
Here you can see the 9550 is mapping the 256mb to BOTH heads -- it is possible that the R6x0 chip is actually two unique processors.


This is from the last time I fired up the X1650Pro - and my X1650Pro claims 512Mb of ram NOTE Region 0 size in this case is 256mb


01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 71c1 (rev 9e) (prog-if 00 [VGA])
Subsystem: ATI Technologies Inc Unknown device 235a
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: 32 (2000ns min), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 5
Region 0: Memory at c0000000 (32-bit, prefetchable) [size=256M]
Region 1: I/O ports at 9000 [size=256]
Region 2: Memory at d1000000 (32-bit, non-prefetchable) [size=64K]
[virtual] Expansion ROM at d0000000 [disabled] [size=128K]
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-
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=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000

01:00.1 Display controller: ATI Technologies Inc Unknown device 71e1 (rev 9e)
Subsystem: ATI Technologies Inc Unknown device 235b
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: 32 (2000ns min), Cache Line Size: 32 bytes
Region 0: Memory at d1010000 (32-bit, non-prefetchable) [size=64K]
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-


I suspect that the X1650Pro does *different things* with memory management....

tinux
10-06-2007, 11:30 PM
The PCI Express 6-pin connectors on graphics cards aren't used just for
fans... Generally the graphics cards with these external PCI-E
connectors will not even function if there is no power source
connected.
Ok. So the video RAM is only fed by the AGP/PCI Bus power supply. That's
what i'll make out from your remark combined with Kano's one. Step by
step, my mental representations is getting closer to how it realy
works... i hope :]


b) you noted that the card only shows 256mb in windows ?
Yes i did ! Or rather, i noted that Windows driver says the card has
512MB RAM, BUT, in the ressources tab, it gives a memory address range
of 0xe0000000-0xefffffff (among other much smaller ranges), which, if
i'm not wrong, translates to a size of 256MB. So there is (at least in
my mind) a missmatch between those two values, Which is a bit similar
(except Windows doesnt crash) to what i get with Linux from Xorg.log :

(II) fglrx(0): Video RAM override, using 393216 kB instead of 524288 kB
(**) fglrx(0): VideoRAM: 262144 kByte, Type: DDR2

and my lspci which gives roughly the same as yours

trims ~ # lspci -vv -s 01:00
01:00.0 VGA compatible controller: ATI Technologies Inc RV530LE [Radeon X1600/X1650 PRO] (prog-if 00 [VGA])
Subsystem: Hightech Information System Ltd. Unknown device 216a
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: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at de00 [size=256]
Expansion ROM at fea00000 [disabled] [size=128K]
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-
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=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000

01:00.1 Display controller: ATI Technologies Inc RV530LE [Radeon X1650 PRO] (Secondary)
Subsystem: Hightech Information System Ltd. Unknown device 216b
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 (2000ns min), Cache Line Size: 64 bytes
Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
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-

So, my understanding is that you have the same problem as i have :] Your
x1650pro's video ram is not detected properly by either the x1650-BIOS,
the main board BIOS, the kernel and/or the fglrx driver... or whatever.
What about your power supply ? Does it have enough power for the card ?

As a side note, the lspci output of your 9550 shows 2 regions which
cover the full memory ranges for a total of 512MB. On the other hand,
the mtrr only covers your AGP Aperture and half of the first "region" of
the video RAM. None of the 2nd region. Is it normal ? (no obligation to
answer... just trying to get a better understanding)

Alistair
10-08-2007, 12:39 AM
Ok. So the video RAM is only fed by the AGP/PCI Bus power supply. That's
what i'll make out from your remark combined with Kano's one. Step by
step, my mental representations is getting closer to how it realy
works... i hope :]

Umm the Additional power cord on the PCI based cards bumps the fed +12v and +5v feeds from (somewhere around) 125ma to somewhere around 300ma. If you don't have this boost, the card doesn't fire at all. Essentially it works or it doesn't -- if its running, your power feed is likely fine.
And my 325w power supply keeps the X1650Pro quite happy, even with 4 hard drives in and teh DVD burner cutting a disk at full bore (12x)


Yes i did ! Or rather, i noted that Windows driver says the card has
512MB RAM, BUT, in the ressources tab, it gives a memory address range
of 0xe0000000-0xefffffff (among other much smaller ranges), which, if
i'm not wrong, translates to a size of 256MB. So there is (at least in
my mind) a missmatch between those two values, Which is a bit similar
(except Windows doesnt crash) to what i get with Linux from Xorg.log :

(II) fglrx(0): Video RAM override, using 393216 kB instead of 524288 kB
(**) fglrx(0): VideoRAM: 262144 kByte, Type: DDR2

and my lspci which gives roughly the same as yours

trims ~ # lspci -vv -s 01:00
01:00.0 VGA compatible controller: ATI Technologies Inc RV530LE [Radeon X1600/X1650 PRO] (prog-if 00 [VGA])
Subsystem: Hightech Information System Ltd. Unknown device 216a
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: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at fe9e0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at de00 [size=256]
Expansion ROM at fea00000 [disabled] [size=128K]
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-
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=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000

01:00.1 Display controller: ATI Technologies Inc RV530LE [Radeon X1650 PRO] (Secondary)
Subsystem: Hightech Information System Ltd. Unknown device 216b
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 (2000ns min), Cache Line Size: 64 bytes
Region 0: Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K]
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-

So, my understanding is that you have the same problem as i have :] Your
x1650pro's video ram is not detected properly by either the x1650-BIOS,
the main board BIOS, the kernel and/or the fglrx driver... or whatever.


I'd suggest that you are **oversubscribing** your xorg memory allocation. Your card clearly advertises (in the xorg.log snippet) 256Mb of ram. Same as mine. I ***do*** have this card working in xorg, with the current drivers, with DRI == without crashes == but ALSO without AGP bus accelleration. I also have my agp gart set for 128mb right now, but set it to 256mb when I fire up the X1650pro. I set the gart size in xorg.conf to 256mb, and the kernel boot param videomem=256mb -- at that point the card WORKS. Horrendous performance for anything that pushes large amounts of data across the AGP bus, because. ... its running at 33mhz instead of AGP8 ..

I suspect that my two lspci examples are hightlighting an architectural difference between the two lines of video chips.
The 9550 is a ***single*** (vpu/gpu/video engine) that maps all of the 256mb of ram to the one engine. I've read somewhere that after the low end 500 series chips ATI actually changed the way they map memory to the discreet 'heads' since more and more folks were actually using both heads. I've also heard that the 600 series chips have two distinct VPU engines on board, but a) I'm not an engineer, and b) I dont have direct references here. Thus I believe that the X1650Pro showing 256Mb in each unit is quite correct, and that the card does indeed have 512mb on board, just that each 'head/vpu/engine' can only see 256mb ...


What about your power supply ? Does it have enough power for the card ?

As a side note, the lspci output of your 9550 shows 2 regions which
cover the full memory ranges for a total of 512MB. On the other hand,
the mtrr only covers your AGP Aperture and half of the first "region" of
the video RAM. None of the 2nd region. Is it normal ? (no obligation to
answer... just trying to get a better understanding)

I've never seen a power registration issue on my system. Mind you I've never gotten inside the case under load with an ammeter either ...

AGP aperture and video memory are distinctly different creatures.

think thusly
video card is (relative to the CPU) two floors up and down the hall
cpu needs to read and write on video card's memory. Video card needs to read and write to CPU's default memory (system memory)

So -- rather than running the long way around (up the stairs, down the hall and into different room)
(if we had to ask the video card what address on the video card we were to write to each and every time)
we set up a window that we can see each others memory through. Now -- this window does NOT need to be the same size as the memory on either end, but does need to be a fixed size, and we have to have an agreement that determines how it moves around.

agp code will page the window back and forth, and keeps everything neat and tidy. the 'window' in this case is simply an address range that the bios will reserve so that the cpu can write directly to the agp memory -- and thats why you have fixed sizes for the size the window can be (all are power of two and built on 4k), In reverse -- the window allows the video card to write to 'system' memory by writing on its own... and the system can then see this.

tinux
10-09-2007, 11:56 PM
Thanks again for your answer Alistair. I *think* i undersand your
explanation about AGP : The CPU and the GPU do not read/write each
other's memory directly. Rather, they use a virtual memory "window"
handled by the AGP driver.

But, the AGP driver has to know physical address ranges in order to "map"
them into virtual memory, right ? That is my first assumption and the
second is that /proc/iomem and lspci output both give
informations about physical address ranges. So, the rest of your message
is still unclear to me :


Umm the Additional power cord on the PCI based cards bumps the fed +12v
and +5v feeds from (somewhere around) 125ma to somewhere around 300ma.
If you don't have this boost, the card doesn't fire at all. Essentially
it works or it doesn't -- if its running, your power feed is likely
fine.
Ok... but from /proc/iomem, with all peripherals plugged i get :

...
e0000000-efffffff : PCI Bus #01
e0000000-efffffff : 0000:01:00.0
fe800000-fe8fffff : PCI Bus #02
fe8fa800-fe8fafff : 0000:02:02.2
fe8fb000-fe8fbfff : 0000:02:08.0
fe8fb000-fe8fbfff : eepro100
fe8fc000-fe8fffff : 0000:02:02.2
fe900000-feafffff : PCI Bus #01
fe9e0000-fe9effff : 0000:01:00.0
fe9f0000-fe9fffff : 0000:01:00.1
fea00000-fea1ffff : 0000:01:00.0
...

and with everything removed except for the strict minimum i get :

...
d4000000-efffffff : PCI Bus #01
e0000000-efffffff : 0000:01:00.0
fe800000-fe8fffff : PCI Bus #02
fe8fa800-fe8fafff : 0000:02:02.2
fe8fb000-fe8fbfff : 0000:02:08.0
fe8fb000-fe8fbfff : eepro100
fe8fc000-fe8fffff : 0000:02:02.2
fe900000-feafffff : PCI Bus #01
fe9e0000-fe9effff : 0000:01:00.0
fe9f0000-fe9fffff : 0000:01:00.1
fea00000-fea1ffff : 0000:01:00.0
...

So, if i'm not wrong :
0xefffffff - 0xe0000000 = 0xfffffff =~ 256MB with normal configuration
0xefffffff - 0xd4000000 = 0x1bffffff =~ 448MB with minimal configuration.
Thus, at least for me, unless i miss something, there is a difference
and it is not only in Xorg.log. Although i admit i might be
oversubsribing it ;) And, at first sight, there seems to be a relation
between power and the amount of detected physical memory.

Thus I believe that the X1650Pro showing 256Mb in each unit is quite
correct, and that the card does indeed have 512mb on board, just that
each 'head/vpu/engine' can only see 256mb ...
But, Alistair, my friend... where does it show ? :'/ I'm sorry if i
missed something obvious, but I can only see one region with 256Mb, be
it in /proc/iomem or with lspci -vv -s 01:00. If the x1650
lspci output was similar to your 9550 one, then i would understand,
cause there, i can see the two regions of 256MB.