From: Julien Grall <julien.grall@arm.com>
To: xen-devel@lists.xenproject.org
Cc: andre.przywara@arm.com, Julien Grall <julien.grall@arm.com>,
Stefano Stabellini <sstabellini@kernel.org>,
andrii_anisov@epam.com, Oleksandr_Tyshchenko@epam.com
Subject: [Xen-devel] [PATCH 07/17] xen/arm64: head: Rework and document check_cpu_mode()
Date: Mon, 10 Jun 2019 20:32:05 +0100 [thread overview]
Message-ID: <20190610193215.23704-8-julien.grall@arm.com> (raw)
In-Reply-To: <20190610193215.23704-1-julien.grall@arm.com>
A branch in the success case can be avoided by inverting the branch
condition. At the same time, remove a pointless comment as Xen can only
run at EL2.
Lastly, document the behavior and the main registers usage within the
function.
Signed-off-by: Julien Grall <julien.grall@arm.com>
---
xen/arch/arm/arm64/head.S | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index ccd8a1b0a8..87fcd3be6c 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -350,6 +350,13 @@ secondary_switched:
b launch
ENDPROC(init_secondary)
+/*
+ * Check if the CPU has been booted in Hypervisor mode.
+ * This function will never return when the CPU is booted in another mode
+ * than Hypervisor mode.
+ *
+ * Clobbers x0 - x5
+ */
check_cpu_mode:
PRINT("- Current EL ")
mrs x5, CurrentEL
@@ -359,15 +366,13 @@ check_cpu_mode:
/* Are we in EL2 */
cmp x5, #PSR_MODE_EL2t
ccmp x5, #PSR_MODE_EL2h, #0x4, ne
- b.eq el2 /* Yes */
-
+ b.ne 1f /* No */
+ ret
+1:
/* OK, we're boned. */
PRINT("- Xen must be entered in NS EL2 mode -\r\n")
PRINT("- Please update the bootloader -\r\n")
b fail
-
-el2: PRINT("- Xen starting at EL2 -\r\n")
- ret
ENDPROC(check_cpu_mode)
zero_bss:
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-06-10 19:32 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-10 19:31 [Xen-devel] [PATCH 00/17] xen/arm64: Rework head.S to make it more compliant with the Arm Arm Julien Grall
2019-06-10 19:31 ` [Xen-devel] [PATCH 01/17] xen/arm64: head Mark the end of subroutines with ENDPROC Julien Grall
2019-06-25 23:23 ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 02/17] xen/arm64: head: Don't clobber x30/lr in the macro PRINT Julien Grall
2019-06-25 23:35 ` Stefano Stabellini
2019-06-25 23:59 ` Stefano Stabellini
2019-06-26 9:07 ` Julien Grall
2019-06-26 15:27 ` Stefano Stabellini
2019-06-26 15:28 ` Julien Grall
2019-06-26 18:32 ` Stefano Stabellini
2019-06-26 19:24 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 03/17] xen/arm64: head: Rework UART initialization on boot CPU Julien Grall
2019-06-25 23:49 ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 04/17] xen/arm64: head: Don't "reserve" x24 for the CPUID Julien Grall
2019-06-26 0:01 ` Stefano Stabellini
2019-06-26 9:09 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 05/17] xen/arm64: head: Introduce print_reg Julien Grall
2019-06-26 0:09 ` Stefano Stabellini
2019-06-26 9:10 ` Julien Grall
2019-07-15 18:46 ` Volodymyr Babchuk
2019-07-16 9:55 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 06/17] xen/arm64: head: Introduce distinct paths for the boot CPU and secondary CPUs Julien Grall
2019-06-26 1:00 ` Stefano Stabellini
2019-06-26 9:14 ` Julien Grall
2019-06-10 19:32 ` Julien Grall [this message]
2019-06-26 1:00 ` [Xen-devel] [PATCH 07/17] xen/arm64: head: Rework and document check_cpu_mode() Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 08/17] xen/arm64: head: Rework and document zero_bss() Julien Grall
2019-06-26 1:01 ` Stefano Stabellini
2019-06-26 9:16 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 09/17] xen/arm64: head: Improve coding style and document cpu_init() Julien Grall
2019-06-26 1:01 ` Stefano Stabellini
2019-06-26 10:34 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 10/17] xen/arm64: head: Improve coding style and document create_pages_tables() Julien Grall
2019-06-26 1:03 ` Stefano Stabellini
2019-06-26 11:20 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 11/17] xen/arm64: head: Document enable_mmu() Julien Grall
2019-06-26 1:03 ` Stefano Stabellini
2019-06-26 11:23 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 12/17] xen/arm64: head: Move assembly switch to the runtime PT in secondary CPUs path Julien Grall
2019-06-26 1:03 ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 13/17] xen/arm64: head: Don't setup the fixmap on secondary CPUs Julien Grall
2019-06-26 18:51 ` Stefano Stabellini
2019-06-26 19:26 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 14/17] xen/arm64: head: Remove ID map as soon as it is not used Julien Grall
2019-06-26 20:25 ` Stefano Stabellini
2019-06-26 20:39 ` Julien Grall
2019-06-26 20:44 ` Andrew Cooper
2019-06-28 0:36 ` Stefano Stabellini
2019-06-27 18:55 ` Stefano Stabellini
2019-06-27 19:30 ` Julien Grall
2019-07-10 19:39 ` Julien Grall
2019-07-30 17:33 ` Stefano Stabellini
2019-07-30 19:52 ` Julien Grall
2019-07-31 20:40 ` Stefano Stabellini
2019-07-31 21:07 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 15/17] xen/arm64: head: Rework and document setup_fixmap() Julien Grall
2019-06-26 19:01 ` Stefano Stabellini
2019-06-26 19:30 ` Julien Grall
2019-06-27 9:29 ` Julien Grall
2019-06-27 15:38 ` Stefano Stabellini
2019-06-26 19:02 ` Stefano Stabellini
2019-06-27 9:19 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 16/17] xen/arm64: head: Rework and document launch() Julien Grall
2019-06-26 19:12 ` Stefano Stabellini
2019-06-26 20:09 ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 17/17] xen/arm64: Zero BSS after the MMU and D-cache is turned on Julien Grall
2019-06-26 19:29 ` Stefano Stabellini
2019-06-26 20:07 ` Julien Grall
2019-06-26 21:08 ` Stefano Stabellini
2019-06-27 11:04 ` Julien Grall
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=20190610193215.23704-8-julien.grall@arm.com \
--to=julien.grall@arm.com \
--cc=Oleksandr_Tyshchenko@epam.com \
--cc=andre.przywara@arm.com \
--cc=andrii_anisov@epam.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.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).