rearranging IRQ on startup

I am working on building new startup code for x86 platform to rearrange bios
assigned IRQ assignment.
Has anyone done this??
Are there examples anywhere that I could use as a starting point??

I am fighting through the QNX documentation on this issue and any help would
be appreciated

Thanks,

Vaughn

In article <cch6s4$qun$1@inn.qnx.com>, vhmartin@vamcointernational.com
says…

I am working on building new startup code for x86 platform to rearrange bios
assigned IRQ assignment.
Has anyone done this??

There is some utility. Try ‘setirq -vvv help’, ‘setirq -vvv list’,
‘setirq set’. Of course, any affected driver should be slayed and
restarted with new parameters. Or interrupts could be reassigned in
sysinit script before enum-devices (it will work till all boards are in
place, i.e. aren’t moved among slots).

http://ed1k.qnx.org.ru/utils/setirq/qnx6/SETIRQ.TGZ

Some BIOSes don’t have entries about fixed-IRQ built-in devices in PCI
IRQ routing table, so this version (0.92) might give up with message
“Can not trace IRQ routing”, this bug was lately fixed. I can e-mail you
the new version (0.93) – I don’t have time now for thorough testing
right now, so I didn’t put latest [untested] version on web.

Are there examples anywhere that I could use as a starting point??

If you need source code for starting point, I’m afraid I won’t make it
public anytime soon.

I am fighting through the QNX documentation on this issue and any help would
be appreciated

I don’t use anything beyond the scope of examples in documentation for
pci_xx family of functions.

My code is based on my ‘setirq’ utility for DOS (actually it is a quick
port :slight_smile:), so, it’s an bad example anyway :slight_smile:

BTW, I have a related question: there is an irqlist parameter for pci-
bios server. From documentation, it is not quite clear what exactly that
list is. Could someone explain format and everything about this
parameter? Might be I can pass something like
“-dbios irqlist=3,9,10,11” and all my PCI devices will get different IRQ
from that list? How can I control over IRQ if I want, for example,
assign IRQ 4 for particular device? Is it possible by this parameter?

Best regards,
Eduard.
[ed1k at qnx dot org dot ru]

Thanks,

Vaughn