extended mmu_map_page() by size and flags args

This commit is contained in:
Markus Fröschle
2014-01-16 16:29:29 +00:00
parent 2391bcd10e
commit 913c4f7e04
2 changed files with 11 additions and 3 deletions

View File

@@ -28,6 +28,11 @@
#define SCA_PAGE_ID 6 /* indicates video memory page */
#define MMU_PAGE_SIZE_1M 0
#define MMU_PAGE_SIZE_4K 1
#define MMU_PAGE_SIZE_8K 2
#define MMU_PAGE_SIZE_1K 3
/*
* global variables from linker script
*/
@@ -35,6 +40,6 @@ extern long video_tlb;
extern long video_sbt;
extern void mmu_init(void);
extern void mmu_map_page(uint32_t virt, uint32_t phys);
extern void mmu_map_page(uint32_t virt, uint32_t phys, uint32_t map_size, uint32_t map_flags);
#endif /* _MMU_H_ */

View File

@@ -447,6 +447,8 @@ bool access_exception(uint32_t pc, uint32_t format_status)
}
else
{
uint32_t flags;
fault_address = MCF_MMU_MMUAR; /* retrieve fault access address from MMU */
if (fault_address >= FASTRAM_END)
{
@@ -454,7 +456,8 @@ bool access_exception(uint32_t pc, uint32_t format_status)
}
else /* map this page */
{
mmu_map_page(fault_address & 0xfff00000, fault_address & 0xfff00000);
mmu_map_page(fault_address & 0xfff00000, fault_address & 0xfff00000,
MMU_PAGE_SIZE_1M, flags);
return true;
}
}
@@ -463,7 +466,7 @@ bool access_exception(uint32_t pc, uint32_t format_status)
}
void mmu_map_page(uint32_t virt, uint32_t phys)
void mmu_map_page(uint32_t virt, uint32_t phys, uint32_t map_size, uint32_t map_flags)
{
dbg("%s: map virt=%p to phys=%p\r\n", __FUNCTION__, virt, phys);