[comp.sys.ibm.pc] What's IRQ 2 used for on an AT?

U5533129@ucsvc.ucs.unimelb.edu.au (CARDIOLOGY, R.M.H.) (05/31/90)

Can anyone out there tell me what the IRQ 2 line is used for on an AT?

I've just set up an ethernet card to use it, but when I told the supplier he
said he though it would clash with the second interupt controller.  I've been
using it for several weeks without any problem.  Have I just been lucky, or
is there a conflict there?

Many thanks,

Peter S.

kaz@legs.UUCP (Richard Kaczmarek) (06/01/90)

There are two 8259 interrupt controllers in the AT.  I believe the
master is located at address 20h and the slave is at A0h.  The master
handles IRQs 0 through 7 and the slave handles IRQs 8 through 15.  The
master "yanks" the slave via IRQ 2.

From what I understand (I'm a software weenie, not hardware), IRQ 2 is
remapped in hardware to IRQ 9.  Any hardware requests to IRQ 2 yank 
IRQ 9's line.

The processor, by virtue of the IRQ number, uses the interrupt vector 
table to call some code relating to that hardware request.  Although 
IRQ 2's vector should be used, recall it was remapped to IRQ 9; 
IRQ 9's software interrupt vector, then, is jumped to when either an IRQ 9
or a real IRQ 2 occurs.

There's a piece of BIOS code sitting where IRQ 9's interrupt vector 
is pointing which determines who _really_ yanked the line (2 or 9).  If
9, it continues on; if 2, it jumps over to 2's interrupt vector.

That's why your stuff worked.  Although you set it to 2, the motherboard's
hardware remapped it to 9.  The software there took care of it, no
problem.

-- 
Rich Kaczmarek - 			uucp: ...!uunet!ccicpg!legs!kaz
AST Research Inc.			Fax: (714) 727-9358
P. O. Box 19658				Tel: (714) 727-8621
Irvine, California 92713-9658

bmarsh@cod.NOSC.MIL (William C. Marsh) (06/01/90)

In article <749@ucsvc.ucs.unimelb.edu.au> U5533129@ucsvc.ucs.unimelb.edu.au (CARDIOLOGY, R.M.H.) writes:
>Can anyone out there tell me what the IRQ 2 line is used for on an AT?
>
>I've just set up an ethernet card to use it, but when I told the supplier he
>said he though it would clash with the second interupt controller.  I've been
>using it for several weeks without any problem.  Have I just been lucky, or
>is there a conflict there?

Actually, on the AT bus, the pin that was IRQ 2 in a PC/XT is actually called
IRQ 9.  The supplier in question is partially correct, IRQ 2 (on the original
interrupt controller) is now connected to the interrupt request pin from the
second interrupt controller (controllers are cascaded).  Some software does
not correctly handle this 'IRQ 2' on an AT, since it's really 'IRQ 9' (Though
the BIOS does help, and by default will revector IRQ 9 to where IRQ 2 would
have called, however, the software still has to unmask the proper interrupts
and send the EOI command to the correct controller).

More and more software (mouse drivers, etc) which use IRQ 2 know about this,
now that the AT has been around for five years.

Bill
-- 
Bill Marsh, Naval Ocean Systems Center, San Diego, CA
{arpa,mil}net: bmarsh@cod.nosc.mil
uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!nosc!bmarsh
"If everything seems to be coming your way, you're probably in the wrong lane."

jca@pnet01.cts.com (John C. Archambeau) (06/01/90)

U5533129@ucsvc.ucs.unimelb.edu.au (CARDIOLOGY, R.M.H.) writes:
>Can anyone out there tell me what the IRQ 2 line is used for on an AT?
>
>I've just set up an ethernet card to use it, but when I told the supplier he
>said he though it would clash with the second interupt controller.  I've been
>using it for several weeks without any problem.  Have I just been lucky, or
>is there a conflict there?

It varies.  IRQ 2 is the default IRQ for most networking boards whether it be
arcnet or ethernet.  If you haven't had a problem yet and you are using the
board regularly then it shouldn't give you any problems at all.  This is a
general rule of thumb and not an absolute though.  I have had occassions where
I've had occassions where I had to set networking boards at an IRQ other than
2.
 
     // JCA

 /*
 **--------------------------------------------------------------------------*
 ** Flames  : /dev/null                     | Small memory model only for
 ** ARPANET : crash!pnet01!jca@nosc.mil     | Unix?  Get the (*bleep*) out
 ** INTERNET: jca@pnet01.cts.com            | of here!
 ** UUCP    : {nosc ucsd hplabs!hd-sdd}!crash!pnet01!jca
 **--------------------------------------------------------------------------*
 */

tea6219@evtprp0b.UUCP (Terry E. Acker) (06/02/90)

As I understand it:  an XT class machine has only one set of interrupts,
0 through 7.  An AT has two sets, 0 through 15.  To remain compatable with
the older XTs, access to the second set of interrupts is provided through
IRQ2 of the first set.  Typical interrups in the 8 through 15 range are
hard disk controller, AT clock, and 80287.

-- 
|----------------------------------------------------------------|
|Terry Acker                                                     |
|Boeing Commercial Airplanes   ....uunet!bcstec!evtprp0b!tea6219 |
|M/S 03-87,     P.O. Box 3707,     Seattle, WA     98124-0346    |
|----------------------------------------------------------------|