From: Richard Cochran <richardcochran@domain.hid>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: adeos-main@gna.org, Xenomai-core@domain.hid
Subject: Re: [Xenomai-core] [Adeos-main] ARM IXP: ipipe regression from 2.6.31 to .33 and .35
Date: Thu, 7 Apr 2011 21:02:58 +0200 [thread overview]
Message-ID: <20110407190258.GA27879@domain.hid> (raw)
In-Reply-To: <4D9E0354.4010600@domain.hid>
On Thu, Apr 07, 2011 at 08:32:52PM +0200, Gilles Chanteperdrix wrote:
> Richard Cochran wrote:
> > I have been trying to bring my IXP425 based system up to date, and I
> > have found an apparent regression. Everything worked fine with ipipe
> > 2.6.30 and Xenomai 2.4. With 2.6.31 an ipipe kernel still boots, but
> > starting with 2.6.33 the trouble begins (see below).
> >
> > I see that Gilles refactored the TSC emulation starting with
> > 2.6.33. I wonder whether this could be the cause?
>
> What this modification does is that:
> - there is only one clocksource, which is now xenomai tsc, with a very
> high rating;
> - the tsc read code is written in assembly, and copied in the vectors
> page, the one at 0xffff0000.
>
> I think the ixp is a 32 bits free-running counter with match register,
> wich is a configuration I tested. So, I would tend to think that the
> issue is rather in the clock_events implementation.
The IXP425 has one shot, count down timer (see below). Does that make
any difference?
(It might be that one of the other IXPxxx chips does have a match
register, but not this one.)
Thanks,
Richard
---
>From the 2.6.31 patch, in arch/arm/mach-ixp4xx/common.c
/*
* Reprogram the timer
*
* The timer is aperiodic (most of the time) when running Xenomai, so
* __ipipe_mach_set_dec is called for each timer tick and programs the
* timer hardware for the next tick.
*
*/
#define MIN_DELAY 333 /* 5 usec with the 66.66 MHz system clock */
void __ipipe_mach_set_dec(unsigned long delay)
{
unsigned long flags;
if (delay > MIN_DELAY) {
local_irq_save_hw(flags);
*IXP4XX_OSRT1 = delay | ONE_SHOT_ENABLE;
local_irq_restore_hw(flags);
} else {
ipipe_trigger_irq(IRQ_IXP4XX_TIMER1);
}
}
EXPORT_SYMBOL(__ipipe_mach_set_dec);
/*
* This returns the number of clock ticks remaining.
*/
unsigned long __ipipe_mach_get_dec(void)
{
return(*IXP4XX_OST1); /* remaining */
}
next prev parent reply other threads:[~2011-04-07 19:02 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-07 17:08 [Xenomai-core] ARM IXP: ipipe regression from 2.6.31 to .33 and .35 Richard Cochran
2011-04-07 18:32 ` [Xenomai-core] [Adeos-main] " Gilles Chanteperdrix
2011-04-07 19:02 ` Richard Cochran [this message]
2011-04-07 20:12 ` Richard Cochran
2011-04-07 20:26 ` Gilles Chanteperdrix
2011-04-08 6:05 ` Richard Cochran
2011-04-08 6:12 ` Richard Cochran
2011-04-08 6:18 ` Gilles Chanteperdrix
2011-04-08 6:16 ` Gilles Chanteperdrix
2011-04-08 6:29 ` Richard Cochran
2011-04-08 6:35 ` Gilles Chanteperdrix
2011-04-08 6:46 ` Richard Cochran
2011-04-08 6:35 ` Gilles Chanteperdrix
2011-04-08 6:51 ` Richard Cochran
2011-04-08 15:37 ` Gilles Chanteperdrix
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=20110407190258.GA27879@domain.hid \
--to=richardcochran@domain.hid \
--cc=Xenomai-core@domain.hid \
--cc=adeos-main@gna.org \
--cc=gilles.chanteperdrix@xenomai.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.