Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Jul 1998 20:09:41 -0700
From:      David Greenman <dg@root.com>
To:        "Larry S. Lile" <lile@stdio.com>
Cc:        Mike Smith <mike@smith.net.au>, hackers@FreeBSD.ORG
Subject:   Re: Problems with irq 9(2)? 
Message-ID:  <199807020309.UAA19925@implode.root.com>
In-Reply-To: Your message of "Wed, 01 Jul 1998 15:58:26 EDT." <Pine.SUN.3.91.980701155042.13549E-100000@heathers2.stdio.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>> The short answer is that you can't "block" ISA interupts, so the 
>> problem you're seeing has to be related to how you're talking to the 
>> card.  The only confirmation of interrupt delivery that the card will 
>> ever get has to come from your code.
>
>I thought that was the entire purpose behind splxxx(),  It held off
>the 8259's until the kernel could process the next interrupt.  *confused*

   Sort of. It has little to do with the 8259, however. The purpose of spl*
is to prevent reentrancy into interrupt handlers and to protect critical
sections in other parts of the kernel.

>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.

>Maybe I am confused about how 8259's work, it has been a long time
>since I played with that level of the machine, and then it was only for
>college class under dos.

   You don't need to know how the 8259 works to write a device driver.

-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



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