Rev 1160 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1160 | Rev 1398 | ||
|---|---|---|---|
| Line 32... | Line 32... | ||
| 32 | .section K_TEXT_START, "ax" |
32 | .section K_TEXT_START, "ax" |
| 33 | 33 | ||
| 34 | .global kernel_image_start |
34 | .global kernel_image_start |
| 35 | kernel_image_start: |
35 | kernel_image_start: |
| 36 | 36 | ||
| 37 | # load temporary stack |
37 | # load temporal kernel stack |
| 38 | 38 | ||
| 39 | lis sp, end_stack@ha |
39 | lis sp, kernel_stack@ha |
| 40 | addi sp, sp, end_stack@l |
40 | addi sp, sp, kernel_stack@l |
| - | 41 | ||
| - | 42 | # set kernel stack for interrupt handling |
|
| - | 43 | ||
| - | 44 | mr r31, sp |
|
| - | 45 | subis r31, r31, 0x8000 |
|
| - | 46 | mtsprg0 r31 |
|
| 41 | 47 | ||
| 42 | # r3 contains physical address of bootinfo_t |
48 | # r3 contains physical address of bootinfo_t |
| 43 | # r4 contains size of bootinfo_t |
49 | # r4 contains size of bootinfo_t |
| 44 | 50 | ||
| 45 | lis r31, 0x80000000@ha |
- | |
| 46 | addi r31, r31, 0x80000000@l |
51 | addis r3, r3, 0x8000 |
| 47 | - | ||
| 48 | add r3, r3, r31 |
- | |
| 49 | 52 | ||
| 50 | lis r31, bootinfo@ha |
53 | lis r31, bootinfo@ha |
| 51 | addi r31, r31, bootinfo@l # r31 = bootinfo |
54 | addi r31, r31, bootinfo@l # r31 = bootinfo |
| 52 | 55 | ||
| 53 | cmpwi r4, 0 |
56 | cmpwi r4, 0 |
| Line 65... | Line 68... | ||
| 65 | cmpwi r4, 0 |
68 | cmpwi r4, 0 |
| 66 | bgt bootinfo_loop |
69 | bgt bootinfo_loop |
| 67 | 70 | ||
| 68 | bootinfo_end: |
71 | bootinfo_end: |
| 69 | 72 | ||
| - | 73 | bl arch_pre_main |
|
| 70 | b main_bsp |
74 | b main_bsp |
| 71 | 75 | ||
| 72 | .section K_DATA_START, "aw", @progbits |
76 | .section K_DATA_START, "aw", @progbits |
| 73 | 77 | ||
| - | 78 | .align 12 |
|
| - | 79 | kernel_stack_bottom: |
|
| 74 | .space TEMP_STACK_SIZE |
80 | .space TEMP_STACK_SIZE |
| 75 | end_stack: |
81 | kernel_stack: |