From owner-freebsd-stable Tue Apr 18 9:12:47 2000 Delivered-To: freebsd-stable@freebsd.org Received: from tinker.exit.com (exit-gw.power.net [207.151.46.196]) by hub.freebsd.org (Postfix) with ESMTP id BBED637B59A; Tue, 18 Apr 2000 09:12:39 -0700 (PDT) (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 JAA01777; Tue, 18 Apr 2000 09:12:38 -0700 (PDT) (envelope-from frank@exit.com) Received: (from frank@localhost) by realtime.exit.com (8.9.3/8.9.3) id JAA01805; Tue, 18 Apr 2000 09:12:37 -0700 (PDT) (envelope-from frank) From: Frank Mayhar Message-Id: <200004181612.JAA01805@realtime.exit.com> Subject: Re: Sound Blaster Live! 4.0 In-Reply-To: <000901bfa880$8e4ceeb0$0304020a@NENYA> from Cameron Grant at "Apr 17, 2000 04:21:08 pm" To: Cameron Grant Date: Tue, 18 Apr 2000 09:12:37 -0700 (PDT) Cc: frank@exit.com, Chris Richards , freebsd-stable@FreeBSD.ORG, cg@FreeBSD.ORG Reply-To: frank@exit.com Organization: Exit Consulting X-Copyright0: Copyright 2000 Frank Mayhar. All Rights Reserved. X-Copyright1: Permission granted for electronic reproduction as Usenet News or email only. X-Mailer: ELM [version 2.4ME+ PL68 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Cameron Grant wrote: > to be honest, i have no idea why this happens. if the linux driver also > behaves in this way then the matter needs to be taken up with creative as > that code is the only available programming info. Well, I checked with Creative and was directed to http://developer.soundblaster.com which had a link to http://opensource.creative.com/ from which I went to their bugzilla database. Turns out this has been found and fixed in their driver. It looks like a hack to me, but the patch was in their main.c rev 1.63 and involved, apparently, initializing all the card page table entries "to point to themselves so that when illegal memory access occurs, the system won't hang" (quoted from the patch in Bugzilla). The code in question is in main.c in function hw_init() around line 473: for (pagecount = 0; pagecount < (MAXPAGES - RESERVED); pagecount++) ((u32 *) card->virtualpagetable->virtaddx)[pagecount] = (card->silentpage->busaddx * 2) | pagecount; Cameron, I hope you know how to interpret this in terms of the FreeBSD emu10k1.c (I certainly don't). It apparently _does_ fix the NMIs seen in Linux, though. -- Frank Mayhar frank@exit.com http://www.exit.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message