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 fb37837727
commit 8cebb6e8de
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 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 * global variables from linker script
*/ */
@@ -35,6 +40,6 @@ extern long video_tlb;
extern long video_sbt; extern long video_sbt;
extern void mmu_init(void); 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_ */ #endif /* _MMU_H_ */

View File

@@ -447,6 +447,8 @@ bool access_exception(uint32_t pc, uint32_t format_status)
} }
else else
{ {
uint32_t flags;
fault_address = MCF_MMU_MMUAR; /* retrieve fault access address from MMU */ fault_address = MCF_MMU_MMUAR; /* retrieve fault access address from MMU */
if (fault_address >= FASTRAM_END) if (fault_address >= FASTRAM_END)
{ {
@@ -454,7 +456,8 @@ bool access_exception(uint32_t pc, uint32_t format_status)
} }
else /* map this page */ 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; 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); dbg("%s: map virt=%p to phys=%p\r\n", __FUNCTION__, virt, phys);