PCI IRQ Sharing?

I know that PCs are suppose to support IRQ sharing these days. How exactly
does QNX know who to call when you have multiple pieces of hardware sharing
a IRQ? OR, more importantly, is there any thing special that has to be done
when attaching a interrupt in a system that shares interrupts to make sure
that the correct service routine is called?

Pete Eddy

QNX calls EVERY routine that has been attached to the IRQ.

Every interrupt handler routine MUST check its piece of hardware
to be sure it has generated the interrupt.

/------------------------------------------------------------

  • Davide Ancri - Prisma Engineering
  • email: davidea at prisma-eng dot it
    ------------------------------------------------------------/

Thanks…
Does this hold true for any GOOD OS on a Pentium style processor? I was
having some problems loading QNX on a system till I disabled a bunch of
built in hardware, and Windows was it’s knees until I did so. (I am in no
way implying that Windows is a OS, let alone a good one.)

Pete Eddy

“Pete Eddy” <peter.w.eddy@lmco.com> wrote in message
news:a27hp3$6am$1@inn.qnx.com

Thanks…
Does this hold true for any GOOD OS on a Pentium style processor?

Yes, for any OS and CPU architecture that allows sharing interrupt.
However in some legacy stuff, when no one though it would be required or
practical to shared interrupt, some code assume that have interrupt of
themselves.
This may not be always the OS fault, but the responsability of the
programmer :wink:

I was
having some problems loading QNX on a system till I disabled a bunch of
built in hardware, and Windows was it’s knees until I did so. (I am in no
way implying that Windows is a OS, let alone a good one.)

These problems are not always related to sharing interrupt :wink:

Pete Eddy

Sharing interrupts is NOT possible on an ISA buss. The ISA bus has a stupid
design flaw where the IRQ line is “pulled to ground” when the IRQ is
“Inactive”. When the IRQ goes active it is allowed to float high.

This means that if there is more than one card using the same IRQ, an IRQ
won’t reach the CPU unless ALL cards using that IRQ try to generate an IRQ
at the same time.

Live and learn IBM.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net


“Mario Charest” <goto@nothingness.com> wrote in message
news:a297mm$bm5$2@inn.qnx.com

“Pete Eddy” <> peter.w.eddy@lmco.com> > wrote in message
news:a27hp3$6am$> 1@inn.qnx.com> …
Thanks…
Does this hold true for any GOOD OS on a Pentium style processor?

Yes, for any OS and CPU architecture that allows sharing interrupt.
However in some legacy stuff, when no one though it would be required or
practical to shared interrupt, some code assume that have interrupt of
themselves.
This may not be always the OS fault, but the responsability of the
programmer > :wink:

I was
having some problems loading QNX on a system till I disabled a bunch of
built in hardware, and Windows was it’s knees until I did so. (I am in
no
way implying that Windows is a OS, let alone a good one.)


These problems are not always related to sharing interrupt > :wink:

Pete Eddy

\

“Bill Caroselli” <qtps@earthlink.net> wrote in message
news:a29i1n$iob$1@inn.qnx.com

Sharing interrupts is NOT possible on an ISA buss. The ISA bus has a
stupid
design flaw where the IRQ line is “pulled to ground” when the IRQ is
“Inactive”. When the IRQ goes active it is allowed to float high.

Not entirely true, some cards (same model) can share ISA IRQ between
themselves, this is obviously non standard.

This means that if there is more than one card using the same IRQ, an IRQ
won’t reach the CPU unless ALL cards using that IRQ try to generate an IRQ
at the same time.

Live and learn IBM.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net


“Mario Charest” <> goto@nothingness.com> > wrote in message
news:a297mm$bm5$> 2@inn.qnx.com> …

“Pete Eddy” <> peter.w.eddy@lmco.com> > wrote in message
news:a27hp3$6am$> 1@inn.qnx.com> …
Thanks…
Does this hold true for any GOOD OS on a Pentium style processor?

Yes, for any OS and CPU architecture that allows sharing interrupt.
However in some legacy stuff, when no one though it would be required or
practical to shared interrupt, some code assume that have interrupt of
themselves.
This may not be always the OS fault, but the responsability of the
programmer > :wink:

I was
having some problems loading QNX on a system till I disabled a bunch
of
built in hardware, and Windows was it’s knees until I did so. (I am
in
no
way implying that Windows is a OS, let alone a good one.)


These problems are not always related to sharing interrupt > :wink:

Pete Eddy



\

This is true, vut the card presents only a single IRQ line to the
motherboard. SO the card is doing the work. But, yes, I should have
pointed that out.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net


“Mario Charest” <goto@nothingness.com> wrote in message
news:a2amhc$d6r$1@inn.qnx.com

“Bill Caroselli” <> qtps@earthlink.net> > wrote in message
news:a29i1n$iob$> 1@inn.qnx.com> …
Sharing interrupts is NOT possible on an ISA buss. The ISA bus has a
stupid
design flaw where the IRQ line is “pulled to ground” when the IRQ is
“Inactive”. When the IRQ goes active it is allowed to float high.


Not entirely true, some cards (same model) can share ISA IRQ between
themselves, this is obviously non standard.

This means that if there is more than one card using the same IRQ, an
IRQ
won’t reach the CPU unless ALL cards using that IRQ try to generate an
IRQ
at the same time.

Live and learn IBM.


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net


“Mario Charest” <> goto@nothingness.com> > wrote in message
news:a297mm$bm5$> 2@inn.qnx.com> …

“Pete Eddy” <> peter.w.eddy@lmco.com> > wrote in message
news:a27hp3$6am$> 1@inn.qnx.com> …
Thanks…
Does this hold true for any GOOD OS on a Pentium style
processor?

Yes, for any OS and CPU architecture that allows sharing interrupt.
However in some legacy stuff, when no one though it would be required
or
practical to shared interrupt, some code assume that have interrupt of
themselves.
This may not be always the OS fault, but the responsability of the
programmer > :wink:

I was
having some problems loading QNX on a system till I disabled a bunch
of
built in hardware, and Windows was it’s knees until I did so. (I am
in
no
way implying that Windows is a OS, let alone a good one.)


These problems are not always related to sharing interrupt > :wink:

Pete Eddy





\