[Skiboot] [PATCH v9 18/25] platform: Introduce new reboot type
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Fri Jul 12 21:17:55 AEST 2019
Enhance reboot2 call to support MPIPL. Payload will call this interface
to initiate MPIPL.
Signed-off-by: Vasant Hegde <hegdevasant at 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(-)
diff --git a/core/platform.c b/core/platform.c
index efcf63d77..fea00070e 100644
--- a/core/platform.c
+++ b/core/platform.c
@@ -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;
diff --git a/doc/opal-api/opal-cec-reboot-6-116.rst b/doc/opal-api/opal-cec-reboot-6-116.rst
index ba31e7a7a..9a5c79446 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 d88703556..939b836ca 100644
--- a/include/opal-api.h
+++ b/include/opal-api.h
@@ -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 */
--
2.14.3
More information about the Skiboot
mailing list