diff --git a/src/arch/arm64/boot/secondary.rs b/src/arch/arm64/boot/secondary.rs index e8658a8..20b3c1d 100644 --- a/src/arch/arm64/boot/secondary.rs +++ b/src/arch/arm64/boot/secondary.rs @@ -15,6 +15,7 @@ use crate::{ memory::PAGE_ALLOC, sync::OnceLock, }; +use aarch64_cpu::asm::barrier::{SY, isb}; use core::{ arch::naked_asm, hint::spin_loop, @@ -140,6 +141,8 @@ fn prepare_for_secondary_entry() -> Result<(PA, PA)> { // MMU enabled (and therefore caches), we can't reply on the CCI. // Therefore, manually flush the boot context to RAM. flush_to_ram(boot_ctx); + + isb(SY); }; Ok((entry_fn, ctx))