From: Andrew Jones <drjones@redhat.com>
To: kvm@vger.kernel.org
Cc: pbonzini@redhat.com, Alexandru Elisei <alexandru.elisei@arm.com>
Subject: [PULL kvm-unit-tests 02/10] arm/arm64: Reorganize cstart assembler
Date: Mon, 17 May 2021 16:38:52 +0200 [thread overview]
Message-ID: <20210517143900.747013-3-drjones@redhat.com> (raw)
In-Reply-To: <20210517143900.747013-1-drjones@redhat.com>
Move secondary_entry helper functions out of .init and into .text,
since secondary_entry isn't run at at "init" time. Actually, anything
that is used after init time should be in .text, as we may not include
.init in some build configurations.
Reviewed-by Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>
---
arm/cstart.S | 66 +++++++++++++++++++++++++++++---------------------
arm/cstart64.S | 18 ++++++++------
2 files changed, 49 insertions(+), 35 deletions(-)
diff --git a/arm/cstart.S b/arm/cstart.S
index d88a98362940..b2c0ba061cd5 100644
--- a/arm/cstart.S
+++ b/arm/cstart.S
@@ -96,32 +96,7 @@ start:
bl exit
b halt
-
-.macro set_mode_stack mode, stack
- add \stack, #S_FRAME_SIZE
- msr cpsr_c, #(\mode | PSR_I_BIT | PSR_F_BIT)
- isb
- mov sp, \stack
-.endm
-
-exceptions_init:
- mrc p15, 0, r2, c1, c0, 0 @ read SCTLR
- bic r2, #CR_V @ SCTLR.V := 0
- mcr p15, 0, r2, c1, c0, 0 @ write SCTLR
- ldr r2, =vector_table
- mcr p15, 0, r2, c12, c0, 0 @ write VBAR
-
- mrs r2, cpsr
-
- /* first frame reserved for svc mode */
- set_mode_stack UND_MODE, r0
- set_mode_stack ABT_MODE, r0
- set_mode_stack IRQ_MODE, r0
- set_mode_stack FIQ_MODE, r0
-
- msr cpsr_cxsf, r2 @ back to svc mode
- isb
- mov pc, lr
+.text
enable_vfp:
/* Enable full access to CP10 and CP11: */
@@ -133,8 +108,6 @@ enable_vfp:
vmsr fpexc, r0
mov pc, lr
-.text
-
.global get_mmu_off
get_mmu_off:
ldr r0, =auxinfo
@@ -235,6 +208,43 @@ asm_mmu_disable:
mov pc, lr
+/*
+ * Vectors
+ */
+
+.macro set_mode_stack mode, stack
+ add \stack, #S_FRAME_SIZE
+ msr cpsr_c, #(\mode | PSR_I_BIT | PSR_F_BIT)
+ isb
+ mov sp, \stack
+.endm
+
+/*
+ * exceptions_init
+ *
+ * Input r0 is the stack top, which is the exception stacks base
+ */
+exceptions_init:
+ mrc p15, 0, r2, c1, c0, 0 @ read SCTLR
+ bic r2, #CR_V @ SCTLR.V := 0
+ mcr p15, 0, r2, c1, c0, 0 @ write SCTLR
+ ldr r2, =vector_table
+ mcr p15, 0, r2, c12, c0, 0 @ write VBAR
+
+ mrs r2, cpsr
+
+ /*
+ * The first frame is reserved for svc mode
+ */
+ set_mode_stack UND_MODE, r0
+ set_mode_stack ABT_MODE, r0
+ set_mode_stack IRQ_MODE, r0
+ set_mode_stack FIQ_MODE, r0
+
+ msr cpsr_cxsf, r2 @ back to svc mode
+ isb
+ mov pc, lr
+
/*
* Vector stubs
* Simplified version of the Linux kernel implementation
diff --git a/arm/cstart64.S b/arm/cstart64.S
index 0a85338bcdae..7963e1fea979 100644
--- a/arm/cstart64.S
+++ b/arm/cstart64.S
@@ -109,13 +109,6 @@ start:
bl exit
b halt
-exceptions_init:
- adrp x4, vector_table
- add x4, x4, :lo12:vector_table
- msr vbar_el1, x4
- isb
- ret
-
.text
.globl get_mmu_off
@@ -251,6 +244,17 @@ asm_mmu_disable:
/*
* Vectors
+ */
+
+exceptions_init:
+ adrp x4, vector_table
+ add x4, x4, :lo12:vector_table
+ msr vbar_el1, x4
+ isb
+ ret
+
+/*
+ * Vector stubs
* Adapted from arch/arm64/kernel/entry.S
*/
.macro vector_stub, name, vec
--
2.30.2
next prev parent reply other threads:[~2021-05-17 14:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-17 14:38 [PULL kvm-unit-tests 00/10] arm/arm64: target-efi prep Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 01/10] configure: arm: Replace --vmm with --target Andrew Jones
2021-05-17 14:38 ` Andrew Jones [this message]
2021-05-17 14:38 ` [PULL kvm-unit-tests 03/10] arm/arm64: Move setup_vm into setup Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 04/10] pci-testdev: ioremap regions Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 05/10] arm64: micro-bench: ioremap userspace_emulated_addr Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 06/10] arm/arm64: mmu: Stop mapping an assumed IO region Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 07/10] arm/arm64: mmu: Remove memory layout assumptions Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 08/10] arm/arm64: setup: Consolidate " Andrew Jones
2021-05-17 14:38 ` [PULL kvm-unit-tests 09/10] chr-testdev: Silently fail init Andrew Jones
2021-05-17 14:39 ` [PULL kvm-unit-tests 10/10] arm/arm64: psci: Don't assume method is hvc Andrew Jones
2021-05-18 11:35 ` [PULL kvm-unit-tests 00/10] arm/arm64: target-efi prep Andrew Jones
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=20210517143900.747013-3-drjones@redhat.com \
--to=drjones@redhat.com \
--cc=alexandru.elisei@arm.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.