diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c index c047c5412db..6dd548b30d4 100644 --- a/sys/arm64/arm64/identcpu.c +++ b/sys/arm64/arm64/identcpu.c @@ -33,7 +33,9 @@ __FBSDID("$FreeBSD$"); #include +#include #include +#include #include #include @@ -151,6 +153,17 @@ const struct cpu_implementers cpu_implementers[] = { CPU_IMPLEMENTER_NONE, }; +static void +identify_cpu_sysinit(void *dummy __unused) +{ + int cpu; + + CPU_FOREACH(cpu) { + print_cpu_features(cpu); + } +} +SYSINIT(idenrity_cpu, SI_SUB_SMP, SI_ORDER_ANY, identify_cpu_sysinit, NULL); + void print_cpu_features(u_int cpu) { diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c index b0e18279646..6fbb610dd6c 100644 --- a/sys/arm64/arm64/mp_machdep.c +++ b/sys/arm64/arm64/mp_machdep.c @@ -201,7 +201,7 @@ arm64_cpu_attach(device_t dev) static void release_aps(void *dummy __unused) { - int cpu, i; + int i; intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); @@ -217,14 +217,8 @@ release_aps(void *dummy __unused) printf("Release APs\n"); for (i = 0; i < 2000; i++) { - if (smp_started) { - for (cpu = 0; cpu <= mp_maxid; cpu++) { - if (CPU_ABSENT(cpu)) - continue; - print_cpu_features(cpu); - } + if (smp_started) return; - } DELAY(1000); }