qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fabien Chouteau <chouteau@adacore.com>
To: Scott Wood <scottwood@freescale.com>
Cc: qemu-ppc@nongnu.org, Alexander Graf <agraf@suse.de>,
	"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [Qemu-ppc]  [RESEND][PATCH] booke timers
Date: Tue, 13 Sep 2011 15:06:40 +0200	[thread overview]
Message-ID: <4E6F5560.4000506@adacore.com> (raw)
In-Reply-To: <4E6E4018.3020106@freescale.com>

On 12/09/2011 19:23, Scott Wood wrote:
> On 09/09/2011 09:58 AM, Alexander Graf wrote:
>> On 09.09.2011, at 16:22, Fabien Chouteau wrote:
>>> if the interrupt is already set and you clear TCR.DIE, the interrupt has to
>>> remain set. The only way to unset an interrupt is to clear the corresponding
>>> bit in TSR (currently in store_booke_tsr).
>>
>> Are you sure? I see several things in the 2.06 spec:
> [snip]
>> To me that sounds as if the decrementer interrupt gets injected only
>> when TSR.DIS=1, TCR.DIE=1 and MSR.EE=1. Unsetting any of these bits
>> stops the interrupt from being delivered.
>>
>> Scott, can you please check up with the hardware guys if this is correct?
>
> This is how I've always understood it to work (assuming the interrupt
> hasn't already been delivered, of course).  Fabien, do you have real
> hardware that you see behave the way you describe?
>

No I don't, it was just my understanding of Book-E documentation. I've tried
your solution (below) with VxWorks, and it works like a charm.

static void booke_update_irq(CPUState *env)
{
    ppc_set_irq(env, PPC_INTERRUPT_DECR,
                (env->spr[SPR_BOOKE_TSR] & TSR_DIS
                 && env->spr[SPR_BOOKE_TCR] & TCR_DIE));

    ppc_set_irq(env, PPC_INTERRUPT_WDT,
                (env->spr[SPR_BOOKE_TSR] & TSR_WIS
                 && env->spr[SPR_BOOKE_TCR] & TCR_WIE));

    ppc_set_irq(env, PPC_INTERRUPT_FIT,
                (env->spr[SPR_BOOKE_TSR] & TSR_FIS
                 && env->spr[SPR_BOOKE_TCR] & TCR_FIE));
}

Regards,

-- 
Fabien Chouteau

  reply	other threads:[~2011-09-13 13:07 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-01  8:20 [Qemu-devel] [RESEND][PATCH] booke timers Fabien Chouteau
2011-09-06 19:33 ` Alexander Graf
2011-09-07 14:41   ` Fabien Chouteau
2011-09-07 19:59     ` Alexander Graf
2011-09-09 10:36       ` Fabien Chouteau
2011-09-09 10:55         ` Alexander Graf
2011-09-09 13:27           ` Fabien Chouteau
2011-09-09 13:46             ` Alexander Graf
2011-09-09 14:22               ` Fabien Chouteau
2011-09-09 14:58                 ` Alexander Graf
2011-09-12 17:23                   ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2011-09-13 13:06                     ` Fabien Chouteau [this message]
2011-09-13 13:08                       ` Alexander Graf
2011-09-13 13:13                         ` Alexander Graf
2011-09-13 13:28                           ` Fabien Chouteau
2011-09-13 16:44                         ` Scott Wood
2011-09-13 17:28                           ` Alexander Graf

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=4E6F5560.4000506@adacore.com \
    --to=chouteau@adacore.com \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=scottwood@freescale.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 NNTP newsgroup(s).