I've managed to write a Device Driver for the OPIC interrupt controller and get interrupts from a Serial Device. Over the course of the weekend I'll map this into the Interrupt Controller (the Serial Device Driver will map to it) so the Serial Device Driver can read this, handle it and it can all carry on!
IntC (Interrupt Controller)
ISR (Interrupt Service Routine)
1/ Get the Interrupt into the External Interrupt Vector on the PowerPC
Serial Driver --> OPIC --> External Interrupt --> Ext Interrupt Vector --> IntC
2/ Query the BSP to query the OPIC to work out Interrupt occured
OPIC <-- BSP <-- IntC
3/ Lookup the Interrupt Handler (ISR) and execute it
IntC -> ISR -> Driver
We've handled the interrupt!
4/ The driver should remove the source of the Interrupt
Driver --> Hardware
5/ Finish off; tell OPIC we're done and it can remove the Interrupt
IntC --> BSP --> OPIC