From c2ca66ac4d2f534f522fcae47aff95a7422b4287 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 17 May 2023 15:21:11 -0700 Subject: [PATCH] Support ssip interrupts in spike-cosim --- generators/chipyard/src/main/resources/csrc/cospike.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/resources/csrc/cospike.cc b/generators/chipyard/src/main/resources/csrc/cospike.cc index 6cf8910b..dd60d078 100644 --- a/generators/chipyard/src/main/resources/csrc/cospike.cc +++ b/generators/chipyard/src/main/resources/csrc/cospike.cc @@ -266,12 +266,15 @@ extern "C" void cospike_cosim(long long int cycle, #endif uint64_t s_pc = s->pc; uint64_t interrupt_cause = cause & 0x7FFFFFFFFFFFFFFF; + bool ssip_interrupt = interrupt_cause == 0x1; bool msip_interrupt = interrupt_cause == 0x3; bool debug_interrupt = interrupt_cause == 0xe; if (raise_interrupt) { printf("%d interrupt %lx\n", cycle, cause); - if (msip_interrupt) { + if (ssip_interrupt) { + // do nothing + } else if (msip_interrupt) { s->mip->backdoor_write_with_mask(MIP_MSIP, MIP_MSIP); } else if (debug_interrupt) { return;