[Skiboot] [PATCH v7 15/22] fadump: Introduce new reboot type

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Tue May 14 18:59:48 AEST 2019


On 05/10/2019 07:03 AM, Oliver wrote:
> On Sat, Apr 13, 2019 at 7:19 PM Vasant Hegde
> <hegdevasant at linux.vnet.ibm.com> wrote:
>>
>> Enhance reboot2 call to support FADUMP. Payload will call this interface
>> to initiate fadump.
> 
> Every other bit of bare metal firmware calls it MPIPL so I'd rather we
> just stuck with that terminology for consistency. Think of it this
> way: FAdump/fadump is a linux feature that we're implementing on top
> of MPIPL.

Agreed. Will fix it.

> 
>> Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
>> ---
>>   core/platform.c                        | 7 ++++++-
>>   doc/opal-api/opal-cec-reboot-6-116.rst | 7 +++++++
>>   include/opal-api.h                     | 1 +
>>   3 files changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/core/platform.c b/core/platform.c
>> index 570a4309a..5283fce0a 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.
>> @@ -103,6 +103,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_OS_ERROR:
>> +               prlog(PR_ERR, "Kernel requested for fadump\n");
>> +               console_complete_flush();
>> +               assert(false);
>> +               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 516d4fc01..9ac7f9f69 100644
>> --- a/doc/opal-api/opal-cec-reboot-6-116.rst
>> +++ b/doc/opal-api/opal-cec-reboot-6-116.rst
>> @@ -63,6 +63,13 @@ OPAL_REBOOT_FULL_IPL = 2
>>          On platforms that don't support fast reboot, this is equivalent to a
>>          normal reboot.
>>
>> +OPAL_REBOOT_OS_ERROR = 3
>> +       Request for fadump reboot. Firmware will reboot the system and collect
>> +       dump.
>> +
>> +       On platforms that don't support fadump, 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 702e70841..1884850a9 100644
>> --- a/include/opal-api.h
>> +++ b/include/opal-api.h
>> @@ -1239,6 +1239,7 @@ enum {
>>          OPAL_REBOOT_NORMAL = 0,
>>          OPAL_REBOOT_PLATFORM_ERROR,
>>          OPAL_REBOOT_FULL_IPL,
> 
>> +       OPAL_REBOOT_OS_ERROR,
> 
> Having a "PLATFORM_ERROR" reboot type was always kind of dumb IMO so
> I'd rather we didn't make that a pattern. Call it MPIPL or
> MEMORY_PRESERVING_IPL. That way people might actually know what it
> does.

I wanted to have something OPAL_REBOOT_*. So I added it as "OPAL_REBOOT_MPIPL".
Then based on Stewart suggestion I changed it to OPAL_REBOOT_OS_ERROR.

-Vasant



More information about the Skiboot mailing list