Module Name: src Committed By: jmcneill Date: Sat Nov 4 14:47:06 UTC 2017
Modified Files: src/sys/arch/evbarm/rpi: rpi_machdep.c Log Message: Firmware after May 8, 2017 places APs in WFE state at boot. Add a "sev" after writing the start vector, otherwise secondary CPUs will not boot. To generate a diff of this commit: cvs rdiff -u -r1.80 -r1.81 src/sys/arch/evbarm/rpi/rpi_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/evbarm/rpi/rpi_machdep.c diff -u src/sys/arch/evbarm/rpi/rpi_machdep.c:1.80 src/sys/arch/evbarm/rpi/rpi_machdep.c:1.81 --- src/sys/arch/evbarm/rpi/rpi_machdep.c:1.80 Wed Aug 16 20:54:19 2017 +++ src/sys/arch/evbarm/rpi/rpi_machdep.c Sat Nov 4 14:47:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rpi_machdep.c,v 1.80 2017/08/16 20:54:19 jmcneill Exp $ */ +/* $NetBSD: rpi_machdep.c,v 1.81 2017/11/04 14:47:06 jmcneill Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rpi_machdep.c,v 1.80 2017/08/16 20:54:19 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rpi_machdep.c,v 1.81 2017/11/04 14:47:06 jmcneill Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -660,6 +660,9 @@ rpi_bootstrap(void) } } + /* Wake up APs in case firmware has placed them in WFE state */ + __asm __volatile("sev"); + for (int loop = 0; loop < 16; loop++) { if (arm_cpu_hatched == __BITS(arm_cpu_max - 1, 1)) break;