summaryrefslogtreecommitdiff
path: root/src/arch/arm64/include
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2014-11-05 11:19:21 -0600
committerPatrick Georgi <pgeorgi@google.com>2015-04-10 11:57:19 +0200
commit931a218d685610d85b570b72889b341270e2d00a (patch)
tree446329b3db54620b5342f1eea1f398e28112743a /src/arch/arm64/include
parent9fd7b1c1a9ab42b428af2599f497a328a04dbe92 (diff)
downloadcoreboot-931a218d685610d85b570b72889b341270e2d00a.tar.xz
arm64: secmon: pass online CPUs to secmon
Instead of relying on CONFIG_MAX_CPUS to be the number of CPUs running a platform pass the number of online cpus from coreboot secmon. That allows for actually enabled CPUs < CONFIG_MAX_CPUS. BUG=chrome-os-partner:32112 BRANCH=None TEST=Booted SMP kernel. Change-Id: Iaf1591e77fcb5ccf5fe271b6c84ea8866e19c59d Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 3827af876c247fc42cd6be5dd67f8517457b36e7 Original-Change-Id: Ice10b8ab45bb1190a42678e67776846eec4eb79a Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/227529 Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: http://review.coreboot.org/9397 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/arch/arm64/include')
-rw-r--r--src/arch/arm64/include/armv8/arch/cpu.h3
-rw-r--r--src/arch/arm64/include/armv8/arch/secmon.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/arm64/include/armv8/arch/cpu.h b/src/arch/arm64/include/armv8/arch/cpu.h
index d4ff907495..c6ca7d38c6 100644
--- a/src/arch/arm64/include/armv8/arch/cpu.h
+++ b/src/arch/arm64/include/armv8/arch/cpu.h
@@ -99,6 +99,9 @@ static inline void cpu_mark_online(struct cpu_info *ci)
store_release(&ci->online, 1);
}
+/* Provide number of CPUs online. */
+size_t cpus_online(void);
+
/* Control routines for starting CPUs. */
struct cpu_control_ops {
/* Return the maximum number of CPUs supported. */
diff --git a/src/arch/arm64/include/armv8/arch/secmon.h b/src/arch/arm64/include/armv8/arch/secmon.h
index dc4b2e06ce..3d368a70e5 100644
--- a/src/arch/arm64/include/armv8/arch/secmon.h
+++ b/src/arch/arm64/include/armv8/arch/secmon.h
@@ -25,6 +25,7 @@
#if IS_ENABLED(CONFIG_ARCH_USE_SECURE_MONITOR)
struct secmon_params {
+ size_t online_cpus;
struct cpu_action bsp;
struct cpu_action secondary;
};