path: root/src
diff options
authorSantosh Puranik <>2016-10-21 01:42:36 -0500
committerSantosh S. Puranik <>2016-10-26 03:00:05 -0400
commitedefd286237fbc62a50095585a3b4c60134cc599 (patch)
tree2dfd0400fd3ea767baa7a92f3e21baf775f736fa /src
parentb4478ef845dc4f6db5de0fbd82e91e76b55d6ad0 (diff)
Halt PPE in SBE machine check handler
-- Call pk_halt instead of looping forever Change-Id: Ie22a37ab6ab474051ebaaa3056473ca1d01ed219 Reviewed-on: Reviewed-by: Sachin Gupta <> Tested-by: Jenkins Server <> Tested-by: FSP CI Jenkins <> Reviewed-by: RAJA DAS <> Reviewed-by: Santosh S. Puranik <>
Diffstat (limited to 'src')
1 files changed, 5 insertions, 5 deletions
diff --git a/src/sbefw/sbeirq.C b/src/sbefw/sbeirq.C
index bb53928a..3c0a2ef0 100644
--- a/src/sbefw/sbeirq.C
+++ b/src/sbefw/sbeirq.C
@@ -168,8 +168,8 @@ extern "C" void __sbe_machine_check_handler()
"# For a data machine check, the MCS should be 0x001 to 0x011\n"
"mfisr %r4\n"
"andi. %r4, %r4, 0x0007\n"
- "bwz %r4, __hang_forever\n"
- "cmpwibgt %r4, 0x0003, __hang_forever\n"
+ "bwz %r4, __halt_sbe\n"
+ "cmpwibgt %r4, 0x0003, __halt_sbe\n"
"# The EDR contains the address that caused the machine check\n"
"mfedr %r4\n"
"srawi %r4, %r4, 16\n"
@@ -177,9 +177,9 @@ extern "C" void __sbe_machine_check_handler()
"# failed scom and jump to __scom_error\n"
"cmplwi %r4, 0x8000\n"
"blt __scom_error\n"
- "# Else, just hang here forever\n"
- "__hang_forever:\n"
- "b .\n"
+ "# Else, halt the SBE\n"
+ "__halt_sbe:\n"
+ "b pk_halt\n"
"# The srr0 contains the address of the instruction that caused the machine\n"
"# check (since the the interrupt is raised *before* the instruction\n"
OpenPOWER on IntegriCloud