1
0
Fork 0

Compare commits

..

No commits in common. "9d076d5c24b602666103ee10c3201276092005de" and "e894f502a45b414ec2407d49b0c75451940d6a5d" have entirely different histories.

1 changed files with 9 additions and 2 deletions

View File

@ -26,6 +26,9 @@ interrupt_handler!(Reset, reset_irq, __stack0_start, __stack1_start, {
boot_core0(); boot_core0();
} }
1 => { 1 => {
while !CORE1_ENABLED.get() {
spin_lock_yield();
}
boot_core1(); boot_core1();
} }
_ => unreachable!(), _ => unreachable!(),
@ -66,8 +69,7 @@ unsafe extern "C" fn boot_core1() -> ! {
let mpcore = mpcore::RegisterBlock::mpcore(); let mpcore = mpcore::RegisterBlock::mpcore();
mpcore.scu_invalidate.invalidate_core1(); mpcore.scu_invalidate.invalidate_core1();
let mmu_table = mmu::L1Table::get() let mmu_table = mmu::L1Table::get();
.setup_flat_layout();
mmu::with_mmu(mmu_table, || { mmu::with_mmu(mmu_table, || {
ACTLR.enable_smp(); ACTLR.enable_smp();
ACTLR.enable_prefetch(); ACTLR.enable_prefetch();
@ -126,6 +128,11 @@ impl Core1 {
} }
} }
unsafe {
CORE1_ENABLED.set(true);
}
// Flush cache-line
cache::dcc(unsafe { &CORE1_ENABLED });
if sdram { if sdram {
cache::dccmvac(0); cache::dccmvac(0);
asm::dsb(); asm::dsb();