Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Nov 2007 14:08:01 +0300
From:      "Vladimir Timofeev" <vovkasm@gmail.com>
To:        "Lionel Flandrin" <simias.n@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: X crash with radeon driver - AGP broken?
Message-ID:  <c26b523e0711250308l4ead492p572c5e6413532a1e@mail.gmail.com>
In-Reply-To: <86oddi3h0o.fsf@simias.hd.free.fr>
References:  <86lk9fetff.fsf@simias.hd.free.fr> <20071103160137.GA1182@hurx.thc> <86oddi3h0o.fsf@simias.hd.free.fr>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
Hi, if u have nforce2 chipset on motheboard side, try this patch...
with this I can run X, but not test more...

How to patch:
cd /usr/src
patch < latest-agp_nvidia.c.diff

my conf: Abit NF7 motheboard, Radeon 9200 video, fbsd 7.0-BETA3, X
Server 1.4.0 (from /var/log/Xorg.0.log)

On Nov 25, 2007 10:45 AM, Lionel Flandrin <simias.n@gmail.com> wrote:
> Christian Jachmann <Jachmann@unitix.org> writes:
>
> > Sat, Nov 03, 2007 at 07:26:12AM +0100, Simias :
> >>
> >> Hi
> >>
> >> Since I csup'd 7.0-BETA1, my computer reboots when I startx with the
> >> (open source) radeon driver -- I also tried with a fresh -CURRENT with the
> >> same result.
> >>
> >> My radeon is a 9600 Pro.
> >>
> >> Any clue ?
> >
> > Same here:
> > jachmann@hurx:~>Xorg -version
> >
> > X.Org X Server 1.4.0
> > Release Date: 5 September 2007
> > X Protocol Version 11, Revision 0
> > Build Operating System: FreeBSD 7.0-BETA2 i386
> > Current Operating System: FreeBSD hurx.thc 7.0-BETA2 FreeBSD 7.0-BETA2 #0: Fri N
> > ov  2 21:15:25 CET 2007     root@hurx.thc:/usr/obj/usr/src/sys/GENERIC i386
> > Build Date: 02 November 2007  10:02:24PM
> >
> > crashes.
> >
>
> I still have the same problem after several Xorg and freeBSD update,
> it's becomming really annoying. I forgot to post the kgdb trace:
>
> ,----
> | (kgdb) where
> | #0  doadump () at pcpu.h:195
> | #1  0xc056c934 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
> | #2  0xc056cb34 in panic (fmt=Variable "fmt" is not available.
> | ) at /usr/src/sys/kern/kern_shutdown.c:563
> | #3  0xc0741918 in vm_fault (map=0xc1054000, vaddr=3825565696, fault_type=1 '\001', fault_flags=0) at /usr/src/sys/vm/vm_fault.c:275
> | #4  0xc079bcfa in trap_pfault (frame=0xe6592a64, usermode=0, eva=3825565696) at /usr/src/sys/i386/i386/trap.c:774
> | #5  0xc079c6c2 in trap (frame=0xe6592a64) at /usr/src/sys/i386/i386/trap.c:463
> | #6  0xc07862db in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> | #7  0xc07aee97 in agp_nvidia_flush_tlb (dev=0xc3bade00, offset=-1011656432) at /usr/src/sys/pci/agp_nvidia.c:377
> | #8  0xc06eec9f in agp_generic_bind_memory (dev=0xc3bade00, mem=0xc41287c0, offset=0) at agp_if.h:76
> | #9  0xc06ee0f1 in agp_bind_memory (dev=0xc3bade00, handle=0xc41287c0, offset=0) at agp_if.h:128
> | #10 0xc4260b7f in ?? ()
> | #11 0xc3bade00 in ?? ()
> | #12 0xc41287c0 in ?? ()
> | #13 0x00000000 in ?? ()
> | #14 0x0000014a in ?? ()
> | #15 0xc3c8acd8 in ?? ()
> | #16 0xc3c8ac00 in ?? ()
> | #17 0xc3c8acd8 in ?? ()
> | #18 0x00000000 in ?? ()
> | #19 0xe6592b6c in ?? ()
> | #20 0xc4260c61 in ?? ()
> | #21 0xc3c8ac00 in ?? ()
> | #22 0xe6592b5c in ?? ()
> | #23 0xc4269b5d in ?? ()
> | #24 0x0000015b in ?? ()
> | #25 0xc41287c0 in ?? ()
> | #26 0x00000000 in ?? ()
> | #27 0xc426b1b0 in ?? ()
> | #28 0xc4260c10 in ?? ()
> | #29 0xe6592bc4 in ?? ()
> | #30 0xc4265cd4 in ?? ()
> | #31 0xc4118e00 in ?? ()
> | #32 0x80086436 in ?? ()
> | #33 0xc3e2d7e0 in ?? ()
> | #34 0x00000043 in ?? ()
> | #35 0xc3f0a000 in ?? ()
> | #36 0x00000444 in ?? ()
> | #37 0xe6592bc4 in ?? ()
> | #38 0x00000000 in ?? ()
> | #39 0xc3c8acd8 in ?? ()
> | #40 0xc3f0a000 in ?? ()
> | #41 0x00000043 in ?? ()
> | #42 0xc3e2d7e0 in ?? ()
> | #43 0x80086436 in ?? ()
> | #44 0xc4118e00 in ?? ()
> | #45 0x00000444 in ?? ()
> | #46 0x00000036 in ?? ()
> | #47 0x00000000 in ?? ()
> | #48 0xc4118e00 in ?? ()
> | #49 0x80086436 in ?? ()
> | #50 0xc40f11b0 in ?? ()
> | #51 0xe6592be4 in ?? ()
> | #52 0xc053aeea in giant_ioctl (dev=0x0, cmd=3864603484, data=0xc4269b5d "/usr/src/sys/modules/drm/drm/../../../dev/drm/drm_agpsupport.c",
> |     fflag=347, td=0xc41287c0) at /usr/src/sys/kern/kern_conf.c:349
> | Previous frame inner to this frame (corrupt stack?)
> `----
>
> on FreeBSD simias.hd.free.fr 7.0-BETA3 FreeBSD 7.0-BETA3 #0: Fri Nov 16
> 05:00:51 CET 2007
> root@simias.hd.free.fr:/usr/obj/usr/src/sys/HOMEBOX_ATHLON i386
>
> Thanks in advance,
> --
> Lionel
>
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
>

[-- Attachment #2 --]
--- sys/pci/agp_nvidia.c	2007-11-08 23:29:53.000000000 +0300
+++ sys/pci/agp_nvidia.c	2007-11-25 13:27:03.000000000 +0300
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/agp_nvidia.c,v 1.11.2.1 2007/11/08 20:29:53 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/agp_nvidia.c,v 1.12 2007/10/30 22:09:16 jhb Exp $");
 
 /*
  * Written using information gleaned from the
@@ -346,7 +346,7 @@
 {
 	struct agp_nvidia_softc *sc;
 	u_int32_t wbc_reg, temp;
-	volatile u_int32_t *ag_virtual;
+	u_int32_t off, step;
 	int i;
 
 	sc = (struct agp_nvidia_softc *)device_get_softc(dev);
@@ -370,13 +370,12 @@
 				"TLB flush took more than 3 seconds.\n");
 	}
 
-	ag_virtual = (volatile u_int32_t *)sc->gatt->ag_virtual;
-
 	/* Flush TLB entries. */
-	for(i = 0; i < 32 + 1; i++)
-		temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)];
-	for(i = 0; i < 32 + 1; i++)
-		temp = ag_virtual[i * PAGE_SIZE / sizeof(u_int32_t)];
+	step = PAGE_SIZE / sizeof(u_int32_t);
+	for(off = 0; off < sc->gatt->ag_entries; off+=step)
+		temp = sc->gatt->ag_virtual[off];
+	for(off = 0; off < sc->gatt->ag_entries; off+=step)
+		temp = sc->gatt->ag_virtual[off];
 
 	return (0);
 }
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c26b523e0711250308l4ead492p572c5e6413532a1e>