File tree 1 file changed +11
-3
lines changed
1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -92,6 +92,10 @@ void smp_bootstrap(void) {
92
92
/* Set up TTBR0 with our temporary directory */
93
93
"ldr x0, aarch64_ttbr0\n"
94
94
"msr TTBR0_EL1, x0\n"
95
+ "dsb ishst\n"
96
+ "tlbi vmalle1is\n"
97
+ "dsb ish\n"
98
+ "isb\n"
95
99
/* Load VBAR from first core */
96
100
"ldr x0, aarch64_vbar\n"
97
101
"msr VBAR_EL1, x0\n"
@@ -105,9 +109,6 @@ void smp_bootstrap(void) {
105
109
"ldr x0, aarch64_sctlr\n"
106
110
"ldr x1, aarch64_jmp_target\n"
107
111
"msr SCTLR_EL1, x0\n"
108
- "dsb ishst\n"
109
- "tlbi vmalle1is\n"
110
- "dsb ish\n"
111
112
"isb\n"
112
113
/* Restore core ID as argument */
113
114
"mov x0, x3\n"
@@ -188,5 +189,12 @@ void aarch64_smp_start(void) {
188
189
aarch64_ttbr0 = mmu_map_to_physical (NULL , (uintptr_t )& startup_ttbr0 [0 ]);
189
190
aarch64_ttbr1 = mmu_map_to_physical (NULL , (uintptr_t )mmu_get_kernel_directory ());
190
191
192
+ asm volatile (
193
+ "dsb ishst\n"
194
+ "tlbi vmalle1is\n"
195
+ "dsb ish\n"
196
+ "isb\n"
197
+ );
198
+
191
199
dtb_callback_direct_children (cpus , start_cpu );
192
200
}
You can’t perform that action at this time.
0 commit comments