On Wed, Nov 17, 2021 at 1:12 AM LIU Zhiwei <zhiwei_...@c-sky.com> wrote: > > If PMP rules number is zero, it should not influence the TLB entry for > M-mode program.
This doesn't sound right. From what I can tell if we have no rules pmp_is_range_in_tlb() shouldn't have an effect on the tlb_size. What error are you seeing? Alistair > > Signed-off-by: LIU Zhiwei <zhiwei_...@c-sky.com> > --- > target/riscv/cpu_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c > index 9eeed38c7e..48da872d39 100644 > --- a/target/riscv/cpu_helper.c > +++ b/target/riscv/cpu_helper.c > @@ -376,7 +376,7 @@ static int get_physical_address_pmp(CPURISCVState *env, > int *prot, > } > > *prot = pmp_priv_to_page_prot(pmp_priv); > - if (tlb_size != NULL) { > + if ((tlb_size != NULL) && pmp_get_num_rules(env)) { > if (pmp_is_range_in_tlb(env, addr & ~(*tlb_size - 1), > &tlb_size_pmp)) { > *tlb_size = tlb_size_pmp; > } > -- > 2.25.1 > >