Natheir Abu-Dahab
3 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
9 additions and
2 deletions
-
riscv/processor.cc
-
riscv/remote_bitbang.cc
-
riscv/remote_bitbang.h
|
|
|
@ -497,8 +497,8 @@ void processor_t::take_trap(trap_t& t, reg_t epc) |
|
|
|
|
|
|
|
reg_t s = state.mstatus->read(); |
|
|
|
if ( extension_enabled(EXT_SMDBLTRP)) { |
|
|
|
if (get_field(s, MSTATUS_MDT) || !nmie) { |
|
|
|
// Critical error - Double trap in M-mode or trap when nmie is 0
|
|
|
|
if (get_field(s, MSTATUS_MDT) && (!state.mnstatus || !nmie)) { |
|
|
|
// Critical error - Double trap in M-mode when Smrnmi not implemented or nmie is 0
|
|
|
|
// RNMI is not modeled else double trap in M-mode would trap to
|
|
|
|
// RNMI handler instead of leading to a critical error
|
|
|
|
state.critical_error = 1; |
|
|
|
|
|
|
|
@ -184,3 +184,7 @@ void remote_bitbang_t::execute_commands() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
bool remote_bitbang_t::is_client_connected() const{ |
|
|
|
return client_fd != 0; |
|
|
|
} |
|
|
|
@ -15,6 +15,9 @@ public: |
|
|
|
// Do a bit of work.
|
|
|
|
void tick(); |
|
|
|
|
|
|
|
// Check if any client is connected
|
|
|
|
bool is_client_connected() const; |
|
|
|
|
|
|
|
private: |
|
|
|
jtag_dtm_t *tap; |
|
|
|
|
|
|
|
|