69 add sp, r4
70 bic sp, sp, #0xff
71
72 /*
73 * establish bogus stacks for exceptional CPU states, our exception
74 * code should never make use of these, and we want loud and violent
75 * failure should we accidentally try.
76 */
77 cps #(CPU_MODE_UND)
78 mov sp, #-1
79 cps #(CPU_MODE_ABT)
80 mov sp, #-1
81 cps #(CPU_MODE_FIQ)
82 mov sp, #-1
83 cps #(CPU_MODE_IRQ)
84 mov sp, #-1
85 cps #(CPU_MODE_SVC)
86
87 /* Enable highvecs (moves the base of the exception vector) */
88 mrc p15, 0, r3, c1, c0, 0
89 mov r4, #1
90 lsl r4, r4, #13
91 orr r3, r3, r4
92 mcr p15, 0, r3, c1, c0, 0
93
94 /* invoke machine specific setup */
95 bl _mach_start
96
97 bl _fakebop_start
98 SET_SIZE(_start)
99
100
101 #if defined(__lint)
102
103 /* ARGSUSED */
104 void
105 _locore_start(struct boot_syscalls *sysp, struct bootops *bop)
106 {}
107
108 #else /* __lint */
109
110 /*
111 * We got here from _kobj_init() via exitto(). We have a few different
|
69 add sp, r4
70 bic sp, sp, #0xff
71
72 /*
73 * establish bogus stacks for exceptional CPU states, our exception
74 * code should never make use of these, and we want loud and violent
75 * failure should we accidentally try.
76 */
77 cps #(CPU_MODE_UND)
78 mov sp, #-1
79 cps #(CPU_MODE_ABT)
80 mov sp, #-1
81 cps #(CPU_MODE_FIQ)
82 mov sp, #-1
83 cps #(CPU_MODE_IRQ)
84 mov sp, #-1
85 cps #(CPU_MODE_SVC)
86
87 /* Enable highvecs (moves the base of the exception vector) */
88 mrc p15, 0, r3, c1, c0, 0
89 orr r3, r3, #(1 << 13)
90 mcr p15, 0, r3, c1, c0, 0
91
92 /* invoke machine specific setup */
93 bl _mach_start
94
95 bl _fakebop_start
96 SET_SIZE(_start)
97
98
99 #if defined(__lint)
100
101 /* ARGSUSED */
102 void
103 _locore_start(struct boot_syscalls *sysp, struct bootops *bop)
104 {}
105
106 #else /* __lint */
107
108 /*
109 * We got here from _kobj_init() via exitto(). We have a few different
|