target-microblaze: mmu: Add a configurable output address mask
Add a configurable output address mask, used to mimic the configurable physical address bit width. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
This commit is contained in:
parent
d2f004c3cd
commit
3924a9aa02
@ -128,6 +128,7 @@ static void mb_cpu_reset(CPUState *s)
|
||||
env->mmu.c_mmu = 3;
|
||||
env->mmu.c_mmu_tlb_access = 3;
|
||||
env->mmu.c_mmu_zones = 16;
|
||||
env->mmu.c_addr_mask = MAKE_64BIT_MASK(0, cpu->cfg.addr_size);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -164,6 +164,7 @@ unsigned int mmu_translate(struct microblaze_mmu *mmu,
|
||||
tlb_rpn = d & TLB_RPN_MASK;
|
||||
|
||||
lu->vaddr = tlb_tag;
|
||||
lu->paddr = tlb_rpn & mmu->c_addr_mask;
|
||||
lu->paddr = tlb_rpn;
|
||||
lu->size = tlb_size;
|
||||
lu->err = ERR_HIT;
|
||||
|
@ -72,6 +72,7 @@ struct microblaze_mmu
|
||||
int c_mmu;
|
||||
int c_mmu_tlb_access;
|
||||
int c_mmu_zones;
|
||||
uint64_t c_addr_mask; /* Mask to apply to physical addresses. */
|
||||
};
|
||||
|
||||
struct microblaze_mmu_lookup
|
||||
|
Loading…
Reference in New Issue
Block a user