RE: ARM FIQ and nested interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

> From: Will Wagner
> We are looking at an application where we will need an FIQ to 
> be able to 
> interrupt an IRQ and I have been looking at support for this. 
> It seems 
> like there is no nested interrupt support for ARM and that 
> FIQ support 
> is very limited, in that it effectively turns it into an IRQ to be 
> handled after current IRQ. Am I missing something here?
> Has anyone done any work to support the FIQ properly on ARM? 
> Anyone able 
> to comment on why it was done this way in the first place?

I've always thought of FIQ as being for what you might call "software DMA",
where you have a really simple handler that just moves some data, and after
some number of invocations invokes a "real" interrupt. For this paradigm,
eCos doesn't need to participate in the FIQ mechanism at all: you manually
install your own handler and unmask FIQ, and all works fine as long as you
never do ANY OS calls in the handler. The way you signal the rest of eCos at
the end of a series of FIQ calls is to force the generation of a regular
IRQ, which in at least some ARM interrupt controllers can be done by
manually setting the request bit for some channel that doesn't map to a used
hardware interrupt input. I did this once on an ARM7TDMI, and it worked


Ciao,               Paul D. DeRocco
Paul                mailto:pderocco@xxxxxxxxxxxxx 

Before posting, please read the FAQ:
and search the list archive:

[Linux Embedded]     [U-Boot V2]     [Linux Kernel]     [Linux MIPS]     [Linux ARM]     [Linux for the Blind]     [Linux Resources]     [Photo]     [Yosemite]     [ISDN Cause Codes]     [ECOS Home]

Add to Google Powered by Linux