diff options
Diffstat (limited to 'arch/s390/kernel/head64.S')
-rw-r--r-- | arch/s390/kernel/head64.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index f525c0c21250..9a8263a153cb 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
@@ -345,6 +345,13 @@ iplstart: | |||
345 | la %r2,.Lreset | 345 | la %r2,.Lreset |
346 | lhi %r3,26 | 346 | lhi %r3,26 |
347 | diag %r2,%r3,8 | 347 | diag %r2,%r3,8 |
348 | la %r5,.Lirb | ||
349 | stsch 0(%r5) # check if irq is pending | ||
350 | tm 30(%r5),0x0f # by verifying if any of the | ||
351 | bnz .Lwaitforirq # activity or status control | ||
352 | tm 31(%r5),0xff # bits is set in the schib | ||
353 | bz .Lnoreset | ||
354 | .Lwaitforirq: | ||
348 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | 355 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw |
349 | .Lwaitrdrirq: | 356 | .Lwaitrdrirq: |
350 | lpsw .Lrdrwaitpsw | 357 | lpsw .Lrdrwaitpsw |
@@ -658,10 +665,8 @@ startup:basr %r13,0 # get base | |||
658 | # | 665 | # |
659 | la %r1,0f-.LPG1(%r13) # set program check address | 666 | la %r1,0f-.LPG1(%r13) # set program check address |
660 | stg %r1,__LC_PGM_NEW_PSW+8 | 667 | stg %r1,__LC_PGM_NEW_PSW+8 |
661 | mvc __LC_DIAG44_OPCODE(8),.Lnop-.LPG1(%r13) | ||
662 | diag 0,0,0x44 # test diag 0x44 | 668 | diag 0,0,0x44 # test diag 0x44 |
663 | oi 7(%r12),32 # set diag44 flag | 669 | oi 7(%r12),32 # set diag44 flag |
664 | mvc __LC_DIAG44_OPCODE(8),.Ldiag44-.LPG1(%r13) | ||
665 | 0: | 670 | 0: |
666 | 671 | ||
667 | # | 672 | # |
@@ -702,7 +707,6 @@ startup:basr %r13,0 # get base | |||
702 | .L4malign:.quad 0xffffffffffc00000 | 707 | .L4malign:.quad 0xffffffffffc00000 |
703 | .Lscan2g:.quad 0x80000000 + 0x20000 - 8 # 2GB + 128K - 8 | 708 | .Lscan2g:.quad 0x80000000 + 0x20000 - 8 # 2GB + 128K - 8 |
704 | .Lnop: .long 0x07000700 | 709 | .Lnop: .long 0x07000700 |
705 | .Ldiag44:.long 0x83000044 | ||
706 | 710 | ||
707 | .org PARMAREA-64 | 711 | .org PARMAREA-64 |
708 | .Lduct: .long 0,0,0,0,0,0,0,0 | 712 | .Lduct: .long 0,0,0,0,0,0,0,0 |
@@ -765,7 +769,7 @@ _stext: basr %r13,0 # get base | |||
765 | 769 | ||
766 | # check control registers | 770 | # check control registers |
767 | stctg %c0,%c15,0(%r15) | 771 | stctg %c0,%c15,0(%r15) |
768 | oi 6(%r15),0x20 # enable sigp external interrupts | 772 | oi 6(%r15),0x40 # enable sigp emergency signal |
769 | oi 4(%r15),0x10 # switch on low address proctection | 773 | oi 4(%r15),0x10 # switch on low address proctection |
770 | lctlg %c0,%c15,0(%r15) | 774 | lctlg %c0,%c15,0(%r15) |
771 | 775 | ||