• Vasily Gorbik's avatar
    s390/startup: add pgm check info printing · 724dc336
    Vasily Gorbik authored
    Try to print out startup pgm check info including exact linux kernel
    version, pgm interruption code and ilc, psw and general registers. Like
    the following:
    
    Linux version 5.3.0-rc7-07282-ge7b4d41d61bd-dirty (gor@tuxmaker) #3 SMP PREEMPT Thu Sep 5 16:07:34 CEST 2019
    Kernel fault: interruption code 0005 ilc:2
    PSW : 0000000180000000 0000000000012e52
          R:0 T:0 IO:0 EX:0 Key:0 M:0 W:0 P:0 AS:0 CC:0 PM:0 RI:0 EA:3
    GPRS: 0000000000000000 00ffffffffffffff 0000000000000000 0000000000019a58
          000000000000bf68 0000000000000000 0000000000000000 0000000000000000
          0000000000000000 0000000000000000 000000000001a041 0000000000000000
          0000000004c9c000 0000000000010070 0000000000012e42 000000000000beb0
    
    This info makes it apparent that kernel startup failed and might help
    to understand what went wrong without actual standalone dump.
    
    Printing code runs on its own stack of 1 page (at unused 0x5000), which
    should be sufficient for sclp_early_printk usage (typical stack usage
    observed has been around 512 bytes).
    
    The code has pgm check recursion prevention, despite pgm check info
    printing failure (follow on pgm check) or success it restores original
    faulty psw and gprs and does disabled wait.
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    724dc336
head.S 10.8 KB