aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/platform.c6
-rw-r--r--doc/opal-api/opal-cec-reboot-6-116.rst7
-rw-r--r--include/opal-api.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/core/platform.c b/core/platform.c
index 7220c6c..307fe67 100644
--- a/core/platform.c
+++ b/core/platform.c
@@ -9,6 +9,7 @@
* Copyright 2013-2019 IBM Corp.
*/
+#include <stdlib.h>
#include <skiboot.h>
#include <opal.h>
#include <console.h>
@@ -104,6 +105,11 @@ static int64_t opal_cec_reboot2(uint32_t reboot_type, char *diag)
case OPAL_REBOOT_FULL_IPL:
disable_fast_reboot("full IPL reboot requested");
return opal_cec_reboot();
+ case OPAL_REBOOT_MPIPL:
+ prlog(PR_NOTICE, "Reboot: OS reported error. Performing MPIPL\n");
+ console_complete_flush();
+ _abort("Reboot: OS reported error. Performing MPIPL\n");
+ break;
default:
prlog(PR_NOTICE, "OPAL: Unsupported reboot request %d\n", reboot_type);
return OPAL_UNSUPPORTED;
diff --git a/doc/opal-api/opal-cec-reboot-6-116.rst b/doc/opal-api/opal-cec-reboot-6-116.rst
index ba31e7a..9a5c794 100644
--- a/doc/opal-api/opal-cec-reboot-6-116.rst
+++ b/doc/opal-api/opal-cec-reboot-6-116.rst
@@ -127,6 +127,13 @@ OPAL_REBOOT_FULL_IPL = 2
On platforms that don't support fast reboot, this is equivalent to a
normal reboot.
+OPAL_REBOOT_MPIPL = 3
+ Request for MPIPL reboot. Firmware will reboot the system and collect
+ dump.
+
+ On platforms that don't support MPIPL, this is equivalent to a
+ normal assert.
+
Unsupported Reboot type
For unsupported reboot type, this function will return with
OPAL_UNSUPPORTED and no reboot will be triggered.
diff --git a/include/opal-api.h b/include/opal-api.h
index 0134ee1..1a1f380 100644
--- a/include/opal-api.h
+++ b/include/opal-api.h
@@ -1123,6 +1123,7 @@ enum {
OPAL_REBOOT_NORMAL = 0,
OPAL_REBOOT_PLATFORM_ERROR,
OPAL_REBOOT_FULL_IPL,
+ OPAL_REBOOT_MPIPL,
};
/* Argument to OPAL_PCI_TCE_KILL */