Message ID | 20230207084341.303907-1-frank.chang@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: Remove .min_priv_ver restriction from RVV CSRs | expand |
On Tue, Feb 7, 2023 at 4:45 PM <frank.chang@sifive.com> wrote: > > From: Frank Chang <frank.chang@sifive.com> > > The RVV specification does not require that the core needs to support > the privileged specification v1.12.0 to support RVV, and there is no > dependency from ISA level. This commit removes the restriction. > > Signed-off-by: Frank Chang <frank.chang@sifive.com> > --- > target/riscv/csr.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > Reviewed-by: Bin Meng <bmeng@tinylab.org>
On 2023/2/7 16:43, frank.chang@sifive.com wrote: > From: Frank Chang <frank.chang@sifive.com> > > The RVV specification does not require that the core needs to support > the privileged specification v1.12.0 to support RVV, and there is no > dependency from ISA level. This commit removes the restriction. > > Signed-off-by: Frank Chang <frank.chang@sifive.com> > --- > target/riscv/csr.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index fa17d7770c4..1b0a0c1693c 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -3980,20 +3980,13 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = { > [CSR_FRM] = { "frm", fs, read_frm, write_frm }, > [CSR_FCSR] = { "fcsr", fs, read_fcsr, write_fcsr }, > /* Vector CSRs */ > - [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VL] = { "vl", vs, read_vl, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VTYPE] = { "vtype", vs, read_vtype, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VLENB] = { "vlenb", vs, read_vlenb, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > + [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart }, > + [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat }, > + [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm }, > + [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr }, > + [CSR_VL] = { "vl", vs, read_vl }, > + [CSR_VTYPE] = { "vtype", vs, read_vtype }, > + [CSR_VLENB] = { "vlenb", vs, read_vlenb }, > /* User Timers and Counters */ > [CSR_CYCLE] = { "cycle", ctr, read_hpmcounter }, > [CSR_INSTRET] = { "instret", ctr, read_hpmcounter }, Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Zhiwei
I realized that I should also remove the privileged version check in isa_edata_arr[], too. I will send out v2 patch to fix it. Regards, Frank Chang On Tue, Feb 7, 2023 at 4:43 PM <frank.chang@sifive.com> wrote: > From: Frank Chang <frank.chang@sifive.com> > > The RVV specification does not require that the core needs to support > the privileged specification v1.12.0 to support RVV, and there is no > dependency from ISA level. This commit removes the restriction. > > Signed-off-by: Frank Chang <frank.chang@sifive.com> > --- > target/riscv/csr.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index fa17d7770c4..1b0a0c1693c 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -3980,20 +3980,13 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = { > [CSR_FRM] = { "frm", fs, read_frm, write_frm }, > [CSR_FCSR] = { "fcsr", fs, read_fcsr, write_fcsr }, > /* Vector CSRs */ > - [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VL] = { "vl", vs, read_vl, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VTYPE] = { "vtype", vs, read_vtype, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > - [CSR_VLENB] = { "vlenb", vs, read_vlenb, > - .min_priv_ver = PRIV_VERSION_1_12_0 }, > + [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart }, > + [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat }, > + [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm }, > + [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr }, > + [CSR_VL] = { "vl", vs, read_vl }, > + [CSR_VTYPE] = { "vtype", vs, read_vtype }, > + [CSR_VLENB] = { "vlenb", vs, read_vlenb }, > /* User Timers and Counters */ > [CSR_CYCLE] = { "cycle", ctr, read_hpmcounter }, > [CSR_INSTRET] = { "instret", ctr, read_hpmcounter }, > -- > 2.25.1 > >
diff --git a/target/riscv/csr.c b/target/riscv/csr.c index fa17d7770c4..1b0a0c1693c 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3980,20 +3980,13 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = { [CSR_FRM] = { "frm", fs, read_frm, write_frm }, [CSR_FCSR] = { "fcsr", fs, read_fcsr, write_fcsr }, /* Vector CSRs */ - [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VL] = { "vl", vs, read_vl, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VTYPE] = { "vtype", vs, read_vtype, - .min_priv_ver = PRIV_VERSION_1_12_0 }, - [CSR_VLENB] = { "vlenb", vs, read_vlenb, - .min_priv_ver = PRIV_VERSION_1_12_0 }, + [CSR_VSTART] = { "vstart", vs, read_vstart, write_vstart }, + [CSR_VXSAT] = { "vxsat", vs, read_vxsat, write_vxsat }, + [CSR_VXRM] = { "vxrm", vs, read_vxrm, write_vxrm }, + [CSR_VCSR] = { "vcsr", vs, read_vcsr, write_vcsr }, + [CSR_VL] = { "vl", vs, read_vl }, + [CSR_VTYPE] = { "vtype", vs, read_vtype }, + [CSR_VLENB] = { "vlenb", vs, read_vlenb }, /* User Timers and Counters */ [CSR_CYCLE] = { "cycle", ctr, read_hpmcounter }, [CSR_INSTRET] = { "instret", ctr, read_hpmcounter },