This is the standard problem of shared interrupts. A shared interrupt with some RT and some non-RT is rather peculiar and if it is done at all, it must be specially handled by the RT handler. In RTLinux this is simple: the RT handler catches all interrupts and determines whether an RT device has asserted the interrupt. If not, the RThandler can assert a soft interrupt for Linux - that is the nonRT driver must be completely virtualized.
A more sloppy approach is certainly possible. On Thu, Nov 08, 2001 at 12:52:44PM +0100, Wolfgang Denk wrote: > In message <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote: > > > > I guess the problem ist that SCCx + SMCx are all one interrupt to the core > > comming from the CPM, so you can't catch the SCC1 interrupt but you must > > catch the CPM interrupt and in case it is the SCC1 handle it if not pass > > it on to Linux for handling. If you catch the CPM interrupt with an rt-handler > > then you will have to take care of checking the devices on the CPM so I > > don't think this can be done without changing the CPM related code. > > It's even worse if you have to serve "RT" and "normal" interrupts on > CPM devices. The current implementation for a CPM interrupt works > something like that: > > 1. get, ack and disable SIU IRQ > 2. call CPM handler > 3. get, ack and disable CPM Source > 4. call handler for CPM Source > 5. re-enable CPM Source > 6. re-enable SIU IRQ > > In a RT environment you don't want to wait until Linux re-enables the > SIU interrupts (6) [because all CPM interrupts are blocked until > then], but on the other hand you can re-enable an interrupt only > after it has been served. > > > We changed the interrupt handling to allow for RT interrupts from CPM > devices under RTAI; the proposal was posted to the PPC Embedded > mailing list. However, for the known reasons we did this for RTAI > only. > (see http://lists.linuxppc.org/linuxppc-embedded/200110/msg00305.html) > > Wolfgang Denk > > -- > Software Engineering: Embedded and Realtime Systems, Embedded Linux > Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: [EMAIL PROTECTED] > I have often regretted my speech, never my silence. > -- [rtl] --- > To unsubscribe: > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] > -- > For more information on Real-Time Linux see: > http://www.rtlinux.org/ -- [rtl] --- To unsubscribe: echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] -- For more information on Real-Time Linux see: http://www.rtlinux.org/
