[kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <frankja@xxxxxxxxxxxxx>
---
 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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux