diff options
Diffstat (limited to 'arch/s390/kernel/head.S')
-rw-r--r-- | arch/s390/kernel/head.S | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index b804c55bd919..fc8bf5e285f6 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
@@ -345,10 +345,25 @@ iplstart: | |||
345 | bno .Lnoreset | 345 | bno .Lnoreset |
346 | la %r2,.Lreset | 346 | la %r2,.Lreset |
347 | lhi %r3,26 | 347 | lhi %r3,26 |
348 | .long 0x83230008 | 348 | diag %r2,%r3,8 |
349 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | ||
350 | .Lwaitrdrirq: | ||
351 | lpsw .Lrdrwaitpsw | ||
352 | .Lrdrint: | ||
353 | c %r1,0xb8 # compare subchannel number | ||
354 | bne .Lwaitrdrirq | ||
355 | la %r5,.Lirb | ||
356 | tsch 0(%r5) | ||
349 | .Lnoreset: | 357 | .Lnoreset: |
358 | b .Lnoload | ||
359 | |||
360 | .align 8 | ||
361 | .Lrdrnewpsw: | ||
362 | .long 0x00080000,0x80000000+.Lrdrint | ||
363 | .Lrdrwaitpsw: | ||
364 | .long 0x020a0000,0x80000000+.Lrdrint | ||
350 | #endif | 365 | #endif |
351 | 366 | ||
352 | # | 367 | # |
353 | # everything loaded, go for it | 368 | # everything loaded, go for it |
354 | # | 369 | # |
@@ -517,10 +532,10 @@ startup:basr %r13,0 # get base | |||
517 | l %r2, .Lrcp2-.LPG1(%r13) # try with Read SCP | 532 | l %r2, .Lrcp2-.LPG1(%r13) # try with Read SCP |
518 | b .Lservicecall-.LPG1(%r13) | 533 | b .Lservicecall-.LPG1(%r13) |
519 | .Lprocsccb: | 534 | .Lprocsccb: |
520 | lh %r1,.Lscpincr1-PARMAREA(%r4) # use this one if != 0 | 535 | lhi %r1,0 |
521 | chi %r1,0x00 | 536 | icm %r1,3,.Lscpincr1-PARMAREA(%r4) # use this one if != 0 |
522 | jne .Lscnd | 537 | jnz .Lscnd |
523 | l %r1,.Lscpincr2-PARMAREA(%r4) # otherwise use this one | 538 | l %r1,.Lscpincr2-PARMAREA+4(%r4) # otherwise use this one |
524 | .Lscnd: | 539 | .Lscnd: |
525 | xr %r3,%r3 # same logic | 540 | xr %r3,%r3 # same logic |
526 | ic %r3,.Lscpa1-PARMAREA(%r4) | 541 | ic %r3,.Lscpa1-PARMAREA(%r4) |