Changeset 59e4864 in mainline for kernel/arch/ia64/src/mm
- Timestamp:
- 2008-11-11T08:00:42Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f3c4a26
- Parents:
- a2a5529
- Location:
- kernel/arch/ia64/src/mm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/frame.c
ra2a5529 r59e4864 43 43 */ 44 44 #define MEMORY_SIZE (64 * 1024 * 1024) 45 #define MEMORY_BASE (64 * 1024 * 1024) 45 #define MEMORY_BASE (0 * 64 * 1024 * 1024) 46 47 #define ONE_TO_ONE_MAPPING_SIZE (256*1048576) // Mapped at start 46 48 47 49 #define ROM_BASE 0xa0000 //For ski 48 50 #define ROM_SIZE (384 * 1024) //For ski 49 51 void poke_char(int x,int y,char ch, char c); 52 53 uintptr_t last_frame; 54 50 55 void frame_arch_init(void) 51 56 { 52 zone_create(MEMORY_BASE >> FRAME_WIDTH, SIZE2FRAMES(MEMORY_SIZE), (MEMORY_SIZE) >> FRAME_WIDTH, 0); 57 58 if(config.cpu_active==1) 59 { 60 zone_create(MEMORY_BASE >> FRAME_WIDTH, SIZE2FRAMES(MEMORY_SIZE), (MEMORY_SIZE) >> FRAME_WIDTH, 0); 53 61 54 /* 55 * Blacklist ROM regions. 56 */ 57 frame_mark_unavailable(ADDR2PFN(ROM_BASE), SIZE2FRAMES(ROM_SIZE)); 58 62 /* 63 * Blacklist ROM regions. 64 */ 65 //frame_mark_unavailable(ADDR2PFN(ROM_BASE), SIZE2FRAMES(ROM_SIZE)); 66 67 frame_mark_unavailable(ADDR2PFN(0), SIZE2FRAMES(1048576)); 68 last_frame=SIZE2FRAMES((VRN_KERNEL<<VRN_SHIFT)+ONE_TO_ONE_MAPPING_SIZE); 69 } 59 70 } 60 71 -
kernel/arch/ia64/src/mm/page.c
ra2a5529 r59e4864 48 48 #include <arch/barrier.h> 49 49 #include <memstr.h> 50 #include <align.h> 50 51 51 52 static void set_environment(void); … … 263 264 } 264 265 266 extern uintptr_t last_frame; 267 268 269 uintptr_t hw_map(uintptr_t physaddr, size_t size) 270 { 271 if (last_frame + ALIGN_UP(size, PAGE_SIZE) > KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH)) 272 panic("Unable to map physical memory %p (%d bytes)", physaddr, size) 273 274 uintptr_t virtaddr = PA2KA(last_frame); 275 pfn_t i; 276 for (i = 0; i < ADDR2PFN(ALIGN_UP(size, PAGE_SIZE)); i++) { 277 uintptr_t addr = PFN2ADDR(i); 278 page_mapping_insert(AS_KERNEL, virtaddr + addr, physaddr + addr, PAGE_NOT_CACHEABLE | PAGE_WRITE); 279 } 280 281 last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE); 282 283 return virtaddr; 284 } 285 286 287 265 288 /** @} 266 289 */
Note:
See TracChangeset
for help on using the changeset viewer.
