From 0a4f0b3da67f4ac47d260a38bb956686d035b3d9 Mon Sep 17 00:00:00 2001 From: Binno Date: Thu, 11 Jul 2024 20:57:04 -0700 Subject: [PATCH] zkr: enable write for useed/sseed fileds of mseccfg csr --- riscv/csrs.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/riscv/csrs.cc b/riscv/csrs.cc index a45770dd..635faae7 100644 --- a/riscv/csrs.cc +++ b/riscv/csrs.cc @@ -322,6 +322,11 @@ bool mseccfg_csr_t::unlogged_write(const reg_t val) noexcept { new_val |= (val & MSECCFG_MMWP); //MMWP is sticky new_val |= (val & MSECCFG_MML); //MML is sticky + if (proc->extension_enabled(EXT_ZKR)) { + uint64_t mask = MSECCFG_USEED | MSECCFG_SSEED; + new_val = (new_val & ~mask) | (val & mask); + } + proc->get_mmu()->flush_tlb(); if (proc->extension_enabled(EXT_ZICFILP)) {