diff options
author | Vasant Hegde <hegdevasant@linux.vnet.ibm.com> | 2019-07-12 16:47:55 +0530 |
---|---|---|
committer | Oliver O'Halloran <oohall@gmail.com> | 2019-08-15 17:54:02 +1000 |
commit | 4a669d0f49c43880aefd752a8b223eb0c3829864 (patch) | |
tree | 91c4c89a68dcaca08edfea7aa494ff3ecfb01916 | |
parent | aa694ea08c0d6350455400e69d266f1dada062c1 (diff) | |
download | skiboot-4a669d0f49c43880aefd752a8b223eb0c3829864.zip skiboot-4a669d0f49c43880aefd752a8b223eb0c3829864.tar.gz skiboot-4a669d0f49c43880aefd752a8b223eb0c3829864.tar.bz2 |
platform: Introduce new reboot type
Enhance reboot2 call to support MPIPL. Payload will call this interface
to initiate MPIPL.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[oliver: rebased]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
-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 */ |