[Linux] IRQ

From setserial manual …

The “standard MS-DOS” port associations are given below:

/dev/ttys0 (COM1), port 0x3f8, irq 4
/dev/ttys1 (COM2), port 0x2f8, irq 3
/dev/ttys2 (COM3), port 0x3e8, irq 4
/dev/ttys3 (COM4), port 0x2e8, irq 3

Due to the limitations in the design of the AT/ISA bus architecture, normally an IRQ line may not
be shared between two or more serial ports.  If you attempt to do this, one or both serial  ports
will become unreliable if you try to use both simultaneously.  This limitation can be overcome by
special multi-port serial port boards, which are designed to share multiple serial ports  over  a
single IRQ line.  Multi-port serial cards supported by Linux include the AST FourPort, the Accent
Async board, the Usenet Serial II board, the Bocaboard BB-1004, BB-1008, and BB-2016 boards,  and
the HUB-6 serial board.

The  selection of an alternative IRQ line is difficult, since most of them are already used.  The
following table lists the “standard MS-DOS” assignments of available IRQ lines:


Most people find that IRQ 5 is a good choice, assuming that  there  is  only  one  parallel  port
active in the computer.  Another good choice is IRQ 2 (aka IRQ 9); although this IRQ is sometimes
used by network cards, and very rarely VGA cards will be configured to use IRQ 2  as  a  vertical
retrace interrupt.  If your VGA card is configured this way; try to disable it so you can reclaim
that IRQ line for some other card.  It’s not necessary for Linux and most  other  Operating  sys-

The  only  other  available  IRQ  lines are 3, 4, and 7, and these are probably used by the other
serial and parallel ports.  (If your serial card has a 16bit card edge  connector,  and  supports
higher interrupt numbers, then IRQ 10, 11, 12, and 15 are also available.)

On AT class machines, IRQ 2 is seen as IRQ 9, and Linux will interpret it in this manner.

IRQ’s  other  than  2  (9),  3,  4,  5, 7, 10, 11, 12, and 15, should not be used, since they are
assigned to other hardware and cannot, in general, be changed.  Here are the  “standard”  assign-

IRQ  0      Timer channel 0
IRQ  1      Keyboard
IRQ  2      Cascade for controller 2
IRQ  3      Serial port 2
IRQ  4      Serial port 1
IRQ  5      Parallel port 2 (Reserved in PS/2)
IRQ  6      Floppy diskette
IRQ  7      Parallel port 1
IRQ  8      Real-time clock
IRQ  9      Redirected to IRQ2
IRQ 10      Reserved
IRQ 11      Reserved
IRQ 12      Reserved (Auxillary device in PS/2)
IRQ 13      Math coprocessor
IRQ 14      Hard disk controller
IRQ 15      Reserved

This entry was posted in Linux, Linuxamp;FreeBSD. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *