4 * ARM7 Physical Memory Manager
12 #define MM_NUM_RANGES 1 // Single range
13 #define MM_RANGE_MAX 0
14 #define TRACE_ALLOCS 0
16 #define NUM_STATIC_ALLOC 4
18 char gStaticAllocPages[NUM_STATIC_ALLOC][PAGE_SIZE] __attribute__ ((section(".padata")));
19 tPAddr gaiStaticAllocPages[NUM_STATIC_ALLOC] = {
20 (tPAddr)(&gStaticAllocPages[0]) - KERNEL_BASE,
21 (tPAddr)(&gStaticAllocPages[1]) - KERNEL_BASE,
22 (tPAddr)(&gStaticAllocPages[2]) - KERNEL_BASE,
23 (tPAddr)(&gStaticAllocPages[3]) - KERNEL_BASE
25 extern char gKernelEnd[];
28 #include <tpl_mm_phys_bitmap.h>
30 //#define REALVIEW_LOWRAM_SIZE 0x10000000
31 #define REALVIEW_LOWRAM_SIZE (32*1024*1024)
33 void MM_SetupPhys(void)
35 LogF("MM_SetupPhys: ()\n");
36 MM_Tpl_InitPhys( REALVIEW_LOWRAM_SIZE/0x1000, NULL );
39 int MM_int_GetMapEntry( void *Data, int Index, tPAddr *Start, tPAddr *Length )
44 *Start = ((tVAddr)&gKernelEnd - KERNEL_BASE + 0xFFF) & ~0xFFF;
45 *Length = REALVIEW_LOWRAM_SIZE - *Start;
53 * \brief Takes a physical address and returns the ID of its range
54 * \param Addr Physical address of page
55 * \return Range ID from eMMPhys_Ranges
57 int MM_int_GetRangeID( tPAddr Addr )
59 return MM_RANGE_MAX; // ARM doesn't need ranges