Computer Irq Assignments

On By In 1

12/25/98

 

The base I/O addresses are reserved areas of main memory where control data is stored for a device. In the case of the Floppy drive it reserves 8 bytes (Two 32 bit memory words) starting at location 3F0(hex) and ending at address 3F7(hex) as it's I/O table.

The data stored in this table is :

COMMAND (read/write/seek) What type of operation do you want the diskette to perform on this I/O command?

MEMORY START ADDRESS (The starting location where the data is to be written from or read to in memory).

CYL, HD, SEC (The physical location on the diskette where you want to start the read/write operation.)

SECTOR COUNT (How many sectors to read or write for this operation.)

The floppy driver stores this data in the appropriate bytes of the table and then issues a START I/O command to the controller. The controller then accesses these two words to determine what I/.O operation to perform. When finished it will generate an IRQ-6 indicating that it has completed the last I/O operation it was given.

If you assign the same base I/O address to two separate devices, problems will occur, as one of the devices will not be able to decode a table setup for another device. Devices also often write return status data back into the base I/.O address for the driver to determine if there were any errors detected during the operation. When IRQ-6 is received the driver reads these two locations and determines if there is an error flag set. If so error message will be displayed. If no errors are encountered then the floppy is now ready for another operation and it starts all over again.

Paul

Archived from groups: alt.comp.periphs.mainboard.asus (More info?)

In article <10h164bfjmevtd3@corp.supernews.com>, "G.L. Cross"
<gordoncross6663@NOSPAM.charter.net> wrote:

> I've been building my own systems for about five years now but one
> thing has always left me guessing as to exactly what information
> is being conveyed by the tables that appear in every MB manual I've
> seen regarding the expansion slots and which ones share IRQs. Here
> is the table from the MB manual and it seems to do nothing but
> confuse me so I am here hoping someone can explain exactly what
> this information means:
>
> INT A INT B INT C
> INT D
> -------------------------------------------------------------------
> ------
> PCI slot 1 --- --- ---
> used
> PCI slot 2
> red --- --- ---
> PCI slot 3 ---
> sed --- ---
> PCI slot 4 --- ---
> hared ---
> PCI slot 5
> red --- --- ---
> Gigabit LAN --- ---
> hared ---
> AGP slot (8x)
> --- --- ---
>
> OK here's the thing, every other time I've seen these tables they
> have had all the columns filled in. So my questions are: How does
> INT A, INT B, INT C, and INT D relate to the IRQ asigned to a device
> in a particular slot. And what do they mean by "used" (I hope this
> does not mean I can't install a card into PCI slots 1 and 3). And
> finally, how do I determine which of these are *really* "shared"
> slots (I sure hope the AGP isn't shared with slots 2 and 5). And
> one final question: How do I determine if a certain device driver
> supports IRQ sharing?
>
> I want to configure this system with Windows-XP PRO and the
> following add-on cards:
>
> (1) ASUS V9180 Magic GeForce MX 440 8X AGP (for primary display)
> (2) Visiontek GeForce4 MX420 PCI (for second display)
> (3) ATI TV Wonder Value Edition PCI (TV-Tuner and Video Capture)
> (4) 3Com/US Robotics 56Kbps VOICE/FAX modem PCI (FAX & digital
> answering machine)
>
> (5) ADI AD1888 SoundMAX 6-channel audio with S/PDIF-out interface
> (onboard)
> (6) Marvell 88E8001 Gigabit LAN adapter (onboard)
>
> -----
> You may send e-mail if you wish provided it is NOT SPAM. To decode
> my valid E-mail address, you will need to remove the <NOSPAM.> and
> the <666>. I had to get complicated as spammers are now doing the
> obvious removal of the word "NOSPAM" to compile their lists of
> e-mails...
>
> - G.L. Cross

INT A INT B INT C INT D
PCI slot 1 ‹ ‹ ‹ used
PCI slot 2 shared ‹ ‹ ‹
PCI slot 3 ‹ used ‹ ‹
PCI slot 4 ‹ ‹ shared ‹
PCI slot 5 shared ‹ ‹ ‹
Gigabit LAN ‹ ‹ shared ‹
AGP slot shared ‹ ‹ ‹

> How does INT A, INT B, INT C, and INT D relate to the IRQ asigned
> to a device in a particular slot.

I have a sneaking suspicion that this table only represents about
1/4 of all the wiring information on the motherboard. One of the
chipset chips has an interrupt controller on it, and the mislabelled
four columns above represent the path the four wires take.

Now, the thing is, a PCI card has four interrupt signals on it. A
primary and three non-primary signals.

From the PCI 2.2. spec:

INTA# Interrupt A is used to request an interrupt.
INTB# Interrupt B is used to request an interrupt and only
has meaning on a multi-function device.
<< and so on for INTC# and INTD# >>

What I think the Asus table is showing above, is how only the INTA#
pin on each slot, is connected to the four wires streaming from the
interrupt controller. So, in fact, the Asus table doesn't show how
a multi-function device would be sharing interrupts.

The normal practice in the PCI world is to "swizzle" the connections.
This is a regular diagonal connection pattern, intended to equalize
the interconnect. It is something like this. (Note: Example truncated
to fit onto one line each.)

S1 INTA# --> S2 INTB# --> S3 INTC# --> S4 INTD# --> S5 INTA# --> PIRQA#
S1 INTB# --> S2 INTC# --> S3 INTD# --> S4 INTA# --> S5 INTB# --> PIRQB#
S1 INTC# --> S2 INTD# --> S3 INTA# --> s4 INTB# --> S5 INTC# --> PIRQC#
S1 INTD# --> S2 INTA# --> S3 INTB# --> S4 INTC# --> S5 INTD# --> PIRQD#

The Asus table is basically only communicating what is happening
to INTA# on each card (the primary interrupt). In my swizzle example
above, slot1 and slot5 share a physical interrupt line, namely PIRQA#.
Asus would mark slot1 and slot5 as "sharing" that signal. Since the
PIRQB# signal only has Slot4's INTA# connected to it, Asus would use
the word "used" when they should be using the word "unique" or
"unshared" instead.

To see the swizzle pattern for yourself, see pg.22 of this schematic,
and notice how the signals change in an orderly fashion for the INTx#'s
http://www.intel.com/design/chipsets/designex/BXDPDG10.PDF

> And what do they mean by "used" (I hope this
> does not mean I can't install a card into PCI slots 1 and 3).

Translate "used" to "unshared" or "unique". Slot 1 or slot 3 is an
excellent location for a Sound Card with a poorly written interrupt
handler, on your A7V880.

> And finally, how do I determine which of these are *really* "shared"
> slots (I sure hope the AGP isn't shared with slots 2 and 5).

But the AGP _is_ sharing with slot 2 and slot 5. When physical signals
are shared, the numeric IRQ assigned by the OS has to be the same for
all the devices sharing that signal. Each handler executes sequentially
until the PIRQ signal is found to be deasserted - at least that is
my understanding of how sharing works.

------------------
Example from Abxzone - P4C800 Deluxe (3C940 Lan on original deluxe)
http://abxzone.com/forums/showthread.php?t=48495

A B C D E F G H
PCI slot 1 ‹ ‹ ‹ ‹ ‹ shared ‹ ‹
PCI slot 2 ‹ ‹ ‹ ‹ ‹ ‹ shared ‹
PCI slot 3 ‹ ‹ ‹ ‹ ‹ ‹ ‹ shared
PCI slot 4 ‹ ‹ ‹ ‹ shared ‹ ‹ ‹
PCI slot 5 ‹ ‹ ‹ ‹ ‹ shared ‹ ‹
AGP Pro shared used ‹ ‹ ‹ ‹ ‹ ‹
USB HC0 shared ‹ ‹ ‹ ‹ ‹ ‹ ‹
USB HC1 ‹ ‹ ‹ used ‹ ‹ ‹ ‹
USB HC2 ‹ ‹ used ‹ ‹ ‹ ‹ ‹
USB HC3 shared ‹ ‹ ‹ ‹ ‹ ‹ ‹
USB 2.0 ‹ ‹ ‹ ‹ ‹ ‹ ‹ shared
LAN ‹ ‹ ‹ ‹ ‹ ‹ shared ‹
SATA ‹ ‹ ‹ ‹ ‹ ‹ ‹ shared
1394 ‹ ‹ ‹ ‹ shared ‹ ‹ ‹

"Using the onboard LAN. Using USB. Disabled the firewire. Disabled
on-board sound. Firewire card in PCI-3. Audigy1 in Slot #4. I have
the Radeon on the AGP."

I think his Audigy is actually in Slot 2. Firewire in Slot 3.

Resulting Windows IRQ assignment - OCRed to table below:
http://abxzone.com/forums/attachment.php?attachmentid=4677

Resource Device status
IRQ 0 System timer OK
IRQ 1 Standard 101/102-Key or Microsoft Natural PS/2 Keyboard OK
IRQ 3 Communications Port (COM2) OK
IRQ 4 Communications Port (COMl) OK
IRQ 6 Standard floppy disk controller OK
IRQ 8 System CMOS/real time clock OK
IRQ 9 Microsoft ACPI-Compliant System OK
IRQ 10 Intel(R) 82801EB SMBus Controller - 24D3 OK
IRQ 12 Microsoft PS/2 Mouse OK
IRQ 13 Numeric data processor OK
IRQ 14 Primary IDE Channel OK
IRQ 15 Secondary IDE Channel OK
IRQ 16 RADEON 9700 PRO OK
IRQ 16 Standard Universal PCI to USB Host Controller OK
IRQ 16 Standard Universal PCI to USB Host Controller OK
IRQ 18 Standard Universal PCI to USB Host Controller OK
IRQ 19 Standard Universal PCI to USB Host Controller OK
IRQ 21 Promise Technology Inc. Ultra IDE Controller OK
IRQ 22 3Com Gigabit LOM (3C940) OK
IRQ 22 Creative SB Audigy OK
IRQ 23 Standard Enhanced PCI to USB Host Controller OK
IRQ 23 OHCI Compliant IEEE 1394 Host Controller OK
IRQ 23 Texas Instruments OHCI Compliant IEEE 1394 Controller OK

Things to note:

1) The Promise controller on IRQ 21, suggest the Asus table is wrong
and the Promise is actually on wire "F".
2) IRQ 22 occurs twice, and must match, because 3C940 and Audigy are
sharing via Slot 2.
3) IRQ 23 shows two Firewire devices and a USB2. Notice again how the
Asus table is wrong. Maybe the SATA and onboard Firewire should be
switched in the Asus table ?
4) Standard assignments are IRQ0-IRQ15. PCI devices start above those.
IRQ16 to 19 seem to correspond to wires A thru D. IRQ20 to 23 seem
to correspond to wires E thru H. The five PCI slots can only use
IRQ20 to 23. Notice that the P4C800 Deluxe interrupt controller
has eight wires, and yours has four wires. It doesn't change
the fact that both boards use sharing.

Moral of the story ? Load up the system with hardware first, then
look in the Device Manager or use a utility like Sandra, to examine
the IRQ assignments. Mark up the manual to reflect the real wiring.
Reassign cards, according to your knowledge of cards known not to
play nice. In my readings on the newsgroup so far, only a sound
card really needs a private IRQ.

> one final question: How do I determine if a certain device driver
> supports IRQ sharing?

Devices with high data thruput, or real time requirements, may have
data overruns, data underruns, cause havoc via delays or freezes etc.
If your system is misbehaving, start looking...

No hardware manufacturer is going to admit they have a problem.
Sharing is a requirement, after all, and they cannot admit to
such a shortcoming.

> I want to configure this system with Windows-XP PRO and the
> following add-on cards:
>
> (1) ASUS V9180 Magic GeForce MX 440 8X AGP (for primary display)
> (2) Visiontek GeForce4 MX420 PCI (for second display)
> (3) ATI TV Wonder Value Edition PCI (TV-Tuner and Video Capture)
> (4) 3Com/US Robotics 56Kbps VOICE/FAX modem PCI (FAX & digital
> answering machine)

INT A INT B INT C INT D
PCI slot 1 ‹ ‹ ‹ used
PCI slot 2 shared ‹ ‹ ‹
PCI slot 3 ‹ used ‹ ‹
PCI slot 4 ‹ ‹ shared ‹
PCI slot 5 shared ‹ ‹ ‹
Gigabit LAN ‹ ‹ shared ‹
AGP slot shared ‹ ‹ ‹

You are using onboard sound, so no worry about finding a unique
signal for a sound card. Modem card probably has a data pump
(non-Winmodem), so will be interrupting when a FIFO of data bytes
is ready. TV Tuner might be pumping a fair amount of data on the
PCI bus, but doesn't have a good reason to be using its interrupt
line. Here are my choices:

AGP MX440 AGP (low power card - cooling not an issue)
Slot1 MX420 PCI (higher priority than other PCI slots)
Slot2
Slot3 USR modem card (unique IRQ, no sharing, low latency)
Slot4 ATI TV Wonder Tuner PCI
Slot5

I don't really know if the TV Wonder uses interrupts. Once slot1
and slot3 are assigned, the other slots kinda stink. Sharing with
the AGP card doesn't sound like fun. Sharing with the LAN would
be bad practice as well, only because the interrupt rate on the
LAN could be high. I placed the card in slot4, on the assumption
that with the modem, you might not be using the LAN. If you are
using the LAN, do a file transfer from another PC, with the
TV Tuner running or not running, and see if there is a performance
difference. Performance tuning will help you decide on a final
placement.

If the MX440 runs hotter than I think it does, then try swapping
the USR modem card and the MX420. If the USR card is smaller than
the MX420, maybe it will leave more room for air movement. When
I refer to cooling issue, I mean if there is a FX5900 or an ATI
9800 in the AGP slot, you might not want a PCI card in slot 1.
I don't know what I'd do if that was the case.

Also, if you want a real laugh, download a few more Asus manuals.
For example, the PC-DL is a desktop server board, and uses an 875
Northbridge, like the P4C800 Deluxe example above. Look how the
tech writer did the table:

INTA# INTB# INTC# INTD#
PCI slot 1 IRQ_F# IRQ_G# IRQ_H# IRQ_F#
PCI slot 2 IRQ_G# IRQ_H# IRQ_E# IRQ_F#
PCI slot 3 IRQ_G# IRQ_E# IRQ_F# IRQ_F#
PCI slot 4 IRQ_E# IRQ_F# IRQ_G# IRQ_F#
PCI slot 5 IRQ_F# IRQ_G# IRQ_H# IRQ_F#
AGP Pro IRQ_A# IRQ_B# ‹ ‹
Onboard USB1 IRQ_A# ‹ ‹ ‹
Onboard USB2 IRQ_D# ‹ ‹ ‹
Onboard USB3 IRQ_C# ‹ ‹ ‹
Onboard USB4 IRQ_A# ‹ ‹ ‹
Onboard USB2.0 IRQ_H# ‹ ‹ ‹
Onboard LAN IRQ_F# ‹ ‹ ‹
Onboard 20378R IRQ_H# ‹ ‹ ‹
Onboard IDE IRQ_C#
Onboard ICH5R IRQ_C# ‹ ‹ ‹
Onboard 1394 IRQ_E# ‹ ‹ ‹
Onboard AD1985 IRQ_B#

Notice how in this example, the table attempts to show all the
wiring. You have to rearrange the info from the first column, to
make a table similar to the ones found in other Asus desktop
motherboard manuals. Also note, how even the AC97 Codec is shown
to have an interrupt, although other manuals never show this.
The swizzle pattern for the PCI slots, is, in a word, nuts.

Every manual I read, just creates more mysteries.

HTH,
Paul

0 comments

Leave a Reply

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