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