On 4/15/05, Eugene Surovegin <ebs at ebshome.net> wrote: > On Fri, Apr 15, 2005 at 02:36:51PM -0700, Shawn Jin wrote: > > > > The home-made interrupt controller PIC supports interrupt priorities > > and critical/non-critical interrupts. I found that the current kernel > > doesn't support interrupt priorities. > > Yes, we don't have IRQ priorities on 4xx. Theoretically, they can be > emulated in get_irq, but I really don't think it's worth it.
Hmmm...that's one way I thought of to implement IRQ priority. Why isn't it worth it? ppc4xx_pic gets the first irq from the least significant bit by calling ffs(). So theoretically and maybe practically some external interrupts will keep UART's interrupt from being served. > > Is this observation true? Is > > there any existing patch to support that? > > I'm not aware of such patch existence. By googling the Internet I found this patch for i386 architecture http://home.t-online.de/home/Bernhard_Kuhn/rtirq/20040304/rtirq.html. This mustn't have been caught sight of by linux mainstream. Anybody knows if RTAI or RTLinux supports IRQ priorities? > > I noticed that the implementation of ppc4xx_pic.c disables all > > critical interrupts during initialization. To support critical > > interrupts, is it so simple that we change the handler of critical > > exception from CriticalInput to do_IRQ in head_44x.S? > > No, it's not that simple. Linux doesn't support a notion of critical > IRQs versus normal ones. Until there is an infrastructure for this, it > doesn't make any sense to implement 4xx support. What kind of infrastructure can you think of to support this? ppc440 at least provides some interrupt processing registers (CSSR0/1) to differentiate critical and non-critical interrupts. Another confusion about 440GP/GX UIC is the registers VCR (Vector Configuration Reg) and VR (Vector Reg). They seem to be totally useless on linux. The interrupt vector is already in the table of irq_desc[]. Why does the controller have to generate the address? Thanks for the inputs. Welcome more. Regards, -Shawn.