[Skiboot] [PATCH v2 7/8] platform: Add platform hook for terminate call
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Fri Sep 4 21:25:12 AEST 2015
Current abort() call works fine on FSP based system. We need different
mechanism on BMC based machine. Hence introduce platform hook for
terminate call.
Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
---
core/utils.c | 4 +++-
include/platform.h | 5 +++++
platforms/ibm-fsp/apollo.c | 1 +
platforms/ibm-fsp/firenze.c | 1 +
4 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/core/utils.c b/core/utils.c
index df9a815..5d86ed0 100644
--- a/core/utils.c
+++ b/core/utils.c
@@ -17,6 +17,7 @@
#include <skiboot.h>
#include <lock.h>
#include <fsp.h>
+#include <platform.h>
#include <processor.h>
#include <cpu.h>
#include <stack.h>
@@ -40,7 +41,8 @@ void __noreturn _abort(const char *msg)
prlog(PR_EMERG, "Aborting!\n");
backtrace();
- ibm_fsp_terminate(msg);
+ if (platform.terminate)
+ platform.terminate(msg);
for (;;) ;
}
diff --git a/include/platform.h b/include/platform.h
index 80aa8ba..f1bdc30 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -158,6 +158,11 @@ struct platform {
*/
int64_t (*sensor_read)(uint32_t sensor_hndl, int token,
uint32_t *sensor_data);
+
+ /*
+ * OPAL terminate
+ */
+ void __attribute__((noreturn)) (*terminate)(const char *msg);
};
extern struct platform __platforms_start;
diff --git a/platforms/ibm-fsp/apollo.c b/platforms/ibm-fsp/apollo.c
index be7e6cc..e9616d5 100644
--- a/platforms/ibm-fsp/apollo.c
+++ b/platforms/ibm-fsp/apollo.c
@@ -63,4 +63,5 @@ DECLARE_PLATFORM(apollo) = {
.start_preload_resource = fsp_start_preload_resource,
.resource_loaded = fsp_resource_loaded,
.sensor_read = ibm_fsp_sensor_read,
+ .terminate = ibm_fsp_terminate,
};
diff --git a/platforms/ibm-fsp/firenze.c b/platforms/ibm-fsp/firenze.c
index 4dd07a1..d093802 100644
--- a/platforms/ibm-fsp/firenze.c
+++ b/platforms/ibm-fsp/firenze.c
@@ -556,4 +556,5 @@ DECLARE_PLATFORM(firenze) = {
.start_preload_resource = fsp_start_preload_resource,
.resource_loaded = fsp_resource_loaded,
.sensor_read = ibm_fsp_sensor_read,
+ .terminate = ibm_fsp_terminate,
} ;
--
2.1.0
More information about the Skiboot
mailing list