[coreboot-gerrit] Patch set updated for coreboot: a08bade arm64: add cpu_is_bsp() concept

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Fri Mar 27 14:27:14 CET 2015


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

-gerrit

commit a08badede73b17314d0507898d3cc40a8452d503
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed Sep 17 11:51:41 2014 -0500

    arm64: add cpu_is_bsp() concept
    
    It's helpful to know if the current running CPU
    is the BSP. Therefore, provide that semantic.
    
    BUG=chrome-os-partner:32082
    BRANCH=None
    TEST=Built and booted to kernel.
    
    Change-Id: I18cb8ab5149c3337e22b1f6046b1af266be7e47c
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: b390dc70b658c207cd3b64408713ec4cddab3172
    Original-Change-Id: I3d5518d1f6d6a78b14f25bb7ef79727605064561
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/218653
    Original-Reviewed-by: Furquan Shaikh <furquan at chromium.org>
---
 src/arch/arm64/c_entry.c                |  1 +
 src/arch/arm64/cpu.c                    |  1 +
 src/arch/arm64/include/armv8/arch/cpu.h | 13 +++++++++++++
 3 files changed, 15 insertions(+)

diff --git a/src/arch/arm64/c_entry.c b/src/arch/arm64/c_entry.c
index 4e5c151..f4a9848 100644
--- a/src/arch/arm64/c_entry.c
+++ b/src/arch/arm64/c_entry.c
@@ -56,6 +56,7 @@ static void seed_stack(void)
 
 void arm64_init(void)
 {
+	cpu_set_bsp();
 	seed_stack();
 	arm64_soc_init();
 	main();
diff --git a/src/arch/arm64/cpu.c b/src/arch/arm64/cpu.c
index c0dc3c3..a263e1b 100644
--- a/src/arch/arm64/cpu.c
+++ b/src/arch/arm64/cpu.c
@@ -27,6 +27,7 @@
 #include "cpu-internal.h"
 
 static struct cpu_info cpu_infos[CONFIG_MAX_CPUS];
+struct cpu_info *bsp_cpu_info;
 
 static inline struct cpu_info *cpu_info_for_cpu(unsigned int id)
 {
diff --git a/src/arch/arm64/include/armv8/arch/cpu.h b/src/arch/arm64/include/armv8/arch/cpu.h
index d262385..8d071ad 100644
--- a/src/arch/arm64/include/armv8/arch/cpu.h
+++ b/src/arch/arm64/include/armv8/arch/cpu.h
@@ -66,6 +66,19 @@ struct cpu_info {
 /* Obtain cpu_info for current executing CPU. */
 struct cpu_info *cpu_info(void);
 
+extern struct cpu_info *bsp_cpu_info;
+
+/* Ran only by BSP at initial boot strapping. */
+static inline void cpu_set_bsp(void)
+{
+	bsp_cpu_info = cpu_info();
+}
+
+static inline int cpu_is_bsp(void)
+{
+	return cpu_info() == bsp_cpu_info;
+}
+
 /* Control routines for starting CPUs. */
 struct cpu_control_ops {
 	/* Return the maximum number of CPUs supported. */



More information about the coreboot-gerrit mailing list