From owner-freebsd-hackers Wed Jul 1 20:41:01 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id UAA22634 for freebsd-hackers-outgoing; Wed, 1 Jul 1998 20:41:01 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from implode.root.com (implode.root.com [198.145.90.17]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id UAA22628 for ; Wed, 1 Jul 1998 20:40:59 -0700 (PDT) (envelope-from root@implode.root.com) Received: from implode.root.com (localhost [127.0.0.1]) by implode.root.com (8.8.5/8.8.5) with ESMTP id UAA20715; Wed, 1 Jul 1998 20:40:24 -0700 (PDT) Message-Id: <199807020340.UAA20715@implode.root.com> To: "Larry S. Lile" cc: Mike Smith , hackers@FreeBSD.ORG Subject: Re: Problems with irq 9(2)? In-reply-to: Your message of "Wed, 01 Jul 1998 23:16:46 EDT." From: David Greenman Reply-To: dg@root.com Date: Wed, 01 Jul 1998 20:40:24 -0700 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >On Wed, 1 Jul 1998, David Greenman wrote: > >> >Anyway, the card has a register (isrp) that has a bit that shows whether >> >or not the card can interrrupt the 8259 on its irq line. This works for >> >the first interrupt but as soon as I enter an spl loop that bit goes >> >high, saying he can't interrupt, and never drops even after exiting the >> >spl loop. >> >> Sounds to me like you aren't acking the interrupt in your ISR. > >Could I get you to take a peek at whats going on? The adapter spec is >at (or at least the pages on the status registers) >http://ppdbooks.pok.ibm.com:80/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/BK8R1001 >/1.4.9.4 >and the code for the driver is at http://anarchy.stdio.com (or you can get >to it at http://www.jurai.net/~winter/tr/tr.html). I have been working >from the MACH source and I can't see what i'm doing wrong. If I get some free time, yes. >Whats got me really confused is bit 1 in the ISRP high (even) which >is called User interrupt blocked? And worst is I can't seem to >reset it. Typically, one resets the bit by setting it. In other words, you read the interrupt status register into a variable and then write the variable out to the ISR to 'ack' whatever interrupt events occured. The you look at the variable to determine what happend and what to do about it. Then when you've handled all of the events, you loop back to the top to see if any new events occured. -DG David Greenman Co-founder/Principal Architect, The FreeBSD Project To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message