diff options
-rw-r--r-- | core/platform.c | 6 | ||||
-rw-r--r-- | doc/opal-api/opal-cec-reboot-6-116.rst | 7 | ||||
-rw-r--r-- | include/opal-api.h | 1 |
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 */ |