public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Nick Garnett <nickg@ecoscentric.com>
To: Mark Salter <msalter@redhat.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Sicheri Marco <m.sicheri@ctsgroup.it>,
	"eCos Dev.List" <ecos-devel@sources.redhat.com>
Subject: Re: Two timer in FIQ mode
Date: Fri, 19 Nov 2004 13:59:00 -0000	[thread overview]
Message-ID: <m36542lz25.fsf@xl5.calivar.com> (raw)
In-Reply-To: <1100871637.26873.8.camel@gienah.localdomain>

Mark Salter <msalter@redhat.com> writes:

> 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.

To underline this, FIQ is actually more expensive that IRQ because it
converts the state to look like an IRQ and then drops into the IRQ
handler. The intended way of using FIQ was always to either plug a
jump into the hardware FIQ vector, or install a VSR table entry. In
both cases these must point to an assembly routine that then handles
the interrupt and returns, without interacting with the rest of eCos.

-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts

  reply	other threads:[~2004-11-19 13:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-19 10:40 Sicheri Marco
2004-11-19 12:35 ` Andrew Lunn
2004-11-19 13:40   ` Mark Salter
2004-11-19 13:59     ` Nick Garnett [this message]
2004-11-22 11:03       ` Sicheri Marco
2004-11-19 14:04     ` Sicheri Marco
2004-11-19 14:12       ` Sicheri Marco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m36542lz25.fsf@xl5.calivar.com \
    --to=nickg@ecoscentric.com \
    --cc=andrew@lunn.ch \
    --cc=ecos-devel@sources.redhat.com \
    --cc=m.sicheri@ctsgroup.it \
    --cc=msalter@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).