- Timestamp:
- 2006-07-13T17:32:38Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a5f76758
- Parents:
- 63cda71
- Location:
- boot/arch/sparc64/loader
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/sparc64/loader/asm.S
r63cda71 r94d614e 99 99 100 100 jump_to_kernel: 101 set ofw_cif, %l0 102 jmp %o0 ! jump to kernel 103 ldx [%l0], %o4 ! pass OpenFirmware address in %o4 101 mov %o0, %l1 102 mov %o1, %o0 103 mov %o2, %o1 104 jmp %l1 ! jump to kernel 105 nop 104 106 105 107 .global ofw -
boot/arch/sparc64/loader/main.c
r63cda71 r94d614e 81 81 printf("\nCopying components\n"); 82 82 unsigned int top = 0; 83 bootinfo. cnt = 0;83 bootinfo.taskmap.count = 0; 84 84 for (i = 0; i < COMPONENTS; i++) { 85 void * base = (void *) KERNEL_VIRTUAL_ADDRESS; 86 85 87 printf(" %s...", components[i].name); 86 88 top = ALIGN_UP(top, PAGE_SIZE); 87 memcpy( ((void *) KERNEL_VIRTUAL_ADDRESS)+ top, components[i].start, components[i].size);89 memcpy(base + top, components[i].start, components[i].size); 88 90 if (i > 0) { 89 bootinfo.task s[bootinfo.cnt].addr = ((void *) KERNEL_VIRTUAL_ADDRESS)+ top;90 bootinfo.task s[bootinfo.cnt].size = components[i].size;91 bootinfo. cnt++;91 bootinfo.taskmap.tasks[bootinfo.taskmap.count].addr = base + top; 92 bootinfo.taskmap.tasks[bootinfo.taskmap.count].size = components[i].size; 93 bootinfo.taskmap.count++; 92 94 } 93 95 top += components[i].size; -
boot/arch/sparc64/loader/main.h
r63cda71 r94d614e 31 31 32 32 #include <ofw.h> 33 #include <types.h> 33 34 34 35 #define TASKMAP_MAX_RECORDS 32 … … 36 37 typedef struct { 37 38 void *addr; 38 u nsigned int size;39 uint32_t size; 39 40 } task_t; 40 41 41 42 typedef struct { 42 u nsigned int cnt;43 uint32_t count; 43 44 task_t tasks[TASKMAP_MAX_RECORDS]; 45 } taskmap_t; 46 47 typedef struct { 48 taskmap_t taskmap; 44 49 memmap_t memmap; 45 50 screen_t screen;
Note:
See TracChangeset
for help on using the changeset viewer.