Hi All,
We have a board which has it's own 8253[PIT] and 8259[PIC]. The 8253
is configured to raise a timer interrupt on every 20ms and 8259 is
configuered to fw that request to the device driver. In normal case,
the things work fine, 8253 raises interrupt in every 20ms and driver
interrupt service routine is executed. The problem happens if the
application run for long time[ >1day], driver interrupt service
routine is never called-up, eventhough the 8253 raises the timer
interrupt. So I added some diagnostic code to dump the values of the
8253 and 8259 internal registers during failure cases. This shows that
8253 is counting and re-counting without any problem. IMR registers is
not masking the timer interrupt, however IRR register shows that the
bit which corresponds to the timer interrupt is already set, ISR
register is not having that bit set. Based on this, I conclude that,
8253 raises the interrupt and IRR is set correctly, but 8259 is
waiting for the CPU to sent the INTA, but it didn't happen, so it
couldn't set ISR and fw the request to the driver.
The question I have here is,
What should be done to identify why the CPU didn't sent INTA?
any other ideas?
Thanks.