Changeset eebd172 in mainline for arch/ppc32/loader/main.c
- Timestamp:
- 2006-03-13T19:58:00Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6323989
- Parents:
- 272c219
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ppc32/loader/main.c
r272c219 reebd172 32 32 #include "asm.h" 33 33 34 #define KERNEL_LOAD_ADDRESS 0x400000 34 #define KERNEL_PHYSICAL_ADDRESS 0x1000 35 #define KERNEL_VIRTUAL_ADDRESS 0x80001000 35 36 #define KERNEL_START &_binary_____________kernel_kernel_bin_start 36 37 #define KERNEL_END &_binary_____________kernel_kernel_bin_end … … 41 42 printf("\nHelenOS PPC Bootloader\n"); 42 43 43 void *loader = ofw_translate(&start); 44 printf("loaded at %L (physical %L)\n", &start, loader); 45 printf("kernel load address %L (size %d)\n", KERNEL_LOAD_ADDRESS, KERNEL_SIZE); 44 void *phys = ofw_translate(&start); 45 printf("loaded at %L (physical %L)\n", &start, phys); 46 46 47 void *addr = ofw_claim((void *) KERNEL_LOAD_ADDRESS, KERNEL_SIZE, 1);48 if ( addr == NULL) {49 printf(" Error: Unable to claim memory");47 // FIXME: map just the kernel 48 if (ofw_map((void *) KERNEL_PHYSICAL_ADDRESS, (void *) KERNEL_VIRTUAL_ADDRESS, 1024 * 1024, 0) != 0) { 49 printf("Unable to map kernel memory at %L (physical %L)\n", KERNEL_VIRTUAL_ADDRESS, KERNEL_PHYSICAL_ADDRESS); 50 50 halt(); 51 51 } 52 printf("Claimed memory at %L\n", addr); 53 memcpy(addr, KERNEL_START, KERNEL_SIZE); 52 printf("kernel memory mapped at %L (physical %L, size %d bytes)\n", KERNEL_VIRTUAL_ADDRESS, KERNEL_PHYSICAL_ADDRESS, KERNEL_SIZE); 53 // FIXME: relocate the kernel in real mode 54 memcpy((void *) KERNEL_VIRTUAL_ADDRESS, KERNEL_START, KERNEL_SIZE); 55 56 // FIXME: proper framebuffer mapping 57 ofw_map((void *) 0x84000000, (void *) 0x84000000, 2 * 1024 * 1024, 0); 54 58 55 59 printf("Booting the kernel...\n"); 56 jump_to_kernel(addr); 60 61 flush_instruction_cache(); 62 jump_to_kernel((void *) KERNEL_VIRTUAL_ADDRESS); 57 63 }
Note:
See TracChangeset
for help on using the changeset viewer.