Changing Irq by using QNX setting?


I’m using ONX4. I have irq conflict problem. I wrote a simple code to change irq. It seems working. But I could not change Interrupt Pin No and we can not get interrupt from the pci after changing the irq.
I checked the irq change by using “pci -v”. Is there an official way to change irq by using QNX OS settings or another way?
Thank you very much…
(Bios only can reserve irq but not change)
My code is

I tried to change interrupt no 8 to 11 and interrupt pin no 0x0a to 0x0b
before Irq change, pci -v result is;
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 8
CPU Interrupt = 8h

After change, pci -v result is;
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 11
CPU Interrupt = bh

There is no standard method that I know of. It’s too hardware depend and QNX4 doesn’t provide any sort of abstraction layer and QNX4 relies on the BIOS handling these thing.

What do you mean by “conflict” PCI devices can share interrupt.

If I do not change the interrupt number, pc is halted after keyboard usage.

What makes you thing its an interrupt problem? Is the keyboard USB?

In fact, while debugging, connection is lost after interrupt came. And we need to reset the qnx.
Keyboard connection is ps2.

PCI device driver is our own. Maybe we made a mistake in driver.

Can PCI devices share interrupt? (are you sure)
Could you give me an advice to detect the error?

Thank you very much…

You driver must assume that the interrupt is not intended for the hardware it’s handling.

100% sure.

Check with sin ir what program is using what interrupt, post results here.

I couldn’t see “ir” option in “sin”. It may be “sin -th” ?

no it`s “sin ir” try it

Hi, I think I made mistake :cry: . I’m using QNX6.4.
I added the output “sin ir” which is same as “sin”.
Thanks for your concern.

Yes you are in a QNX4 forum. Try pidin ir instead. Does the PC crash only when you use the keyboard AND start your application? If so can you post the code for your ISR?

I think this is not about keyboard. TCPIP connection is lost.
I added an attachment for “pidin ir”.

There is no attachement. You also did not mention if the crash only occurred when your program is running.

PC is only crashed when our program got an interrupt from driver.


As I also mentioned please post the code to your interrupt handler.

This code works fine with one pci serial card on computer.

Your code doesn’t CLEAR the cause of the interrupt. Where do you get m_boardNumber from? For efficiency you should loop until there are no more interrupt coming from the interrupt.

There is another function is used to enable the interrupts which is done by writing register.



wait event

Please re-read my previous post.

Hello, I need to know how to change Hardware IRQ’s i got my brothers computer with 6 Devices on IRQ 7. how do i fix this?

642-845 questions | 642-825 questions | 642-812 questions