summaryrefslogtreecommitdiffstats
path: root/asm/head.S
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-02-02 15:34:10 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2018-02-08 18:21:42 -0600
commitd5378d2a0d54793ee59cd460e465fd0471bdd703 (patch)
tree800467f2c73b98f79c3e3ec25f10a2d61b78dfb1 /asm/head.S
parent92777d335ab3fe8e364014584b454ac48883993b (diff)
downloadblackbird-skiboot-d5378d2a0d54793ee59cd460e465fd0471bdd703.tar.gz
blackbird-skiboot-d5378d2a0d54793ee59cd460e465fd0471bdd703.zip
core/exception: beautify exception handler, add MCE-involved registers
Print DSISR and DAR, to help with deciphering machine check exceptions, and improve the output a bit, decode NIP symbol, improve alignment, etc. Also print a specific header for machine check, because we do expect to see these if there is a hardware failure. Before: [ 0.005968779,3] *********************************************** [ 0.005974102,3] Unexpected exception 200 ! [ 0.005978696,3] SRR0 : 000000003002ad80 SRR1 : 9000000000001000 [ 0.005985239,3] HSRR0: 00000000300027b4 HSRR1: 9000000030001000 [ 0.005991782,3] LR : 000000003002ad80 CTR : 0000000000000000 [ 0.005998130,3] CFAR : 00000000300b58bc [ 0.006002769,3] CR : 40000004 XER: 20000000 [ 0.006008069,3] GPR00: 000000003002ad80 GPR16: 0000000000000000 [ 0.006015170,3] GPR01: 0000000031c03bd0 GPR17: 0000000000000000 [...] After: [ 0.003287941,3] *********************************************** [ 0.003561769,3] Fatal MCE at 000000003002ad80 .nvram_init+0x24 [ 0.003579628,3] CFAR : 00000000300b5964 [ 0.003584268,3] SRR0 : 000000003002ad80 SRR1 : 9000000000001000 [ 0.003590812,3] HSRR0: 00000000300027b4 HSRR1: 9000000030001000 [ 0.003597355,3] DSISR: 00000000 DAR : 0000000000000000 [ 0.003603480,3] LR : 000000003002ad68 CTR : 0000000030093d80 [ 0.003609930,3] CR : 40000004 XER : 20000000 [ 0.003615698,3] GPR00: 00000000300149e8 GPR16: 0000000000000000 [ 0.003622799,3] GPR01: 0000000031c03bc0 GPR17: 0000000000000000 [...] Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'asm/head.S')
-rw-r--r--asm/head.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/asm/head.S b/asm/head.S
index e2ddc915..fb4b95f7 100644
--- a/asm/head.S
+++ b/asm/head.S
@@ -210,6 +210,10 @@ _exception:
std %r4,STACK_SRR1(%r1)
std %r5,STACK_HSRR0(%r1)
std %r6,STACK_HSRR1(%r1)
+ mfspr %r3,SPR_DSISR
+ mfspr %r4,SPR_DAR
+ stw %r3,STACK_DSISR(%r1)
+ std %r4,STACK_DAR(%r1)
mr %r3,%r1
LOAD_IMM64(%r4, SKIBOOT_BASE)
LOAD_IMM32(%r5, exception_entry_foo - __head)
OpenPOWER on IntegriCloud