From owner-freebsd-current Mon Jan 10 21:53:34 2000 Delivered-To: freebsd-current@freebsd.org Received: from tinker.exit.com (exit-gw.power.net [207.151.46.196]) by hub.freebsd.org (Postfix) with ESMTP id 3505A1540A for ; Mon, 10 Jan 2000 21:53:20 -0800 (PST) (envelope-from frank@exit.com) Received: from realtime.exit.com (realtime.exit.com [206.223.0.5]) by tinker.exit.com (8.9.3/8.9.3) with ESMTP id VAA60568 for ; Mon, 10 Jan 2000 21:53:00 -0800 (PST) (envelope-from frank@exit.com) Received: (from frank@localhost) by realtime.exit.com (8.9.3/8.9.3) id VAA18103 for current@freebsd.org; Mon, 10 Jan 2000 21:52:59 -0800 (PST) (envelope-from frank) From: Frank Mayhar Message-Id: <200001110552.VAA18103@realtime.exit.com> Subject: Re: neomagic 256av/256zx audio In-Reply-To: <000d01bf5b39$f31275c0$0304020a@rings> from Cameron Grant at "Jan 10, 2000 07:11:43 am" To: gandalf@vilnya.demon.co.uk (Cameron Grant) Date: Mon, 10 Jan 2000 20:11:01 -0800 (PST) Cc: frank@exit.com Reply-To: frank@exit.com X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Cameron Grant wrote: [Charset iso-8859-1 unsupported, filtering to ASCII...] > > I did that and it still hangs. Let me see if it's for the same reason. > > Maybe *sc is getting stepped on somehow? > very odd. i have no idea what is going on. > i have committed bits, so try again in a few hours. Okay, I've rebuilt the kernel and rerun the test, again doing remote debugging. As I thought, the zeroed *sc was a quirk of that debugging session. The same hang is happening to me as is happening to the other guy with a hang at 0x600 (sorry, I forgot his name and didn't retain the email). Here's the backtrace: #0 nm_rd (sc=0xc0d83100, regno=1536, size=2) at ../../dev/sound/pci/neomagic.c:142 #1 0xc0207267 in nm_rdcd (devinfo=0xc0d83100, regno=0) at ../../dev/sound/pci/neomagic.c:232 #2 0xc020293e in ac97_init (codec=0xc0d83000) at ../../dev/sound/pcm/ac97.c:251 #3 0xc0202b16 in ac97mix_init (m=0xc073d30c) at ../../dev/sound/pcm/ac97.c:304 #4 0xc0205854 in mixer_init (d=0xc073d200, m=0xc0288c40, devinfo=0xc0d83000) at ../../dev/sound/pcm/mixer.c:53 #5 0xc0207b4b in nm_pci_attach (dev=0xc0d87280) at ../../dev/sound/pci/neomagic.c:595 #6 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87280) at device_if.c:63 #7 0xc0148b87 in device_probe_and_attach (dev=0xc0d87280) at ../../kern/subr_bus.c:1137 #8 0xc0149876 in bus_generic_attach (dev=0xc0d87480) at ../../kern/subr_bus.c:1831 #9 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87480) at device_if.c:63 #10 0xc0148b87 in device_probe_and_attach (dev=0xc0d87480) at ../../kern/subr_bus.c:1137 #11 0xc0149876 in bus_generic_attach (dev=0xc0d87b80) at ../../kern/subr_bus.c:1831 #12 0xc01cd235 in pcib_attach (dev=0xc0d87b80) at ../../pci/pcisupport.c:747 #13 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87b80) at device_if.c:63 #14 0xc0148b87 in device_probe_and_attach (dev=0xc0d87b80) at ../../kern/subr_bus.c:1137 #15 0xc0149876 in bus_generic_attach (dev=0xc0d87d80) at ../../kern/subr_bus.c:1831 #16 0xc011e1be in DEVICE_ATTACH (dev=0xc0d87d80) at device_if.c:63 #17 0xc0148b87 in device_probe_and_attach (dev=0xc0d87d80) at ../../kern/subr_bus.c:1137 #18 0xc0149876 in bus_generic_attach (dev=0xc0d86000) at ../../kern/subr_bus.c:1831 #19 0xc011e1be in DEVICE_ATTACH (dev=0xc0d86000) at device_if.c:63 #20 0xc0148b87 in device_probe_and_attach (dev=0xc0d86000) at ../../kern/subr_bus.c:1137 #21 0xc0149876 in bus_generic_attach (dev=0xc0d86080) at ../../kern/subr_bus.c:1831 #22 0xc0231579 in nexus_attach (dev=0xc0d86080) at ../../i386/i386/nexus.c:199 #23 0xc011e1be in DEVICE_ATTACH (dev=0xc0d86080) at device_if.c:63 #24 0xc0148b87 in device_probe_and_attach (dev=0xc0d86080) at ../../kern/subr_bus.c:1137 #25 0xc0149db6 in root_bus_configure () at ../../kern/subr_bus.c:2214 #26 0xc0227e58 in configure (dummy=0x0) at ../../i386/i386/autoconf.c:146 #27 0xc0133118 in mi_startup (framep=0xc0326fb4) at ../../kern/init_main.c:217 (kgdb) print /x regno $1 = 0x600 The hang is happening on the "movzwl (%ebx,%eax,1),%eax" at nm_rd+80: (kgdb) s 146 return bus_space_read_2(st, sh, regno); (kgdb) print $eip $2 = (void *) 0xc0207054 (kgdb) stepi 0xc0207056 146 return bus_space_read_2(st, sh, regno); (kgdb) stepi 198 #if defined(_I386_BUS_MEMIO_H_) (kgdb) print $eip $3 = (void *) 0xc0207060 That's this instruction: 0xc0207060 : movzwl (%ebx,%eax,1),%eax (kgdb) print /x $ebx $5 = 0x600 (kgdb) print /x $eax $6 = 0xc87d2000 $eax being 0xc87d2000 seems a little odd, but I don't remember my 80x86 assembly well enough to say whether it's right or wrong. In the meantime, I'll try Nick Sayer's trick. -- Frank Mayhar frank@exit.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message