Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/mp_machdep.c
Show All 37 Lines | |||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
#include <sys/cpu.h> | #include <sys/cpu.h> | ||||
#include <sys/csan.h> | #include <sys/csan.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/ktr.h> | #include <sys/ktr.h> | ||||
#include <sys/linker.h> | |||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/pcpu.h> | #include <sys/pcpu.h> | ||||
#include <sys/proc.h> | #include <sys/proc.h> | ||||
#include <sys/sched.h> | #include <sys/sched.h> | ||||
#include <sys/smp.h> | #include <sys/smp.h> | ||||
▲ Show 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | if (mp_ncpus == 1) | ||||
return; | return; | ||||
intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); | intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); | ||||
intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); | intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); | ||||
intr_pic_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); | intr_pic_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); | ||||
intr_pic_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); | intr_pic_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); | ||||
intr_pic_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL); | intr_pic_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL); | ||||
intr_pic_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); | intr_pic_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); | ||||
link_elf_late_ireloc(); | |||||
kib: Is it fine to re-reloc only on SMP ? | |||||
atomic_store_rel_int(&aps_ready, 1); | atomic_store_rel_int(&aps_ready, 1); | ||||
/* Wake up the other CPUs */ | /* Wake up the other CPUs */ | ||||
__asm __volatile( | __asm __volatile( | ||||
"dsb ishst \n" | "dsb ishst \n" | ||||
"sev \n" | "sev \n" | ||||
::: "memory"); | ::: "memory"); | ||||
▲ Show 20 Lines • Show All 704 Lines • Show Last 20 Lines |
Is it fine to re-reloc only on SMP ?