[Skiboot] [PATCH v3 1/2] opal-api: Add OPAL call to handle abnormal reboots.
Mahesh Jagannath Salgaonkar
mahesh at linux.vnet.ibm.com
Wed Jul 29 21:13:03 AEST 2015
On 07/29/2015 10:37 AM, Samuel Mendoza-Jonas wrote:
> On 29/07/15 04:05, Mahesh J Salgaonkar wrote:
>> From: Vipin K Parashar <vipin at linux.vnet.ibm.com>
>>
>> This patch adds a new OPAL call OPAL_CEC_REBOOT2 which will
>> be used to handle abnormal reboot/termination by kernel host.
>>
>> This call will allow host kernel to pass reboot type and additional
>> debug data which needs to be captured/saved somewhere (for later
>> analysis) before going down.
>>
>> Currently it will support two reboot types (0). normal reboot, that
>> will behave similar to that of opal_cec_reboot() call, and
>> (1). platform error reboot, that will trigger a system checkstop
>> using xscom address and FIR bit information obtained via device-tree
>> property 'ibm,sw-checkstop-fir'.
>>
>> For unsupported reboot type, this call will do nothing and return
>> with OPAL_UNSUPPORTED.
>>
>> In future, we can overload this call to support additional reboot types.
>>
>> Signed-off-by: Vipin K Parashar <vipin at linux.vnet.ibm.com>
>> Signed-off-by: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
>> ---
>> core/platform.c | 37 +++++++++++++++++++++++++++++++++++++
>> hw/xscom.c | 32 ++++++++++++++++++++++++++++++++
>> include/errorlog.h | 3 +++
>> include/opal-api.h | 9 ++++++++-
>> include/xscom.h | 1 +
>> 5 files changed, 81 insertions(+), 1 deletion(-)
>>
>> diff --git a/core/platform.c b/core/platform.c
>> index dec7e96..272f2db 100644
>> --- a/core/platform.c
>> +++ b/core/platform.c
>> @@ -21,9 +21,18 @@
>> #include <timebase.h>
>> #include <cpu.h>
>> #include <chip.h>
>> +#include <xscom.h>
>> +#include <errorlog.h>
>>
>> struct platform platform;
>>
>> +static void reboot_err_info_dump(struct errorlog *buf, void *data,
>> + uint16_t size);
>> +
>> +DEFINE_LOG_ENTRY(OPAL_RC_ABNORMAL_REBOOT, OPAL_PLATFORM_ERR_EVT, OPAL_CEC,
>> + OPAL_CEC_HARDWARE, OPAL_PREDICTIVE_ERR_FAULT_RECTIFY_REBOOT,
>> + OPAL_ABNORMAL_POWER_OFF, reboot_err_info_dump);
>> +
>> /*
>> * Various wrappers for platform functions
>> */
>
> (copying my response from the other thread so it's visible here as well)
>
>> Sam Jonas changed this function signature a couple of days ago. You will
>> have to co-ordinate with him so there are no build issues.
>
> Good catch - yep my patches yesterday, specifically "[PATCH 1/3] errorlog:
> Simplify log calling convention" deprecates this call-back method
> of logging extra data.
>
> If those patches go in the new method is simple to update to - just get
> rid of the reboot_err_info_dump callback and instead change the
> call to log_error() to a log_append_msg() and log_append_data().
I saw your patches. Let me re-base my next version on your patchset.
>
> Alternately if your patches go in first I can update the calling
> convention as part of my patches; I'll coordinate with Stewart.
>
> Thanks,
> Sam
>
>
>
More information about the Skiboot
mailing list