aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/head31.S
diff options
context:
space:
mode:
authorHongjie Yang <hongjie@us.ibm.com>2007-02-05 15:18:24 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-02-05 15:18:24 -0500
commitfe355b7f1c7400cbb71762a1237461be03f88265 (patch)
tree8ef581c8ff0889a200bae88a4961395bcb80aec4 /arch/s390/kernel/head31.S
parent1b2782948997cf5a0d1747de13d43ba7dfa7c543 (diff)
[S390] boot from NSS support
Add support to boot from a named saved segment (NSS). Signed-off-by: Hongjie Yang <hongjie@us.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/head31.S')
-rw-r--r--arch/s390/kernel/head31.S34
1 files changed, 6 insertions, 28 deletions
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S
index eca507050e4..b3dcdcdc80c 100644
--- a/arch/s390/kernel/head31.S
+++ b/arch/s390/kernel/head31.S
@@ -51,20 +51,12 @@ startup_continue:
51 st %r15,__LC_KERNEL_STACK # set end of kernel stack 51 st %r15,__LC_KERNEL_STACK # set end of kernel stack
52 ahi %r15,-96 52 ahi %r15,-96
53 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # clear backchain 53 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) # clear backchain
54
55 l %r14,.Lipl_save_parameters-.LPG1(%r13)
56 basr %r14,%r14
57# 54#
58# clear bss memory 55# Save ipl parameters, clear bss memory, initialize storage key for kernel pages,
56# and create a kernel NSS if the SAVESYS= parm is defined
59# 57#
60 l %r2,.Lbss_bgn-.LPG1(%r13) # start of bss 58 l %r14,.Lstartup_init-.LPG1(%r13)
61 l %r3,.Lbss_end-.LPG1(%r13) # end of bss 59 basr %r14,%r14
62 sr %r3,%r2 # length of bss
63 sr %r4,%r4
64 sr %r5,%r5 # set src,length and pad to zero
65 sr %r0,%r0
66 mvcle %r2,%r4,0 # clear mem
67 jo .-4 # branch back, if not finish
68 60
69 l %r2,.Lrcp-.LPG1(%r13) # Read SCP forced command word 61 l %r2,.Lrcp-.LPG1(%r13) # Read SCP forced command word
70.Lservicecall: 62.Lservicecall:
@@ -125,10 +117,10 @@ startup_continue:
125 b .Lfchunk-.LPG1(%r13) 117 b .Lfchunk-.LPG1(%r13)
126 118
127 .align 4 119 .align 4
128.Lipl_save_parameters:
129 .long ipl_save_parameters
130.Linittu: 120.Linittu:
131 .long init_thread_union 121 .long init_thread_union
122.Lstartup_init:
123 .long startup_init
132.Lpmask: 124.Lpmask:
133 .byte 0 125 .byte 0
134 .align 8 126 .align 8
@@ -207,20 +199,6 @@ startup_continue:
207.Ldonemem: 199.Ldonemem:
208 l %r12,.Lmflags-.LPG1(%r13) # get address of machine_flags 200 l %r12,.Lmflags-.LPG1(%r13) # get address of machine_flags
209# 201#
210# find out if we are running under VM
211#
212 stidp __LC_CPUID # store cpuid
213 tm __LC_CPUID,0xff # running under VM ?
214 bno .Lnovm-.LPG1(%r13)
215 oi 3(%r12),1 # set VM flag
216.Lnovm:
217 lh %r0,__LC_CPUID+4 # get cpu version
218 chi %r0,0x7490 # running on a P/390 ?
219 bne .Lnop390-.LPG1(%r13)
220 oi 3(%r12),4 # set P/390 flag
221.Lnop390:
222
223#
224# find out if we have an IEEE fpu 202# find out if we have an IEEE fpu
225# 203#
226 mvc __LC_PGM_NEW_PSW(8),.Lpcfpu-.LPG1(%r13) 204 mvc __LC_PGM_NEW_PSW(8),.Lpcfpu-.LPG1(%r13)