Skip to content

Commit

Permalink
target/riscv: flush TLB pages if PMP permission has been changed
Browse files Browse the repository at this point in the history
If PMP permission of any address has been changed by updating PMP entry,
flush all TLB pages to prevent from getting old permission.

Signed-off-by: Jim Shu <cwshu@andestech.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 1613916082-19528-4-git-send-email-cwshu@andestech.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
  • Loading branch information
cwshu authored and alistair23 committed Mar 23, 2021
1 parent 663e119 commit 2c2e0f2
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions target/riscv/pmp.c
Expand Up @@ -28,6 +28,7 @@
#include "qapi/error.h"
#include "cpu.h"
#include "trace.h"
#include "exec/exec-all.h"

static void pmp_write_cfg(CPURISCVState *env, uint32_t addr_index,
uint8_t val);
Expand Down Expand Up @@ -347,6 +348,9 @@ void pmpcfg_csr_write(CPURISCVState *env, uint32_t reg_index,
cfg_val = (val >> 8 * i) & 0xff;
pmp_write_cfg(env, (reg_index * 4) + i, cfg_val);
}

/* If PMP permission of any addr has been changed, flush TLB pages. */
tlb_flush(env_cpu(env));
}


Expand Down

0 comments on commit 2c2e0f2

Please sign in to comment.