mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00
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 <apatel@ventanamicro.com> Reviewed-by: Xiang W <wxjstz@126.com>
This commit is contained in:
@@ -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 **/
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user