qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alistair Francis <alistair23@gmail.com>
To: Alexey Baturo <baturo.alexey@gmail.com>
Cc: richard.henderson@linaro.org, palmer@dabbelt.com,
	Alistair.Francis@wdc.com, zhiwei_liu@linux.alibaba.com,
	sagark@eecs.berkeley.edu,  kbastian@mail.uni-paderborn.de,
	qemu-devel@nongnu.org, qemu-riscv@nongnu.org
Subject: Re: [RFC v1 2/8] target/riscv: Add new S{sn, mn, m}jpm extensions as part of Zjpm v0.6.1
Date: Mon, 18 Sep 2023 11:44:09 +1000	[thread overview]
Message-ID: <CAKmqyKMB5VNWpFGgTKvFk7=hNsRAmnevkV5iv--dX3ZhKVA==Q@mail.gmail.com> (raw)
In-Reply-To: <20230908182640.1102270-3-baturo.alexey@gmail.com>

On Sat, Sep 9, 2023 at 4:28 AM Alexey Baturo <baturo.alexey@gmail.com> wrote:
>
> Signed-off-by: Alexey Baturo <baturo.alexey@gmail.com>
> ---
>  target/riscv/cpu.c     | 7 +++++++
>  target/riscv/cpu_cfg.h | 3 +++
>  target/riscv/machine.c | 6 ++++--
>  3 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
> index f937820976..af8f16b94f 100644
> --- a/target/riscv/cpu.c
> +++ b/target/riscv/cpu.c
> @@ -137,6 +137,9 @@ static const struct isa_ext_data isa_edata_arr[] = {
>      ISA_EXT_DATA_ENTRY(svinval, PRIV_VERSION_1_12_0, ext_svinval),
>      ISA_EXT_DATA_ENTRY(svnapot, PRIV_VERSION_1_12_0, ext_svnapot),
>      ISA_EXT_DATA_ENTRY(svpbmt, PRIV_VERSION_1_12_0, ext_svpbmt),
> +    ISA_EXT_DATA_ENTRY(ssnjpm, PRIV_VERSION_1_12_0, ext_ssnjpm),
> +    ISA_EXT_DATA_ENTRY(smnjpm, PRIV_VERSION_1_12_0, ext_smnjpm),
> +    ISA_EXT_DATA_ENTRY(smmjpm, PRIV_VERSION_1_12_0, ext_smmjpm),
>      ISA_EXT_DATA_ENTRY(xtheadba, PRIV_VERSION_1_11_0, ext_xtheadba),
>      ISA_EXT_DATA_ENTRY(xtheadbb, PRIV_VERSION_1_11_0, ext_xtheadbb),
>      ISA_EXT_DATA_ENTRY(xtheadbs, PRIV_VERSION_1_11_0, ext_xtheadbs),
> @@ -1796,6 +1799,10 @@ static Property riscv_cpu_extensions[] = {
>      DEFINE_PROP_UINT16("cboz_blocksize", RISCVCPU, cfg.cboz_blocksize, 64),
>
>      DEFINE_PROP_BOOL("zmmul", RISCVCPU, cfg.ext_zmmul, false),
> +    /* Zjpm v0.6.1 extensions */
> +    DEFINE_PROP_BOOL("ssnjpm", RISCVCPU, cfg.ext_ssnjpm, false),
> +    DEFINE_PROP_BOOL("smnjpm", RISCVCPU, cfg.ext_smnjpm, false),
> +    DEFINE_PROP_BOOL("smmjpm", RISCVCPU, cfg.ext_smmjpm, false),

This will be exposed to users, so they can enable these extensions
after this patch is applied. I'm guessing the future patches in the
series will actually add support, so this change should be split out
to the last patch.

Alistair

>
>      DEFINE_PROP_BOOL("zca", RISCVCPU, cfg.ext_zca, false),
>      DEFINE_PROP_BOOL("zcb", RISCVCPU, cfg.ext_zcb, false),
> diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h
> index 2bd9510ba3..9e9eb7cd1d 100644
> --- a/target/riscv/cpu_cfg.h
> +++ b/target/riscv/cpu_cfg.h
> @@ -93,6 +93,9 @@ struct RISCVCPUConfig {
>      bool ext_smaia;
>      bool ext_ssaia;
>      bool ext_sscofpmf;
> +    bool ext_ssnjpm;
> +    bool ext_smnjpm;
> +    bool ext_smmjpm;
>      bool rvv_ta_all_1s;
>      bool rvv_ma_all_1s;
>
> diff --git a/target/riscv/machine.c b/target/riscv/machine.c
> index 8b1a109275..d50ff5421f 100644
> --- a/target/riscv/machine.c
> +++ b/target/riscv/machine.c
> @@ -150,9 +150,8 @@ static const VMStateDescription vmstate_vector = {
>  static bool pointermasking_needed(void *opaque)
>  {
>      RISCVCPU *cpu = opaque;
> -    CPURISCVState *env = &cpu->env;
>
> -    return riscv_has_ext(env, RVJ);
> +    return cpu->cfg.ext_ssnjpm || cpu->cfg.ext_smnjpm || cpu->cfg.ext_smmjpm;
>  }
>
>  static const VMStateDescription vmstate_pointermasking = {
> @@ -161,6 +160,9 @@ static const VMStateDescription vmstate_pointermasking = {
>      .minimum_version_id = 1,
>      .needed = pointermasking_needed,
>      .fields = (VMStateField[]) {
> +        VMSTATE_UINTTL(env.mseccfg, RISCVCPU),
> +        VMSTATE_UINTTL(env.senvcfg, RISCVCPU),
> +        VMSTATE_UINTTL(env.menvcfg, RISCVCPU),
>          VMSTATE_END_OF_LIST()
>      }
>  };
> --
> 2.34.1
>
>


  reply	other threads:[~2023-09-18  1:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-08 18:26 [RFC v1 0/8] RISC-V Pointer Masking update to Zjpm v0.6.1 Alexey Baturo
2023-09-08 18:26 ` [RFC v1 1/8] target/riscv: Remove obsolete pointer masking extension code Alexey Baturo
2023-09-18  1:36   ` Alistair Francis
2023-09-08 18:26 ` [RFC v1 2/8] target/riscv: Add new S{sn, mn, m}jpm extensions as part of Zjpm v0.6.1 Alexey Baturo
2023-09-18  1:44   ` Alistair Francis [this message]
2023-09-08 18:26 ` [RFC v1 3/8] target/riscv: Add new bits in CSRs for Zjpm 0.6.1 Alexey Baturo
2023-09-08 18:26 ` [RFC v1 4/8] Add enum with maximum ignored bits depending on privilege level for Zjpm v0.6.1 Alexey Baturo
2023-09-08 18:26 ` [RFC v1 5/8] target/riscv: Add pointer masking tb flags Alexey Baturo
2023-09-08 18:26 ` [RFC v1 6/8] target/riscv: Add functions to calculate current N masked bits for pointer masking Alexey Baturo
2023-09-18  1:46   ` Alistair Francis
2023-09-08 18:26 ` [RFC v1 7/8] target/riscv: Update address modify functions to take into account " Alexey Baturo
2023-09-08 18:26 ` [RFC v1 8/8] target/riscv: enable updates for pointer masking variables and thus enable pointer masking extension Alexey Baturo

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='CAKmqyKMB5VNWpFGgTKvFk7=hNsRAmnevkV5iv--dX3ZhKVA==Q@mail.gmail.com' \
    --to=alistair23@gmail.com \
    --cc=Alistair.Francis@wdc.com \
    --cc=baturo.alexey@gmail.com \
    --cc=kbastian@mail.uni-paderborn.de \
    --cc=palmer@dabbelt.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=sagark@eecs.berkeley.edu \
    --cc=zhiwei_liu@linux.alibaba.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).