Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jan 2001 21:07:10 -0500
From:      "Howie Xu" <hxu@rios.sitaranetworks.com>
To:        "Mike Smith" <msmith@freebsd.org>
Cc:        <freebsd-hackers@freebsd.org>
Subject:   RE: ISR not triggered upon the interrupts and OS hangs 
Message-ID:  <KEEELJBACBIAGFBCPJMFIECCCFAA.hxu@rios.sitaranetworks.com>
In-Reply-To: <200101200103.f0K13P600858@mass.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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




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