All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Sorokin <afarallax@yandex.ru>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-arm <qemu-arm@nongnu.org>, QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-arm] [PATCH] target-arm: Add missed AArch32 TLBI sytem registers
Date: Mon, 11 Jul 2016 21:47:47 +0300	[thread overview]
Message-ID: <485821468262867@web26j.yandex.ru> (raw)
In-Reply-To: <CAFEAcA_Lq-8s7wx4bu+t6MJxXau5aoo6B2QJPGXJ=VWtztHNjw@mail.gmail.com>



11.07.2016, 21:36, "Peter Maydell" <peter.maydell@linaro.org>:
> On 11 July 2016 at 19:23, Sergey Sorokin <afarallax@yandex.ru> wrote:
>>  11.07.2016, 20:39, "Peter Maydell" <peter.maydell@linaro.org>:
>>>>   +
>>>>   + CPU_FOREACH(other_cs) {
>>>>   + tlb_flush_page_by_mmuidx(other_cs, pageaddr, ARMMMUIdx_S1E2, -1);
>>>>   + }
>>>>   +}
>>>>   +
>>>>    static const ARMCPRegInfo cp_reginfo[] = {
>>>>        /* Define the secure and non-secure FCSE identifier CP registers
>>>>         * separately because there is no secure bank in V8 (no _EL3). This allows
>>>>   @@ -1238,6 +1343,14 @@ static const ARMCPRegInfo v7_cp_reginfo[] = {
>>>>          .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbiasid_write },
>>>>        { .name = "TLBIMVAA", .cp = 15, .opc1 = 0, .crn = 8, .crm = 7, .opc2 = 3,
>>>>          .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbimvaa_write },
>>>>   + { .name = "TLBIALLNSNH",
>>>>   + .cp = 15, .opc1 = 4, .crn = 8, .crm = 7, .opc2 = 4,
>>>>   + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>>   + .writefn = tlbiall_nsnh_write },
>>>>   + { .name = "TLBIALLNSNHIS",
>>>>   + .cp = 15, .opc1 = 4, .crn = 8, .crm = 3, .opc2 = 4,
>>>>   + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>>   + .writefn = tlbiall_nsnh_is_write },
>>>
>>>  These don't exist on v7 unless the virtualization extensions are present
>>>  (though they do exist on v8 without EL3).
>>
>>  So I should check arm_feature(env, ARM_FEATURE_EL2) to add these registers,
>>  e.g. by moving them to el2_cp_reginfo, right?
>
> That would make them incorrectly not exist for v8-without-EL3, I think.
> If there isn't a suitable reginfo array for this case, you might need
> to either list them in two arrays or add a new array.
>
> thanks
> -- PMM

Table G4-25 Effect of the TLB maintenance instructions says:
b. Available only in an implementation that includes EL2.

So seems they should be in el2_cp_reginfo which is exist regardless EL3 enabled.
And also I need to fix tlbiall_nsnh_[is_]write functions accordingly.

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Sorokin <afarallax@yandex.ru>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>, qemu-arm <qemu-arm@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] target-arm: Add missed AArch32 TLBI sytem registers
Date: Mon, 11 Jul 2016 21:47:47 +0300	[thread overview]
Message-ID: <485821468262867@web26j.yandex.ru> (raw)
In-Reply-To: <CAFEAcA_Lq-8s7wx4bu+t6MJxXau5aoo6B2QJPGXJ=VWtztHNjw@mail.gmail.com>



11.07.2016, 21:36, "Peter Maydell" <peter.maydell@linaro.org>:
> On 11 July 2016 at 19:23, Sergey Sorokin <afarallax@yandex.ru> wrote:
>>  11.07.2016, 20:39, "Peter Maydell" <peter.maydell@linaro.org>:
>>>>   +
>>>>   + CPU_FOREACH(other_cs) {
>>>>   + tlb_flush_page_by_mmuidx(other_cs, pageaddr, ARMMMUIdx_S1E2, -1);
>>>>   + }
>>>>   +}
>>>>   +
>>>>    static const ARMCPRegInfo cp_reginfo[] = {
>>>>        /* Define the secure and non-secure FCSE identifier CP registers
>>>>         * separately because there is no secure bank in V8 (no _EL3). This allows
>>>>   @@ -1238,6 +1343,14 @@ static const ARMCPRegInfo v7_cp_reginfo[] = {
>>>>          .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbiasid_write },
>>>>        { .name = "TLBIMVAA", .cp = 15, .opc1 = 0, .crn = 8, .crm = 7, .opc2 = 3,
>>>>          .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbimvaa_write },
>>>>   + { .name = "TLBIALLNSNH",
>>>>   + .cp = 15, .opc1 = 4, .crn = 8, .crm = 7, .opc2 = 4,
>>>>   + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>>   + .writefn = tlbiall_nsnh_write },
>>>>   + { .name = "TLBIALLNSNHIS",
>>>>   + .cp = 15, .opc1 = 4, .crn = 8, .crm = 3, .opc2 = 4,
>>>>   + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>>   + .writefn = tlbiall_nsnh_is_write },
>>>
>>>  These don't exist on v7 unless the virtualization extensions are present
>>>  (though they do exist on v8 without EL3).
>>
>>  So I should check arm_feature(env, ARM_FEATURE_EL2) to add these registers,
>>  e.g. by moving them to el2_cp_reginfo, right?
>
> That would make them incorrectly not exist for v8-without-EL3, I think.
> If there isn't a suitable reginfo array for this case, you might need
> to either list them in two arrays or add a new array.
>
> thanks
> -- PMM

Table G4-25 Effect of the TLB maintenance instructions says:
b. Available only in an implementation that includes EL2.

So seems they should be in el2_cp_reginfo which is exist regardless EL3 enabled.
And also I need to fix tlbiall_nsnh_[is_]write functions accordingly.

  reply	other threads:[~2016-07-11 18:49 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-23 15:11 [Qemu-arm] [PATCH] target-arm: Add missed AArch32 TLBI sytem registers Sergey Sorokin
2016-06-23 15:11 ` [Qemu-devel] " Sergey Sorokin
2016-07-08 15:47 ` Sergey Sorokin
2016-07-11 12:12 ` [Qemu-arm] " Sergey Sorokin
2016-07-11 12:12   ` [Qemu-devel] " Sergey Sorokin
2016-07-11 17:39 ` [Qemu-arm] " Peter Maydell
2016-07-11 17:39   ` [Qemu-devel] " Peter Maydell
2016-07-11 18:23   ` Sergey Sorokin
2016-07-11 18:23     ` Sergey Sorokin
2016-07-11 18:35     ` [Qemu-arm] " Peter Maydell
2016-07-11 18:35       ` [Qemu-devel] " Peter Maydell
2016-07-11 18:47       ` Sergey Sorokin [this message]
2016-07-11 18:47         ` Sergey Sorokin
2016-07-11 19:25         ` [Qemu-arm] " Peter Maydell
2016-07-11 19:25           ` [Qemu-devel] " Peter Maydell

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=485821468262867@web26j.yandex.ru \
    --to=afarallax@yandex.ru \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.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.