All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fedorov Sergey <s.fedorov@samsung.com>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
	Peter Maydell <peter.maydell@linaro.org>
Cc: Johannes Winter <johannes.winter@iaik.tugraz.at>,
	a.basov@samsung.com,
	"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [RFC PATCH 18/21] target-arm: switch banked CP registers
Date: Thu, 19 Dec 2013 17:39:40 +0400	[thread overview]
Message-ID: <52B2F71C.1050202@samsung.com> (raw)
In-Reply-To: <CAEgOgz6bJNLP12BPnZmkKPRq0d3twyya8FkO04gPzucUh9moVQ@mail.gmail.com>


On 12/19/2013 04:44 PM, Peter Crosthwaite wrote:
> On Thu, Dec 19, 2013 at 9:38 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
>> On 19 December 2013 07:27, Fedorov Sergey <s.fedorov@samsung.com> wrote:
>>> Yes, this banking scheme makes state changing events quite heavy. But
>>> maintaining the active copies allows to keep translation table walking code
>>> untouched. I think there is a trade-off between state changing and
>>> translation table walking overheads.
>> We shouldn't be doing tlb walks that often that it makes a
>> difference whether we do env->ttbr0 or env->ttbr0[env->ns] ...
>>
>>> I think the CP banking is the most fragile thing in this patch series and
>>> this should become much better after review :)
>> It would probably be a good idea to look at the v8 ARM ARM and
>> figure out how banked-for-NS/S registers should fit in with the
>> AArch64 vs AArch32 split.
>> [if you don't have a copy, it's on the ARM website:
>> http://infocenter.arm.com/help/topic/com.arm.doc.ddi0487a.a_errata2/index.html
>> you'll need to register an account on the website if you don't already
>> have one but it's a fairly simple "fill in the form" automated process]
>>
>> Note in particular that:
>>   * many of the current uint32_t fields in our CPU state struct are
>>     likely to widen to uint64_t, so the AArch64 representation is
>>     canonical, and the AArch32 register accessors access a part
>>     of that state (typically the lower 32 bits)
>>   * registers which are banked S/NS in AArch32 are not necessarily
>>     banked in AArch64
>>
> Adding to that, are there any other reasons to bank a register other
> than sec-extensions? It seems like what you have implemented here
> is too sec specific for simply calling it "banked" (without further
> clarification of what you are banking for).
>
> Regards,
> Peter

I'm not sure that I understand your question correctly but I try to 
answer. From ARMv7 ARM document section "B3.15.3 Classification of 
system control registers":

"Banked system control registers have two copies, one Secure and one 
Non-secure."

I don't know any use of term "CP15 banked registers" other that related 
to Security Extensions.

Best regards,
Sergey Fedorov

>
>> AArch64 support is likely to land before your TrustZone stuff
>> does so we need to make the two features work together cleanly.
>>
>> thanks
>> -- PMM
>>

  reply	other threads:[~2013-12-19 13:39 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-03  8:48 [Qemu-devel] [RFC PATCH 00/21] target-arm: add CPU core TrustZone support Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 01/21] target-arm: add TrustZone CPU feature Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 02/21] target-arm: move SCR & VBAR into TrustZone register list Sergey Fedorov
2013-12-19  3:12   ` Peter Crosthwaite
2013-12-19  6:23     ` Fedorov Sergey
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 03/21] target-arm: adjust TTBCR for TrustZone feature Sergey Fedorov
2013-12-03 12:15   ` Peter Crosthwaite
2013-12-04  9:50     ` Fedorov Sergey
2013-12-04 10:52       ` Peter Crosthwaite
2013-12-19  3:18         ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 04/21] target-arm: preserve RAO/WI bits of ARMv7 SCTLR Sergey Fedorov
2013-12-03 12:17   ` Peter Crosthwaite
2013-12-04  9:55     ` Fedorov Sergey
2013-12-19  3:19       ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 05/21] target-arm: add CPU Monitor mode Sergey Fedorov
2013-12-03 12:20   ` Peter Crosthwaite
2013-12-03 12:51     ` Peter Maydell
2013-12-04 10:01       ` Fedorov Sergey
2013-12-04 10:58         ` Peter Crosthwaite
2013-12-04 11:18           ` Peter Maydell
2013-12-04 12:33             ` Fedorov Sergey
2013-12-04 12:35               ` Peter Maydell
2013-12-19  3:26                 ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 06/21] target-arm: add arm_is_secure() helper Sergey Fedorov
2013-12-19  3:31   ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 07/21] target-arm: reject switching to monitor mode from non-secure state Sergey Fedorov
2013-12-19  3:44   ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 08/21] target-arm: adjust arm_current_pl() for TrustZone Sergey Fedorov
2013-12-03 12:23   ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 09/21] target-arm: adjust SCR CP15 register access rights Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 10/21] target-arm: add non-secure Translation Block flag Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 11/21] target-arm: implement CPACR register logic Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 12/21] target-arm: add NSACR support Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 13/21] target-arm: add SDER definition Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 14/21] target-arm: split TLB for secure state Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 15/21] target-arm: add banked coprocessor register type Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 16/21] target-arm: convert appropriate coprocessor registers to banked type Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 17/21] target-arm: use c13_context field for CONTEXTIDR Sergey Fedorov
2013-12-19  4:31   ` Peter Crosthwaite
2013-12-19  6:29     ` Fedorov Sergey
2013-12-19  6:32   ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 18/21] target-arm: switch banked CP registers Sergey Fedorov
2013-12-19  4:37   ` Peter Crosthwaite
2013-12-19  7:27     ` Fedorov Sergey
2013-12-19 11:38       ` Peter Maydell
2013-12-19 12:44         ` Peter Crosthwaite
2013-12-19 13:39           ` Fedorov Sergey [this message]
2013-12-19 14:01             ` Peter Crosthwaite
2013-12-19 14:09               ` Peter Maydell
2013-12-20 14:12         ` Fedorov Sergey
2013-12-20 14:33           ` Peter Maydell
2013-12-20 14:38             ` Fedorov Sergey
2013-12-20 16:18               ` Fedorov Sergey
2013-12-22  1:08             ` Peter Crosthwaite
2013-12-22  7:59               ` Peter Maydell
2013-12-23  7:28               ` Fedorov Sergey
2013-12-23  7:43             ` Fedorov Sergey
2013-12-23  9:05               ` Peter Maydell
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 19/21] target-arm: add MVBAR support Sergey Fedorov
2013-12-19  4:41   ` Peter Crosthwaite
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 20/21] target-arm: implement SMC instruction Sergey Fedorov
2013-12-03  8:48 ` [Qemu-devel] [RFC PATCH 21/21] target-arm: implement IRQ/FIQ routing to Monitor mode Sergey Fedorov
2013-12-04 10:08 ` [Qemu-devel] [RFC PATCH 00/21] target-arm: add CPU core TrustZone support Fedorov Sergey
2013-12-04 11:10   ` Peter Crosthwaite
2013-12-04 11:13   ` Peter Maydell
2013-12-04 12:48     ` Fedorov Sergey
2013-12-19  4:56       ` Peter Crosthwaite

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=52B2F71C.1050202@samsung.com \
    --to=s.fedorov@samsung.com \
    --cc=a.basov@samsung.com \
    --cc=johannes.winter@iaik.tugraz.at \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.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.