Changeset 2eb893b in mainline for kernel/arch/ia64/src/mm/frame.c
- Timestamp:
- 2008-11-22T16:52:33Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 13964ef
- Parents:
- 48eb7a14
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/frame.c
r48eb7a14 r2eb893b 37 37 #include <config.h> 38 38 #include <panic.h> 39 #include <arch/bootinfo.h> 40 #include <align.h> 41 #include <macros.h> 39 42 40 43 /* … … 42 45 * for real ia64 systems that provide memory map. 43 46 */ 44 #define MEMORY_SIZE ( 64* 1024 * 1024)47 #define MEMORY_SIZE (256 * 1024 * 1024) 45 48 #define MEMORY_BASE (0 * 64 * 1024 * 1024) 49 50 #define KERNEL_RESERVED_AREA_BASE (0x4400000) 51 #define KERNEL_RESERVED_AREA_SIZE (16*1024*1024) 46 52 47 53 #define ONE_TO_ONE_MAPPING_SIZE (256*1048576) // Mapped at start … … 51 57 void poke_char(int x,int y,char ch, char c); 52 58 59 #define MIN_ZONE_SIZE (64*1024) 60 53 61 uintptr_t last_frame; 62 #define MINCONF 1 54 63 55 64 void frame_arch_init(void) 56 65 { 57 66 58 if(config.cpu_active==1) 59 { 60 zone_create(MEMORY_BASE >> FRAME_WIDTH, SIZE2FRAMES(MEMORY_SIZE), (MEMORY_SIZE) >> FRAME_WIDTH, 0); 67 if(config.cpu_active==1){ 68 69 70 71 unsigned int i; 72 for(i=0;i<bootinfo->memmap_items;i++){ 73 if (bootinfo->memmap[i].type==EFI_MEMMAP_FREE_MEM){ 74 uint64_t base=bootinfo->memmap[i].base; 75 uint64_t size=bootinfo->memmap[i].size; 76 uint64_t abase=ALIGN_UP(base,FRAME_SIZE); 77 if(size>FRAME_SIZE) size -=abase-base; 78 79 80 if(size>MIN_ZONE_SIZE) { 81 zone_create(abase >> FRAME_WIDTH, (size) >> FRAME_WIDTH, max(MINCONF,((abase) >> FRAME_WIDTH)), 0); 82 } 83 } 84 } 85 86 //zone_create(MEMORY_BASE >> FRAME_WIDTH, SIZE2FRAMES(MEMORY_SIZE), (MEMORY_SIZE) >> FRAME_WIDTH, 0); 61 87 62 88 /* 63 89 * Blacklist ROM regions. 64 90 */ 65 //frame_mark_unavailable(ADDR2PFN(ROM_BASE), SIZE2FRAMES(ROM_SIZE));91 frame_mark_unavailable(ADDR2PFN(ROM_BASE), SIZE2FRAMES(ROM_SIZE)); 66 92 67 frame_mark_unavailable(ADDR2PFN(0), SIZE2FRAMES(1048576)); 68 last_frame=SIZE2FRAMES((VRN_KERNEL<<VRN_SHIFT)+ONE_TO_ONE_MAPPING_SIZE); 93 frame_mark_unavailable(ADDR2PFN(KERNEL_RESERVED_AREA_BASE), SIZE2FRAMES(KERNEL_RESERVED_AREA_SIZE)); 69 94 } 70 95 }
Note:
See TracChangeset
for help on using the changeset viewer.