Bruce Evans writes:
 > Possible causes of the problem:
 > 1) isa_handle_intr() claims to send specific EOIs (0x30 | irq) but
 >    actually sends non-specific ones (0x20 | garbage).  Since interrupts
 >    may be handled in non-LIFO order, this results in EOIs being sent
 >    for the wrong interrupts.  I think this just randomizes the
 >    brokenness caused by delaying sending of EOIs.  I can't see how it
 >    would result in an EOI being lost -- the right number of EOIs will
 >    have been sent after all handlers have returned.


I think that sending non-specific EOIs is the problem.  Sending
specific EOIs seem to eliminate my nic timeouts and the need to
manually feed an eoi to recover from a missing interrupt.

My question is: how does one send a specific EOI correctly?  I don't
have decent documentation for this.  Above, you seem to imply that
0x30 is a specific EOI.  That does not seem to work for me (machine
locks at boot).

Linux uses 0xe0.  According to some Tru64 docs I have,
that means "Rotate Priority on specific EOI".  According
to that same documentation, 0x60 is a specific EOI.  Both of these
appear to work just fine.   What should the alpha port use?

Thanks,

Drew





To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to