[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qemu-s390x] [kvm-unit-tests PATCH 1/5] s390x: Make tests bootable from
From: |
Janosch Frank |
Subject: |
[qemu-s390x] [kvm-unit-tests PATCH 1/5] s390x: Make tests bootable from disk |
Date: |
Tue, 4 Dec 2018 14:48:34 +0100 |
Currently tests are run with the --kernel option of Qemu, which will
load the ELF file and jump to the start address. When booting from
disk, we need to specify a start address. This is done by setting the
initial short PSW at 0x0.
For later compatibility with other hypervisors the short psw has 31
bit addressing specified.
Signed-off-by: Janosch Frank <address@hidden>
---
s390x/cstart64.S | 9 +++++++--
s390x/flat.lds | 8 +++++++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/s390x/cstart64.S b/s390x/cstart64.S
index dc7ddd6..abd6b58 100644
--- a/s390x/cstart64.S
+++ b/s390x/cstart64.S
@@ -14,12 +14,17 @@
.section .init
-/* entry point - for KVM + TCG we directly start in 64 bit mode */
+/*
+ * Short init between 0x10000 and 0x10480 and then jump to 0x11000.
+ * 0x10480 - 0x11000 are written to by bootloader.
+ */
.globl start
start:
+ sam64 # Set addressing mode to 64 bit
+start64:
/* setup stack */
larl %r15, stackptr
- /* setup initial PSW mask + control registers*/
+ /* setup initial PSW mask + control registers */
larl %r1, initial_psw
lpswe 0(%r1)
init_psw_cont:
diff --git a/s390x/flat.lds b/s390x/flat.lds
index b6e2172..7cfd9f9 100644
--- a/s390x/flat.lds
+++ b/s390x/flat.lds
@@ -1,10 +1,16 @@
SECTIONS
{
+ .lowcore : {
+ . = 0;
+ LONG(0x00080000)
+ LONG(0x80010000)
+ }
+ . = 0x10000;
.text : {
*(.init)
. = 0x480;
ipl_args = .;
- . = 0x600;
+ . = 0x1000;
*(.text)
*(.text.*)
}
--
2.14.3
[qemu-s390x] [kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if needed, Janosch Frank, 2018/12/04
[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