From fc611ef507f795f8ffb9405ded2d2346aed8b7e3 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Sat, 4 Feb 2023 16:55:43 -0800 Subject: [PATCH] Fix CSR overrides in spike cosim --- generators/chipyard/src/main/resources/csrc/cospike.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/resources/csrc/cospike.cc b/generators/chipyard/src/main/resources/csrc/cospike.cc index 4e81b708..799f7992 100644 --- a/generators/chipyard/src/main/resources/csrc/cospike.cc +++ b/generators/chipyard/src/main/resources/csrc/cospike.cc @@ -212,8 +212,9 @@ extern "C" void cospike_cosim(long long int cycle, // 4 => csr if ((rd != 0 && type == 0) || type == 1) { // Override reads from some CSRs - uint64_t csr_addr = insn >> 20; + uint64_t csr_addr = (insn >> 20) & 0xfff; bool csr_read = (insn & 0x7f) == 0x73; + if (csr_read) printf("CSR read %lx\n", csr_addr); if (csr_read && ( (csr_addr == 0xf13) || // mimpid (csr_addr == 0xf12) || // marchid