A possible fix for X86_64 users
I have been lurking in these forums for some time looking for a fix for my Sapphire X1650 which is running on an AMD 64 dual core.
I saw the previous post and thought I'd give February's ATI offering a try.
I haven't had a working driver since the first AIGLX enabled version which worked but did not enable the interrupts.
On earlier drivers using the XGL server I could get my card working with the MaxAtiGart option but I only put it in the xorg.conf.
So I gave the new driver a try and managed to get a running Xserver but just with a mouse pointer and nothing else. A good deal better than a hard lockup. I took a look at the X log and it showed that the interrupts were being enabled so I decided to try a few things.
One thing I have always noticed at the start of my X log is that the internal agpgart is not used because IOMMU is enabled in the kernel. So I though Ok I'll recompile the kernel without it so I set that to work and Googled around for some info on iommu's. Basically these are hardware address redirectors. The kind of device designed to throw driver writers into confusion. During my search I came across some boot options for X86_64 kernels. It seems I didn't need to recompile my kernel I could just turn iommu off. Investigating the options further I discovered that there is an option to prevent the iommu from remapping the agp aperture. I added the following to my kernel boot line "iommu=noaperture" and set the bios to give the full 512MB of aperture.
Reboot startx and Voila' I have a working driver with glxgears at 950 fps not blisteringly fast but at least usable (I had 1200 with the xgl server).
I know someone on this forum has a direct line to one of the ATI developers so perhaps they could relay this as it is certainly a fix for 64 bit machines. Alas those with 32 bit boxes probably won't get any joy I don't think they have iommu's but I could be wrong so check your X start-up log.
Colin Close