Index: sys/mips/mips/mp_machdep.c =================================================================== --- sys/mips/mips/mp_machdep.c +++ sys/mips/mips/mp_machdep.c @@ -60,6 +60,7 @@ static volatile int aps_ready; static volatile int mp_naps; +static volatile register_t saved_hwrena; static void ipi_send(struct pcpu *pc, int ipi) @@ -246,6 +247,10 @@ int error, cpuid; cpuset_t cpumask; + /* Stash the BSP HWREna to share with the APs. */ + saved_hwrena = mips_rd_hwrena(); + mips_sync(); + mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); CPU_ZERO(&all_cpus); @@ -292,6 +297,9 @@ mips_wr_entryhi(0); + /* Load up the BSP's hwrena, so it's on all CPUs */ + mips_wr_hwrena(saved_hwrena); + pcpu_init(PCPU_ADDR(cpuid), cpuid, sizeof(struct pcpu)); dpcpu_init(dpcpu, cpuid);