File tree Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Original file line number Diff line number Diff line change @@ -77,16 +77,10 @@ relocate:
77
77
csrw CSR_SATP, a0
78
78
.align 2
79
79
1:
80
- /* Set trap vector to exception handler */
81
- la a0 , handle_exception
80
+ /* Set trap vector to spin forever to help debug */
81
+ la a0, .Lsecondary_park
82
82
csrw CSR_TVEC, a0
83
83
84
- /*
85
- * Set sup0 scratch register to 0, indicating to exception vector that
86
- * we are presently executing in kernel.
87
- */
88
- csrw CSR_SCRATCH, zero
89
-
90
84
/* Reload the global pointer */
91
85
.option push
92
86
.option norelax
@@ -144,9 +138,23 @@ secondary_start_common:
144
138
la a0, swapper_pg_dir
145
139
call relocate
146
140
#endif
141
+ call setup_trap_vector
147
142
tail smp_callin
148
143
#endif /* CONFIG_SMP */
149
144
145
+ .align 2
146
+ setup_trap_vector:
147
+ /* Set trap vector to exception handler */
148
+ la a0, handle_exception
149
+ csrw CSR_TVEC, a0
150
+
151
+ /*
152
+ * Set sup0 scratch register to 0, indicating to exception vector that
153
+ * we are presently executing in kernel.
154
+ */
155
+ csrw CSR_SCRATCH, zero
156
+ ret
157
+
150
158
.Lsecondary_park:
151
159
/* We lack SMP support or have too many harts, so park this hart */
152
160
wfi
@@ -240,6 +248,7 @@ clear_bss_done:
240
248
call relocate
241
249
#endif /* CONFIG_MMU */
242
250
251
+ call setup_trap_vector
243
252
/* Restore C environment */
244
253
la tp, init_task
245
254
sw zero, TASK_TI_CPU(tp)
You can’t perform that action at this time.
0 commit comments