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 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_ */
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user