3 * ARM7 Virtual Memory Manager Header
8 #define MM_USER_MIN 0x00001000
9 #define USER_LIB_MAX 0x7F800000
10 #define MM_PPD_HANDLES 0x7F800000
11 #define MM_TABLE0USER 0x7F900000 // 2 GiB - 16 KiB
12 #define MM_TABLE1USER 0x7FC00000 // 2 GiB - 4 MiB
14 // Page Blocks are 12-bits wide (12 address bits used)
15 // Hence, the table is 16KiB large (and must be so aligned)
16 // and each block addresses 1MiB of data
18 // First level table is aligned to 16KiB (restriction of TTBR reg)
19 // - VMSAv6 uses two TTBR regs, determined by bit 31
21 #define KERNEL_BASE 0x80000000 // 2GiB
23 #define MM_KHEAP_BASE 0x80800000 // 8MiB of kernel code
24 #define MM_KHEAP_MAX 0xC0000000 // ~1GiB of kernel heap
26 #define MM_MODULE_MIN 0xC0000000 // - 0xD0000000
27 #define MM_MODULE_MAX 0xD0000000
29 #define MM_KHEAP_MIN 0xE0000000
30 #define MM_KHEAP_MAX 0xF0000000
32 #define MM_KERNEL_VFS 0xFF000000 //
33 #define MM_TABLE1KERN 0xFF800000 // - 0x???????? 4MiB
34 #define MM_TABLE0KERN 0xFFC00000 // - 0xFFE04000 16KiB