Bug 242 - hard lock up using Xati with radeon 9800 pro
Summary: hard lock up using Xati with radeon 9800 pro
Status: CLOSED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/DDX/Xephyr (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Eric Anholt
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-29 16:45 UTC by Cameron
Modified: 2011-10-15 17:19 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
fix to dma initialization (or lack thereof) for r300 (523 bytes, patch)
2004-06-10 13:14 UTC, Eric Anholt
no flags Details | Splinter Review
Alternative: Add r300 cp microcode and initialize pseudo-dma (9.29 KB, patch)
2004-06-10 14:07 UTC, Eric Anholt
no flags Details | Splinter Review

Description Cameron 2004-02-29 16:45:56 UTC
Starting up Xati using Radeon 9800 pro, it works for about a second, I can move
my mouse for about a second as well. My system then hard locks up, I can't
ssh/ping it across my network either. So all I get is the generic white and
black speckled screen and then locks up on that screen and you'll see the
generic X cursor too.

Xvesa and Xfbdev (but I've only tried it on the vesa framebuffer) work fine for
me, however.

My system specs
Radeon 9800 pro 128MB
pentium IV 3.2 ghz
512 ddr
Asus P4C800-E deluxe motherboard.
Comment 1 Niko Mirthes 2004-06-10 05:20:05 UTC
I'm seeing a similar issue on a vanilla radeon 9600(www.sapphiretech.com) with
the Xati server. I can hear the monitor sync to the mode i'm trying to use, then
a lock up with a black screen and no keyboard input. I've noticed that Xati will
work, slowly, if i pass -dumb to it when starting the server. Xati locks up both
with and without /dev/fb0 available.

Both Xvesa and Xfbdev(with vesafb and radeonfb) work fine.

/opt/fdo/bin/Xati -dumb -dpi 96 -nolisten tcp -shadow -screen 1024x768x24x60
-mouse /dev/input/mice,5 & /opt/fdo/bin/waimea --display :0

This is the command line i'm using when trying to start the server.
Comment 2 Eric Anholt 2004-06-10 05:29:36 UTC
Xati is my fault, assign to me.
Comment 3 Niko Mirthes 2004-06-10 07:39:19 UTC
Ok, I've tried having ATIPrepareSolid and ATIPrepareCopy return false, although
i'm rather uncertain i've done things correctly. I simply substituted FALSE; at
lines 333 and 432 in xserver/hw/kdrive/ati/ati_draw.c

Regardless, i still end up with a black screen.

After returning xserver/hw/kdrive/ati/ati_draw.c to it's original state, I
redirected Xati's output to a file with and without Xati -dumb. Here are the
results, without a framebuffer device:


/opt/fdo/bin/Xati -dumb -dpi 96 -nolisten tcp -screen 1024x768x24x60 -mouse
/dev/input/mice,5 -verbose

Error opening /dev/fb0: Not a directory
Using ATI card: ATI Radeon RV350 AP (PCI) at pci:0000:02:00.0
Mode requested 1024x768x24
        0x0118: 1024x768x24 TrueColor [8:8:8:0]
        True Color red 0x18 green 0x18 blue 0xff0000
Previous modes: VBE 0x4003 BIOS 0x3
Enable VBE mode 0x118
Restore BIOS mode 0x3


/opt/fdo/bin/Xati -dpi 96 -nolisten tcp -screen 1024x768x24x60 -mouse
/dev/input/mice,5 -verbose

Error opening /dev/fb0: Not a directory
Using ATI card: ATI Radeon RV350 AP (PCI) at pci:0000:02:00.0
Mode requested 1024x768x24
        0x0118: 1024x768x24 TrueColor [8:8:8:0]
        True Color red 0x18 green 0x18 blue 0xff0000
Previous modes: VBE 0x4003 BIOS 0x3
Enable VBE mode 0x118
Restore BIOS mode 0x3
[strawman@max strawman]$ cat Xati-without-dumb.log 
Error opening /dev/fb0: Not a directory
Using ATI card: ATI Radeon RV350 AP (PCI) at pci:0000:02:00.0
Mode requested 1024x768x24
        0x0118: 1024x768x24 TrueColor [8:8:8:0]
        True Color red 0x18 green 0x18 blue 0xff0000
Screen: 24/24 depth/bpp
Previous modes: VBE 0x4003 BIOS 0x3
Enable VBE mode 0x118
Initialized pseudo-DMA

Here are some more details:

lspci | grep ATI
02:00.0 VGA compatible controller: ATI Technologies Inc RV350 AP [Radeon 9600]
02:00.1 Display controller: ATI Technologies Inc RV350 AP [Radeon 9600] (Secondary)

dmesg | grep agpgart
agpgart: Detected NVIDIA nForce2 chipset
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 64M @ 0xe0000000

Radeon 9600 128Mb
AMD Athlon XP 2500+
512Mb
Nforce2 based motherboard
Fedora Core 2 with xserver and requirements updated daily
Comment 4 Eric Anholt 2004-06-10 13:14:10 UTC
Created attachment 360 [details] [review]
fix to dma initialization (or lack thereof) for r300

Well, there's the problem (or at least, a problem).  Try the attached patch.
Comment 5 Eric Anholt 2004-06-10 14:07:04 UTC
Created attachment 362 [details] [review]
Alternative: Add r300 cp microcode and initialize pseudo-dma

Here's one to try after the 1st.
Comment 6 Niko Mirthes 2004-06-10 15:15:52 UTC
I can report success with my 9600 on fc2. As of about 5 minutes ago, Xati
(without -dumb) works without the first patch above. With the second patch,
Hunk #4 fails:

@@ -743,10 +752,6 @@
 	ATICardInfo(pScreenPriv);
 	char *mmio = atic->reg_base;
 
-	/* XXX: The Radeon pseudo-dma code is untested. */
-	if (0 && atic->is_radeon)
-		return FALSE;
-
 	ATIUploadMicrocode(atis);
 	ATIEngineReset(atis);

From fresh cvs, the same bit reads:

        ATICardInfo(pScreenPriv);
        char *mmio = atic->reg_base;

        if (atic->is_r200 || atic->is_r300)
                return FALSE;

        ATIUploadMicrocode(atis);
        ATIEngineReset(atis);

I'm going to assume dropping hunk #4 is ok. Dropping that, the 2nd patch above
applies and is working.
Comment 7 Eric Anholt 2004-06-10 16:12:41 UTC
Committed patch #362, thanks!


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.