Changeset c6143b4 in mainline
- Timestamp:
- 2006-03-24T19:13:37Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 730de779
- Parents:
- 7dcde32
- Location:
- arch/ppc32/loader
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ppc32/loader/asm.S
r7dcde32 rc6143b4 109 109 jump_to_kernel: 110 110 111 # r3 = memmap (pa) 112 # r4 = trans (pa) 113 # r5 = kernel size 114 # r6 = real_mode (pa) 115 116 mtspr srr0, r6 111 # r3 = bootinfo (pa) 112 # r4 = bootinfo_size 113 # r5 = trans (pa) 114 # r6 = kernel size 115 # r7 = real_mode (pa) 116 117 mtspr srr0, r7 117 118 118 119 # jumps to real_mode … … 133 134 # copy kernel to proper location 134 135 # 135 # r 4= trans (pa)136 # r 5= kernel size136 # r5 = trans (pa) 137 # r6 = kernel size 137 138 138 139 li r31, PAGE_SIZE >> 2 … … 141 142 page_copy: 142 143 143 cmpwi r 5, 0144 cmpwi r6, 0 144 145 beq copy_end 145 146 … … 147 148 148 149 mtctr r31 149 lwz r29, 0(r 4)150 lwz r29, 0(r5) 150 151 151 152 copy_loop: … … 156 157 addi r29, r29, 4 157 158 addi r30, r30, 4 158 subi r 5, r5, 4159 160 cmpwi r 5, 0159 subi r6, r6, 4 160 161 cmpwi r6, 0 161 162 beq copy_end 162 163 163 164 bdnz copy_loop 164 165 165 addi r 4, r4, 4166 addi r5, r5, 4 166 167 b page_copy 167 168 … … 239 240 # start the kernel 240 241 # 241 # r3 = memmap(pa)242 # r3 = bootinfo (pa) 242 243 243 244 lis r31, KERNEL_START_ADDR@ha -
arch/ppc32/loader/asm.h
r7dcde32 rc6143b4 45 45 46 46 extern void halt(); 47 extern void jump_to_kernel(void * memmap, void *trans, unsigned int kernel_size, void *real_mode) __attribute__((noreturn));47 extern void jump_to_kernel(void *bootinfo, unsigned int bootinfo_size, void *trans, unsigned int kernel_size, void *real_mode) __attribute__((noreturn)); 48 48 extern void real_mode(); 49 49 -
arch/ppc32/loader/main.c
r7dcde32 rc6143b4 36 36 37 37 #define HEAP_GAP 1024000 38 39 typedef struct {40 memmap_t memmap;41 screen_t screen;42 } bootinfo_t;43 38 44 39 bootinfo_t bootinfo; … … 124 119 125 120 printf("\nBooting the kernel...\n"); 126 jump_to_kernel(bootinfo_pa, trans_pa, KERNEL_SIZE, real_mode_pa);121 jump_to_kernel(bootinfo_pa, sizeof(bootinfo), trans_pa, KERNEL_SIZE, real_mode_pa); 127 122 } -
arch/ppc32/loader/main.h
r7dcde32 rc6143b4 39 39 #define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1)) 40 40 41 typedef struct { 42 memmap_t memmap; 43 screen_t screen; 44 } bootinfo_t; 45 41 46 extern int _binary_____________kernel_kernel_bin_start; 42 47 extern int _binary_____________kernel_kernel_bin_end;
Note:
See TracChangeset
for help on using the changeset viewer.