[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