posted by Neko on 29th January 2009
We now have a working interrupt controller driver which can take interrupt events from multiple sources, assert an interrupt signal (INTAn, through the PCI MegaCore) and give their status in an interrupt status register (ISR), on reading of which the interrupt signal is deasserted.
The simplest test was to flick a switch, and now we have the software driver reporting (on unload, which is odd..) when a switch was pressed or depressed (or just a little bit sad :) with an interrupt. Pressing switches 12 times gives 24 interrupts, as expected. The interrupt signal turns off when the ISR is read. I'd say pretty successful :)
The next step will be to debug the LCD controller which is acting rather strangely. It's not absolutely essential to the project but it would be nice if we could control it (and it is a good example of a peripheral which requires the PCI core to wait for it..) and display the status on the panel of the controller. The kernel driver (through /proc) would still have to set the panel data but it could also set informational messages (we have 16 characters on 2 lines).