[PATCH 1/4] lib: sbi: Add Zicntr as a HART ISA extension

Xiang W wxjstz at 126.com
Wed Jul 5 07:46:25 PDT 2023


在 2023-07-05星期三的 17:28 +0530,Anup Patel写道:
> Recently ratified Zicntr ISA extension covers cycle, time and
> instret CSRs so we replace the "time" ISA extension with "zicntr"
> ISA extension in OpenSBI.
> 
> Signed-off-by: Anup Patel <apatel at ventanamicro.com>
Look good to me.

Reviewed-by: Xiang W <wxjstz at 126.com>
> ---
>  include/sbi/sbi_hart.h | 4 ++--
>  lib/sbi/sbi_hart.c     | 6 +++---
>  lib/sbi/sbi_timer.c    | 2 +-
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h
> index 95b40e7..d48940d 100644
> --- a/include/sbi/sbi_hart.h
> +++ b/include/sbi/sbi_hart.h
> @@ -28,8 +28,8 @@ enum sbi_hart_priv_versions {
>  enum sbi_hart_extensions {
>         /** Hart has Sscofpmt extension */
>         SBI_HART_EXT_SSCOFPMF = 0,
> -       /** HART has HW time CSR (extension name not available) */
> -       SBI_HART_EXT_TIME,
> +       /** HART has Zicntr extension (i.e. HW cycle, time & instret CSRs) */
> +       SBI_HART_EXT_ZICNTR,
>         /** HART has AIA M-mode CSRs */
>         SBI_HART_EXT_SMAIA,
>         /** HART has Smstateen CSR **/
> diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> index 6e52cbd..c470482 100644
> --- a/lib/sbi/sbi_hart.c
> +++ b/lib/sbi/sbi_hart.c
> @@ -441,8 +441,8 @@ static inline char *sbi_hart_extension_id2string(int ext)
>         case SBI_HART_EXT_SSCOFPMF:
>                 estr = "sscofpmf";
>                 break;
> -       case SBI_HART_EXT_TIME:
> -               estr = "time";
> +       case SBI_HART_EXT_ZICNTR:
> +               estr = "zicntr";
>                 break;
>         case SBI_HART_EXT_SMAIA:
>                 estr = "smaia";
> @@ -676,7 +676,7 @@ __mhpm_skip:
>         csr_read_allowed(CSR_TIME, (unsigned long)&trap);
>         if (!trap.cause)
>                 __sbi_hart_update_extension(hfeatures,
> -                                       SBI_HART_EXT_TIME, true);
> +                                       SBI_HART_EXT_ZICNTR, true);
>  
>         /* Detect if hart has AIA local interrupt CSRs */
>         csr_read_allowed(CSR_MTOPI, (unsigned long)&trap);
> diff --git a/lib/sbi/sbi_timer.c b/lib/sbi/sbi_timer.c
> index 4b24cbe..7b618de 100644
> --- a/lib/sbi/sbi_timer.c
> +++ b/lib/sbi/sbi_timer.c
> @@ -188,7 +188,7 @@ int sbi_timer_init(struct sbi_scratch *scratch, bool cold_boot)
>                 if (!time_delta_off)
>                         return SBI_ENOMEM;
>  
> -               if (sbi_hart_has_extension(scratch, SBI_HART_EXT_TIME))
> +               if (sbi_hart_has_extension(scratch, SBI_HART_EXT_ZICNTR))
>                         get_time_val = get_ticks;
>         } else {
>                 if (!time_delta_off)
> -- 
> 2.34.1
> 
> 



More information about the opensbi mailing list