[coreboot-gerrit] New patch to review for coreboot: 3ac7beb arm64: secmon: direct non-BSP cpus to start before BSP

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Wed Apr 8 12:48:27 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9392

-gerrit

commit 3ac7beb57e1fde769ea97230d99eb48848333e16
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Tue Nov 4 20:47:23 2014 -0600

    arm64: secmon: direct non-BSP cpus to start before BSP
    
    The arch_run_on_all_cpus[_async]() APIs can run the BSP before
    the APs if the BSP's id is less than the APs' ids. Fix this by
    ensuring we run the necessary callback on all but self.
    
    BUG=chrome-os-partner:33532
    BRANCH=None
    TEST=Booted spin table kernel. All CPUs are up.
    
    Change-Id: Ic9a466c3642595bad06cac83647de81873b8353e
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 575437354cc20eeac8015a0f7b0c9999ecb0deee
    Original-Change-Id: I87e944f870105dbde33b5460660c96c93c3cdf93
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/227488
    Original-Tested-by: David Riley <davidriley at chromium.org>
    Original-Reviewed-by: Tom Warren <twarren at nvidia.com>
    Original-Reviewed-by: Furquan Shaikh <furquan at chromium.org>
---
 src/arch/arm64/armv8/secmon/secmon_init.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/arch/arm64/armv8/secmon/secmon_init.c b/src/arch/arm64/armv8/secmon/secmon_init.c
index 9097a08..2ec2f13 100644
--- a/src/arch/arm64/armv8/secmon/secmon_init.c
+++ b/src/arch/arm64/armv8/secmon/secmon_init.c
@@ -70,7 +70,10 @@ static void secmon_init(struct secmon_params *params, int bsp)
 	smc_init();
 	psci_init();
 
-	arch_run_on_all_cpus_async(&action);
+	/* Make sure all non-BSP CPUs take action before the BSP. */
+	arch_run_on_all_cpus_but_self_async(&action);
+	/* Turn on BSP. */
+	start_up_cpu(NULL);
 
 	printk(BIOS_ERR, "CPU turn on failed for BSP.\n");
 	while (1)



More information about the coreboot-gerrit mailing list