From f95a85de0082010e4af83e26e99299d601bb48d6 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Mon, 13 May 2024 00:04:44 +0200 Subject: Some work on CSR --- emulator/csr_machine_trap_setup.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 emulator/csr_machine_trap_setup.c (limited to 'emulator/csr_machine_trap_setup.c') diff --git a/emulator/csr_machine_trap_setup.c b/emulator/csr_machine_trap_setup.c new file mode 100644 index 0000000..385460f --- /dev/null +++ b/emulator/csr_machine_trap_setup.c @@ -0,0 +1,19 @@ +#include "emulator/csr.h" + +#include "emulator/hart.h" + +static uint32_t csr_misa(Hart* hart, uint32_t v, enum CsrAction a) +{ + uint32_t misa = 0; + misa |= 1 << 30; // 32-bit + misa |= 1 << 8; // Base ISA + misa |= 1 << 12; // M extension + misa |= 1 << 18; // Supervisor mode + misa |= 1 << 20; // User mode + return misa; +} + +void csr_init_machine_trap_setup(Hart* hart) +{ + hart->csrs[CSR_MISA].action = csr_misa; +} -- cgit