Date: Mon, 11 Sep 2017 22:35:20 +0000 (UTC) From: Ian Lepore <ian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r323471 - stable/11/sys/arm/broadcom/bcm2835 Message-ID: <201709112235.v8BMZKfV069653@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ian Date: Mon Sep 11 22:35:20 2017 New Revision: 323471 URL: https://svnweb.freebsd.org/changeset/base/323471 Log: MFC r323132-r323133 r323132: The latest RPi firmware leaves secondary cores in a wait-for-event (WFE) state to save power, so after writing the entry point address for a core to the mailbox, use a dsb() to synchronize the execution pipeline to the data written, then use an sev() to wake up the core. Submitted by: Sylvain Garrigues <sylgar@gmail.com> r323133: Change leading spaces to tabs, no functional change. Modified: stable/11/sys/arm/broadcom/bcm2835/bcm2836_mp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/broadcom/bcm2835/bcm2836_mp.c ============================================================================== --- stable/11/sys/arm/broadcom/bcm2835/bcm2836_mp.c Mon Sep 11 22:33:29 2017 (r323470) +++ stable/11/sys/arm/broadcom/bcm2835/bcm2836_mp.c Mon Sep 11 22:35:20 2017 (r323471) @@ -114,7 +114,9 @@ platform_mp_start_ap(void) /* set entry point to mailbox 3 */ BSWR4(MBOX3SET_CORE(i), (uint32_t)pmap_kextract((vm_offset_t)mpentry)); - wmb(); + /* Firmware put cores in WFE state, need SEV to wake up. */ + dsb(); + sev(); /* wait for bootup */ retry = 1000;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709112235.v8BMZKfV069653>