This is the mail archive of the
ecos-devel@sources.redhat.com
mailing list for the eCos project.
Re: Two timer in FIQ mode
- From: Mark Salter <msalter at redhat dot com>
- To: Andrew Lunn <andrew at lunn dot ch>
- Cc: Sicheri Marco <m dot sicheri at ctsgroup dot it>, "eCos Dev.List" <ecos-devel at sources dot redhat dot com>
- Date: Fri, 19 Nov 2004 08:40:37 -0500
- Subject: Re: Two timer in FIQ mode
- Organization: Red Hat Inc.
- References: <002d01c4ce24$a1634ac0$110110ac@Msicheri> <20041119123534.GN2180@lunn.ch>
On Fri, 2004-11-19 at 07:35, Andrew Lunn wrote:
> On Fri, Nov 19, 2004 at 11:43:39AM +0100, Sicheri Marco wrote:
> > I all,
> > I Have the Samsung s3c44b0x.
> > I'd like use two timer in interrupt mode.
> > So that i use the TIMER2 and the TIMER3 (use the cyg_interrupt_create()).
> >
> > First step: run only the timer2 in fiq mode every 1ms. It works ok
> > Second step: run only the timer3 in fiq mode every 2ms. It works ok
> > Now: run timer2 in FIQ mode and the timer3 in IRQ mode. They work ok.
> > But: if i run timer2 in FIQ mode and the timer3 in FIQ mode, they don't
> > work, and the system is lock.
>
> FIQ is not heavily used so i would not be supprised if there were a
> few bugs remaining. Probably its a reentrance problem, ie handling a
> second FIQ will still handling the first. Take a look at vectors.S and
> see if you can find such a problem.
>
That is probably the case.
It is good to keep in mind that FIQ support in vectors.S simply
uses the same handling as a normal IRQ. There is no advantage to
using an FIQ vs IRQ. The current code was intended to workaround
poorly designed hardware which used the FIQ input for normal
interrupts. Proper FIQ support would need to do something else.
--Mark