@@ -1,4 +1,4 @@
-/* Copyright 2013-2016 IBM Corp.
+/* Copyright 2013-2019 IBM Corp.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
+#include <stdlib.h>
#include <skiboot.h>
#include <opal.h>
#include <console.h>
@@ -110,6 +111,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;
@@ -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.
@@ -1136,6 +1136,7 @@ enum {
OPAL_REBOOT_NORMAL = 0,
OPAL_REBOOT_PLATFORM_ERROR,
OPAL_REBOOT_FULL_IPL,
+ OPAL_REBOOT_MPIPL,
};
/* Argument to OPAL_PCI_TCE_KILL */
Enhance reboot2 call to support MPIPL. Payload will call this interface to initiate MPIPL. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> --- core/platform.c | 8 +++++++- doc/opal-api/opal-cec-reboot-6-116.rst | 7 +++++++ include/opal-api.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-)