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

Michael Neuling mikey at neuling.org
Thu May 9 13:38:04 AEST 2019


On Sat, 2019-04-13 at 14:45 +0530, Vasant Hegde wrote:
> Enhance reboot2 call to support FADUMP. Payload will call this interface
> to initiate fadump.
> 
> 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");

PR_INFO

the error message doesn't match the opal call name... This is a bit confusing 

> +		console_complete_flush();
> +		assert(false);

Won't assert generate other prints we don't want? 

What happens on other platforms when this happens? I'm pretty sure an assert
will not generate a reboot (I guess it says so below) 

> +		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,
>  };
>  
>  /* Argument to OPAL_PCI_TCE_KILL */



More information about the Skiboot mailing list