Rev 1003 | Rev 1058 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1003 | Rev 1022 | ||
|---|---|---|---|
| Line 178... | Line 178... | ||
| 178 | sync |
178 | sync |
| 179 | isync |
179 | isync |
| 180 | blr |
180 | blr |
| 181 | 181 | ||
| 182 | jump_to_kernel: |
182 | jump_to_kernel: |
| - | 183 | ||
| - | 184 | # r3 = kernel_start (va) |
|
| - | 185 | # r4 = memmap (pa) |
|
| - | 186 | # r5 = real_mode (pa) |
|
| - | 187 | ||
| - | 188 | mtspr srr0, r5 |
|
| - | 189 | ||
| - | 190 | # jumps to real_mode |
|
| - | 191 | ||
| - | 192 | mfmsr r5 |
|
| - | 193 | lis r6, ~0@h |
|
| - | 194 | ori r6, r6, ~(msr_ir | msr_dr)@l |
|
| - | 195 | and r5, r5, r6 |
|
| - | 196 | mtspr srr1, r5 |
|
| - | 197 | rfi |
|
| - | 198 | ||
| - | 199 | .section REALMODE |
|
| - | 200 | .align 12 |
|
| - | 201 | .global real_mode |
|
| - | 202 | ||
| - | 203 | real_mode: |
|
| - | 204 | ||
| - | 205 | # fill segment registers |
|
| - | 206 | ||
| - | 207 | li r5, 16 |
|
| - | 208 | mtctr r5 |
|
| - | 209 | li r5, 0 |
|
| - | 210 | li r6, 0 |
|
| - | 211 | ||
| - | 212 | seg_fill: |
|
| - | 213 | ||
| - | 214 | mtsrin r6, r5 |
|
| - | 215 | addis r5, r5, 0x1000 # move to next SR |
|
| - | 216 | addis r6, r6, 0x10 # add 256 MB, move to next SR |
|
| - | 217 | ||
| - | 218 | bdnz seg_fill |
|
| - | 219 | ||
| - | 220 | # bootstrap kernel |
|
| - | 221 | # |
|
| - | 222 | # r3 = kernel_start (va) |
|
| - | 223 | # r4 = memmap (pa) -> r10 |
|
| - | 224 | ||
| - | 225 | mtspr srr0, r3 |
|
| - | 226 | ||
| - | 227 | mfmsr r5 |
|
| - | 228 | ori r5, r5, (msr_ir | msr_dr)@l |
|
| - | 229 | mtspr srr1, r5 |
|
| - | 230 | ||
| 183 | mr r10, r4 |
231 | mr r10, r4 |
| 184 | mtlr r3 |
- | |
| 185 | blr |
232 | rfi |