diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h index 47be251d..10dc3df5 100644 --- a/include/sbi/sbi_hart.h +++ b/include/sbi/sbi_hart.h @@ -53,6 +53,8 @@ enum sbi_hart_extensions { SBI_HART_EXT_ZICBOM, /** Hart has Svpbmt extension */ SBI_HART_EXT_SVPBMT, + /** Hart has debug trigger extension */ + SBI_HART_EXT_SDTRIG, /** Maximum index of Hart extension */ SBI_HART_EXT_MAX, diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 770fee07..a0ab0c64 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -657,6 +657,7 @@ const struct sbi_hart_ext_data sbi_hart_ext[] = { __SBI_HART_EXT_DATA(zicboz, SBI_HART_EXT_ZICBOZ), __SBI_HART_EXT_DATA(zicbom, SBI_HART_EXT_ZICBOM), __SBI_HART_EXT_DATA(svpbmt, SBI_HART_EXT_SVPBMT), + __SBI_HART_EXT_DATA(sdtrig, SBI_HART_EXT_SDTRIG), }; /** @@ -898,6 +899,9 @@ __pmp_skip: /* Detect if hart supports smcntrpmf */ __check_ext_csr(SBI_HART_PRIV_VER_1_12, CSR_MCYCLECFG, SBI_HART_EXT_SMCNTRPMF); + /* Detect if hart support sdtrig (debug triggers) */ + __check_ext_csr(SBI_HART_PRIV_VER_UNKNOWN, + CSR_TSELECT, SBI_HART_EXT_SDTRIG); #undef __check_ext_csr