Changeset 2686705 in mainline
- Timestamp:
- 2011-11-20T17:27:41Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 42f60375
- Parents:
- ad12b5ea
- Location:
- kernel/arch/arm32
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/include/mach/integratorcp/integratorcp.h
rad12b5ea r2686705 103 103 extern void icp_cpu_halt(void); 104 104 extern void icp_irq_exception(unsigned int, istate_t *); 105 extern void icp_get_memory_extents(uintptr_t *, uintptr_t *);105 extern void icp_get_memory_extents(uintptr_t *, size_t *); 106 106 extern void icp_frame_init(void); 107 107 extern size_t icp_get_irq_count(void); -
kernel/arch/arm32/include/mach/testarm/testarm.h
rad12b5ea r2686705 71 71 extern void gxemul_cpu_halt(void); 72 72 extern void gxemul_irq_exception(unsigned int, istate_t *); 73 extern void gxemul_get_memory_extents(uintptr_t *, uintptr_t *);73 extern void gxemul_get_memory_extents(uintptr_t *, size_t *); 74 74 extern void gxemul_frame_init(void); 75 75 extern size_t gxemul_get_irq_count(void); -
kernel/arch/arm32/include/machine_func.h
rad12b5ea r2686705 50 50 void (*machine_timer_irq_start)(void); 51 51 void (*machine_cpu_halt)(void); 52 void (*machine_get_memory_extents)(uintptr_t *, uintptr_t *);52 void (*machine_get_memory_extents)(uintptr_t *, size_t *); 53 53 void (*machine_irq_exception)(unsigned int, istate_t *); 54 54 void (*machine_frame_init)(void); … … 81 81 * @param size Place to store memory size. 82 82 */ 83 extern void machine_get_memory_extents(uintptr_t *start, uintptr_t *size);83 extern void machine_get_memory_extents(uintptr_t *start, size_t *size); 84 84 85 85 /** Interrupt exception handler. -
kernel/arch/arm32/src/mach/gta02/gta02.c
rad12b5ea r2686705 65 65 static void gta02_timer_irq_start(void); 66 66 static void gta02_cpu_halt(void); 67 static void gta02_get_memory_extents(uintptr_t *start, uintptr_t *size);67 static void gta02_get_memory_extents(uintptr_t *start, size_t *size); 68 68 static void gta02_irq_exception(unsigned int exc_no, istate_t *istate); 69 69 static void gta02_frame_init(void); … … 123 123 * @param size Place to store memory size. 124 124 */ 125 static void gta02_get_memory_extents(uintptr_t *start, uintptr_t *size)125 static void gta02_get_memory_extents(uintptr_t *start, size_t *size) 126 126 { 127 127 *start = GTA02_MEMORY_START + GTA02_MEMORY_SKIP; -
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c
rad12b5ea r2686705 220 220 * @param size Place to store memory size. 221 221 */ 222 void icp_get_memory_extents(uintptr_t *start, uintptr_t *size)222 void icp_get_memory_extents(uintptr_t *start, size_t *size) 223 223 { 224 224 *start = 0; -
kernel/arch/arm32/src/mach/testarm/testarm.c
rad12b5ea r2686705 202 202 * @param size Place to store memory size. 203 203 */ 204 void gxemul_get_memory_extents(uintptr_t *start, uintptr_t *size)204 void gxemul_get_memory_extents(uintptr_t *start, size_t *size) 205 205 { 206 206 *start = 0; 207 207 *size = *((uintptr_t *) (GXEMUL_MP_ADDRESS + GXEMUL_MP_MEMSIZE_OFFSET)); 208 208 } 209 209 -
kernel/arch/arm32/src/machine_func.c
rad12b5ea r2686705 85 85 * @param size Place to store memory size. 86 86 */ 87 void machine_get_memory_extents(uintptr_t *start, uintptr_t *size)87 void machine_get_memory_extents(uintptr_t *start, size_t *size) 88 88 { 89 89 (machine_ops->machine_get_memory_extents)(start, size); -
kernel/arch/arm32/src/mm/frame.c
rad12b5ea r2686705 45 45 uintptr_t last_frame = 0; 46 46 47 static void frame_common_arch_init(bool low) 48 { 49 uintptr_t base; 50 size_t size; 51 52 machine_get_memory_extents(&base, &size); 53 base = ALIGN_UP(base, FRAME_SIZE); 54 size = ALIGN_DOWN(size, FRAME_SIZE); 55 56 if (!frame_adjust_zone_bounds(low, &base, &size)) 57 return; 58 59 if (low) { 60 zone_create(ADDR2PFN(base), SIZE2FRAMES(size), 61 BOOT_PAGE_TABLE_START_FRAME + 62 BOOT_PAGE_TABLE_SIZE_IN_FRAMES, 63 ZONE_AVAILABLE | ZONE_LOWMEM); 64 } else { 65 pfn_t conf = zone_external_conf_alloc(SIZE2FRAMES(size)); 66 67 zone_create(ADDR2PFN(base), SIZE2FRAMES(size), conf, 68 ZONE_AVAILABLE | ZONE_HIGHMEM); 69 } 70 71 } 72 47 73 /** Create low memory zones. */ 48 74 void frame_low_arch_init(void) 49 75 { 50 uintptr_t mem_start, mem_end, mem_size; 76 uintptr_t mem_start; 77 size_t mem_size; 51 78 52 79 machine_get_memory_extents(&mem_start, &mem_size); … … 54 81 last_frame = ALIGN_DOWN(mem_start + mem_size, FRAME_SIZE); 55 82 56 mem_start = ALIGN_UP(mem_start, FRAME_SIZE); 57 mem_end = min(ALIGN_DOWN(mem_start + mem_size, FRAME_SIZE), 58 config.identity_size); 83 frame_common_arch_init(true); 59 84 60 zone_create(ADDR2PFN(mem_start), SIZE2FRAMES(mem_end - mem_start),61 BOOT_PAGE_TABLE_START_FRAME + BOOT_PAGE_TABLE_SIZE_IN_FRAMES,62 ZONE_AVAILABLE | ZONE_LOWMEM);63 64 85 /* blacklist boot page table */ 65 86 frame_mark_unavailable(BOOT_PAGE_TABLE_START_FRAME, … … 72 93 void frame_high_arch_init(void) 73 94 { 74 uintptr_t mem_start, mem_end, mem_size; 75 size_t frames; 76 uintptr_t conf; 77 78 machine_get_memory_extents(&mem_start, &mem_size); 79 80 mem_end = ALIGN_DOWN(mem_start + mem_size, FRAME_SIZE); 81 if (mem_end <= config.identity_size) { 82 /* There is no high memory to init. */ 83 return; 84 } 85 86 frames = SIZE2FRAMES(mem_end - config.identity_size); 87 conf = zone_external_conf_alloc(frames); 88 89 zone_create(ADDR2PFN(config.identity_size), frames, conf, 90 ZONE_AVAILABLE | ZONE_HIGHMEM); 95 frame_common_arch_init(false); 91 96 } 92 97
Note:
See TracChangeset
for help on using the changeset viewer.