diff options
Diffstat (limited to 'include/sbi/sbi_hart.h')
-rw-r--r-- | include/sbi/sbi_hart.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index e285bdf..f7870d9 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -12,6 +12,16 @@ #include <sbi/sbi_types.h> +/** Possible feature flags of a hart */ +enum sbi_hart_features { + /** Hart has PMP support */ + SBI_HART_HAS_PMP = (1 << 0), + /** Hart has S-mode counter enable */ + SBI_HART_HAS_SCOUNTEREN = (1 << 1), + /** Hart has M-mode counter enable */ + SBI_HART_HAS_MCOUNTEREN = (1 << 2), +}; + struct sbi_scratch; int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot); @@ -27,6 +37,7 @@ void sbi_hart_pmp_dump(struct sbi_scratch *scratch); int sbi_hart_pmp_check_addr(struct sbi_scratch *scratch, unsigned long daddr, unsigned long attr); bool sbi_hart_has_feature(u32 hartid, unsigned long feature); +unsigned long sbi_hart_get_features(u32 hartid); void __attribute__((noreturn)) sbi_hart_hang(void); |