| #include "springbok.h" |
| |
| extern "C" void print_csrs(void) { |
| uint32_t mcause; |
| uint32_t mepc; |
| uint32_t mtval; |
| uint32_t misa; |
| uint32_t mtvec; |
| uint32_t mhartid; |
| uint32_t marchid; |
| uint32_t mvendorid; |
| uint32_t mimpid; |
| __asm__ volatile("csrr %[MCAUSE], mcause" |
| : [MCAUSE] "=r"(mcause):); |
| __asm__ volatile("csrr %[MEPC], mepc" |
| : [MEPC] "=r"(mepc):); |
| __asm__ volatile("csrr %[MTVAL], mtval" |
| : [MTVAL] "=r"(mtval):); |
| __asm__ volatile("csrr %[MISA], misa" |
| : [MISA] "=r"(misa):); |
| __asm__ volatile("csrr %[MTVEC], mtvec" |
| : [MTVEC] "=r"(mtvec):); |
| __asm__ volatile("csrr %[MHARTID], mhartid" |
| : [MHARTID] "=r"(mhartid):); |
| __asm__ volatile("csrr %[MARCHID], marchid" |
| : [MARCHID] "=r"(marchid):); |
| __asm__ volatile("csrr %[MVENDORID], mvendorid" |
| : [MVENDORID] "=r"(mvendorid):); |
| __asm__ volatile("csrr %[MIMPID], mimpid" |
| : [MIMPID] "=r"(mimpid):); |
| LOG_ERROR("MCAUSE:\t\t0x%08X", mcause); |
| LOG_ERROR("MEPC:\t\t0x%08X", mepc); |
| LOG_ERROR("MTVAL:\t\t0x%08X", mtval); |
| LOG_ERROR("MISA:\t\t0x%08X", misa); |
| LOG_ERROR("MTVEC:\t\t0x%08X", mtvec); |
| LOG_ERROR("MHARTID:\t\t0x%08X", mhartid); |
| LOG_ERROR("MARCHID:\t\t0x%08X", marchid); |
| LOG_ERROR("MVENDORID:\t0x%08X", mvendorid); |
| LOG_ERROR("MIMPID:\t\t0x%08X", mimpid); |
| } |