[PATCH 1/3] lib: pmp_set/pmp_get moved errors from runtime to compile time

Anup Patel anup at brainfault.org
Sat Mar 26 20:29:31 PDT 2022


On Mon, Mar 21, 2022 at 6:15 PM Anup Patel <anup at brainfault.org> wrote:
>
> On Tue, Mar 15, 2022 at 9:52 PM Xiang W <wxjstz at 126.com> wrote:
> >
> > pmp_set/pmp_get calculates the location of the CSR register separately
> > through conditional compilation. In the case of non-32-bit and 64-bit,
> > we can report an error directly through #error without putting it at
> > runtime
> >
> > Signed-off-by: Xiang W <wxjstz at 126.com>
>
> Looks good to me.
>
> Reviewed-by: Anup Patel <anup at brainfault.org>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

>
> Regards,
> Anup
>
> > ---
> >  lib/sbi/riscv_asm.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/sbi/riscv_asm.c b/lib/sbi/riscv_asm.c
> > index 847bdba..5eab1ed 100644
> > --- a/lib/sbi/riscv_asm.c
> > +++ b/lib/sbi/riscv_asm.c
> > @@ -261,7 +261,7 @@ int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,
> >         pmpcfg_csr   = (CSR_PMPCFG0 + (n >> 2)) & ~1;
> >         pmpcfg_shift = (n & 7) << 3;
> >  #else
> > -       return SBI_ENOTSUPP;
> > +# error "Unexpected __riscv_xlen"
> >  #endif
> >         pmpaddr_csr = CSR_PMPADDR0 + n;
> >
> > @@ -312,7 +312,7 @@ int pmp_get(unsigned int n, unsigned long *prot_out, unsigned long *addr_out,
> >         pmpcfg_csr   = (CSR_PMPCFG0 + (n >> 2)) & ~1;
> >         pmpcfg_shift = (n & 7) << 3;
> >  #else
> > -       return SBI_ENOTSUPP;
> > +# error "Unexpected __riscv_xlen"
> >  #endif
> >         pmpaddr_csr = CSR_PMPADDR0 + n;
> >
> > --
> > 2.30.2
> >



More information about the opensbi mailing list