Interrupt Handler not catching IRQs anymore - Debian etch \Celeron 400MHz Via Chipset
Abstract:
I wrote an Interrupt Handler and Interrupt Service Routine for a custom board a couple of weeks ago. I manage to make the ISR work. Yesterday (after two weeks of not working with IRQs) I had an small accident on my custom board IRQ generator. Now, I cannot catch interrupts anymore. I do not know if my PIC (or PC hardware) is broken (everything seems to be ok), or just my board (it seems to be working fine, though), or is it something I changed in software but I do not remember. The details follow:
I am working on a custom board ISA Board, which is attached to my computer via PC/104. The computer is relatively new, so to control the ISA port it uses a PCI-ISA Bridge. A few weeks ago, I wrote an interrupt handler to manage the IRQs coming from that board. I am using a RTAI (real-time application interface), which has it's own way of managing IRQs. After some work, it manage to catch the interrupts and do some useful work with them. I am still on the experimental stage of my work, so after seeing the Interrupt Handler worked, I decided to do some other stuff and forget about the IRQs. That was almost two weeks ago.
Yesterday I wanted to start working again on interrupts. Unfortunately, the signal generator (with which I was simulating the IRQs) made one of the chips burn (too much voltage, my fault!). I change the chip, the hardware seems to be working fine, just as before the accident. I try running the programs again but now they do not catch the interrupts. A look on $ cat /proc/interrupts:
CPU0
0: 452491 XT-PIC-XT timer
1: 1051 XT-PIC-XT i8042
2: 0 XT-PIC-XT cascade
3: 0 XT-PIC-XT isadev
...
previously I noticed that the interrupt handler is not able to catch interrupts, if after loading the module of the Interrupt Handler (insmod isadev) I got "3: 0 XT-PIC-XT isadev". If after loading the module I get "3: 1 XT-PIC-XT isadev" then I was able to catch the interrupts coming from my board. Can someone explain why is that?
Anyways, the BIOS configuration (PHOENIX AWARD), I remember I had it like this when it worked:
PNP OS [NO]
Resource Controlled by [Manual] (default ESD)
IRQ3 assigned to [Legacy ISA] (default PCI/ISA PnP)
Onboard Serial Port 2 [2F8/IRQ11] (I changed this, because by default was 2F8/IRQ3, but I do not if that made any difference)
After seeing that I always got (with/without the ISA board attached)
3: 0 XT-PIC-XT isadev
after loading the ISR module, I decided to reloaded the default BIOS values. Then I loaded again the ISR module, and I finally got
3: 1 XT-PIC-XT isadev
However this does not catch my interrupts either (my board is not PnP, and it is assigned to Serial Port 2, see the defaults above).
Software
Debian etch, 2.6.19 with RTAI patch
Hardware:
Intel Celeron 400MHz
ISA Bridge: VIA Technologies, VT82C686
Thanks for your attention!
Chito
|