extended mmu_map_page() by size and flags args
This commit is contained in:
@@ -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_ */
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user