Rev 4647 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4647 | Rev 4666 | ||
---|---|---|---|
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 |