Rev 3922 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3922 | Rev 4669 | ||
|---|---|---|---|
| Line 33... | Line 33... | ||
| 33 | .global kernel_image_start |
33 | .global kernel_image_start |
| 34 | .global exc_stack |
34 | .global exc_stack |
| 35 | .global supervisor_sp |
35 | .global supervisor_sp |
| 36 | 36 | ||
| 37 | kernel_image_start: |
37 | kernel_image_start: |
| - | 38 | ||
| - | 39 | # initialize Stack pointer for exception modes |
|
| - | 40 | mrs r4, cpsr |
|
| - | 41 | bic r4, r4, #0x1f |
|
| 38 | 42 | ||
| - | 43 | #FIQ Mode |
|
| - | 44 | orr r3, r4, #0x11 |
|
| - | 45 | msr cpsr_c, r3 |
|
| - | 46 | ldr sp, =exc_stack |
|
| - | 47 | ||
| - | 48 | #IRQ Mode |
|
| - | 49 | orr r3, r4, #0x12 |
|
| - | 50 | msr cpsr_c, r3 |
|
| - | 51 | ldr sp, =exc_stack |
|
| - | 52 | ||
| - | 53 | #ABORT Mode |
|
| - | 54 | orr r3, r4, #0x17 |
|
| - | 55 | msr cpsr_c, r3 |
|
| - | 56 | ldr sp, =exc_stack |
|
| - | 57 | ||
| - | 58 | #UNDEFINED Mode |
|
| - | 59 | orr r3, r4, #0x1b |
|
| - | 60 | msr cpsr_c, r3 |
|
| - | 61 | ldr sp, =exc_stack |
|
| - | 62 | ||
| 39 | # switch to supervisor mode |
63 | # switch to supervisor mode |
| 40 | mrs r3, cpsr |
- | |
| 41 | bic r3, r3, #0x1f |
- | |
| 42 | orr r3, r3, #0x13 |
64 | orr r3, r4, #0x13 |
| 43 | msr cpsr_c, r3 |
65 | msr cpsr_c, r3 |
| 44 | 66 | ||
| 45 | ldr sp, =temp_stack |
67 | ldr sp, =temp_stack |
| 46 | 68 | ||
| 47 | bl arch_pre_main |
69 | bl arch_pre_main |