All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Musta <tommusta@gmail.com>
To: Thomas Huth <thuth@linux.vnet.ibm.com>, Alexander Graf <agraf@suse.de>
Cc: "qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [Qemu-ppc] target-ppc: Problem with mtmsr emulation
Date: Fri, 28 Mar 2014 09:36:44 -0500	[thread overview]
Message-ID: <533588FC.70807@gmail.com> (raw)
In-Reply-To: <20140328130233.2b6e8a3e@oc7435384737.ibm.com>

On 3/28/2014 7:02 AM, Thomas Huth wrote:
> On Fri, 28 Mar 2014 18:25:02 +0800
> Alexander Graf <agraf@suse.de> wrote:
> 
>>
>>
>>> Am 28.03.2014 um 16:16 schrieb Thomas Huth <thuth@linux.vnet.ibm.com>:
>>>

<snip>

>>> An easy way to fix this for Book III-S is to change the mask to
>>> 0x001EF801 (just like the mask for mtmsrd), but I am afraid that this
>>> would break the Book III-E variant of mtmsr, since the embedded version
>>> does not have this bit defined. Any suggestions how to fix this problem
>>> in a proper way?
>>
>> Please check in the older isa versions whether that bit is declared reserved.
>>
>> If it is, we need to make sure we only match it on newer ISA conformance.
> 
> The oldest ISA version that I've found (version 2.01, from 2003) already
> contains the L bit, so I assume it's always been there. So it's likely
> just a Book III-S vs. Book III-E issue.
> 

The L bit was not part of the original PowerPC ISA.  I checked both my 604 manual
((C) 1993) and the May, Silha, Simpson, Warren book ((C) 1994) ... neither contains
the L bit.  So the *actual* delineation is not as simple as Book III-S vs. Book
III-E.  I suspect the change was introduced in the mid-2000's.

To make matters worse, the change was incompatible with the previous versions of
the architecture -- The L=1 case is the old behavior (copy source register bits
verbatim, execution synchronizing) whereas L=0 is the new behavior (force external
interrupts and virtual address translation in user-state, context synchronizing).
And, the L=1 case on Book-IIIS is more like the L=0 case in Book-IIIE.

Also, I do not (yet) see the actual implementation of the Book-IIIS L=0 behavior
in the QEMU code.  This bug is probably masked by the fact that folks who use
mtmsr probably know what they are doing -- i.e. who would try to enable user-mode
and not enabled address translation?

Egads, what a mess.

I agree with Alex that a flags based approach could be used to support the L bit for
Book III-S models and to ignore the L bit for Book III-E models.  The question is
which flag(s) can we use?  Let me see if I can find out.

  reply	other threads:[~2014-03-28 14:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-28  8:16 [Qemu-devel] target-ppc: Problem with mtmsr emulation Thomas Huth
2014-03-28 10:25 ` Alexander Graf
2014-03-28 12:02   ` Thomas Huth
2014-03-28 14:36     ` Tom Musta [this message]
2014-03-28 17:56       ` [Qemu-devel] [Qemu-ppc] " Tom Musta

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=533588FC.70807@gmail.com \
    --to=tommusta@gmail.com \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=thuth@linux.vnet.ibm.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 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.