Index: sys/arm/arm/mp_machdep.c =================================================================== --- sys/arm/arm/mp_machdep.c +++ sys/arm/arm/mp_machdep.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -212,6 +213,8 @@ mtx_unlock_spin(&ap_boot_mtx); + platform_late_init(); + #ifndef INTRNG /* Enable ipi */ #ifdef IPI_IRQ_START Index: sys/arm/broadcom/bcm2835/bcm2835_machdep.c =================================================================== --- sys/arm/broadcom/bcm2835/bcm2835_machdep.c +++ sys/arm/broadcom/bcm2835/bcm2835_machdep.c @@ -78,6 +78,9 @@ pcell_t cells[2]; int len; + if (curcpu != 0) + return; + system = OF_finddevice("/system"); if (system != 0) { len = OF_getencprop(system, "linux,serial", cells, Index: sys/arm/freescale/imx/imx6_machdep.c =================================================================== --- sys/arm/freescale/imx/imx6_machdep.c +++ sys/arm/freescale/imx/imx6_machdep.c @@ -151,6 +151,9 @@ { const uint32_t IMX6_WDOG_SR_PHYS = 0x020bc004; + if (curcpu != 0) + return; + imx_wdog_init_last_reset(IMX6_WDOG_SR_PHYS); } Index: sys/arm/mv/mv_machdep.c =================================================================== --- sys/arm/mv/mv_machdep.c +++ sys/arm/mv/mv_machdep.c @@ -242,6 +242,10 @@ void platform_late_init(void) { + + if (curcpu != 0) + return; + /* * Re-initialise decode windows */ Index: sys/arm/nvidia/tegra124/tegra124_machdep.c =================================================================== --- sys/arm/nvidia/tegra124/tegra124_machdep.c +++ sys/arm/nvidia/tegra124/tegra124_machdep.c @@ -63,7 +63,6 @@ static platform_attach_t tegra124_attach; static platform_lastaddr_t tegra124_lastaddr; static platform_devmap_init_t tegra124_devmap_init; -static platform_late_init_t tegra124_late_init; static platform_cpu_reset_t tegra124_cpu_reset; static int @@ -73,12 +72,6 @@ return (0); } -static void -tegra124_late_init(platform_t plat) -{ - -} - /* * Set up static device mappings. * @@ -140,7 +133,6 @@ static platform_method_t tegra124_methods[] = { PLATFORMMETHOD(platform_attach, tegra124_attach), PLATFORMMETHOD(platform_devmap_init, tegra124_devmap_init), - PLATFORMMETHOD(platform_late_init, tegra124_late_init), PLATFORMMETHOD(platform_cpu_reset, tegra124_cpu_reset), #ifdef SMP Index: sys/arm/ralink/rt1310_machdep.c =================================================================== --- sys/arm/ralink/rt1310_machdep.c +++ sys/arm/ralink/rt1310_machdep.c @@ -93,7 +93,9 @@ void platform_late_init(void) { - bootverbose = 1; + + if (curcpu == 0) + bootverbose = 1; } /* Index: sys/arm/rockchip/rk30xx_machdep.c =================================================================== --- sys/arm/rockchip/rk30xx_machdep.c +++ sys/arm/rockchip/rk30xx_machdep.c @@ -60,6 +60,10 @@ rk30xx_late_init(platform_t plat) { + /* XXX: Should this be run on all cpus? */ + if (curcpu != 0) + return; + /* Enable cache */ cpufunc_control(CPU_CONTROL_DC_ENABLE|CPU_CONTROL_IC_ENABLE, CPU_CONTROL_DC_ENABLE|CPU_CONTROL_IC_ENABLE);