qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/riscv: csr: Implement mconfigptr CSR


From: Bin Meng
Subject: Re: [PATCH] target/riscv: csr: Implement mconfigptr CSR
Date: Wed, 13 Oct 2021 17:36:03 +0800

HI Rahul,

On Fri, Oct 8, 2021 at 5:47 PM Rahul Pathak <rpathak@ventanamicro.com> wrote:
>
> Hi Bin
>
>
> On Thu, Oct 7, 2021 at 11:07 AM Bin Meng <bmeng.cn@gmail.com> wrote:
> >
> > On Sun, Oct 3, 2021 at 7:29 PM Rahul Pathak <rpathak@ventanamicro.com> 
> > wrote:
> > >
> > > mconfigptr is an mandatory CSR as per the priv spec.
> >
> > %s/an/a
> >
>
> Done
>
> >
> > as per the priv spec v1.12
> >
> > > This csr holds the physical address of the configuration
> > > data structure if this data structure is implemented
> > > Its an readonly csr set to zero making configuration
> > > data structure not supported.
> > >
> > > Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com>
> > > ---
> > >  target/riscv/cpu_bits.h | 1 +
> > >  target/riscv/csr.c      | 1 +
> > >  2 files changed, 2 insertions(+)
> > >
> > > diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h
> > > index 999187a9ee..5dc4729ed5 100644
> > > --- a/target/riscv/cpu_bits.h
> > > +++ b/target/riscv/cpu_bits.h
> > > @@ -140,6 +140,7 @@
> > >  #define CSR_MARCHID         0xf12
> > >  #define CSR_MIMPID          0xf13
> > >  #define CSR_MHARTID         0xf14
> > > +#define CSR_MCONFIGPTR      0xf15
> > >
> > >  /* Machine Trap Setup */
> > >  #define CSR_MSTATUS         0x300
> > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c
> > > index 23fbbd3216..2182943f54 100644
> > > --- a/target/riscv/csr.c
> > > +++ b/target/riscv/csr.c
> > > @@ -1549,6 +1549,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = {
> > >      [CSR_MARCHID]   = { "marchid",   any,   read_zero    },
> > >      [CSR_MIMPID]    = { "mimpid",    any,   read_zero    },
> > >      [CSR_MHARTID]   = { "mhartid",   any,   read_mhartid },
> > > +    [CSR_MCONFIGPTR] = {"mconfigptr", any,  read_zero    },
> >
> > Not any, as we need to check the priv version >= 1.12
>
>
> To check the priv version, I am thinking of creating a generic
> predicate function
> which checks the env->priv_ver.?
> Generic predicate function for the priv version can be reused in other such
> scenarios also.

Sounds good to me. Thanks!

Regards,
Bin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]