From fe355b7f1c7400cbb71762a1237461be03f88265 Mon Sep 17 00:00:00 2001 From: Hongjie Yang Date: Mon, 5 Feb 2007 21:18:24 +0100 Subject: [S390] boot from NSS support Add support to boot from a named saved segment (NSS). Signed-off-by: Hongjie Yang Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/head64.S | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'arch/s390/kernel/head64.S') diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index e940e802cb4..030a1c95f47 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S @@ -58,18 +58,11 @@ startup_continue: stg %r15,__LC_KERNEL_STACK # set end of kernel stack aghi %r15,-160 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # clear backchain - - brasl %r14,ipl_save_parameters # -# clear bss memory +# Save ipl parameters, clear bss memory, initialize storage key for kernel pages, +# and create a kernel NSS if the SAVESYS= parm is defined # - larl %r2,__bss_start # start of bss segment - larl %r3,_end # end of bss segment - sgr %r3,%r2 # length of bss - sgr %r4,%r4 # - sgr %r5,%r5 # set src,length and pad to zero - mvcle %r2,%r4,0 # clear mem - jo .-4 # branch back, if not finish + brasl %r14,startup_init # set program check new psw mask mvc __LC_PGM_NEW_PSW(8),.Lpcmsk-.LPG1(%r13) larl %r1,.Lslowmemdetect # set program check address @@ -78,6 +71,10 @@ startup_continue: diag %r0,%r1,0x260 # get memory size of virtual machine cgr %r0,%r1 # different? -> old detection routine jne .Lslowmemdetect + larl %r3,ipl_flags + llgt %r3,0(%r3) + chi %r3,4 # ipled from an kernel NSS + je .Lslowmemdetect aghi %r1,1 # size is one more than end larl %r2,memory_chunk stg %r1,8(%r2) # store size of chunk @@ -225,19 +222,6 @@ startup_continue: .Ldonemem: larl %r12,machine_flags -# -# find out if we are running under VM -# - stidp __LC_CPUID # store cpuid - tm __LC_CPUID,0xff # running under VM ? - bno 0f-.LPG1(%r13) - oi 7(%r12),1 # set VM flag -0: lh %r0,__LC_CPUID+4 # get cpu version - chi %r0,0x7490 # running on a P/390 ? - bne 1f-.LPG1(%r13) - oi 7(%r12),4 # set P/390 flag -1: - # # find out if we have the MVPG instruction # -- cgit v1.2.3