[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qemu-s390x] [kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if neede
From: |
Janosch Frank |
Subject: |
[qemu-s390x] [kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if needed |
Date: |
Tue, 4 Dec 2018 14:48:35 +0100 |
LPAR and z/VM start in esam mode, so we need to switch to z/Arch and
set 64 bit addressing.
Under Qemu/KVM we already start out with both when being run with the
Qemu --kernel argument or we lack only 64 bit when booting from disk.
Signed-off-by: Janosch Frank <address@hidden>
---
s390x/cstart64.S | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/s390x/cstart64.S b/s390x/cstart64.S
index abd6b58..80dbcba 100644
--- a/s390x/cstart64.S
+++ b/s390x/cstart64.S
@@ -20,6 +20,15 @@
*/
.globl start
start:
+ tam # Test for 64 bit addressing (KVM IPL)
+ brc 1, start64 # If cc = 3 (64 bit), we have z/Arch
+ /* Switch to z/Architecture mode (64-bit) */
+ slr %r0, %r0 # set cpuid to zero
+ lhi %r1, 2 # mode 2 = esame
+ sigp %r1, %r0, 0x12 # sigp set arch
+ bras %r13,0f
+ .fill 16,4,0x0
+0: lmh %r0,%r15,0(%r13) # clear high-order half of gprs
sam64 # Set addressing mode to 64 bit
start64:
/* setup stack */
--
2.14.3
[qemu-s390x] [kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if needed,
Janosch Frank <=
[qemu-s390x] [kvm-unit-tests PATCH 3/5] s390x: Add BSS clearing for non ELF boot, Janosch Frank, 2018/12/04
[qemu-s390x] [kvm-unit-tests PATCH 4/5] s390x: Use interrupts in SCLP and add line mode, Janosch Frank, 2018/12/04
[qemu-s390x] [kvm-unit-tests PATCH 5/5] s390x: Fix sclp-ascii.c indents, Janosch Frank, 2018/12/04