qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] riscv: Modify minimum VLEN rule
@ 2025-09-23  9:07 Max Chou
  2025-09-23  9:07 ` [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x Max Chou
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Max Chou @ 2025-09-23  9:07 UTC (permalink / raw)
  To: qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, Max Chou

According to the RISC-V unprivileged specification, the VLEN should be greater
or equal to the ELEN. This patchset provides following modifications:

* Replace the checkings of standard V with the checkings of Zve32x
* Introduces a check rule for VLEN and ELEN
* Modifies the minimum VLEN based on the vector extensions

Extension     Minimum VLEN
V                      128
Zve64[d|f|x]            64
Zve32[f|x]              32

v1: 20250627132156.440214-1-max.chou@sifive.com
- Rebase to riscv-to-apply.next branch
- Add patch 1 to replace checking RVV by checking Zve32x

Max Chou (2):
  target/riscv: rvv: Replace checking V by checking Zve32x
  target/riscv: rvv: Modify minimum VLEN according to enabled vector
    extensions

 target/riscv/cpu.c            |  2 +-
 target/riscv/csr.c            |  3 ++-
 target/riscv/machine.c        |  3 ++-
 target/riscv/riscv-qmp-cmds.c |  2 +-
 target/riscv/tcg/tcg-cpu.c    | 21 ++++++++++++++++++---
 5 files changed, 24 insertions(+), 7 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x
  2025-09-23  9:07 [PATCH v2 0/2] riscv: Modify minimum VLEN rule Max Chou
@ 2025-09-23  9:07 ` Max Chou
  2025-09-29  0:58   ` Alistair Francis
  2025-09-23  9:07 ` [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions Max Chou
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Max Chou @ 2025-09-23  9:07 UTC (permalink / raw)
  To: qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, Max Chou

The Zve32x extension will be applied by the V and Zve* extensions.
Therefore we can replace the original V checking with Zve32x checking for both
the V and Zve* extensions.

Signed-off-by: Max Chou <max.chou@sifive.com>
---
 target/riscv/cpu.c            | 2 +-
 target/riscv/csr.c            | 3 ++-
 target/riscv/machine.c        | 3 ++-
 target/riscv/riscv-qmp-cmds.c | 2 +-
 target/riscv/tcg/tcg-cpu.c    | 2 +-
 5 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index d055ddf4623..a877018ab0c 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -604,7 +604,7 @@ static void riscv_cpu_dump_state(CPUState *cs, FILE *f, int flags)
             }
         }
     }
-    if (riscv_has_ext(env, RVV) && (flags & CPU_DUMP_VPU)) {
+    if (riscv_cpu_cfg(env)->ext_zve32x && (flags & CPU_DUMP_VPU)) {
         static const int dump_rvv_csrs[] = {
                     CSR_VSTART,
                     CSR_VXSAT,
diff --git a/target/riscv/csr.c b/target/riscv/csr.c
index 8842e07a735..5824928d954 100644
--- a/target/riscv/csr.c
+++ b/target/riscv/csr.c
@@ -2004,7 +2004,8 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno,
     if (riscv_has_ext(env, RVF)) {
         mask |= MSTATUS_FS;
     }
-    if (riscv_has_ext(env, RVV)) {
+
+    if (riscv_cpu_cfg(env)->ext_zve32x) {
         mask |= MSTATUS_VS;
     }
 
diff --git a/target/riscv/machine.c b/target/riscv/machine.c
index 51e0567ed30..18d790af0d0 100644
--- a/target/riscv/machine.c
+++ b/target/riscv/machine.c
@@ -131,7 +131,8 @@ static bool vector_needed(void *opaque)
     RISCVCPU *cpu = opaque;
     CPURISCVState *env = &cpu->env;
 
-    return riscv_has_ext(env, RVV);
+    return kvm_enabled() ? riscv_has_ext(env, RVV) :
+                           riscv_cpu_cfg(env)->ext_zve32x;
 }
 
 static const VMStateDescription vmstate_vector = {
diff --git a/target/riscv/riscv-qmp-cmds.c b/target/riscv/riscv-qmp-cmds.c
index b63de8dd457..c499f9b9a7d 100644
--- a/target/riscv/riscv-qmp-cmds.c
+++ b/target/riscv/riscv-qmp-cmds.c
@@ -342,7 +342,7 @@ int target_get_monitor_def(CPUState *cs, const char *name, uint64_t *pval)
     }
 
     if (reg_is_vreg(name)) {
-        if (!riscv_has_ext(env, RVV)) {
+        if (!riscv_cpu_cfg(env)->ext_zve32x) {
             return -EINVAL;
         }
 
diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
index 78fb2791847..a6f60f55ceb 100644
--- a/target/riscv/tcg/tcg-cpu.c
+++ b/target/riscv/tcg/tcg-cpu.c
@@ -660,7 +660,7 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, Error **errp)
         return;
     }
 
-    if (riscv_has_ext(env, RVV)) {
+    if (cpu->cfg.ext_zve32x) {
         riscv_cpu_validate_v(env, &cpu->cfg, &local_err);
         if (local_err != NULL) {
             error_propagate(errp, local_err);
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions
  2025-09-23  9:07 [PATCH v2 0/2] riscv: Modify minimum VLEN rule Max Chou
  2025-09-23  9:07 ` [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x Max Chou
@ 2025-09-23  9:07 ` Max Chou
  2025-09-29  0:59   ` Alistair Francis
  2025-09-29  1:15 ` [PATCH v2 0/2] riscv: Modify minimum VLEN rule Alistair Francis
  2025-10-04  7:44 ` Michael Tokarev
  3 siblings, 1 reply; 9+ messages in thread
From: Max Chou @ 2025-09-23  9:07 UTC (permalink / raw)
  To: qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, Max Chou

According to the RISC-V unprivileged specification, the VLEN should be greater
or equal to the ELEN. This commit modifies the minimum VLEN based on the vector
extensions and introduces a check rule for VLEN and ELEN.

  Extension     Minimum VLEN
* V                      128
* Zve64[d|f|x]            64
* Zve32[f|x]              32

Signed-off-by: Max Chou <max.chou@sifive.com>
---
 target/riscv/tcg/tcg-cpu.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
index a6f60f55ceb..02d99bb0ae9 100644
--- a/target/riscv/tcg/tcg-cpu.c
+++ b/target/riscv/tcg/tcg-cpu.c
@@ -416,12 +416,21 @@ static void riscv_cpu_validate_misa_priv(CPURISCVState *env, Error **errp)
 static void riscv_cpu_validate_v(CPURISCVState *env, RISCVCPUConfig *cfg,
                                  Error **errp)
 {
+    uint32_t min_vlen;
     uint32_t vlen = cfg->vlenb << 3;
 
-    if (vlen > RV_VLEN_MAX || vlen < 128) {
+    if (riscv_has_ext(env, RVV)) {
+        min_vlen = 128;
+    } else if (cfg->ext_zve64x) {
+        min_vlen = 64;
+    } else if (cfg->ext_zve32x) {
+        min_vlen = 32;
+    }
+
+    if (vlen > RV_VLEN_MAX || vlen < min_vlen) {
         error_setg(errp,
                    "Vector extension implementation only supports VLEN "
-                   "in the range [128, %d]", RV_VLEN_MAX);
+                   "in the range [%d, %d]", min_vlen, RV_VLEN_MAX);
         return;
     }
 
@@ -431,6 +440,12 @@ static void riscv_cpu_validate_v(CPURISCVState *env, RISCVCPUConfig *cfg,
                    "in the range [8, 64]");
         return;
     }
+
+    if (vlen < cfg->elen) {
+        error_setg(errp, "Vector extension implementation requires VLEN "
+                         "to be greater than or equal to ELEN");
+        return;
+    }
 }
 
 static void riscv_cpu_disable_priv_spec_isa_exts(RISCVCPU *cpu)
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x
  2025-09-23  9:07 ` [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x Max Chou
@ 2025-09-29  0:58   ` Alistair Francis
  0 siblings, 0 replies; 9+ messages in thread
From: Alistair Francis @ 2025-09-29  0:58 UTC (permalink / raw)
  To: Max Chou
  Cc: qemu-devel, qemu-riscv, Palmer Dabbelt, Alistair Francis,
	Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei

On Tue, Sep 23, 2025 at 7:09 PM Max Chou <max.chou@sifive.com> wrote:
>
> The Zve32x extension will be applied by the V and Zve* extensions.
> Therefore we can replace the original V checking with Zve32x checking for both
> the V and Zve* extensions.
>
> Signed-off-by: Max Chou <max.chou@sifive.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  target/riscv/cpu.c            | 2 +-
>  target/riscv/csr.c            | 3 ++-
>  target/riscv/machine.c        | 3 ++-
>  target/riscv/riscv-qmp-cmds.c | 2 +-
>  target/riscv/tcg/tcg-cpu.c    | 2 +-
>  5 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
> index d055ddf4623..a877018ab0c 100644
> --- a/target/riscv/cpu.c
> +++ b/target/riscv/cpu.c
> @@ -604,7 +604,7 @@ static void riscv_cpu_dump_state(CPUState *cs, FILE *f, int flags)
>              }
>          }
>      }
> -    if (riscv_has_ext(env, RVV) && (flags & CPU_DUMP_VPU)) {
> +    if (riscv_cpu_cfg(env)->ext_zve32x && (flags & CPU_DUMP_VPU)) {
>          static const int dump_rvv_csrs[] = {
>                      CSR_VSTART,
>                      CSR_VXSAT,
> diff --git a/target/riscv/csr.c b/target/riscv/csr.c
> index 8842e07a735..5824928d954 100644
> --- a/target/riscv/csr.c
> +++ b/target/riscv/csr.c
> @@ -2004,7 +2004,8 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno,
>      if (riscv_has_ext(env, RVF)) {
>          mask |= MSTATUS_FS;
>      }
> -    if (riscv_has_ext(env, RVV)) {
> +
> +    if (riscv_cpu_cfg(env)->ext_zve32x) {
>          mask |= MSTATUS_VS;
>      }
>
> diff --git a/target/riscv/machine.c b/target/riscv/machine.c
> index 51e0567ed30..18d790af0d0 100644
> --- a/target/riscv/machine.c
> +++ b/target/riscv/machine.c
> @@ -131,7 +131,8 @@ static bool vector_needed(void *opaque)
>      RISCVCPU *cpu = opaque;
>      CPURISCVState *env = &cpu->env;
>
> -    return riscv_has_ext(env, RVV);
> +    return kvm_enabled() ? riscv_has_ext(env, RVV) :
> +                           riscv_cpu_cfg(env)->ext_zve32x;
>  }
>
>  static const VMStateDescription vmstate_vector = {
> diff --git a/target/riscv/riscv-qmp-cmds.c b/target/riscv/riscv-qmp-cmds.c
> index b63de8dd457..c499f9b9a7d 100644
> --- a/target/riscv/riscv-qmp-cmds.c
> +++ b/target/riscv/riscv-qmp-cmds.c
> @@ -342,7 +342,7 @@ int target_get_monitor_def(CPUState *cs, const char *name, uint64_t *pval)
>      }
>
>      if (reg_is_vreg(name)) {
> -        if (!riscv_has_ext(env, RVV)) {
> +        if (!riscv_cpu_cfg(env)->ext_zve32x) {
>              return -EINVAL;
>          }
>
> diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
> index 78fb2791847..a6f60f55ceb 100644
> --- a/target/riscv/tcg/tcg-cpu.c
> +++ b/target/riscv/tcg/tcg-cpu.c
> @@ -660,7 +660,7 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, Error **errp)
>          return;
>      }
>
> -    if (riscv_has_ext(env, RVV)) {
> +    if (cpu->cfg.ext_zve32x) {
>          riscv_cpu_validate_v(env, &cpu->cfg, &local_err);
>          if (local_err != NULL) {
>              error_propagate(errp, local_err);
> --
> 2.43.0
>
>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions
  2025-09-23  9:07 ` [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions Max Chou
@ 2025-09-29  0:59   ` Alistair Francis
  0 siblings, 0 replies; 9+ messages in thread
From: Alistair Francis @ 2025-09-29  0:59 UTC (permalink / raw)
  To: Max Chou
  Cc: qemu-devel, qemu-riscv, Palmer Dabbelt, Alistair Francis,
	Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei

On Tue, Sep 23, 2025 at 7:08 PM Max Chou <max.chou@sifive.com> wrote:
>
> According to the RISC-V unprivileged specification, the VLEN should be greater
> or equal to the ELEN. This commit modifies the minimum VLEN based on the vector
> extensions and introduces a check rule for VLEN and ELEN.
>
>   Extension     Minimum VLEN
> * V                      128
> * Zve64[d|f|x]            64
> * Zve32[f|x]              32
>
> Signed-off-by: Max Chou <max.chou@sifive.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  target/riscv/tcg/tcg-cpu.c | 19 +++++++++++++++++--
>  1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
> index a6f60f55ceb..02d99bb0ae9 100644
> --- a/target/riscv/tcg/tcg-cpu.c
> +++ b/target/riscv/tcg/tcg-cpu.c
> @@ -416,12 +416,21 @@ static void riscv_cpu_validate_misa_priv(CPURISCVState *env, Error **errp)
>  static void riscv_cpu_validate_v(CPURISCVState *env, RISCVCPUConfig *cfg,
>                                   Error **errp)
>  {
> +    uint32_t min_vlen;
>      uint32_t vlen = cfg->vlenb << 3;
>
> -    if (vlen > RV_VLEN_MAX || vlen < 128) {
> +    if (riscv_has_ext(env, RVV)) {
> +        min_vlen = 128;
> +    } else if (cfg->ext_zve64x) {
> +        min_vlen = 64;
> +    } else if (cfg->ext_zve32x) {
> +        min_vlen = 32;
> +    }
> +
> +    if (vlen > RV_VLEN_MAX || vlen < min_vlen) {
>          error_setg(errp,
>                     "Vector extension implementation only supports VLEN "
> -                   "in the range [128, %d]", RV_VLEN_MAX);
> +                   "in the range [%d, %d]", min_vlen, RV_VLEN_MAX);
>          return;
>      }
>
> @@ -431,6 +440,12 @@ static void riscv_cpu_validate_v(CPURISCVState *env, RISCVCPUConfig *cfg,
>                     "in the range [8, 64]");
>          return;
>      }
> +
> +    if (vlen < cfg->elen) {
> +        error_setg(errp, "Vector extension implementation requires VLEN "
> +                         "to be greater than or equal to ELEN");
> +        return;
> +    }
>  }
>
>  static void riscv_cpu_disable_priv_spec_isa_exts(RISCVCPU *cpu)
> --
> 2.43.0
>
>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] riscv: Modify minimum VLEN rule
  2025-09-23  9:07 [PATCH v2 0/2] riscv: Modify minimum VLEN rule Max Chou
  2025-09-23  9:07 ` [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x Max Chou
  2025-09-23  9:07 ` [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions Max Chou
@ 2025-09-29  1:15 ` Alistair Francis
  2025-10-04  7:44 ` Michael Tokarev
  3 siblings, 0 replies; 9+ messages in thread
From: Alistair Francis @ 2025-09-29  1:15 UTC (permalink / raw)
  To: Max Chou
  Cc: qemu-devel, qemu-riscv, Palmer Dabbelt, Alistair Francis,
	Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei

On Tue, Sep 23, 2025 at 7:09 PM Max Chou <max.chou@sifive.com> wrote:
>
> According to the RISC-V unprivileged specification, the VLEN should be greater
> or equal to the ELEN. This patchset provides following modifications:
>
> * Replace the checkings of standard V with the checkings of Zve32x
> * Introduces a check rule for VLEN and ELEN
> * Modifies the minimum VLEN based on the vector extensions
>
> Extension     Minimum VLEN
> V                      128
> Zve64[d|f|x]            64
> Zve32[f|x]              32
>
> v1: 20250627132156.440214-1-max.chou@sifive.com
> - Rebase to riscv-to-apply.next branch
> - Add patch 1 to replace checking RVV by checking Zve32x
>
> Max Chou (2):
>   target/riscv: rvv: Replace checking V by checking Zve32x
>   target/riscv: rvv: Modify minimum VLEN according to enabled vector
>     extensions

Thanks!

Applied to riscv-to-apply.next

Alistair

>
>  target/riscv/cpu.c            |  2 +-
>  target/riscv/csr.c            |  3 ++-
>  target/riscv/machine.c        |  3 ++-
>  target/riscv/riscv-qmp-cmds.c |  2 +-
>  target/riscv/tcg/tcg-cpu.c    | 21 ++++++++++++++++++---
>  5 files changed, 24 insertions(+), 7 deletions(-)
>
> --
> 2.43.0
>
>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] riscv: Modify minimum VLEN rule
  2025-09-23  9:07 [PATCH v2 0/2] riscv: Modify minimum VLEN rule Max Chou
                   ` (2 preceding siblings ...)
  2025-09-29  1:15 ` [PATCH v2 0/2] riscv: Modify minimum VLEN rule Alistair Francis
@ 2025-10-04  7:44 ` Michael Tokarev
  2025-10-08  7:13   ` Michael Tokarev
  3 siblings, 1 reply; 9+ messages in thread
From: Michael Tokarev @ 2025-10-04  7:44 UTC (permalink / raw)
  To: Max Chou, qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, qemu-stable

On 9/23/25 12:07, Max Chou wrote:
> According to the RISC-V unprivileged specification, the VLEN should be greater
> or equal to the ELEN. This patchset provides following modifications:
> 
> * Replace the checkings of standard V with the checkings of Zve32x
> * Introduces a check rule for VLEN and ELEN
> * Modifies the minimum VLEN based on the vector extensions
> 
> Extension     Minimum VLEN
> V                      128
> Zve64[d|f|x]            64
> Zve32[f|x]              32
> 
> v1: 20250627132156.440214-1-max.chou@sifive.com
> - Rebase to riscv-to-apply.next branch
> - Add patch 1 to replace checking RVV by checking Zve32x
> 
> Max Chou (2):
>    target/riscv: rvv: Replace checking V by checking Zve32x
>    target/riscv: rvv: Modify minimum VLEN according to enabled vector
>      extensions

Is this a qemu-stable material?
(these changes does not apply directly to 10.1.x, probably the
MonitorDef change in the first patch here can be dropped)

Thanks,

/mjt


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] riscv: Modify minimum VLEN rule
  2025-10-04  7:44 ` Michael Tokarev
@ 2025-10-08  7:13   ` Michael Tokarev
  2025-10-08  9:49     ` Max Chou
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Tokarev @ 2025-10-08  7:13 UTC (permalink / raw)
  To: Max Chou, qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, qemu-stable

On 10/4/25 10:44, Michael Tokarev wrote:
> On 9/23/25 12:07, Max Chou wrote:
>> According to the RISC-V unprivileged specification, the VLEN should be 
>> greater
>> or equal to the ELEN. This patchset provides following modifications:
>>
>> * Replace the checkings of standard V with the checkings of Zve32x
>> * Introduces a check rule for VLEN and ELEN
>> * Modifies the minimum VLEN based on the vector extensions
>>
>> Extension     Minimum VLEN
>> V                      128
>> Zve64[d|f|x]            64
>> Zve32[f|x]              32
>>
>> v1: 20250627132156.440214-1-max.chou@sifive.com
>> - Rebase to riscv-to-apply.next branch
>> - Add patch 1 to replace checking RVV by checking Zve32x
>>
>> Max Chou (2):
>>    target/riscv: rvv: Replace checking V by checking Zve32x
>>    target/riscv: rvv: Modify minimum VLEN according to enabled vector
>>      extensions
> 
> Is this a qemu-stable material?
> (these changes does not apply directly to 10.1.x, probably the
> MonitorDef change in the first patch here can be dropped)

Hi!

I've picked this series for qemu-stable 10.0 and 10.1 series.
I still haven't received any reply from y previous email asking
about these, so I'm a bit uncomfortable by picking this up for
stable.  But I'm releasing two stable releases today with these
patches in.

Thanks,

/mjt


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/2] riscv: Modify minimum VLEN rule
  2025-10-08  7:13   ` Michael Tokarev
@ 2025-10-08  9:49     ` Max Chou
  0 siblings, 0 replies; 9+ messages in thread
From: Max Chou @ 2025-10-08  9:49 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: qemu-devel, qemu-riscv, Palmer Dabbelt, Alistair Francis,
	Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei, qemu-stable

[-- Attachment #1: Type: text/plain, Size: 2050 bytes --]

Hi Michael,

Apologies for the delayed response to your question about qemu-stable.
Yes, I believe this patchset is appropriate for qemu-stable material.
The changes fix the VLEN minimum value to properly align with the RISC-V
specification requirements (VLEN >= ELEN), which could affect the
correctness of RISC-V vector extension behavior in QEMU.

Thank you for picking this up for the stable 10.0 and 10.1 releases.
This series is based on the riscv-to-apply.next branch (the VERSION file
shows 10.1.50).

Thanks,
Max


On Wed, Oct 8, 2025 at 3:13 PM Michael Tokarev <mjt@tls.msk.ru> wrote:

> On 10/4/25 10:44, Michael Tokarev wrote:
> > On 9/23/25 12:07, Max Chou wrote:
> >> According to the RISC-V unprivileged specification, the VLEN should be
> >> greater
> >> or equal to the ELEN. This patchset provides following modifications:
> >>
> >> * Replace the checkings of standard V with the checkings of Zve32x
> >> * Introduces a check rule for VLEN and ELEN
> >> * Modifies the minimum VLEN based on the vector extensions
> >>
> >> Extension     Minimum VLEN
> >> V                      128
> >> Zve64[d|f|x]            64
> >> Zve32[f|x]              32
> >>
> >> v1: 20250627132156.440214-1-max.chou@sifive.com
> >> - Rebase to riscv-to-apply.next branch
> >> - Add patch 1 to replace checking RVV by checking Zve32x
> >>
> >> Max Chou (2):
> >>    target/riscv: rvv: Replace checking V by checking Zve32x
> >>    target/riscv: rvv: Modify minimum VLEN according to enabled vector
> >>      extensions
> >
> > Is this a qemu-stable material?
> > (these changes does not apply directly to 10.1.x, probably the
> > MonitorDef change in the first patch here can be dropped)
>
> Hi!
>
> I've picked this series for qemu-stable 10.0 and 10.1 series.
> I still haven't received any reply from y previous email asking
> about these, so I'm a bit uncomfortable by picking this up for
> stable.  But I'm releasing two stable releases today with these
> patches in.
>
> Thanks,
>
> /mjt
>

[-- Attachment #2: Type: text/html, Size: 2982 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-10-08  9:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-23  9:07 [PATCH v2 0/2] riscv: Modify minimum VLEN rule Max Chou
2025-09-23  9:07 ` [PATCH v2 1/2] target/riscv: rvv: Replace checking V by checking Zve32x Max Chou
2025-09-29  0:58   ` Alistair Francis
2025-09-23  9:07 ` [PATCH v2 2/2] target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions Max Chou
2025-09-29  0:59   ` Alistair Francis
2025-09-29  1:15 ` [PATCH v2 0/2] riscv: Modify minimum VLEN rule Alistair Francis
2025-10-04  7:44 ` Michael Tokarev
2025-10-08  7:13   ` Michael Tokarev
2025-10-08  9:49     ` Max Chou

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).