summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnup Patel <[email protected]>2023-07-05 11:57:17 +0530
committerAnup Patel <[email protected]>2023-07-09 11:06:24 +0530
commit1a398d9faa60ac0341614f59b864340fc5e49a35 (patch)
treed50835920242a4af6c0afbb33f83c5c38e9a0f6c
parentc6a35733b74aeff612398f274ed19a74f81d1f37 (diff)
lib: sbi: Add Zicntr as a HART ISA extension
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 <[email protected]> Reviewed-by: Xiang W <[email protected]>
-rw-r--r--include/sbi/sbi_hart.h4
-rw-r--r--lib/sbi/sbi_hart.c6
-rw-r--r--lib/sbi/sbi_timer.c2
3 files changed, 6 insertions, 6 deletions
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)