summaryrefslogtreecommitdiff
path: root/src/arch/arm64/cpu.c
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/cpu.c
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/cpu.c')
-rw-r--r--src/arch/arm64/cpu.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/arch/arm64/cpu.c b/src/arch/arm64/cpu.c
index eb08735292..cd8dd3820a 100644
--- a/src/arch/arm64/cpu.c
+++ b/src/arch/arm64/cpu.c
@@ -32,6 +32,19 @@ struct cpu_info *cpu_info(void)
return cpu_info_for_cpu(smp_processor_id());
}
+size_t cpus_online(void)
+{
+ int i;
+ size_t num = 0;
+
+ for (i = 0; i < ARRAY_SIZE(cpu_infos); i++) {
+ if (cpu_online(cpu_info_for_cpu(i)))
+ num++;
+ }
+
+ return num;
+}
+
static inline int action_queue_empty(struct cpu_action_queue *q)
{
return load_acquire_exclusive(&q->todo) == NULL;