Dear James, We have had trouble too with interrupts, and trying to make sure our boards each had their own interrupts. Some motherboards make it easier or harder, but here is what seems to work:
-The most important thing is to turn off everything you do not absolutely need in the kernel configuration and in the BIOS. That is, no parallel port, no built-in COM ports, no USB, no MIDI... any peripherals that you can turn off in the BIOS and that are not absolutely essential, try and get rid of. This will free up interrupts for your boards to use and for the BIOS to assign to them. -do cat /proc/pci to see what interrupts are associated with what pci devices and what positions on the bus. -play musical boards. Move one board around at a time, and see how the IRQs change. Ideally, you want to move your Ethernet board or your multi-port serial board so that it shares an interrupt with the AGP card and leaves some free for your digital IO board. With some luck, you will find a configuration that works. By all means fiddle with the PnP settings at the same time, it might help. -If you can find a more principled way of solving the problem, by all means let me know!! Good luck, Pablo Alvarez At 08:29 PM 9/25/2002 -0400, you wrote: > I'm running RTLinux 3.1/2.4.18 and am having a >system configuration problem with my target >hardware. It is a PC based system with a Celeron >processor, an AGP video card and several PCI devices. >These PCI devices include a Realtek 8139 Ethernet >card, a multi-port serial card and a digital I/O card. > > My software consists of a RT module which services >the interrupt on the digital I/O card (and also does >some polled I/O), and interfaces to a userspace >application via FIFOs. My realtime module uses >pci_find_subsys() to find the details of my I/O >card, and then I use rtl_request_irq() to install >my interrupt service routine. > > The problem that I am experiencing, is that >the motherboard's BIOS is assigning the same >IRQ to the digital I/O board and other devices >(namely the ethernet board). I wrote my ISR >to verify that my board generated the interrupt, >but apparently RTLinux does not permit sharing >of IRQs with non-RT tasks (ala SA_INTERRUPT >style), and my other devices sharing that >IRQ aren't working. > > I've attempted to change the IRQ via setpci >calls, but from what I read this only changes the >scratch area that the BIOS stuffs the data to, >not the actual settings. My experience agrees >with this, since although I change the IRQ via >setpci, lspci still shows it at the old IRQ. > > My BIOS has no settings to let me reserve >resources for a specific slot, and I can't seem >to find a way to make this work. I realize that >sharing a RT interrupt with a non-RT task would >hurt latencies, but if I could get it to work, I'd >be happy. I've fooled with Pnp/non-PnP settings, >but there doesn't seem to be anything that I >can do to guarantee a specific interrupt for my >digital I/O card. > > I'd be even happier if somebody could tell me >how to really change the digital I/O board's >IRQ via software, if it's even possible. It's a >custom board which uses a PLX Technology, Inc. >PCI <-> IOBus Bridge (rev 01) chip. > > Any ideas? > > Regards, > > Jim Evans R&D Software Engineer > [EMAIL PROTECTED] > > >_______________________________________________ >Rtl mailing list >[EMAIL PROTECTED] >http://www2.fsmlabs.com/mailman/listinfo.cgi/rtl ----------------------------------------------------------- Pablo Alvarez, Ph.D. Phone: (617) 867-0244 System Developer email: [EMAIL PROTECTED] Neural Arts 21 Bay State Rd. Boston, MA 02215, USA ----------------------------------------------------------- _______________________________________________ Rtl mailing list [EMAIL PROTECTED] http://www2.fsmlabs.com/mailman/listinfo.cgi/rtl