diff --git a/BaS_gcc/sys/mmu.c b/BaS_gcc/sys/mmu.c index 2645e1b..fa77095 100644 --- a/BaS_gcc/sys/mmu.c +++ b/BaS_gcc/sys/mmu.c @@ -448,7 +448,7 @@ bool access_exception(uint32_t pc, uint32_t format_status) } else /* map this page */ { - mmu_map_page(fault_address, fault_address); + mmu_map_page(fault_address & 0xfff00000, fault_address & 0xfff00000); return true; } } @@ -464,11 +464,11 @@ void mmu_map_page(uint32_t virt, uint32_t phys) /* * add page to TLB */ - MCF_MMU_MMUTR = (virt & 0xfff00000) | /* virtual aligned to 1M */ + MCF_MMU_MMUTR = virt | /* virtual address */ MCF_MMU_MMUTR_SG | /* shared global */ MCF_MMU_MMUTR_V; /* valid */ - MCF_MMU_MMUDR = (phys & 0xfff00000) | /* physical aligned to 1M */ + MCF_MMU_MMUDR = phys | /* physical address */ MCF_MMU_MMUDR_SZ(0) | /* 1 MB page size */ MCF_MMU_MMUDR_CM(0x1) | /* cacheable copyback */ MCF_MMU_MMUDR_R | /* read access enable */