diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 95b40e75..d48940d2 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 6e52cbd7..c4704828 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 4b24cbeb..7b618de1 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)