From owner-freebsd-hackers Fri Jan 19 17:42: 2 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from rios.sitaranetworks.com (rios.sitaranetworks.com [199.103.141.78]) by hub.freebsd.org (Postfix) with ESMTP id 0E56E37B400; Fri, 19 Jan 2001 17:41:42 -0800 (PST) Received: from mciworlduitoce (gw1.sitaranetworks.com [199.103.141.1]) by rios.sitaranetworks.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id CTGYBC8K; Fri, 19 Jan 2001 20:46:21 -0500 From: "Howie Xu" To: "Mike Smith" Cc: Subject: RE: ISR not triggered upon the interrupts and OS hangs Date: Fri, 19 Jan 2001 21:07:10 -0500 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 In-Reply-To: <200101200103.f0K13P600858@mass.osd.bsdi.com> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I am developing a device driver for a network processor. Using pci_cfgread(intline), I read intline 12, but after using DDB to debug the situation, I was convinced that the device actually generates inline 5. After registering my ISR with intline 5, everything is perfect now. Btw, the device was initialized, but I just didn't register the ISR on the right intline. Thanks, -Howie > -----Original Message----- > From: Mike Smith [mailto:msmith@freebsd.org] > Sent: Friday, January 19, 2001 8:03 PM > To: Howie Xu > Cc: freebsd-hackers@freebsd.org > Subject: Re: ISR not triggered upon the interrupts and OS hangs > > > > The bug was solved and it was because the BIOS advertises wrong > interrupt > > line. It should be 5, not 12. So I registered ISR for line 12, of course > > never triggered. > > Er, can you be more specific here? Where is the interrupt line > "advertised"? Is the BIOS incorrectly populating the intline register? > Are you certain that the BIOS is doing this? (It would completely violate > the PCI specification and cause the system to fail under almost every OS > in existence.) > > > On the other hand, if no one registers for an interrupt line, > how come the > > OS just hangs, is this a feature or bug? I know that Linux would disable > > that interrupt line if no driver ever registers a certain intr > line when the > > first interrupt comes in. > > FreeBSD doesn't do this, so you get an interrupt storm (PCI interrupts > are a persistent condition). It's a violation of the PCI specification > for a device to interrupt until it's initialised, so it should be > unncessary. Arguably, we could do this. > > > -- > ... every activity meets with opposition, everyone who acts has his > rivals and unfortunately opponents also. But not because people want > to be opponents, rather because the tasks and relationships force > people to take different points of view. [Dr. Fritz Todt] > V I C T O R Y N O T V E N G E A N C E > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message