lib: sbi: Detect support of debug triggers
authorHimanshu Chauhan <hchauhan@ventanamicro.com>
Tue, 9 Jan 2024 17:00:16 +0000 (22:30 +0530)
committerAnup Patel <anup@brainfault.org>
Wed, 10 Jan 2024 04:13:37 +0000 (09:43 +0530)
Detect if debug triggers, sdtrig extension, is supported
by the CPU. The support is detected by access traps and
ISA string parsing.

Signed-off-by: Himanshu Chauhan <hchauhan@ventanamicro.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
include/sbi/sbi_hart.h
lib/sbi/sbi_hart.c

index 47be251d31aa49320b49674fe7f26c28c2cdda22..10dc3df5d2fc496452de3864563b738e05360897 100644 (file)
@@ -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,
index 770fee0768d4025ebe7114324aa8038e30398446..a0ab0c64003549d1bb0e2fa1e2ddee1d46297377 100644 (file)
@@ -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