linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] arm64: log CPU boot modes
Date: Fri, 13 Mar 2015 16:14:37 +0000	[thread overview]
Message-ID: <1426263277-9827-5-git-send-email-mark.rutland@arm.com> (raw)
In-Reply-To: <1426263277-9827-1-git-send-email-mark.rutland@arm.com>

We currently don't log the boot mode for arm64 as we do for arm, and
without KVM the user is provided with no indication as to which mode(s)
CPUs were booted in, which can seriously hinder debugging in some cases.

Add logging to the boot path once all CPUs are up. Where CPUs are
mismatched in violation of the boot protocol, WARN and set a taint (as
we do for CPU other CPU feature mismatches) given that the
firmware/bootloader is buggy and should be fixed.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/kernel/setup.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 781f469..1480894 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -62,6 +62,7 @@
 #include <asm/memblock.h>
 #include <asm/psci.h>
 #include <asm/efi.h>
+#include <asm/virt.h>
 
 unsigned int processor_id;
 EXPORT_SYMBOL(processor_id);
@@ -207,8 +208,20 @@ static void __init smp_build_mpidr_hash(void)
 }
 #endif
 
+static void __init hyp_mode_check(void)
+{
+	if (is_hyp_mode_available())
+		pr_info("CPU: All CPU(s) started at EL2\n");
+	else if (is_hyp_mode_mismatched())
+		WARN_TAINT(1, TAINT_CPU_OUT_OF_SPEC,
+			   "CPU: CPUs started in inconsistent modes");
+	else
+		pr_info("CPU: All CPU(s) started at EL1\n");
+}
+
 void __init do_post_cpus_up_work(void)
 {
+	hyp_mode_check();
 	apply_alternatives_all();
 }
 
-- 
1.9.1

  parent reply	other threads:[~2015-03-13 16:14 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-13 16:14 [PATCH 0/4] arm64: boot fixes/updates Mark Rutland
2015-03-13 16:14 ` [PATCH 1/4] arm64: apply alternatives for !SMP kernels Mark Rutland
2015-03-17 16:01   ` Ard Biesheuvel
2015-03-13 16:14 ` [PATCH 2/4] arm64: head.S: fix __boot_cpu_mode alignment Mark Rutland
2015-03-13 16:14 ` [PATCH 3/4] arm64: fix hyp mode mismatch detection Mark Rutland
2015-03-13 20:21   ` Ard Biesheuvel
2015-03-16 10:56     ` Mark Rutland
2015-03-16 11:03       ` Marc Zyngier
2015-03-16 11:05         ` Ard Biesheuvel
2015-03-17 15:58   ` Ard Biesheuvel
2015-03-13 16:14 ` Mark Rutland [this message]
2015-03-17 15:58   ` [PATCH 4/4] arm64: log CPU boot modes Ard Biesheuvel
2015-03-14  7:59 ` [PATCH 0/4] arm64: boot fixes/updates Ard Biesheuvel
2015-03-16 10:53   ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1426263277-9827-5-git-send-email-mark.rutland@arm.com \
    --to=mark.rutland@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).