[PATCH 2/4] lib: sbi: Add Zihpm as a HART ISA extension

Anup Patel apatel at ventanamicro.com
Wed Jul 5 21:09:51 PDT 2023


On Wed, Jul 5, 2023 at 8:36 PM Xiang W <wxjstz at 126.com> wrote:
>
> 在 2023-07-05星期三的 17:28 +0530,Anup Patel写道:
> > Recently ratified Zihpm ISA extension covers all [m]hpm* CSRs
> > so we add Zihpm as a HART ISA extension in OpenSBI.
> >
> > Signed-off-by: Anup Patel <apatel at ventanamicro.com>
> > ---
> >  include/sbi/sbi_hart.h | 2 ++
> >  lib/sbi/sbi_hart.c     | 6 ++++++
> >  2 files changed, 8 insertions(+)
> >
> > diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h
> > index d48940d..938248f 100644
> > --- a/include/sbi/sbi_hart.h
> > +++ b/include/sbi/sbi_hart.h
> > @@ -36,6 +36,8 @@ enum sbi_hart_extensions {
> >         SBI_HART_EXT_SMSTATEEN,
> >         /** HART has Sstc extension */
> >         SBI_HART_EXT_SSTC,
> > +       /** HART has Zihpm extension */
> > +       SBI_HART_EXT_ZIHPM,
> >
> >         /** Maximum index of Hart extension */
> >         SBI_HART_EXT_MAX,
> > diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> > index c470482..435771c 100644
> > --- a/lib/sbi/sbi_hart.c
> > +++ b/lib/sbi/sbi_hart.c
> > @@ -453,6 +453,9 @@ static inline char *sbi_hart_extension_id2string(int ext)
> >         case SBI_HART_EXT_SMSTATEEN:
> >                 estr = "smstateen";
> >                 break;
> > +       case SBI_HART_EXT_ZIHPM:
> > +               estr = "zihpm";
> > +               break;
> >         default:
> >                 break;
> >         }
> > @@ -637,6 +640,9 @@ __pmp_skip:
> >          */
> >
> >  __mhpm_skip:
> > +       if (hfeatures->mhpm_count)
> > +               __sbi_hart_update_extension(hfeatures,
> > +                                       SBI_HART_EXT_ZIHPM, true);
> allwinner D1 sets mhpm_count in sbi_platform_extensions_init. We should
> call __sbi_hart_update_extension again in the code of D1.

Ahh, yes. I forgot about D1. Good catch.

We should set SBI_HART_EXT_ZIHPM in hart_detect_features()
after calling sbi_platform_extensions_init().

I will update this in v2.

Regards,
Anup

>
> Regards,
> Xiang W
> >
> >  #undef __check_csr_64
> >  #undef __check_csr_32
> > --
> > 2.34.1
> >
> >
>



More information about the opensbi mailing list